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



Bits error versus g



Bits error versus h



Bits error versus a
Results
Initial program 35.2
rmApplied cbrt-prod33.3
rmApplied cbrt-prod31.6
Final simplification31.6
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))))))))