andrew@2
|
1 /*
|
andrew@2
|
2 * bayesianArray.h
|
andrew@2
|
3 * bayesianTest5
|
andrew@2
|
4 *
|
andrew@2
|
5 * Created by Andrew Robertson on 08/05/2010.
|
andrew@2
|
6 * Copyright 2010 __MyCompanyName__. All rights reserved.
|
andrew@2
|
7 *
|
andrew@2
|
8 */
|
andrew@2
|
9
|
andrew@2
|
10 #ifndef _BAYESIAN_ARRAY
|
andrew@2
|
11 #define _BAYESIAN_ARRAY
|
andrew@2
|
12
|
andrew@6
|
13 //#define arraySize 240
|
andrew@2
|
14
|
andrew@2
|
15
|
andrew@2
|
16 class bayesianArray{
|
andrew@2
|
17
|
andrew@2
|
18 public:
|
andrew@2
|
19
|
andrew@2
|
20 bayesianArray();
|
andrew@2
|
21 void initialiseArray();
|
andrew@2
|
22
|
andrew@2
|
23 void setGaussianLikelihoodForBeats(float mean, float StdDev);
|
andrew@2
|
24 void setGaussianLikelihood(float mean, float StdDev);
|
andrew@2
|
25 void setGaussianPrior(float mean, float StdDev);
|
andrew@2
|
26 void setGaussianPosterior(float mean, float StdDev);
|
andrew@2
|
27
|
andrew@2
|
28 void calculatePosterior();
|
andrew@2
|
29 void renormalisePosterior();
|
andrew@2
|
30 void renormalisePrior();
|
andrew@2
|
31 void resetMaximumPosterior();//resets the max index
|
andrew@2
|
32 void decayPosteriorWithGaussianNoise();
|
andrew@2
|
33 void translateDistribution(int translationIndex);
|
andrew@2
|
34 void setDecayNoiseGaussian(float mean, float StdDev);
|
andrew@2
|
35 double calculateStandardDeviation();
|
andrew@2
|
36
|
andrew@2
|
37
|
andrew@2
|
38 float getMaximum(float *ptr, int length);
|
andrew@2
|
39 void renormaliseArray(float *ptr, int length);
|
andrew@2
|
40 void resetPrior();
|
andrew@2
|
41 void decayPosterior();
|
andrew@2
|
42 float* getMaximumEstimate(float *ptr, int length);
|
andrew@2
|
43 double getIntegratedEstimateIndex();
|
andrew@2
|
44
|
andrew@6
|
45 static int const arraySize = 240;
|
andrew@6
|
46
|
andrew@6
|
47 float prior [arraySize];
|
andrew@6
|
48 float posterior [arraySize];
|
andrew@6
|
49 float likelihood [arraySize];
|
andrew@6
|
50 float tempPosteriorArray[arraySize];
|
andrew@2
|
51
|
andrew@6
|
52 float decayNoiseArray[arraySize];
|
andrew@2
|
53 float decayNoiseStdDev, decayNoiseAmount;
|
andrew@2
|
54
|
andrew@2
|
55 float likelihoodMean, likelihoodStdDev, likelihoodNoise;
|
andrew@2
|
56 float maximumTest, posteriorDecayRate, maximumValue;
|
andrew@2
|
57 float eighthNoteProportion, earlySixteenthNoteProportion, lateSixteenthNoteProportion ;
|
andrew@2
|
58 float maximumEstimate, maximumIndex, integratedEstimate;
|
andrew@2
|
59 double standardDeviation;
|
andrew@2
|
60
|
andrew@2
|
61 double getKLdivergence();
|
andrew@3
|
62 double getEntropyOfPosterior();
|
andrew@11
|
63 double getEntropyOfPrior();
|
andrew@2
|
64
|
andrew@2
|
65 private:
|
andrew@2
|
66 };
|
andrew@2
|
67
|
andrew@2
|
68 #endif
|
andrew@2
|
69 |