18 void fit(
const std::vector<float> &
x,
const std::vector<float> &
y,
int ndat,
19 const std::vector<float> & sigy,
float&
slope,
float& intercept,
20 float& covss,
float& covii,
float& covsi)
const;
26 void linearFit(
T const * __restrict__
x,
T const * __restrict__
y,
int ndat,
27 T const * __restrict__ sigy2,
29 T & covss,
T & covii,
T & covsi) {
31 T s11 = 0, s12 = 0, s22 = 0;
32 for (
int i = 0;
i != ndat;
i++) {
33 T sy2 =
T(1)/sigy2[
i];
35 g2 += x[
i]*y[
i] * sy2;
38 s22 += x[
i]*x[
i] * sy2;
41 T d =
T(1)/(s11*s22 - s12*s12);
42 intercept = (g1*s22 -
g2*s12) * d;
43 slope = (
g2*s11 - g1*s12) * d;
void fit(const std::vector< float > &x, const std::vector< float > &y, int ndat, const std::vector< float > &sigy, float &slope, float &intercept, float &covss, float &covii, float &covsi) const
static const double slope[3]
T x() const
Cartesian x coordinate.
void linearFit(T const *__restrict__ x, T const *__restrict__ y, int ndat, T const *__restrict__ sigy2, T &slope, T &intercept, T &covss, T &covii, T &covsi)