diff maths/MathUtilities.h @ 259:c96785becf96

* Add range of normalise options to chromagram * bit of tidying
author Chris Cannam <c.cannam@qmul.ac.uk>
date Tue, 22 Jan 2008 17:27:07 +0000
parents a98dd8ec96f8
children c8908cdc8c32
line wrap: on
line diff
--- a/maths/MathUtilities.h	Mon Jan 21 18:02:47 2008 +0000
+++ b/maths/MathUtilities.h	Tue Jan 22 17:27:07 2008 +0000
@@ -17,17 +17,35 @@
 {
 public:	
     static double round( double x );
+
     static void	  getFrameMinMax( const double* data, unsigned int len,  double* min, double* max );
+
     static double mean( const double* src, unsigned int len );
     static double sum( const double* src, unsigned int len );
+    static double median( const double* src, unsigned int len );
+
     static double princarg( double ang );
-    static double median( const double* src, unsigned int len );
     static double mod( double x, double y);
+
     static void	  getAlphaNorm(const double *data, unsigned int len, unsigned int alpha, double* ANorm);
     static double getAlphaNorm(const std::vector <double> &data, unsigned int alpha );
+
     static void   circShift( double* data, int length, int shift);
+
     static int	  getMax( double* data, unsigned int length, double* max );
     static int    compareInt(const void * a, const void * b);
+
+    enum NormaliseType {
+        NormaliseNone,
+        NormaliseUnitSum,
+        NormaliseUnitMax
+    };
+
+    static void   normalise(double *data, int length,
+                            NormaliseType n = NormaliseUnitMax);
+
+    static void   normalise(std::vector<double> &data,
+                            NormaliseType n = NormaliseUnitMax);
 };
 
 #endif