2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)2 \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \left(\left(\sqrt[3]{\frac{\cos^{-1} \left(-\frac{g}{h}\right)}{\sqrt{3}}} \cdot \sqrt[3]{\frac{\cos^{-1} \left(-\frac{g}{h}\right)}{\sqrt{3}}}\right) \cdot \left(\sqrt[3]{\frac{1}{\sqrt{3}}} \cdot \sqrt[3]{\frac{1}{\sqrt{3}}}\right)\right) \cdot \sqrt[3]{\frac{\cos^{-1} \left(-\frac{g}{h}\right)}{3}}\right)\right)\right)\right)double f(double g, double h) {
double r3940542 = 2.0;
double r3940543 = atan2(1.0, 0.0);
double r3940544 = r3940542 * r3940543;
double r3940545 = 3.0;
double r3940546 = r3940544 / r3940545;
double r3940547 = g;
double r3940548 = -r3940547;
double r3940549 = h;
double r3940550 = r3940548 / r3940549;
double r3940551 = acos(r3940550);
double r3940552 = r3940551 / r3940545;
double r3940553 = r3940546 + r3940552;
double r3940554 = cos(r3940553);
double r3940555 = r3940542 * r3940554;
return r3940555;
}
double f(double g, double h) {
double r3940556 = 2.0;
double r3940557 = 0.6666666666666666;
double r3940558 = atan2(1.0, 0.0);
double r3940559 = g;
double r3940560 = h;
double r3940561 = r3940559 / r3940560;
double r3940562 = -r3940561;
double r3940563 = acos(r3940562);
double r3940564 = 3.0;
double r3940565 = sqrt(r3940564);
double r3940566 = r3940563 / r3940565;
double r3940567 = cbrt(r3940566);
double r3940568 = r3940567 * r3940567;
double r3940569 = 1.0;
double r3940570 = r3940569 / r3940565;
double r3940571 = cbrt(r3940570);
double r3940572 = r3940571 * r3940571;
double r3940573 = r3940568 * r3940572;
double r3940574 = r3940563 / r3940564;
double r3940575 = cbrt(r3940574);
double r3940576 = r3940573 * r3940575;
double r3940577 = fma(r3940557, r3940558, r3940576);
double r3940578 = cos(r3940577);
double r3940579 = expm1(r3940578);
double r3940580 = log1p(r3940579);
double r3940581 = r3940556 * r3940580;
return r3940581;
}



Bits error versus g



Bits error versus h
Initial program 1.0
Simplified1.0
rmApplied log1p-expm1-u1.0
rmApplied add-cube-cbrt1.0
rmApplied add-sqr-sqrt1.0
Applied *-un-lft-identity1.0
Applied times-frac1.0
Applied cbrt-prod1.0
Applied add-sqr-sqrt1.0
Applied *-un-lft-identity1.0
Applied times-frac1.0
Applied cbrt-prod1.0
Applied swap-sqr1.0
Final simplification1.0
herbie shell --seed 2019143 +o rules:numerics
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))