typedef enum eosBayesDistributionInfoMode {
- eosBayesDistributionInfoModeGaussian=0
+ eosBayesDistributionInfoModeGaussian=0,
+ eosBayesDistributionInfoModeConstant=1
} eosBayesDistributionInfoMode;
typedef struct eosBayesDistributionInfo {
- float min;
- float max;
- float delta;
- eosBayesDistributionInfoMode mode;
- // For Gaussian
- float mean;
- float sigma;
+ float min;
+ float max;
+ float delta;
+ eosBayesDistributionInfoMode mode;
+ // For Gaussian
+ float mean;
+ float sigma;
+ float constant;
} eosBayesDistributionInfo;
extern void leosBayesInit(eosBayes* d, int numDistribution, int numLikelihood, int mode);
extern void eosBayesCondition(FILE* fptIn, eosBayes* d, eosBayesDistributionInfo* llinfo, int mode);
+extern void eosBayesRefinementCondition(FILE* fptIn, eosBayes* d, eosBayesDistributionInfo* llinfo, int n, int mode);
// Initialize Each distribution of eosBayesDistributions
extern void eosBayesDistributionInit(eosBayesDistribution* d,eosBayesDistributionInfo* info, int mode);
extern void leosBayesInit(eosBayes* d, int numDistribution, int numLikelihood, int mode);
extern void eosBayesCondition(FILE* fptIn, eosBayes* d, eosBayesDistributionInfo* llinfo, int mode);
-extern void eosBayesRefinementCondition(eosBayes* d, eosBayesDistributionInfo* llinfo, int n, int mode);
+extern void eosBayesRefinementCondition(FILE* fptIn, eosBayes* d, eosBayesDistributionInfo* llinfo, int n, int mode);
// Initialize Each distribution of eosBayesDistributions
extern void eosBayesDistributionInit(eosBayesDistribution* d,eosBayesDistributionInfo* info, int mode);
int i;
char s[1024];
-
+
DEBUGPRINT("File read start\n");
+ fseek(fptIn,0,SEEK_SET);
+
for(i=0; i<d->numDistribution;i++){
// read each of min, max, delta, mode, mean, sigma
eosBayesDistributionInit(&(d->likelihood[i]),llinfo,0);
eosBayesDistributionInitialProbabilitySet(&(d->prior[i]), llinfo, 0);
}
- DEBUGPRINT("eosBayesConditon finish\n")
+ DEBUGPRINT("eosBayesConditon finish\n");
+
}
-void eosBayesRefinementCondition(eosBayes* d, eosBayesDistributionInfo* llinfo, int n, int mode){
+void eosBayesRefinementCondition(FILE* fptIn, eosBayes* d, eosBayesDistributionInfo* llinfo, int n, int mode){
int i;
+ char s[1024];
- DEBUGPRINT("eosBayesRefinementConditon start\n")
+ DEBUGPRINT("eosBayesRefinementConditon start\n");
+ fseek(fptIn,0,SEEK_SET);
eosBayesParameterOfMaxPosteriorGet(d->posterior,d->numDistribution,0);
-
for(i=0;i<d->numDistribution;i++){
- DEBUGPRINT2("%d/%d loop\n",i+1,d->numDistribution);
+ DEBUGPRINT2("%d/%d loop\n",i+1,d->numDistribution);
+ stringGetFromFile(s, "in main", fptIn, stdout, 3);
+
+ llinfo->min = stringGetNthRealData(s, 2," \t");
+ llinfo->max = stringGetNthRealData(s, 3," \t");
+ llinfo->delta = stringGetNthRealData(s, 4," \t");
+ llinfo->mode = stringGetNthIntegerData(s, 5," \t");
+ llinfo->mean = stringGetNthRealData(s, 6," \t");
+ llinfo->sigma = stringGetNthRealData(s, 7," \t");
switch(llinfo->mode){
case 0:
/*Gaussian*/
llinfo->min = d->posterior[i].valueofmaxposterior-d->posterior[i].delta;
- llinfo->min = d->posterior[i].valueofmaxposterior+d->posterior[i].delta;
+ llinfo->max = d->posterior[i].valueofmaxposterior+d->posterior[i].delta;
llinfo->sigma = d->posterior[i].delta;
llinfo->mean = d->posterior[i].valueofmaxposterior;
llinfo->delta = d->posterior[i].delta/n;
break;
}
-
+ DEBUGPRINT1("%s\n",s);
DEBUGPRINT6("min:%f max:%f delta:%f mode:%u mean:%f sigma:%f\n",llinfo->min,llinfo->max,llinfo->delta,llinfo->mode,llinfo->mean,llinfo->sigma);
eosBayesDistributionInit(&(d->prior[i]),llinfo,1);
}
- DEBUGPRINT("eosBayesRefinementConditon finish\n")
+ DEBUGPRINT("eosBayesRefinementConditon finish\n");
}