view src/DynamicVector.h @ 1:1a32ce016bb9

Changed bestEstimate timing to work via time sent from Max not the elapsed time. This had caused some problems, but this version now working surprisingly well on MIDI files with variable timing.
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Thu, 18 Aug 2011 23:27:42 +0100
parents b299a65a3ad0
children 5581023e0de4
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"

#ifndef _DYNAMIC_VECTOR
#define _DYNAMIC_VECTOR

class DynamicVector{
public:
	DynamicVector();

	void createVector(int len);
	void renormalise();
	void translateDistribution(int translationIndex);
	typedef std::vector<double> DoubleVector;
	DoubleVector array;
	double getMaximum();
	void drawVector(const int& minIndex, const int& maxIndex);
	void drawConstrainedVector(const int& minIndex, const int& maxIndex, const int& minScreenIndex, const int& maxScreenIndex);

	void addConstant(double value);
	void addGaussianShape(double mean, double stddev, double factor);
	void addToIndex(int index, double constant);
	
	void doProduct(DynamicVector& arrayOne, DynamicVector& arrayTwo);
		
	double getIndexInRealTerms(const int& index);
	double getRealTermsAsIndex(double value);
	double getValueAtMillis(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