1 #ifndef CARMA_PHASEMONITOR_MATHS_H
2 #define CARMA_PHASEMONITOR_MATHS_H
10 namespace phasemonitor
16 static double mean( time_t *x,
int n )
20 for (
int i = 0; i < n; i++ )
23 return (
double)( Sx / (double)n );
26 static double mean(
float *x,
int n )
30 for (
int i = 0; i < n; i++ )
33 return (
double)( Sx / (double)n );
36 static double mean(
double *x,
int n )
40 for (
int i = 0; i < n; i++ )
43 return ( Sx / (
double)n );
46 static void fitLine(
float *x,
float *y,
int n,
float &a,
float &b )
48 double Sx, Sy, Sxx, Sxy;
50 Sx = Sy = Sxx = Sxy = 0.0;
52 for (
int i = 0; i < n; i++ )
56 Sxx += (double)x[i] * (
double)x[i];
57 Sxy += (double)x[i] * (
double)y[i];
72 a = (float)((Sxy - Sx * Sy) / (Sxx - Sx * Sx));
73 b = (float)((Sxx * Sy - Sx * Sxy) / (Sxx - Sx * Sx));
78 static float rms(
float *x,
int n )
84 for (
int i = 0; i < n; i++ )
93 return ( sqrtf(Sxx - Sx*Sx) );
99 #endif // CARMA_PHASEMONITOR_MATHS_H