In today's story I do someone's homework for them :
/*
QuadraticExtremum gives you the extremum (either minimum or maximum)
of the quadratic that passes through the three points x0y0,x1y1,x2y2
*/
inline double QuadraticExtremum(
double x0,double y0,
double x1,double y1,
double x2,double y2)
{
// warning : this form is pretty but it's numerically very bad
// when the three points are near each other
double s2 = x2*x2;
double s1 = x1*x1;
double s0 = x0*x0;
double numer = y0*(s1-s2) + y1*(s2-s0) + y2*(s0-s1);
double denom = y0*(x1-x2) + y1*(x2-x0) + y2*(x0-x1);
double ret = 0.5 * numer / denom;
return ret;
}
No comments:
Post a Comment