3 void zhu( int version
)
5 unsigned int i
= 0, j
= 0, k
= 0;
7 /* Huge optimization instead of unsigned int B */
10 #define limit n * n - (n * ( m - 1 ))
12 /* Reduce text to 1d and calculate hash */
13 for( k
= 0; k
< limit
; k
= n
+ k
)
14 for( j
= 0 + k
; j
< n
+ k
; j
++ ) {
17 for( i
= 0; i
< m
; i
++ )
18 text2
[j
] = text2
[j
] * B
+ text
[i
][j
] % Q
;
21 /* Reduce pattern to 1d and calculate hash */
22 for( j
= 0; j
< m
; j
++ ) {
25 for( i
= 0; i
< m
; i
++ )
26 pattern2
[j
] = ( pattern2
[j
] * B
) + pattern
[i
][j
] % Q
;