double f(double g, double h) {
double r18664201 = 2.0;
double r18664202 = atan2(1.0, 0.0);
double r18664203 = r18664201 * r18664202;
double r18664204 = 3.0;
double r18664205 = r18664203 / r18664204;
double r18664206 = g;
double r18664207 = -r18664206;
double r18664208 = h;
double r18664209 = r18664207 / r18664208;
double r18664210 = acos(r18664209);
double r18664211 = r18664210 / r18664204;
double r18664212 = r18664205 + r18664211;
double r18664213 = cos(r18664212);
double r18664214 = r18664201 * r18664213;
return r18664214;
}
double f(double g, double h) {
double r18664215 = 2.0;
double r18664216 = 0.6666666666666666;
double r18664217 = atan2(1.0, 0.0);
double r18664218 = g;
double r18664219 = -r18664218;
double r18664220 = h;
double r18664221 = r18664219 / r18664220;
double r18664222 = acos(r18664221);
double r18664223 = 3.0;
double r18664224 = sqrt(r18664223);
double r18664225 = r18664222 / r18664224;
double r18664226 = r18664225 / r18664224;
double r18664227 = fma(r18664216, r18664217, r18664226);
double r18664228 = cos(r18664227);
double r18664229 = r18664215 * r18664228;
return r18664229;
}
2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)2 \cdot \cos \left((\frac{2}{3} \cdot \pi + \left(\frac{\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{\sqrt{3}}}{\sqrt{3}}\right))_*\right)


Bits error versus g



Bits error versus h
Initial program 1.0
Simplified1.0
rmApplied add-sqr-sqrt1.0
Applied associate-/r*1.0
Final simplification1.0
herbie shell --seed 2019102 +o rules:numerics
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))