#include //#include "peelingC.h" #include #include #include "Mendel.h" #include "normal.h" using namespace std; extern "C"{ void peelingC(double* genoprob, double* likelihood, int* id, int* gender, int* fid, int* mid, int* nSample, int* cid, int* ncid, int* nloci, int* nAllele, double* mrate, double* posteriorprob){ int nGeno = 1; for(int i=0;i<*nloci;i++){ nGeno = nGeno*(nAllele[i]*(nAllele[i]+1)/2); } /* for(int i=0;i mem; for(int i=0;i<*nSample;i++){ individual indTmp(id[i], fid[i], mid[i],gender[i]); mem.push_back(indTmp); } vector numAllele (nAllele,nAllele+*nloci); vector numGeno(*nloci); for(int i=0;i<*nloci;i++){ numGeno[i] = numAllele[i]*(numAllele[i]+1)/2; } vector mRate(mrate, mrate+*nloci); //for(int i=0;i genoProb(genoprob,(genoprob+nGeno)); //for(int i=0;i<3^nloci;i++){ // genoProb.push_back(genoprob[i]) //} vector > genoProbSingle; int gpIndex = 0; for(int i=0;i<*nloci;i++){ vector genoProbSingleTmp(numGeno[i]); for(int j=0;j genoProb(nGeno,1); //vector genoCode(*nloci); for(int i=0;i lk(*nSample,nGeno); for(int i=0;i<*nSample;i++){ for(int j=0;j sampleID(cid, cid+*ncid); dMatrix postProb = mendel.calPostProb(lk,sampleID); //cout<