wolffd@0: /* C mex init_pot for in @jtree_sparse_inf_engine directory */ wolffd@0: /* The file enter_evidence.m in directory @jtree_sparse_inf_engine call it*/ wolffd@0: wolffd@0: /**************************************/ wolffd@0: /* init_pot.c has 6 input & 2 output */ wolffd@0: /* engine */ wolffd@0: /* clqs */ wolffd@0: /* pots */ wolffd@0: /* pot_type */ wolffd@0: /* onodes */ wolffd@0: /* ndx */ wolffd@0: /* */ wolffd@0: /* clpot */ wolffd@0: /* seppot */ wolffd@0: /**************************************/ wolffd@0: #include wolffd@0: #include wolffd@0: #include "mex.h" wolffd@0: wolffd@0: int compare(const void* src1, const void* src2){ wolffd@0: int i1 = *(int*)src1 ; wolffd@0: int i2 = *(int*)src2 ; wolffd@0: return i1-i2 ; wolffd@0: } wolffd@0: wolffd@0: void ind_subv(int index, const int *cumprod, int n, int *bsubv){ wolffd@0: int i; wolffd@0: wolffd@0: for (i = n-1; i >= 0; i--) { wolffd@0: bsubv[i] = ((int)floor(index / cumprod[i])); wolffd@0: index = index % cumprod[i]; wolffd@0: } wolffd@0: } wolffd@0: wolffd@0: int subv_ind(const int n, const int *cumprod, const int *subv){ wolffd@0: int i, index=0; wolffd@0: wolffd@0: for(i=0; i