diff options
Diffstat (limited to 'mer_generator.c')
-rw-r--r-- | mer_generator.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/mer_generator.c b/mer_generator.c new file mode 100644 index 0000000..a20c56f --- /dev/null +++ b/mer_generator.c @@ -0,0 +1,28 @@ +#include "stdio.h" +#include "limits.h" + +#include "kmer_utils.h" + +main() { + + int i = 0; + int j = 0; + unsigned long out = 0; + + for(j = 1; j < 32; j++) { + printf("unsigned long long mer_%d(const char *seq) { return ", j); + unsigned long multiply = 1; + for(i = j - 1; i >= 0; i--){ + printf("(seq[%d] * %d) + ", i, multiply); + multiply = multiply << 2; + } + printf(" 0; }\n"); + } + + printf("int (*return_fn())(const char * )mer_ptr(int kmer) { switch(kmer) {"); + for(j = 1; j < 32; j++) + printf("case %d: return mer_%d;", j, j); + printf("}"); + + +} |