\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;
}



Bits error versus g



Bits error versus h



Bits error versus a
Results
Initial program 36.0
rmApplied cbrt-prod34.0
rmApplied cbrt-prod32.1
Final simplification32.1
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))))))))