{
long double cubetemp;
long double squaretemp;
long double top96, bottom96;
if (n >= 4 && degree >= 2) {
cubetemp = sigxxx * n - (long double) sigxx *sigx;
top96 =
cubetemp * ((long double) sigxy * n - (long double) sigx * sigy);
squaretemp = (long double) sigxx *n - (long double) sigx *sigx;
top96 += squaretemp * ((long double) sigxx * sigy - sigxxy * n);
bottom96 = cubetemp * cubetemp;
bottom96 -= squaretemp * (sigxxxx * n - (long double) sigxx * sigxx);
a = top96 / bottom96;
top96 = ((long double) sigxx * sigx - sigxxx * n) * a
+ (long double) sigxy *n - (long double) sigx *sigy;
bottom96 = (long double) sigxx *n - (long double) sigx *sigx;
b = top96 / bottom96;
c = (sigy - a * sigxx - b * sigx) / n;
}
else if (n == 0 || degree < 0) {
a = b = c = 0;
}
else {
a = 0;
if (n > 1 && degree > 0) {
b = (sigxy * n - sigx * sigy) / (sigxx * n - sigx * sigx);
}
else
b = 0;
c = (sigy - b * sigx) / n;
}
}