diff hackday/DynamicBayesianArray.h @ 28:49a5b023df1e

Hackday files comitted - version as demo'd at London hackday
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Mon, 05 Dec 2011 07:00:47 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hackday/DynamicBayesianArray.h	Mon Dec 05 07:00:47 2011 +0000
@@ -0,0 +1,105 @@
+/*
+ *  DynamicBayesianArray.h
+ *  midiCannamReader
+ *
+ *  Created by Andrew on 17/07/2011.
+ *  Copyright 2011 QMUL. All rights reserved.
+ *
+ */
+
+/*
+ *  DynamicBayesianArray.cpp
+ *  bayesianTest5
+ *
+ *  Created by Andrew Robertson on 08/05/2010.
+ *  Copyright 2010 __MyCompanyName__. All rights reserved.
+ *
+ */
+
+/*
+ *  DynamicBayesianArray.h
+ *  bayesianTest5
+ *
+ *  Created by Andrew Robertson on 08/05/2010.
+ *  Copyright 2010 __MyCompanyName__. All rights reserved.
+ *
+ */
+
+#include "ofMain.h"
+
+#include "DynamicVector.h"
+
+#ifndef	_DYNAMIC_BAYESIAN_ARRAY
+#define _DYNAMIC_BAYESIAN_ARRAY
+
+#define ARRAY_SIZE 240
+
+
+class DynamicBayesianArray{
+	
+public:
+	
+	DynamicBayesianArray();
+	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 resetMaximumPosterior();//resets the max index
+	void decayPosteriorWithGaussianNoise();
+	void translateDistribution(int translationIndex);
+	void setDecayNoiseGaussian(float mean, float StdDev);
+	double calculateStandardDeviation();
+	
+	int arraySize;
+	
+	
+	float getMaximum(float *ptr, int length);
+	void renormaliseArray(float *ptr, int length);
+	void resetPrior();
+	void decayPosterior();
+	float* getMaximumEstimate(float *ptr, int length);
+	double getMaximumIndex();//return the index where the probability is maximal
+	double getIntegratedEstimateIndex();
+	
+//	void drawArray(const int& minIndex, const int& maxIndex);
+	void drawFloatArray(float* arrayToDraw, const int& minIndex, const int& maxIndex);
+	void drawDoubleArray(double* arrayToDraw, const int& minIndex, const int& maxIndex);		
+
+	
+	typedef std::vector<double> DoubleVector;
+//	typedef std::vector<IntVector> DoubleMatrix;
+	
+	
+//	DynamicVector prior;
+//	DynamicVector posterior;
+//	DynamicVector likelihood;
+	
+	DynamicVector testVector;	
+//	DynamicVector prior;
+	
+	float prior [ARRAY_SIZE];
+	float posterior [ARRAY_SIZE];
+	float likelihood [ARRAY_SIZE];	
+	float tempPosteriorArray[ARRAY_SIZE];
+	
+	float decayNoiseArray[ARRAY_SIZE];
+	float decayNoiseStdDev, decayNoiseAmount;
+	
+	float likelihoodMean, likelihoodStdDev, likelihoodNoise;
+	float maximumTest, posteriorDecayRate, maximumValue;
+	float eighthNoteProportion, earlySixteenthNoteProportion, lateSixteenthNoteProportion ;
+	float maximumEstimate, maximumIndex, integratedEstimate;
+	double standardDeviation;
+	
+private:
+};
+
+#endif
+
+
+