00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00032 #ifndef _MILLIESTD_HPP_
00033 #define _MILLIESTD_HPP_
00034
00035 #include "DataBuffer.hpp"
00036 #include <vector>
00037
00038
00039 namespace Millie
00040 {
00041
00049 float getMinimum(DataBuffer<float>& buffer);
00050
00058 float getMinimum(std::vector<float>& vect);
00059
00067 float getMaximum(DataBuffer<float>& buffer);
00068
00076 float getMaximum(std::vector<float>& vect);
00077
00085 float getAverage(std::vector<float> & vect);
00086
00094 float getAverage(DataBuffer<float>& buffer);
00095
00103 float getVariance(std::vector<float> & vect);
00104
00112 float getVariance(DataBuffer<float> & buffer);
00113
00117 class Math
00118 {
00119 public:
00128 static float sign(float a)
00129 {
00130 if(a<0)
00131 return -1.0f;
00132 if(norm(a)==0.00)
00133 return 0.0f;
00134 return 1.0f;
00135 }
00136
00142 template<typename T>
00143 static T square(T a)
00144 {
00145 return (a*a);
00146 }
00147
00148
00154 static float norm(float a)
00155 {
00156 if(a<0)
00157 return -a;
00158 else
00159 return a;
00160 }
00161
00176 static float minmod(float a, float b)
00177 {
00178 return 0.5* (sign(a) + sign(b)) * (norm(a) < norm(b) ? norm(a) : norm(b));
00179
00180
00181
00182
00183
00184 }
00185
00200 static float maxmod(float a, float b)
00201 {
00202 return 0.5* (sign(a) + sign(b)) * (norm(a) > norm(b) ? norm(a) : norm(b));
00203 }
00204
00205
00206 };
00207
00208 };
00209
00210 #endif