Mercurial > hg > midi-score-follower
comparison src/DynamicVector.cpp @ 2:5581023e0de4
Added separate CannamMidiFileLoader class to handle the loading in.
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Fri, 19 Aug 2011 01:26:40 +0100 |
parents | 1a32ce016bb9 |
children | 4a8e6a6cd224 |
comparison
equal
deleted
inserted
replaced
1:1a32ce016bb9 | 2:5581023e0de4 |
---|---|
5 * Created by Andrew on 18/07/2011. | 5 * Created by Andrew on 18/07/2011. |
6 * Copyright 2011 QMUL. All rights reserved. | 6 * Copyright 2011 QMUL. All rights reserved. |
7 * | 7 * |
8 */ | 8 */ |
9 | 9 |
10 | |
10 #include "DynamicVector.h" | 11 #include "DynamicVector.h" |
11 | 12 |
12 DynamicVector::DynamicVector(){ | 13 DynamicVector::DynamicVector(){ |
13 length = 0; | 14 length = 0; |
14 arraySize = 0; | 15 arraySize = 0; |
49 } | 50 } |
50 maximumValue = max; | 51 maximumValue = max; |
51 return max; | 52 return max; |
52 } | 53 } |
53 | 54 |
55 double DynamicVector::getIntegratedEstimate(){ | |
56 //returns the index of the integrated average - where the probability distribution is centred | |
57 double estimate = 0; | |
58 double integratedTotal = 0; | |
59 for (int i = 0;i < length;i++){ | |
60 estimate += array[i]*i; | |
61 integratedTotal += array[i]; | |
62 } | |
63 if (integratedTotal > 0){ | |
64 estimate /= integratedTotal; | |
65 } | |
66 return estimate; | |
67 } | |
68 | |
54 void DynamicVector::zero(){ | 69 void DynamicVector::zero(){ |
55 for (int i = 0;i < array.size();i++) | 70 for (int i = 0;i < array.size();i++) |
56 array[i] = 0; | 71 array[i] = 0; |
57 } | 72 } |
58 | 73 |
97 //now delete tmp array | 112 //now delete tmp array |
98 } | 113 } |
99 | 114 |
100 void DynamicVector::addGaussianShape(double mean, double StdDev, double factor){ | 115 void DynamicVector::addGaussianShape(double mean, double StdDev, double factor){ |
101 int i; | 116 int i; |
117 factor *= (1/(StdDev*sqrt(2*PI))); | |
102 for (i=0;i<array.size();i++){ | 118 for (i=0;i<array.size();i++){ |
103 array[i] += factor*(1/(StdDev*sqrt(2*PI)))*exp(-1*(i-mean)*(i-mean)/(2*StdDev*StdDev)); | 119 array[i] += factor*exp(-1*(i-mean)*(i-mean)/(2*StdDev*StdDev)); |
104 } | 120 } |
105 //printf("ADDED GAUSSIAN SHAPE %i\n", (int)array.size()); | 121 //printf("ADDED GAUSSIAN SHAPE %i\n", (int)array.size()); |
122 } | |
123 | |
124 void DynamicVector::addTriangularShape(double mean, double width, double factor){ | |
125 int i; | |
126 | |
127 for (i= max(0., (double)(mean - width));i < min((mean+width), (double)array.size());i++){ | |
128 array[i] += factor * abs(i - mean) / mean; | |
129 } | |
130 | |
106 } | 131 } |
107 | 132 |
108 void DynamicVector::addConstant(double value){ | 133 void DynamicVector::addConstant(double value){ |
109 for (int i=0;i<array.size();i++){ | 134 for (int i=0;i<array.size();i++){ |
110 array[i] += value; | 135 array[i] += value; |