2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)2 \cdot \left(\cos \left(\frac{2}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \frac{\pi}{\sqrt[3]{3}}\right) \cdot \cos \left(\frac{\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{\sqrt{3}}}{\sqrt{3}}\right) - \sin \left(\frac{2}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \frac{\pi}{\sqrt[3]{3}}\right) \cdot \sin \left(\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)double f(double g, double h) {
double r132008 = 2.0;
double r132009 = atan2(1.0, 0.0);
double r132010 = r132008 * r132009;
double r132011 = 3.0;
double r132012 = r132010 / r132011;
double r132013 = g;
double r132014 = -r132013;
double r132015 = h;
double r132016 = r132014 / r132015;
double r132017 = acos(r132016);
double r132018 = r132017 / r132011;
double r132019 = r132012 + r132018;
double r132020 = cos(r132019);
double r132021 = r132008 * r132020;
return r132021;
}
double f(double g, double h) {
double r132022 = 2.0;
double r132023 = 3.0;
double r132024 = cbrt(r132023);
double r132025 = r132024 * r132024;
double r132026 = r132022 / r132025;
double r132027 = atan2(1.0, 0.0);
double r132028 = r132027 / r132024;
double r132029 = r132026 * r132028;
double r132030 = cos(r132029);
double r132031 = g;
double r132032 = -r132031;
double r132033 = h;
double r132034 = r132032 / r132033;
double r132035 = acos(r132034);
double r132036 = sqrt(r132023);
double r132037 = r132035 / r132036;
double r132038 = r132037 / r132036;
double r132039 = cos(r132038);
double r132040 = r132030 * r132039;
double r132041 = sin(r132029);
double r132042 = r132035 / r132023;
double r132043 = sin(r132042);
double r132044 = r132041 * r132043;
double r132045 = r132040 - r132044;
double r132046 = r132022 * r132045;
return r132046;
}



Bits error versus g



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