diff maths/MathUtilities.h @ 279:c8908cdc8c32

* First cut at Matthew's downbeat estimator -- untested so far
author Chris Cannam <c.cannam@qmul.ac.uk>
date Tue, 10 Feb 2009 12:52:43 +0000
parents c96785becf96
children 9c403afdd9e9
line wrap: on
line diff
--- a/maths/MathUtilities.h	Mon Feb 09 16:05:32 2009 +0000
+++ b/maths/MathUtilities.h	Tue Feb 10 12:52:43 2009 +0000
@@ -21,6 +21,8 @@
     static void	  getFrameMinMax( const double* data, unsigned int len,  double* min, double* max );
 
     static double mean( const double* src, unsigned int len );
+    static double mean( const std::vector<double> &data,
+                        unsigned int start, unsigned int count );
     static double sum( const double* src, unsigned int len );
     static double median( const double* src, unsigned int len );
 
@@ -32,7 +34,8 @@
 
     static void   circShift( double* data, int length, int shift);
 
-    static int	  getMax( double* data, unsigned int length, double* max );
+    static int	  getMax( double* data, unsigned int length, double* max = 0 );
+    static int	  getMax( const std::vector<double> &data, double* max = 0 );
     static int    compareInt(const void * a, const void * b);
 
     enum NormaliseType {
@@ -46,6 +49,9 @@
 
     static void   normalise(std::vector<double> &data,
                             NormaliseType n = NormaliseUnitMax);
+
+    // moving mean threshholding:
+    static void adaptiveThreshold(std::vector<double> &data);
 };
 
 #endif