void FSYM(xcspla) FCSYM(XCSPLA)(fortran_int_t *text, fortran_int_t *len) { str2ints(text,*len,xcfun_splash()); }
int main(int argc, char **argv) { /* Initial number of changepoints */ int nK0=1; #ifdef FIXED FILE *pfp, *kfp, *Lfp; char *pfn="Probs.dat", *kfn="K.dat", *Lfn="Likelihood.dat"; prefix=NULL; #endif #ifndef FIXED getArgs(argc, argv); #else getFixedArgs(argc, argv); #endif processData(dataFn); initialise(); #ifdef FIXED if(prefix) { pfn=addPrefix(pfn, prefix); kfn=addPrefix(kfn, prefix); Lfn=addPrefix(Lfn, prefix); } pfp=fopen(pfn,"w"); kfp=fopen(kfn,"w"); Lfp=fopen(Lfn,"w"); setData(CDFdata, getNdata()); setSample(sampleMixed); iterate(pfp, kfp, Lfp, /* dPriorNew */dPriorFixedChangepoints, dFixedLikelihood,p0,nProb, ip0, nK, seed, nIter); #endif #ifdef DEFAULT if(!restart) { iterateRJ(prefix, prefix, prefix, prefix, sampleBirthDeath, dPriorChangepoints,dLikelihood, p0, nK0+1,1, nProb, ip0, nK0,1, nK, seed, nIter); } else { /* int k0[]={50000, 100000}; */ /* nK0=2; */ /* initialiseLocations(ip0, k0, CDFdata,getNdata()-1, */ /* p0, 2); */ FILE *re_fp=fopen(re_K, "rb"); char *buf=malloc(MAX_LEN+1); char *ll; int nReK=0, nReP=0; int i; int nums[NCHANGE+1]; double dNums[NCHANGE+2]; ll=lastLine(re_fp, buf, MAX_LEN); fclose(re_fp); nReK=str2ints(ll, nums); /* for(i=0; i<nReK; i++) { */ /* fprintf(OUT, "%d\t", nums[i]); */ /* } */ /* fprintf(OUT, "\nSuccessfully converted %d integers\n", nReK); */ re_fp=fopen(re_P, "rb"); ll=lastLine(re_fp, buf, MAX_LEN); free(buf); fclose(re_fp); nReP=str2doubles(ll, dNums); /* for(i=0; i<nReP; i++) { */ /* fprintf(OUT, "%f\t", dNums[i]); */ /* } */ /* fprintf(OUT, "\nSuccessfully converted %d doubles\n", nReP); */ initialiseLocationsAndProbs(ip0, p0, nums+1, dNums+1, nReK-1); /* printIntParameters(OUT, ip0, nReK-1); */ /* printParameters(OUT, p0, nReP-1); */ /* exit(1); */ iterateRJ(prefix, prefix, prefix, prefix, sampleBirthDeath, dPriorChangepoints,dLikelihood, p0, nReP-1,1, nProb, ip0, nReK-1,1, nK, seed, nIter); } #endif #ifdef GEO iterateRJ(prefix, prefix, prefix, prefix, sampleBirthDeath, dPriorChangepointsGeo,dLikelihood, p0, nK0+1,1, nProb, ip0, nK0,1, nK, seed, nIter); #endif #ifdef NEGATIVEBINK1 iterateRJ(prefix, prefix, prefix, prefix, sampleBirthDeath, dPriorChangepointsNegativeBinK1,dLikelihood, p0, nK0+1,1, nProb, ip0, nK0,1, nK, seed, nIter); #endif #ifdef NEGATIVEBINK2 iterateRJ(prefix, prefix, prefix, prefix, sampleBirthDeath, dPriorChangepointsNegativeBinK2,dLikelihood, p0, nK0+1,1, nProb, ip0, nK0,1, nK, seed, nIter); #endif #ifdef NJGEONEGATIVEBINK1 iterateRJ(prefix, prefix, prefix, prefix, sampleBirthDeath, dPriorChangepoints_nJGeoNegativeBinK1,dLikelihood, p0, nK0+1,1, nProb, ip0, nK0,1, nK, seed, nIter); #endif #ifdef NJGEONEGATIVEBINK2 iterateRJ(prefix, prefix, prefix, prefix, sampleBirthDeath, dPriorChangepoints_nJGeoNegativeBinK2,dLikelihood, p0, nK0+1,1, nProb, ip0, nK0,1, nK, seed, nIter); #endif return 0; }