andrew@0: /* andrew@0: * bayesianArray.h andrew@0: * bayesianTest5 andrew@0: * andrew@0: * Created by Andrew Robertson on 08/05/2010. andrew@0: * Copyright 2010 __MyCompanyName__. All rights reserved. andrew@0: * andrew@0: */ andrew@0: andrew@0: #ifndef _BAYESIAN_ARRAY andrew@0: #define _BAYESIAN_ARRAY andrew@0: andrew@0: #define ARRAY_SIZE 240 andrew@0: andrew@0: andrew@0: class bayesianArray{ andrew@0: andrew@0: public: andrew@0: andrew@0: bayesianArray(); andrew@0: void initialiseArray(); andrew@0: andrew@0: void setGaussianLikelihoodForBeats(float mean, float StdDev); andrew@0: void setGaussianLikelihood(float mean, float StdDev); andrew@0: void setGaussianPrior(float mean, float StdDev); andrew@0: void setGaussianPosterior(float mean, float StdDev); andrew@0: andrew@0: void calculatePosterior(); andrew@0: void renormalisePosterior(); andrew@0: void resetMaximumPosterior();//resets the max index andrew@0: void decayPosteriorWithGaussianNoise(); andrew@0: void translateDistribution(int translationIndex); andrew@0: void setDecayNoiseGaussian(float mean, float StdDev); andrew@0: double calculateStandardDeviation(); andrew@0: andrew@0: andrew@0: float getMaximum(float *ptr, int length); andrew@0: void renormaliseArray(float *ptr, int length); andrew@0: void resetPrior(); andrew@0: void decayPosterior(); andrew@0: float* getMaximumEstimate(float *ptr, int length); andrew@0: double getIntegratedEstimateIndex(); andrew@0: andrew@0: float prior [ARRAY_SIZE]; andrew@0: float posterior [ARRAY_SIZE]; andrew@0: float likelihood [ARRAY_SIZE]; andrew@0: float tempPosteriorArray[ARRAY_SIZE]; andrew@0: andrew@0: float decayNoiseArray[ARRAY_SIZE]; andrew@0: float decayNoiseStdDev, decayNoiseAmount; andrew@0: andrew@0: float likelihoodMean, likelihoodStdDev, likelihoodNoise; andrew@0: float maximumTest, posteriorDecayRate, maximumValue; andrew@0: float eighthNoteProportion, earlySixteenthNoteProportion, lateSixteenthNoteProportion ; andrew@0: float maximumEstimate, maximumIndex, integratedEstimate; andrew@0: double standardDeviation; andrew@0: andrew@0: private: andrew@0: }; andrew@0: andrew@0: #endif andrew@0: