2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\left(\cos \left(\frac{2}{3} \cdot \pi\right) \cdot \cos \left(\frac{\frac{\cos^{-1} \left(-\frac{g}{h}\right)}{\sqrt{3}}}{\sqrt{3}}\right) - \sin \left(\frac{\frac{\cos^{-1} \left(-\frac{g}{h}\right)}{\sqrt{3}}}{\sqrt{3}}\right) \cdot \left(\sqrt{\sin \left(\frac{2}{3} \cdot \pi\right)} \cdot \sqrt{\sin \left(\frac{2}{3} \cdot \pi\right)}\right)\right) \cdot 2double f(double g, double h) {
double r5500826 = 2.0;
double r5500827 = atan2(1.0, 0.0);
double r5500828 = r5500826 * r5500827;
double r5500829 = 3.0;
double r5500830 = r5500828 / r5500829;
double r5500831 = g;
double r5500832 = -r5500831;
double r5500833 = h;
double r5500834 = r5500832 / r5500833;
double r5500835 = acos(r5500834);
double r5500836 = r5500835 / r5500829;
double r5500837 = r5500830 + r5500836;
double r5500838 = cos(r5500837);
double r5500839 = r5500826 * r5500838;
return r5500839;
}
double f(double g, double h) {
double r5500840 = 0.6666666666666666;
double r5500841 = atan2(1.0, 0.0);
double r5500842 = r5500840 * r5500841;
double r5500843 = cos(r5500842);
double r5500844 = g;
double r5500845 = h;
double r5500846 = r5500844 / r5500845;
double r5500847 = -r5500846;
double r5500848 = acos(r5500847);
double r5500849 = 3.0;
double r5500850 = sqrt(r5500849);
double r5500851 = r5500848 / r5500850;
double r5500852 = r5500851 / r5500850;
double r5500853 = cos(r5500852);
double r5500854 = r5500843 * r5500853;
double r5500855 = sin(r5500852);
double r5500856 = sin(r5500842);
double r5500857 = sqrt(r5500856);
double r5500858 = r5500857 * r5500857;
double r5500859 = r5500855 * r5500858;
double r5500860 = r5500854 - r5500859;
double r5500861 = 2.0;
double r5500862 = r5500860 * r5500861;
return r5500862;
}



Bits error versus g



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