2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)2 \cdot \left(\cos \left(\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right) \cdot \cos \left(\frac{2 \cdot \pi}{3}\right) - \sin \left(\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right) \cdot \left(\sqrt{\sin \left(\frac{2 \cdot \pi}{3}\right)} \cdot \sqrt{\sin \left(\frac{2 \cdot \pi}{3}\right)}\right)\right)double f(double g, double h) {
double r128248 = 2.0;
double r128249 = atan2(1.0, 0.0);
double r128250 = r128248 * r128249;
double r128251 = 3.0;
double r128252 = r128250 / r128251;
double r128253 = g;
double r128254 = -r128253;
double r128255 = h;
double r128256 = r128254 / r128255;
double r128257 = acos(r128256);
double r128258 = r128257 / r128251;
double r128259 = r128252 + r128258;
double r128260 = cos(r128259);
double r128261 = r128248 * r128260;
return r128261;
}
double f(double g, double h) {
double r128262 = 2.0;
double r128263 = g;
double r128264 = -r128263;
double r128265 = h;
double r128266 = r128264 / r128265;
double r128267 = acos(r128266);
double r128268 = 3.0;
double r128269 = r128267 / r128268;
double r128270 = cos(r128269);
double r128271 = atan2(1.0, 0.0);
double r128272 = r128262 * r128271;
double r128273 = r128272 / r128268;
double r128274 = cos(r128273);
double r128275 = r128270 * r128274;
double r128276 = sin(r128269);
double r128277 = sin(r128273);
double r128278 = sqrt(r128277);
double r128279 = r128278 * r128278;
double r128280 = r128276 * r128279;
double r128281 = r128275 - r128280;
double r128282 = r128262 * r128281;
return r128282;
}



Bits error versus g



Bits error versus h
Results
Initial program 1.0
rmApplied add-sqr-sqrt1.0
Applied associate-/r*1.0
rmApplied cos-sum1.0
Simplified0.0
Simplified1.0
rmApplied add-sqr-sqrt0.0
Final simplification0.0
herbie shell --seed 2020046
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
:precision binary64
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))