\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)}\begin{array}{l}
\mathbf{if}\;g \le -8.764066339061834934650093734982364279507 \cdot 10^{-157}:\\
\;\;\;\;\sqrt[3]{\left(-g\right) + \sqrt{\sqrt{g \cdot g - h \cdot h}} \cdot \sqrt{\sqrt{g \cdot g - h \cdot h}}} \cdot \sqrt[3]{\frac{1}{2 \cdot a}} + \frac{\sqrt[3]{\left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right) \cdot 1}}{\sqrt[3]{2 \cdot a}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{1 \cdot \left(\left(-g\right) - g\right)}}{\sqrt[3]{2 \cdot a}} + \sqrt[3]{\left(\sqrt{g \cdot g - h \cdot h} + \left(-g\right)\right) \cdot \frac{1}{2 \cdot a}}\\
\end{array}double f(double g, double h, double a) {
double r6749175 = 1.0;
double r6749176 = 2.0;
double r6749177 = a;
double r6749178 = r6749176 * r6749177;
double r6749179 = r6749175 / r6749178;
double r6749180 = g;
double r6749181 = -r6749180;
double r6749182 = r6749180 * r6749180;
double r6749183 = h;
double r6749184 = r6749183 * r6749183;
double r6749185 = r6749182 - r6749184;
double r6749186 = sqrt(r6749185);
double r6749187 = r6749181 + r6749186;
double r6749188 = r6749179 * r6749187;
double r6749189 = cbrt(r6749188);
double r6749190 = r6749181 - r6749186;
double r6749191 = r6749179 * r6749190;
double r6749192 = cbrt(r6749191);
double r6749193 = r6749189 + r6749192;
return r6749193;
}
double f(double g, double h, double a) {
double r6749194 = g;
double r6749195 = -8.764066339061835e-157;
bool r6749196 = r6749194 <= r6749195;
double r6749197 = -r6749194;
double r6749198 = r6749194 * r6749194;
double r6749199 = h;
double r6749200 = r6749199 * r6749199;
double r6749201 = r6749198 - r6749200;
double r6749202 = sqrt(r6749201);
double r6749203 = sqrt(r6749202);
double r6749204 = r6749203 * r6749203;
double r6749205 = r6749197 + r6749204;
double r6749206 = cbrt(r6749205);
double r6749207 = 1.0;
double r6749208 = 2.0;
double r6749209 = a;
double r6749210 = r6749208 * r6749209;
double r6749211 = r6749207 / r6749210;
double r6749212 = cbrt(r6749211);
double r6749213 = r6749206 * r6749212;
double r6749214 = r6749197 - r6749202;
double r6749215 = r6749214 * r6749207;
double r6749216 = cbrt(r6749215);
double r6749217 = cbrt(r6749210);
double r6749218 = r6749216 / r6749217;
double r6749219 = r6749213 + r6749218;
double r6749220 = r6749197 - r6749194;
double r6749221 = r6749207 * r6749220;
double r6749222 = cbrt(r6749221);
double r6749223 = r6749222 / r6749217;
double r6749224 = r6749202 + r6749197;
double r6749225 = r6749224 * r6749211;
double r6749226 = cbrt(r6749225);
double r6749227 = r6749223 + r6749226;
double r6749228 = r6749196 ? r6749219 : r6749227;
return r6749228;
}



Bits error versus g



Bits error versus h



Bits error versus a
Results
if g < -8.764066339061835e-157Initial program 35.5
rmApplied associate-*l/35.5
Applied cbrt-div35.5
rmApplied cbrt-prod32.1
rmApplied add-sqr-sqrt32.1
Applied sqrt-prod32.1
if -8.764066339061835e-157 < g Initial program 37.3
rmApplied associate-*l/37.3
Applied cbrt-div33.3
Taylor expanded around inf 31.9
Final simplification32.0
herbie shell --seed 2019169
(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))))))))