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 \cdot \pi}{3} + \frac{\pi}{3}\right) \cdot \cos \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right) + \sin \left(\frac{2 \cdot \pi}{3} + \frac{\pi}{3}\right) \cdot \sin \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right)\right)double f(double g, double h) {
double r69003 = 2.0;
double r69004 = atan2(1.0, 0.0);
double r69005 = r69003 * r69004;
double r69006 = 3.0;
double r69007 = r69005 / r69006;
double r69008 = g;
double r69009 = -r69008;
double r69010 = h;
double r69011 = r69009 / r69010;
double r69012 = acos(r69011);
double r69013 = r69012 / r69006;
double r69014 = r69007 + r69013;
double r69015 = cos(r69014);
double r69016 = r69003 * r69015;
return r69016;
}
double f(double g, double h) {
double r69017 = 2.0;
double r69018 = atan2(1.0, 0.0);
double r69019 = r69017 * r69018;
double r69020 = 3.0;
double r69021 = r69019 / r69020;
double r69022 = r69018 / r69020;
double r69023 = r69021 + r69022;
double r69024 = cos(r69023);
double r69025 = g;
double r69026 = h;
double r69027 = r69025 / r69026;
double r69028 = acos(r69027);
double r69029 = r69028 / r69020;
double r69030 = cos(r69029);
double r69031 = r69024 * r69030;
double r69032 = sin(r69023);
double r69033 = sin(r69029);
double r69034 = r69032 * r69033;
double r69035 = r69031 + r69034;
double r69036 = r69017 * r69035;
return r69036;
}



Bits error versus g



Bits error versus h
Results
Initial program 1.0
rmApplied distribute-frac-neg1.0
Applied acos-neg1.0
Applied div-sub1.0
Applied associate-+r-1.0
Applied cos-diff0.0
Final simplification0.0
herbie shell --seed 2019325
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
:precision binary64
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))