X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fdist_dna.c;h=c087212dc1b7477435a1fcf6b69630c6811a3466;hb=dff741171e7afe3f9aaa2d9cb19c2f91995e8623;hp=67522ff67763705f812ac69ad536886526761e62;hpb=12b407de3b6d3a160eb2ebd48d005da328735206;p=ape.git diff --git a/src/dist_dna.c b/src/dist_dna.c index 67522ff..c087212 100644 --- a/src/dist_dna.c +++ b/src/dist_dna.c @@ -1,4 +1,4 @@ -/* dist_dna.c 2012-02-14 */ +/* dist_dna.c 2012-11-28 */ /* Copyright 2005-2012 Emmanuel Paradis @@ -1143,3 +1143,24 @@ void dist_dna(unsigned char *x, int *n, int *s, int *model, double *d, case 17 : distDNA_indelblock(x, n, s, d); break; } } + +void where(unsigned char *x, unsigned char *pat, int *s, int *p, + int *ans, int *n) +{ + int i, j, k, ln; + + ln = 0; /* local n */ + + for (i = 0; i <= *s - *p; i++) { + k = i; j = 0; + while (1) { + if (x[k] != pat[j]) break; + j++; k++; + if (j == *p) { + ans[ln++] = k - 1; + break; + } + } + } + *n = ln; +}