2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)2 \cdot \left(2 \cdot \log \left(\sqrt[3]{e^{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)}}\right) + \log \left(\sqrt[3]{e^{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)}}\right)\right)double f(double g, double h) {
double r198143 = 2.0;
double r198144 = atan2(1.0, 0.0);
double r198145 = r198143 * r198144;
double r198146 = 3.0;
double r198147 = r198145 / r198146;
double r198148 = g;
double r198149 = -r198148;
double r198150 = h;
double r198151 = r198149 / r198150;
double r198152 = acos(r198151);
double r198153 = r198152 / r198146;
double r198154 = r198147 + r198153;
double r198155 = cos(r198154);
double r198156 = r198143 * r198155;
return r198156;
}
double f(double g, double h) {
double r198157 = 2.0;
double r198158 = 2.0;
double r198159 = 3.0;
double r198160 = r198157 / r198159;
double r198161 = atan2(1.0, 0.0);
double r198162 = g;
double r198163 = -r198162;
double r198164 = h;
double r198165 = r198163 / r198164;
double r198166 = acos(r198165);
double r198167 = r198166 / r198159;
double r198168 = fma(r198160, r198161, r198167);
double r198169 = cos(r198168);
double r198170 = exp(r198169);
double r198171 = cbrt(r198170);
double r198172 = log(r198171);
double r198173 = r198158 * r198172;
double r198174 = r198173 + r198172;
double r198175 = r198157 * r198174;
return r198175;
}



Bits error versus g



Bits error versus h
Initial program 1.0
Simplified1.0
rmApplied add-log-exp1.0
rmApplied add-cube-cbrt0.1
Applied log-prod0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019323 +o rules:numerics
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
:precision binary64
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))