c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\begin{array}{l}
\mathbf{if}\;V \cdot \ell \leq -5.1348332136836345 \cdot 10^{+293}:\\
\;\;\;\;\left(\sqrt{\sqrt[3]{A} \cdot \frac{\sqrt[3]{A}}{V}} \cdot c0\right) \cdot \sqrt{\frac{\sqrt[3]{A}}{\ell}}\\
\mathbf{elif}\;V \cdot \ell \leq -5.72665889875855 \cdot 10^{-186}:\\
\;\;\;\;c0 \cdot \sqrt{A \cdot \frac{1}{V \cdot \ell}}\\
\mathbf{elif}\;V \cdot \ell \leq -0:\\
\;\;\;\;\left(c0 \cdot \sqrt{\frac{1}{V}}\right) \cdot \sqrt{\frac{1}{\frac{\ell}{A}}}\\
\mathbf{elif}\;V \cdot \ell \leq 6.635835769926885 \cdot 10^{+294}:\\
\;\;\;\;\frac{c0}{\frac{\sqrt{V \cdot \ell}}{\sqrt{A}}}\\
\mathbf{else}:\\
\;\;\;\;c0 \cdot {\left(V \cdot \frac{\ell}{A}\right)}^{-0.5}\\
\end{array}(FPCore (c0 A V l) :precision binary64 (* c0 (sqrt (/ A (* V l)))))
(FPCore (c0 A V l)
:precision binary64
(if (<= (* V l) -5.1348332136836345e+293)
(* (* (sqrt (* (cbrt A) (/ (cbrt A) V))) c0) (sqrt (/ (cbrt A) l)))
(if (<= (* V l) -5.72665889875855e-186)
(* c0 (sqrt (* A (/ 1.0 (* V l)))))
(if (<= (* V l) -0.0)
(* (* c0 (sqrt (/ 1.0 V))) (sqrt (/ 1.0 (/ l A))))
(if (<= (* V l) 6.635835769926885e+294)
(/ c0 (/ (sqrt (* V l)) (sqrt A)))
(* c0 (pow (* V (/ l A)) -0.5)))))))double code(double c0, double A, double V, double l) {
return ((double) (c0 * ((double) sqrt((A / ((double) (V * l)))))));
}
double code(double c0, double A, double V, double l) {
double tmp;
if ((((double) (V * l)) <= -5.1348332136836345e+293)) {
tmp = ((double) (((double) (((double) sqrt(((double) (((double) cbrt(A)) * (((double) cbrt(A)) / V))))) * c0)) * ((double) sqrt((((double) cbrt(A)) / l)))));
} else {
double tmp_1;
if ((((double) (V * l)) <= -5.72665889875855e-186)) {
tmp_1 = ((double) (c0 * ((double) sqrt(((double) (A * (1.0 / ((double) (V * l)))))))));
} else {
double tmp_2;
if ((((double) (V * l)) <= -0.0)) {
tmp_2 = ((double) (((double) (c0 * ((double) sqrt((1.0 / V))))) * ((double) sqrt((1.0 / (l / A))))));
} else {
double tmp_3;
if ((((double) (V * l)) <= 6.635835769926885e+294)) {
tmp_3 = (c0 / (((double) sqrt(((double) (V * l)))) / ((double) sqrt(A))));
} else {
tmp_3 = ((double) (c0 * ((double) pow(((double) (V * (l / A))), -0.5))));
}
tmp_2 = tmp_3;
}
tmp_1 = tmp_2;
}
tmp = tmp_1;
}
return tmp;
}



Bits error versus c0



Bits error versus A



Bits error versus V



Bits error versus l
Results
if (* V l) < -5.1348332136836345e293Initial program Error: 40.2 bits
rmApplied add-cube-cbrtError: 40.2 bits
Applied times-fracError: 24.4 bits
Applied sqrt-prodError: 36.5 bits
Applied associate-*r*Error: 36.8 bits
SimplifiedError: 36.8 bits
if -5.1348332136836345e293 < (* V l) < -5.72665889875855e-186Initial program Error: 8.4 bits
rmApplied div-invError: 8.4 bits
if -5.72665889875855e-186 < (* V l) < -0.0Initial program Error: 48.3 bits
rmApplied clear-numError: 48.3 bits
SimplifiedError: 33.4 bits
rmApplied *-un-lft-identityError: 33.4 bits
Applied times-fracError: 33.6 bits
Applied sqrt-prodError: 39.7 bits
Applied associate-*r*Error: 40.3 bits
SimplifiedError: 40.3 bits
if -0.0 < (* V l) < 6.6358357699268845e294Initial program Error: 9.9 bits
rmApplied clear-numError: 10.3 bits
SimplifiedError: 16.4 bits
rmApplied sqrt-divError: 16.2 bits
Applied associate-*r/Error: 16.1 bits
SimplifiedError: 16.1 bits
rmApplied associate-*r/Error: 9.8 bits
Applied sqrt-divError: 0.8 bits
if 6.6358357699268845e294 < (* V l) Initial program Error: 41.9 bits
rmApplied clear-numError: 42.0 bits
SimplifiedError: 23.2 bits
rmApplied inv-powError: 23.2 bits
Applied sqrt-pow1Error: 23.2 bits
SimplifiedError: 23.2 bits
Final simplificationError: 13.0 bits
herbie shell --seed 2020204
(FPCore (c0 A V l)
:name "Henrywood and Agarwal, Equation (3)"
:precision binary64
(* c0 (sqrt (/ A (* V l)))))