Average Error: 1.0 → 0.1
Time: 4.0s
Precision: 64
\[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)\]
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 r123405 = 2.0;
        double r123406 = atan2(1.0, 0.0);
        double r123407 = r123405 * r123406;
        double r123408 = 3.0;
        double r123409 = r123407 / r123408;
        double r123410 = g;
        double r123411 = -r123410;
        double r123412 = h;
        double r123413 = r123411 / r123412;
        double r123414 = acos(r123413);
        double r123415 = r123414 / r123408;
        double r123416 = r123409 + r123415;
        double r123417 = cos(r123416);
        double r123418 = r123405 * r123417;
        return r123418;
}

double f(double g, double h) {
        double r123419 = 2.0;
        double r123420 = atan2(1.0, 0.0);
        double r123421 = r123419 * r123420;
        double r123422 = 3.0;
        double r123423 = r123421 / r123422;
        double r123424 = r123420 / r123422;
        double r123425 = r123423 + r123424;
        double r123426 = cos(r123425);
        double r123427 = g;
        double r123428 = h;
        double r123429 = r123427 / r123428;
        double r123430 = acos(r123429);
        double r123431 = r123430 / r123422;
        double r123432 = cos(r123431);
        double r123433 = r123426 * r123432;
        double r123434 = sin(r123425);
        double r123435 = sin(r123431);
        double r123436 = r123434 * r123435;
        double r123437 = r123433 + r123436;
        double r123438 = r123419 * r123437;
        return r123438;
}

Error

Bits error versus g

Bits error versus h

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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. Using strategy rm
  3. Applied distribute-frac-neg1.0

    \[\leadsto 2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \color{blue}{\left(-\frac{g}{h}\right)}}{3}\right)\]
  4. Applied acos-neg1.0

    \[\leadsto 2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\color{blue}{\pi - \cos^{-1} \left(\frac{g}{h}\right)}}{3}\right)\]
  5. Applied div-sub1.0

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

    \[\leadsto 2 \cdot \cos \color{blue}{\left(\left(\frac{2 \cdot \pi}{3} + \frac{\pi}{3}\right) - \frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right)}\]
  7. Applied cos-diff0.1

    \[\leadsto 2 \cdot \color{blue}{\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)}\]
  8. Final simplification0.1

    \[\leadsto 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)\]

Reproduce

herbie shell --seed 2019353 
(FPCore (g h)
  :name "2-ancestry mixing, negative discriminant"
  :precision binary64
  (* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))