]> git.donarmstrong.com Git - ape.git/blobdiff - src/dist_dna.c
adding the new function 'where'
[ape.git] / src / dist_dna.c
index 67522ff67763705f812ac69ad536886526761e62..c087212dc1b7477435a1fcf6b69630c6811a3466 100644 (file)
@@ -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;
+}