830 - MarkovModel::CountRecombinants()

From Genome Analysis Wiki
Revision as of 14:54, 25 September 2013 by Goncalo (talk | contribs) (Created page with "<source lang="cpp"> double MarkovModel::CountRecombinants(float * from, float * to, double r) { if (r == 0) return 0.0; double sum = 0.0; for (int i = 0; i ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
double MarkovModel::CountRecombinants(float * from, float * to, double r)
   {
   if (r == 0)
      return 0.0;

   double sum = 0.0;
   for (int i = 0; i < states; i++)
      sum += from[i];

   double rsum = 0.0;
   double nrsum = 0.0;

   for (int i = 0; i < states; i++)
      {
      rsum += to[i];
      nrsum += from[i] * to[i];
      }

   rsum *= sum * r / states;
   nrsum *= 1.0 - r;

   double total = rsum + nrsum;

   return rsum / total;
   }