コード例 #1
0
ファイル: mcxmm.c プロジェクト: BioDAG/align-paths
void test_cross_ratio
(  mclx* mx
)
   {  dim i, j, n = 0
   ;  for (i=0;i<N_COLS(mx);i++)
      {  mclv* v = mx->cols+i
      ;  double selfv = mclvSelf(v)
      ;  for (j=0;j<v->n_ivps;j++)
         {  mclv* w = mclxGetVector(mx, v->ivps[j].idx, EXIT_ON_FAIL, NULL)
         ;  double arc  =  v->ivps[j].val
         ;  double selfw=  mclvSelf(w)
         ;  double cra  =  mclvIdxVal(w, v->vid, NULL)
         ;  double s    =  MCX_MIN(selfv, selfw)
         ;  if (s > arc || s > cra)
            fprintf
            (  stdout
            ,  "%u\t%u\t%g\t%g\t%g\t%g\n"
            ,  (unsigned) v->vid
            ,  (unsigned) w->vid
            ,  arc
            ,  cra
            ,  selfv
            ,  selfw
            )
         ;  n++
      ;  }
      }
      fprintf(stderr, "tested %u entries\n", (unsigned) n)
;  }
コード例 #2
0
ファイル: transform.c プロジェクト: koadman/proxigenomics
static void tf_ssq
(  mclx* mx
,  double val
)
   {  dim i
   ;  for (i=0;i<N_COLS(mx);i++)
      {  mclv* v = mx->cols+i
      ;  double ssq = mclvPowSum(v, 2.0)
      ;  double sum = mclvSum(v)
      ;  double self = mclvSelf(v)
      ;  if (sum-self)
         mclvSelectGtBar(v, val * (ssq - self*self) / (sum - self))
   ;  }
;  }