59 if ( !_list )
return -1;
61 unsigned n = _list->length();
66 double x0 = ( *_list )[0]->x();
67 double y0 = ( *_list )[0]->y();
68 double x1 = ( *_list )[1]->x();
69 double y1 = ( *_list )[1]->y();
70 if ( x0 == x1 )
return -2;
71 _slope = ( y0 - y1 ) / ( x0 - x1 );
72 _yOffset = -_slope * x1 + y1;
77 double sum = double(
n );
78 double sumX = 0., sumY = 0., sumX2 = 0., sumXY = 0., sumY2 = 0.;
79 for (
unsigned i = 0; i <
n; i++ )
91 _det = sum * sumX2 - sumX * sumX;
92 if ( _det == 0. )
return -3;
94 _slope = ( sumXY * sum - sumX * sumY ) / _det;
95 _yOffset = ( sumX2 * sumY - sumX * sumXY ) / _det;