view newOFsrc/bayesianArray.h @ 11:23ff520d28ff

Changed the likelihood to noise - now 0.6 likelihood, added in a reste for the data output
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Fri, 09 Mar 2012 20:41:32 +0000
parents fc095148e2a8
children
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();
		double getEntropyOfPrior();

private:
};

#endif