Mercurial > hg > multitrack-audio-matcher
view bayesianArraySrc/DynamicVector.h @ 56:4394c9490716 tip
minor changes
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Mon, 24 Dec 2012 18:58:39 +0000 |
parents | 780def3a1f36 |
children |
line wrap: on
line source
/* * DynamicVector.h * midiCannamReader * * Created by Andrew on 18/07/2011. * Copyright 2011 QMUL. All rights reserved. * */ //OPTIMIZE CONSTRAINED VECTOR #include "stdlib.h" #include "ofMain.h" #include "ofxWindowRegion.h" #ifndef _DYNAMIC_VECTOR #define _DYNAMIC_VECTOR #define GAUSSIAN_LOOKUP_LENGTH 1000000 class DynamicVector{ public: DynamicVector(); void createVector(int len); void renormalise(); void translateDistribution(int translationIndex); typedef std::vector<double> DoubleVector; DoubleVector array; double getMaximum(); int getMAPestimate(); double getIntegratedEstimate(); double getLookupIndex(const int& i, const double& mean, const double& StdDev); void addGaussianShapeByLookupTable(double& mean, double& StdDev, double factor); double gaussianLookupTable[GAUSSIAN_LOOKUP_LENGTH]; double gaussianLookupMean, gaussianLookupStdDev; double integratedEstimate; void updateIntegratedEstimate(); void updateLimitedIntegratedEstimate(); void drawVector(const int& minIndex, const int& maxIndex); void drawVector(const int& minIndex, const int& maxIndex, ofxWindowRegion window); void drawConstrainedVector(const int& minIndex, const int& maxIndex, const int& minScreenIndex, const int& maxScreenIndex); void drawConstrainedVector(const int& minIndex, const int& maxIndex, const int& minScreenIndex, const int& maxScreenIndex, const ofxWindowRegion& window); void addConstant(const double& value); void addGaussianShape(const double& mean, const double& stddev, double factor); void addGaussianShapeFromRealTime(const double& actualTime, const double& StdDev, double factor); void addTriangularShape(double mean, double width, double factor); void addToIndex(const int& index, const double& constant); void doProduct(DynamicVector& arrayOne, DynamicVector& arrayTwo); double getIndexInRealTerms(const int& index); double getRealTermsAsIndex(double value); double getValueAtMillis(const double& millis); double millisToVectorUnits(const double& millis); void printArray(); void zero(); void copyFromDynamicVector(const DynamicVector& dynamicVec); //variables int length, arraySize; double maximumValue; int MAPestimate; double offset; double scalar;//each array point is this much of the quantity //i.e. array[index] contributes to (offset + scalar*index) in real terms }; #endif