2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\left(\cos \left(\pi \cdot \frac{2}{3}\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(\pi \cdot \frac{2}{3}\right)} \cdot \sqrt{\sin \left(\pi \cdot \frac{2}{3}\right)}\right)\right) \cdot 2double f(double g, double h) {
double r7140877 = 2.0;
double r7140878 = atan2(1.0, 0.0);
double r7140879 = r7140877 * r7140878;
double r7140880 = 3.0;
double r7140881 = r7140879 / r7140880;
double r7140882 = g;
double r7140883 = -r7140882;
double r7140884 = h;
double r7140885 = r7140883 / r7140884;
double r7140886 = acos(r7140885);
double r7140887 = r7140886 / r7140880;
double r7140888 = r7140881 + r7140887;
double r7140889 = cos(r7140888);
double r7140890 = r7140877 * r7140889;
return r7140890;
}
double f(double g, double h) {
double r7140891 = atan2(1.0, 0.0);
double r7140892 = 0.6666666666666666;
double r7140893 = r7140891 * r7140892;
double r7140894 = cos(r7140893);
double r7140895 = g;
double r7140896 = h;
double r7140897 = r7140895 / r7140896;
double r7140898 = -r7140897;
double r7140899 = acos(r7140898);
double r7140900 = 3.0;
double r7140901 = sqrt(r7140900);
double r7140902 = r7140899 / r7140901;
double r7140903 = r7140902 / r7140901;
double r7140904 = cos(r7140903);
double r7140905 = r7140894 * r7140904;
double r7140906 = sin(r7140903);
double r7140907 = sin(r7140893);
double r7140908 = sqrt(r7140907);
double r7140909 = r7140908 * r7140908;
double r7140910 = r7140906 * r7140909;
double r7140911 = r7140905 - r7140910;
double r7140912 = 2.0;
double r7140913 = r7140911 * r7140912;
return r7140913;
}



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 2019165 +o rules:numerics
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))