2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)2 \cdot \sqrt[3]{{\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 \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)}\right)}^{3}}double f(double g, double h) {
double r134011 = 2.0;
double r134012 = atan2(1.0, 0.0);
double r134013 = r134011 * r134012;
double r134014 = 3.0;
double r134015 = r134013 / r134014;
double r134016 = g;
double r134017 = -r134016;
double r134018 = h;
double r134019 = r134017 / r134018;
double r134020 = acos(r134019);
double r134021 = r134020 / r134014;
double r134022 = r134015 + r134021;
double r134023 = cos(r134022);
double r134024 = r134011 * r134023;
return r134024;
}
double f(double g, double h) {
double r134025 = 2.0;
double r134026 = 3.0;
double r134027 = cbrt(r134026);
double r134028 = r134027 * r134027;
double r134029 = r134025 / r134028;
double r134030 = atan2(1.0, 0.0);
double r134031 = r134030 / r134027;
double r134032 = g;
double r134033 = -r134032;
double r134034 = h;
double r134035 = r134033 / r134034;
double r134036 = acos(r134035);
double r134037 = r134036 / r134026;
double r134038 = fma(r134029, r134031, r134037);
double r134039 = cos(r134038);
double r134040 = r134039 * r134039;
double r134041 = cbrt(r134040);
double r134042 = cbrt(r134039);
double r134043 = r134041 * r134042;
double r134044 = 3.0;
double r134045 = pow(r134043, r134044);
double r134046 = cbrt(r134045);
double r134047 = r134025 * r134046;
return r134047;
}



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 add-cube-cbrt1.0
Simplified0.1
Final simplification0.1
herbie shell --seed 2020033 +o rules:numerics
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
:precision binary64
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))