Average Error: 36.2 → 32.3
Time: 25.2s
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]{\sqrt{g \cdot g - h \cdot h} - g} + \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]{\sqrt{g \cdot g - h \cdot h} - g} + \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 r109544 = 1.0;
        double r109545 = 2.0;
        double r109546 = a;
        double r109547 = r109545 * r109546;
        double r109548 = r109544 / r109547;
        double r109549 = g;
        double r109550 = -r109549;
        double r109551 = r109549 * r109549;
        double r109552 = h;
        double r109553 = r109552 * r109552;
        double r109554 = r109551 - r109553;
        double r109555 = sqrt(r109554);
        double r109556 = r109550 + r109555;
        double r109557 = r109548 * r109556;
        double r109558 = cbrt(r109557);
        double r109559 = r109550 - r109555;
        double r109560 = r109548 * r109559;
        double r109561 = cbrt(r109560);
        double r109562 = r109558 + r109561;
        return r109562;
}

double f(double g, double h, double a) {
        double r109563 = 1.0;
        double r109564 = 2.0;
        double r109565 = a;
        double r109566 = r109564 * r109565;
        double r109567 = r109563 / r109566;
        double r109568 = cbrt(r109567);
        double r109569 = g;
        double r109570 = r109569 * r109569;
        double r109571 = h;
        double r109572 = r109571 * r109571;
        double r109573 = r109570 - r109572;
        double r109574 = sqrt(r109573);
        double r109575 = r109574 - r109569;
        double r109576 = cbrt(r109575);
        double r109577 = r109568 * r109576;
        double r109578 = -r109569;
        double r109579 = r109578 - r109574;
        double r109580 = cbrt(r109579);
        double r109581 = r109568 * r109580;
        double r109582 = r109577 + r109581;
        return r109582;
}

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.2

    \[\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.1

    \[\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. Simplified34.1

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

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

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

Reproduce

herbie shell --seed 2019195 +o rules:numerics
(FPCore (g h a)
  :name "2-ancestry mixing, positive discriminant"
  (+ (cbrt (* (/ 1.0 (* 2.0 a)) (+ (- g) (sqrt (- (* g g) (* h h)))))) (cbrt (* (/ 1.0 (* 2.0 a)) (- (- g) (sqrt (- (* g g) (* h h))))))))