view newOFsrc/bayesianArray.h @ 10:d880f7f29fbe

better output of data
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Wed, 07 Mar 2012 16:47:10 +0000
parents fc095148e2a8
children 23ff520d28ff
line wrap: on
line source
/*
 *  bayesianArray.h
 *  bayesianTest5
 *
 *  Created by Andrew Robertson on 08/05/2010.
 *  Copyright 2010 __MyCompanyName__. All rights reserved.
 *
 */

#ifndef	_BAYESIAN_ARRAY
#define _BAYESIAN_ARRAY

//#define arraySize 240


class bayesianArray{

public:
	
	bayesianArray();
	void initialiseArray();

		void setGaussianLikelihoodForBeats(float mean, float StdDev);		
		void setGaussianLikelihood(float mean, float StdDev);	
		void setGaussianPrior(float mean, float StdDev);
		void setGaussianPosterior(float mean, float StdDev);
			
		void calculatePosterior();
		void renormalisePosterior();
		void renormalisePrior();
		void resetMaximumPosterior();//resets the max index
		void decayPosteriorWithGaussianNoise();
		void translateDistribution(int translationIndex);
		void setDecayNoiseGaussian(float mean, float StdDev);
		double calculateStandardDeviation();
	
		
		float getMaximum(float *ptr, int length);
		void renormaliseArray(float *ptr, int length);
		void resetPrior();
		void decayPosterior();
		float* getMaximumEstimate(float *ptr, int length);
		double getIntegratedEstimateIndex();
	
	static int const arraySize = 240; 
	
		float prior [arraySize];
		float posterior [arraySize];
		float likelihood [arraySize];	
		float tempPosteriorArray[arraySize];

		float decayNoiseArray[arraySize];
		float decayNoiseStdDev, decayNoiseAmount;

		float likelihoodMean, likelihoodStdDev, likelihoodNoise;
		float maximumTest, posteriorDecayRate, maximumValue;
		float eighthNoteProportion, earlySixteenthNoteProportion, lateSixteenthNoteProportion ;
		float maximumEstimate, maximumIndex, integratedEstimate;
		double standardDeviation;
				
		double getKLdivergence();
		double getEntropyOfPosterior();

private:
};

#endif