2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\left(\left(\left(\sqrt[3]{\cos \left(\frac{2}{3} \cdot \pi\right)} \cdot \sqrt[3]{\cos \left(\frac{2}{3} \cdot \pi\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{2}{3} \cdot \pi\right)}\right) \cdot \cos \left(\left(\sqrt{\frac{1}{\sqrt{3}}} \cdot \sqrt{\frac{1}{\sqrt{3}}}\right) \cdot \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{\sqrt{3}}\right) - \sin \left(\frac{2}{3} \cdot \pi\right) \cdot \sin \left(\left(\sqrt{\frac{1}{\sqrt{3}}} \cdot \sqrt{\frac{1}{\sqrt{3}}}\right) \cdot \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{\sqrt{3}}\right)\right) \cdot 2double f(double g, double h) {
double r8458026 = 2.0;
double r8458027 = atan2(1.0, 0.0);
double r8458028 = r8458026 * r8458027;
double r8458029 = 3.0;
double r8458030 = r8458028 / r8458029;
double r8458031 = g;
double r8458032 = -r8458031;
double r8458033 = h;
double r8458034 = r8458032 / r8458033;
double r8458035 = acos(r8458034);
double r8458036 = r8458035 / r8458029;
double r8458037 = r8458030 + r8458036;
double r8458038 = cos(r8458037);
double r8458039 = r8458026 * r8458038;
return r8458039;
}
double f(double g, double h) {
double r8458040 = 2.0;
double r8458041 = 3.0;
double r8458042 = r8458040 / r8458041;
double r8458043 = atan2(1.0, 0.0);
double r8458044 = r8458042 * r8458043;
double r8458045 = cos(r8458044);
double r8458046 = cbrt(r8458045);
double r8458047 = r8458046 * r8458046;
double r8458048 = r8458047 * r8458046;
double r8458049 = 1.0;
double r8458050 = sqrt(r8458041);
double r8458051 = r8458049 / r8458050;
double r8458052 = sqrt(r8458051);
double r8458053 = r8458052 * r8458052;
double r8458054 = g;
double r8458055 = -r8458054;
double r8458056 = h;
double r8458057 = r8458055 / r8458056;
double r8458058 = acos(r8458057);
double r8458059 = r8458058 / r8458050;
double r8458060 = r8458053 * r8458059;
double r8458061 = cos(r8458060);
double r8458062 = r8458048 * r8458061;
double r8458063 = sin(r8458044);
double r8458064 = sin(r8458060);
double r8458065 = r8458063 * r8458064;
double r8458066 = r8458062 - r8458065;
double r8458067 = r8458066 * r8458040;
return r8458067;
}



Bits error versus g



Bits error versus h
Results
Initial program 1.0
Simplified1.0
rmApplied add-sqr-sqrt1.0
Applied *-un-lft-identity1.0
Applied times-frac1.0
rmApplied add-sqr-sqrt1.0
rmApplied fma-udef1.0
Applied cos-sum0.0
rmApplied add-cube-cbrt0.0
Final simplification0.0
herbie shell --seed 2019174 +o rules:numerics
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
(* 2.0 (cos (+ (/ (* 2.0 PI) 3.0) (/ (acos (/ (- g) h)) 3.0)))))