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{\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{\sqrt{3}}}{\sqrt{3}}\right) \cdot \cos \left(\frac{2}{3} \cdot \pi\right) - \sin \left(\frac{\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{\sqrt{3}}}{\sqrt{3}}\right) \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\sin \left(\frac{2}{3} \cdot \pi\right)\right)\right)\right)double f(double g, double h) {
double r88693 = 2.0;
double r88694 = atan2(1.0, 0.0);
double r88695 = r88693 * r88694;
double r88696 = 3.0;
double r88697 = r88695 / r88696;
double r88698 = g;
double r88699 = -r88698;
double r88700 = h;
double r88701 = r88699 / r88700;
double r88702 = acos(r88701);
double r88703 = r88702 / r88696;
double r88704 = r88697 + r88703;
double r88705 = cos(r88704);
double r88706 = r88693 * r88705;
return r88706;
}
double f(double g, double h) {
double r88707 = 2.0;
double r88708 = g;
double r88709 = -r88708;
double r88710 = h;
double r88711 = r88709 / r88710;
double r88712 = acos(r88711);
double r88713 = 3.0;
double r88714 = sqrt(r88713);
double r88715 = r88712 / r88714;
double r88716 = r88715 / r88714;
double r88717 = cos(r88716);
double r88718 = r88707 / r88713;
double r88719 = atan2(1.0, 0.0);
double r88720 = r88718 * r88719;
double r88721 = cos(r88720);
double r88722 = r88717 * r88721;
double r88723 = sin(r88716);
double r88724 = sin(r88720);
double r88725 = expm1(r88724);
double r88726 = log1p(r88725);
double r88727 = r88723 * r88726;
double r88728 = r88722 - r88727;
double r88729 = r88707 * r88728;
return r88729;
}



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 fma-udef1.0
Applied cos-sum1.0
Simplified1.0
Simplified1.0
rmApplied log1p-expm1-u0.0
Final simplification0.0
herbie shell --seed 2019305 +o rules:numerics
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
:precision binary64
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))