mirror of
https://github.com/cookiengineer/audacity
synced 2026-04-23 06:23:49 +02:00
Move library tree where it belongs
This commit is contained in:
49
lib-src/libscorealign/regression.cpp
Normal file
49
lib-src/libscorealign/regression.cpp
Normal file
@@ -0,0 +1,49 @@
|
||||
// Regression is a class to compute a linear regression
|
||||
//
|
||||
#include "regression.h"
|
||||
|
||||
|
||||
Regression::Regression()
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
||||
void Regression::init()
|
||||
{
|
||||
sumxx = 0;
|
||||
sumyy = 0;
|
||||
sumxy = 0;
|
||||
sumx = 0;
|
||||
sumy = 0;
|
||||
n = 0;
|
||||
}
|
||||
|
||||
void Regression::point(float x, float y)
|
||||
{
|
||||
sumx = sumx + x;
|
||||
sumy = sumy + y;
|
||||
sumxx = sumxx + x * x;
|
||||
sumyy = sumyy + y * y;
|
||||
sumxy = sumxy + x * y;
|
||||
n = n + 1;
|
||||
}
|
||||
|
||||
void Regression::regress()
|
||||
{
|
||||
float sxx = sumxx - sumx * sumx / n;
|
||||
float sxy = sumxy - sumx * sumy / n;
|
||||
b = sxy / sxx;
|
||||
a = (sumy - b * sumx) / n;
|
||||
}
|
||||
|
||||
|
||||
float Regression::f(float x)
|
||||
{
|
||||
return a + b * x;
|
||||
}
|
||||
|
||||
|
||||
float Regression::f_inv(float y)
|
||||
{
|
||||
return (y - a) / b;
|
||||
}
|
||||
Reference in New Issue
Block a user