Average Error: 36.4 → 32.5
Time: 8.6s
Precision: 64
\[\sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) + \sqrt{g \cdot g - h \cdot h}\right)} + \sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}\]
\[\sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}} + \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}\]
\sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) + \sqrt{g \cdot g - h \cdot h}\right)} + \sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}
\sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}} + \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}
double f(double g, double h, double a) {
        double r161491 = 1.0;
        double r161492 = 2.0;
        double r161493 = a;
        double r161494 = r161492 * r161493;
        double r161495 = r161491 / r161494;
        double r161496 = g;
        double r161497 = -r161496;
        double r161498 = r161496 * r161496;
        double r161499 = h;
        double r161500 = r161499 * r161499;
        double r161501 = r161498 - r161500;
        double r161502 = sqrt(r161501);
        double r161503 = r161497 + r161502;
        double r161504 = r161495 * r161503;
        double r161505 = cbrt(r161504);
        double r161506 = r161497 - r161502;
        double r161507 = r161495 * r161506;
        double r161508 = cbrt(r161507);
        double r161509 = r161505 + r161508;
        return r161509;
}

double f(double g, double h, double a) {
        double r161510 = 1.0;
        double r161511 = 2.0;
        double r161512 = a;
        double r161513 = r161511 * r161512;
        double r161514 = r161510 / r161513;
        double r161515 = cbrt(r161514);
        double r161516 = g;
        double r161517 = -r161516;
        double r161518 = r161516 * r161516;
        double r161519 = h;
        double r161520 = r161519 * r161519;
        double r161521 = r161518 - r161520;
        double r161522 = sqrt(r161521);
        double r161523 = r161517 + r161522;
        double r161524 = cbrt(r161523);
        double r161525 = r161515 * r161524;
        double r161526 = r161517 - r161522;
        double r161527 = cbrt(r161526);
        double r161528 = r161515 * r161527;
        double r161529 = r161525 + r161528;
        return r161529;
}

Error

Bits error versus g

Bits error versus h

Bits error versus a

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 36.4

    \[\sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) + \sqrt{g \cdot g - h \cdot h}\right)} + \sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}\]
  2. Using strategy rm
  3. Applied cbrt-prod34.2

    \[\leadsto \color{blue}{\sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}}} + \sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}\]
  4. Using strategy rm
  5. Applied cbrt-prod32.5

    \[\leadsto \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}} + \color{blue}{\sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}}\]
  6. Final simplification32.5

    \[\leadsto \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}} + \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}\]

Reproduce

herbie shell --seed 2019354 
(FPCore (g h a)
  :name "2-ancestry mixing, positive discriminant"
  :precision binary64
  (+ (cbrt (* (/ 1 (* 2 a)) (+ (- g) (sqrt (- (* g g) (* h h)))))) (cbrt (* (/ 1 (* 2 a)) (- (- g) (sqrt (- (* g g) (* h h))))))))