2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)2 \cdot \left(\sqrt[3]{\cos \left(\mathsf{fma}\left(\frac{2}{\sqrt[3]{3} \cdot \sqrt[3]{3}}, \frac{\pi}{\sqrt[3]{3}}, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)} \cdot \sqrt[3]{\cos \left(\mathsf{fma}\left(\frac{2}{\sqrt[3]{3} \cdot \sqrt[3]{3}}, \frac{\pi}{\sqrt[3]{3}}, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right) \cdot \cos \left(\mathsf{fma}\left(\frac{2}{\sqrt[3]{3} \cdot \sqrt[3]{3}}, \frac{\pi}{\sqrt[3]{3}}, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)}\right)double f(double g, double h) {
double r144119 = 2.0;
double r144120 = atan2(1.0, 0.0);
double r144121 = r144119 * r144120;
double r144122 = 3.0;
double r144123 = r144121 / r144122;
double r144124 = g;
double r144125 = -r144124;
double r144126 = h;
double r144127 = r144125 / r144126;
double r144128 = acos(r144127);
double r144129 = r144128 / r144122;
double r144130 = r144123 + r144129;
double r144131 = cos(r144130);
double r144132 = r144119 * r144131;
return r144132;
}
double f(double g, double h) {
double r144133 = 2.0;
double r144134 = 3.0;
double r144135 = cbrt(r144134);
double r144136 = r144135 * r144135;
double r144137 = r144133 / r144136;
double r144138 = atan2(1.0, 0.0);
double r144139 = r144138 / r144135;
double r144140 = g;
double r144141 = -r144140;
double r144142 = h;
double r144143 = r144141 / r144142;
double r144144 = acos(r144143);
double r144145 = r144144 / r144134;
double r144146 = fma(r144137, r144139, r144145);
double r144147 = cos(r144146);
double r144148 = cbrt(r144147);
double r144149 = r144147 * r144147;
double r144150 = cbrt(r144149);
double r144151 = r144148 * r144150;
double r144152 = r144133 * r144151;
return r144152;
}



Bits error versus g



Bits error versus h
Initial program 1.0
rmApplied add-cube-cbrt1.0
Applied times-frac1.0
Applied fma-def1.0
rmApplied add-cbrt-cube1.0
Simplified1.0
rmApplied cube-mult1.0
Applied cbrt-prod0.0
Final simplification0.0
herbie shell --seed 2020046 +o rules:numerics
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
:precision binary64
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))