2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)2 \cdot \left(\sin \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3} - \frac{\pi}{\frac{3}{2}}\right) \cdot \sin \left(\frac{\pi}{3}\right) + \cos \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3} - \frac{\pi}{\frac{3}{2}}\right) \cdot \frac{1}{2}\right)double f(double g, double h) {
double r27259460 = 2.0;
double r27259461 = atan2(1.0, 0.0);
double r27259462 = r27259460 * r27259461;
double r27259463 = 3.0;
double r27259464 = r27259462 / r27259463;
double r27259465 = g;
double r27259466 = -r27259465;
double r27259467 = h;
double r27259468 = r27259466 / r27259467;
double r27259469 = acos(r27259468);
double r27259470 = r27259469 / r27259463;
double r27259471 = r27259464 + r27259470;
double r27259472 = cos(r27259471);
double r27259473 = r27259460 * r27259472;
return r27259473;
}
double f(double g, double h) {
double r27259474 = 2.0;
double r27259475 = g;
double r27259476 = h;
double r27259477 = r27259475 / r27259476;
double r27259478 = acos(r27259477);
double r27259479 = 3.0;
double r27259480 = r27259478 / r27259479;
double r27259481 = atan2(1.0, 0.0);
double r27259482 = 1.5;
double r27259483 = r27259481 / r27259482;
double r27259484 = r27259480 - r27259483;
double r27259485 = sin(r27259484);
double r27259486 = r27259481 / r27259479;
double r27259487 = sin(r27259486);
double r27259488 = r27259485 * r27259487;
double r27259489 = cos(r27259484);
double r27259490 = 0.5;
double r27259491 = r27259489 * r27259490;
double r27259492 = r27259488 + r27259491;
double r27259493 = r27259474 * r27259492;
return r27259493;
}



Bits error versus g



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