Average Error: 1.0 → 1.0
Time: 45.4s
Precision: 64
\[2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\]
\[2 \cdot \cos \left((\frac{2}{3} \cdot \pi + \left(\frac{\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{\sqrt{3}}}{\sqrt{3}}\right))_*\right)\]
2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)
2 \cdot \cos \left((\frac{2}{3} \cdot \pi + \left(\frac{\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{\sqrt{3}}}{\sqrt{3}}\right))_*\right)
double f(double g, double h) {
        double r19216534 = 2.0;
        double r19216535 = atan2(1.0, 0.0);
        double r19216536 = r19216534 * r19216535;
        double r19216537 = 3.0;
        double r19216538 = r19216536 / r19216537;
        double r19216539 = g;
        double r19216540 = -r19216539;
        double r19216541 = h;
        double r19216542 = r19216540 / r19216541;
        double r19216543 = acos(r19216542);
        double r19216544 = r19216543 / r19216537;
        double r19216545 = r19216538 + r19216544;
        double r19216546 = cos(r19216545);
        double r19216547 = r19216534 * r19216546;
        return r19216547;
}

double f(double g, double h) {
        double r19216548 = 2.0;
        double r19216549 = 0.6666666666666666;
        double r19216550 = atan2(1.0, 0.0);
        double r19216551 = g;
        double r19216552 = -r19216551;
        double r19216553 = h;
        double r19216554 = r19216552 / r19216553;
        double r19216555 = acos(r19216554);
        double r19216556 = 3.0;
        double r19216557 = sqrt(r19216556);
        double r19216558 = r19216555 / r19216557;
        double r19216559 = r19216558 / r19216557;
        double r19216560 = fma(r19216549, r19216550, r19216559);
        double r19216561 = cos(r19216560);
        double r19216562 = r19216548 * r19216561;
        return r19216562;
}

Error

Bits error versus g

Bits error versus h

Derivation

  1. Initial program 1.0

    \[2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\]
  2. Simplified1.0

    \[\leadsto \color{blue}{\cos \left((\frac{2}{3} \cdot \pi + \left(\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right))_*\right) \cdot 2}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt1.0

    \[\leadsto \cos \left((\frac{2}{3} \cdot \pi + \left(\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{\color{blue}{\sqrt{3} \cdot \sqrt{3}}}\right))_*\right) \cdot 2\]
  5. Applied associate-/r*1.0

    \[\leadsto \cos \left((\frac{2}{3} \cdot \pi + \color{blue}{\left(\frac{\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{\sqrt{3}}}{\sqrt{3}}\right)})_*\right) \cdot 2\]
  6. Final simplification1.0

    \[\leadsto 2 \cdot \cos \left((\frac{2}{3} \cdot \pi + \left(\frac{\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{\sqrt{3}}}{\sqrt{3}}\right))_*\right)\]

Reproduce

herbie shell --seed 2019112 +o rules:numerics
(FPCore (g h)
  :name "2-ancestry mixing, negative discriminant"
  (* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))