## Information from source codes

## eosBayes.h

    #ifndef EOS_BAYES_H
    #define EOS_BAYES_H

    typedef struct eosBayesDistribution {
    	//char* name;
    	float min;
    	float max;
    	float delta;
    	int   n;
    	float* value;
    	float* prob;
    } eosBayesDistribution;

    typedef struct eosBayes {
    	int numDistribution;
    	eosBayesDistribution* prior;
    	eosBayesDistribution* posterior;

    	int numLikelihood;
    	eosBayesDistribution* likelihood;
    } eosBayes;

    typedef enum eosBayesDistributionInfoMode {
    	 eosBayesDistributionInfoModeGaussian=0

    }  eosBayesDistributionInfoMode;

    typedef struct eosBayesDistributionInfo {
    	float min;
    	float max;
    	float delta;

    	 eosBayesDistributionInfoMode mode;

    	// For Gaussian
    	float mean;
    	float sigma;
    } eosBayesDistributionInfo;

    /* eosBayesInit.c */
    // Initialization of eosBays
    extern void leosBayesInit(eosBayes* b, int numDistribution, int numLikelihood, int mode);

    extern void eosBayesCondition(FILE* fptIn, eosBayes* d, eosBayesDistributionInfo* llinfo, int mode);

    // Initialize Each distribution of eosBayesDistributions
    extern void eosBayesDistributionInit(eosBayesDistribution* d,eosBayesDistributionInfo* info, int mode);

    // Initialize probe of Each distribution of eosBayesDistriubutions
    extern void eosBayesDistributionInitialProbabilitySet(eosBayesDistribution* d, eosBayesDistributionInfo* info, int mode);

    /* eosBayesEstimation.c */
    extern void eosBayesEstimation(eosBayes* d, int mode);

    /* eosBayesWrite.c */
    extern void eosBayesDistribututionWrite(FILE* fpt, eosBayesDistribution* d, int mode);
    extern void eosBayesPriorWrite(FILE* fpt, eosBayes* d, int mode);
    extern void eosBayesPosteriorWrite(FILE* fpt, eosBayes* d, int mode);
    extern void eosBayesLikelihoodWrite(FILE* fpt, eosBayes* d, int mode);
    extern void eosBayesWrite(FILE* fpt, eosBayes* d, int mode);
    // FileFormat
    // 0 min0 max0 delta0 n0 out.prior[0].prob[0] ...... prob[n-1]
    // 1 min1 max1 delta1 n1 out.prior[1].prob[0] ...... prob[n-1]

    /* eosBayesRead.c */
    extern void eosBayesDistributioncheck(FILE* fpt, eosBayes* d, int mode);
    extern void eosBayesDistributionRead(FILE* fpt, eosBayesDistribution* d, int mode);
    extern void eosBayesPriorRead(FILE* fpt, eosBayes* d, int mode);
    extern void eosBayesPosteriorRead(FILE* fpt, eosBayes* d, int mode);
    extern void eosBayesLikelihoodRead(FILE* fpt, eosBayes* d, int mode);
    extern void eosBayesRead(FILE* fpt, eosBayes* d, int mode);

    #endif /* EOS_BAYES_H */