Average Error: 35.2 → 31.6
Time: 1.1m
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}{a \cdot 2}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}} + \sqrt[3]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}} \cdot \sqrt[3]{\frac{1}{a \cdot 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)}
\sqrt[3]{\frac{1}{a \cdot 2}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}} + \sqrt[3]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}} \cdot \sqrt[3]{\frac{1}{a \cdot 2}}
double f(double g, double h, double a) {
        double r26420200 = 1.0;
        double r26420201 = 2.0;
        double r26420202 = a;
        double r26420203 = r26420201 * r26420202;
        double r26420204 = r26420200 / r26420203;
        double r26420205 = g;
        double r26420206 = -r26420205;
        double r26420207 = r26420205 * r26420205;
        double r26420208 = h;
        double r26420209 = r26420208 * r26420208;
        double r26420210 = r26420207 - r26420209;
        double r26420211 = sqrt(r26420210);
        double r26420212 = r26420206 + r26420211;
        double r26420213 = r26420204 * r26420212;
        double r26420214 = cbrt(r26420213);
        double r26420215 = r26420206 - r26420211;
        double r26420216 = r26420204 * r26420215;
        double r26420217 = cbrt(r26420216);
        double r26420218 = r26420214 + r26420217;
        return r26420218;
}

double f(double g, double h, double a) {
        double r26420219 = 1.0;
        double r26420220 = a;
        double r26420221 = 2.0;
        double r26420222 = r26420220 * r26420221;
        double r26420223 = r26420219 / r26420222;
        double r26420224 = cbrt(r26420223);
        double r26420225 = g;
        double r26420226 = -r26420225;
        double r26420227 = r26420225 * r26420225;
        double r26420228 = h;
        double r26420229 = r26420228 * r26420228;
        double r26420230 = r26420227 - r26420229;
        double r26420231 = sqrt(r26420230);
        double r26420232 = r26420226 - r26420231;
        double r26420233 = cbrt(r26420232);
        double r26420234 = r26420224 * r26420233;
        double r26420235 = r26420226 + r26420231;
        double r26420236 = cbrt(r26420235);
        double r26420237 = r26420236 * r26420224;
        double r26420238 = r26420234 + r26420237;
        return r26420238;
}

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 35.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-prod33.3

    \[\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-prod31.6

    \[\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 simplification31.6

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

Reproduce

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