Average Error: 36.0 → 32.1
Time: 28.4s
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 r6586124 = 1.0;
        double r6586125 = 2.0;
        double r6586126 = a;
        double r6586127 = r6586125 * r6586126;
        double r6586128 = r6586124 / r6586127;
        double r6586129 = g;
        double r6586130 = -r6586129;
        double r6586131 = r6586129 * r6586129;
        double r6586132 = h;
        double r6586133 = r6586132 * r6586132;
        double r6586134 = r6586131 - r6586133;
        double r6586135 = sqrt(r6586134);
        double r6586136 = r6586130 + r6586135;
        double r6586137 = r6586128 * r6586136;
        double r6586138 = cbrt(r6586137);
        double r6586139 = r6586130 - r6586135;
        double r6586140 = r6586128 * r6586139;
        double r6586141 = cbrt(r6586140);
        double r6586142 = r6586138 + r6586141;
        return r6586142;
}

double f(double g, double h, double a) {
        double r6586143 = 1.0;
        double r6586144 = a;
        double r6586145 = 2.0;
        double r6586146 = r6586144 * r6586145;
        double r6586147 = r6586143 / r6586146;
        double r6586148 = cbrt(r6586147);
        double r6586149 = g;
        double r6586150 = -r6586149;
        double r6586151 = r6586149 * r6586149;
        double r6586152 = h;
        double r6586153 = r6586152 * r6586152;
        double r6586154 = r6586151 - r6586153;
        double r6586155 = sqrt(r6586154);
        double r6586156 = r6586150 - r6586155;
        double r6586157 = cbrt(r6586156);
        double r6586158 = r6586148 * r6586157;
        double r6586159 = r6586150 + r6586155;
        double r6586160 = cbrt(r6586159);
        double r6586161 = r6586160 * r6586148;
        double r6586162 = r6586158 + r6586161;
        return r6586162;
}

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

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

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

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

    \[\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 2019174 +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))))))))