| line |
true |
false |
branch |
|
54
|
12288 |
48 |
for(i = 0; i < BUCKET_A_SIZE; ++i) { bucket_A[i] = 0; } |
|
55
|
3145728 |
48 |
for(i = 0; i < BUCKET_B_SIZE; ++i) { bucket_B[i] = 0; } |
|
60
|
4560000 |
48 |
for(i = n - 1, m = n, c0 = T[n - 1]; 0 <= i;) { |
|
62
|
4560000 |
0 |
do { ++BUCKET_A(c1 = c0); } while((0 <= --i) && ((c0 = T[i]) >= c1)); |
|
|
0 |
4560000 |
do { ++BUCKET_A(c1 = c0); } while((0 <= --i) && ((c0 = T[i]) >= c1)); |
|
63
|
0 |
4560000 |
if(0 <= i) { |
|
68
|
18239952 |
48 |
for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) { |
|
|
13680000 |
4559952 |
for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) { |
|
81
|
12288 |
48 |
for(c0 = 0, i = 0, j = 0; c0 < ALPHABET_SIZE; ++c0) { |
|
85
|
1566720 |
12288 |
for(c1 = c0 + 1; c1 < ALPHABET_SIZE; ++c1) { |
|
92
|
48 |
0 |
if(0 < m) { |
|
95
|
4559952 |
48 |
for(i = m - 2; 0 <= i; --i) { |
|
134
|
11712 |
48 |
for(c0 = ALPHABET_SIZE - 2, j = m; 0 < j; --c0) { |
|
135
|
1434720 |
11712 |
for(c1 = ALPHABET_SIZE - 1; c0 < c1; j = i, --c1) { |
|
137
|
48 |
1434672 |
if(1 < (j - i)) { |
|
146
|
96 |
0 |
for(i = m - 1; 0 <= i; --i) { |
|
147
|
48 |
48 |
if(0 <= SA[i]) { |
|
149
|
0 |
48 |
do { ISAb[SA[i]] = i; } while((0 <= --i) && (0 <= SA[i])); |
|
|
0 |
0 |
do { ISAb[SA[i]] = i; } while((0 <= --i) && (0 <= SA[i])); |
|
151
|
48 |
0 |
if(i <= 0) { break; } |
|
154
|
4559856 |
48 |
do { ISAb[SA[i] = ~SA[i]] = j; } while(SA[--i] < 0); |
|
162
|
4560000 |
48 |
for(i = n - 1, j = m, c0 = T[n - 1]; 0 <= i;) { |
|
163
|
4560000 |
0 |
for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) >= c1); --i, c1 = c0) { } |
|
|
0 |
4560000 |
for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) >= c1); --i, c1 = c0) { } |
|
164
|
0 |
4560000 |
if(0 <= i) { |
|
166
|
18239952 |
48 |
for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) { } |
|
|
13680000 |
4559952 |
for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) { } |
|
167
|
4560000 |
0 |
SA[ISAb[--j]] = ((t == 0) || (1 < (t - i))) ? t : ~t; |
|
|
0 |
4560000 |
SA[ISAb[--j]] = ((t == 0) || (1 < (t - i))) ? t : ~t; |
|
173
|
12240 |
48 |
for(c0 = ALPHABET_SIZE - 2, k = m - 1; 0 <= c0; --c0) { |
|
175
|
1566720 |
12240 |
for(c1 = ALPHABET_SIZE - 1; c0 < c1; --c1) { |
|
181
|
4560000 |
1566720 |
j <= k; |
|
202
|
48 |
0 |
if(0 < m) { |
|
205
|
12240 |
48 |
for(c1 = ALPHABET_SIZE - 2; 0 <= c1; --c1) { |
|
209
|
18240000 |
12240 |
i <= j; |
|
211
|
13680000 |
4560000 |
if(0 < (s = *j)) { |
|
217
|
13679952 |
48 |
if((0 < s) && (T[s - 1] > c0)) { s = ~s; } |
|
|
4559952 |
9120000 |
if((0 < s) && (T[s - 1] > c0)) { s = ~s; } |
|
218
|
144 |
13679856 |
if(c0 != c2) { |
|
219
|
0 |
144 |
if(0 <= c2) { BUCKET_B(c2, c1) = k - SA; } |
|
235
|
48 |
0 |
*k++ = (T[n - 2] < c2) ? ~(n - 1) : (n - 1); |
|
237
|
22800000 |
48 |
for(i = SA, j = SA + n; i < j; ++i) { |
|
238
|
4559952 |
18240048 |
if(0 < (s = *i)) { |
|
241
|
4559952 |
0 |
if((s == 0) || (T[s - 1] < c0)) { s = ~s; } |
|
|
4559952 |
0 |
if((s == 0) || (T[s - 1] < c0)) { s = ~s; } |
|
242
|
0 |
4559952 |
if(c0 != c2) { |
|
340
|
48 |
0 |
if((T == NULL) || (SA == NULL) || (n < 0)) { return -1; } |
|
|
48 |
0 |
if((T == NULL) || (SA == NULL) || (n < 0)) { return -1; } |
|
|
0 |
48 |
if((T == NULL) || (SA == NULL) || (n < 0)) { return -1; } |
|
341
|
0 |
48 |
else if(n == 0) { return 0; } |
|
342
|
0 |
48 |
else if(n == 1) { SA[0] = 0; return 0; } |
|
343
|
0 |
48 |
else if(n == 2) { m = (T[0] < T[1]); SA[m ^ 1] = 0, SA[m] = 1; return 0; } |
|
349
|
48 |
0 |
if((bucket_A != NULL) && (bucket_B != NULL)) { |
|
|
48 |
0 |
if((bucket_A != NULL) && (bucket_B != NULL)) { |