Hi All

I was able to get seqprep to pass the tests on i386 by replacing all
instances of the 'float' datatype in SeqPrep.c with 'double'.  See
attached patch.

Would it be reasonable to apply this patch to all architectures?

Regards
Graham
--- a/SeqPrep.c
+++ b/SeqPrep.c
@@ -150,12 +150,12 @@
   int min_ol_adapter = DEF_OL2MERGE_ADAPTER;
   int min_ol_reads = DEF_OL2MERGE_READS;
   unsigned short int min_read_len =DEF_MIN_READ_LEN;
-  float min_match_adapter_frac = DEF_MIN_MATCH_ADAPTER;
-  float min_match_reads_frac = DEF_MIN_MATCH_READS;
-  float max_mismatch_adapter_frac = DEF_MAX_MISMATCH_ADAPTER;
-  float max_mismatch_reads_frac = DEF_MAX_MISMATCH_READS;
+  double min_match_adapter_frac = DEF_MIN_MATCH_ADAPTER;
+  double min_match_reads_frac = DEF_MIN_MATCH_READS;
+  double max_mismatch_adapter_frac = DEF_MAX_MISMATCH_ADAPTER;
+  double max_mismatch_reads_frac = DEF_MAX_MISMATCH_READS;
 
-  float read_frac_thresh = DEF_READ_GAP_FRAC_CUTOFF;
+  double read_frac_thresh = DEF_READ_GAP_FRAC_CUTOFF;
   unsigned short max_mismatch_adapter[MAX_SEQ_LEN+1];
   unsigned short max_mismatch_reads[MAX_SEQ_LEN+1];
   unsigned short min_match_adapter[MAX_SEQ_LEN+1];
@@ -316,10 +316,10 @@
 
   //Calculate table matching overlap length to min matches and max mismatches
   for(i=0;i<MAX_SEQ_LEN+1;i++){
-    max_mismatch_reads[i] = floor(((float)i)*max_mismatch_reads_frac);
-    max_mismatch_adapter[i] = floor(((float)i)*max_mismatch_adapter_frac);
-    min_match_reads[i] = ceil(((float)i)*min_match_reads_frac);
-    min_match_adapter[i] = ceil(((float)i)*min_match_adapter_frac);
+    max_mismatch_reads[i] = floor(((double)i)*max_mismatch_reads_frac);
+    max_mismatch_adapter[i] = floor(((double)i)*max_mismatch_adapter_frac);
+    min_match_reads[i] = ceil(((double)i)*min_match_reads_frac);
+    min_match_adapter[i] = ceil(((double)i)*min_match_adapter_frac);
   }
   //get length of forward and reverse primers
   int forward_primer_len = strlen(forward_primer);

Reply via email to