8#ifndef INCLUDED_BDLSTA_LINEFIT
9#define INCLUDED_BDLSTA_LINEFIT
102#include <bdlscm_version.h>
104#include <bsl_cmath.h>
147 void add(
double xValue,
double yValue);
158 void fit(
double *alpha,
double *beta)
const;
164 int fitIfValid(
double *alpha,
double *beta)
const;
179 double xMean()
const;
189 double yMean()
const;
221 const double delta = xValue - d_xMean;
225 d_xMean = d_xSum /
static_cast<double>(d_count);
226 const double delta2 = xValue - d_xMean;
227 d_M2 += delta * delta2;
228 d_xySum += xValue * yValue;
243 const double n =
static_cast<double>(d_count);
244 double tmpBeta = (d_xySum - d_xSum * d_ySum / n) / d_M2;
246 *alpha = (d_ySum - d_xSum * tmpBeta) / n;
252 if (2 > d_count || 0.0 == d_M2) {
255 const double n =
static_cast<double>(d_count);
256 double tmpBeta = (d_xySum - d_xSum * d_ySum / n) / d_M2;
258 *alpha = (d_ySum - d_xSum * tmpBeta) / n;
267 return d_M2 / (d_count - 1);
285 return d_xSum /
static_cast<double>(d_count);
303 return d_ySum /
static_cast<double>(d_count);
Definition bdlsta_linefit.h:122
void fit(double *alpha, double *beta) const
Definition bdlsta_linefit.h:239
@ e_INADEQUATE_DATA
Definition bdlsta_linefit.h:136
@ e_SUCCESS
Definition bdlsta_linefit.h:135
double xMean() const
Definition bdlsta_linefit.h:281
int xMeanIfValid(double *result) const
Definition bdlsta_linefit.h:289
int yMeanIfValid(double *result) const
Definition bdlsta_linefit.h:307
double yMean() const
Definition bdlsta_linefit.h:299
void add(double xValue, double yValue)
Add the specified (xValue, yValue) point to the data set.
Definition bdlsta_linefit.h:219
double variance() const
Definition bdlsta_linefit.h:263
int count() const
Returns the number of elements in the data set.
Definition bdlsta_linefit.h:233
int fitIfValid(double *alpha, double *beta) const
Definition bdlsta_linefit.h:250
LineFit()
Create an empty LineFit object.
Definition bdlsta_linefit.h:207
int varianceIfValid(double *result) const
Definition bdlsta_linefit.h:271
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlsta_linefit.h:110