c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\begin{array}{l}
\mathbf{if}\;V \cdot \ell = -\infty:\\
\;\;\;\;\frac{c0}{\sqrt{V \cdot \frac{\ell}{A}}}\\
\mathbf{elif}\;V \cdot \ell \le -3.8298761382279537 \cdot 10^{-292}:\\
\;\;\;\;\frac{c0}{\frac{\sqrt{V \cdot \left(-\ell\right)}}{\sqrt{-A}}}\\
\mathbf{elif}\;V \cdot \ell \le 1.56552358 \cdot 10^{-317}:\\
\;\;\;\;c0 \cdot \frac{\sqrt{\frac{A}{V}}}{\sqrt{\ell}}\\
\mathbf{else}:\\
\;\;\;\;c0 \cdot \left(\sqrt{A} \cdot \sqrt{\frac{1}{V \cdot \ell}}\right)\\
\end{array}double code(double c0, double A, double V, double l) {
return (c0 * sqrt((A / (V * l))));
}
double code(double c0, double A, double V, double l) {
double VAR;
if (((V * l) <= -inf.0)) {
VAR = (c0 / sqrt((V * (l / A))));
} else {
double VAR_1;
if (((V * l) <= -3.8298761382279537e-292)) {
VAR_1 = (c0 / (sqrt((V * -l)) / sqrt(-A)));
} else {
double VAR_2;
if (((V * l) <= 1.5655235790231e-317)) {
VAR_2 = (c0 * (sqrt((A / V)) / sqrt(l)));
} else {
VAR_2 = (c0 * (sqrt(A) * sqrt((1.0 / (V * l)))));
}
VAR_1 = VAR_2;
}
VAR = VAR_1;
}
return VAR;
}



Bits error versus c0



Bits error versus A



Bits error versus V



Bits error versus l
Results
if (* V l) < -inf.0Initial program 40.5
rmApplied *-commutative40.5
Applied associate-/r*23.3
rmApplied clear-num23.3
Applied associate-/l/24.1
Applied sqrt-div24.1
Applied associate-*r/24.1
Simplified24.1
if -inf.0 < (* V l) < -3.8298761382279537e-292Initial program 9.4
rmApplied *-commutative9.4
Applied associate-/r*16.0
rmApplied clear-num16.3
Applied associate-/l/16.4
Applied sqrt-div16.2
Applied associate-*r/16.1
Simplified16.1
rmApplied frac-2neg16.1
Applied associate-*r/9.4
Applied sqrt-div0.4
if -3.8298761382279537e-292 < (* V l) < 1.5655235790231e-317Initial program 59.9
rmApplied associate-/r*38.0
Applied sqrt-div40.4
if 1.5655235790231e-317 < (* V l) Initial program 15.1
rmApplied div-inv15.3
Applied sqrt-prod7.0
Final simplification8.8
herbie shell --seed 2020078 +o rules:numerics
(FPCore (c0 A V l)
:name "Henrywood and Agarwal, Equation (3)"
:precision binary64
(* c0 (sqrt (/ A (* V l)))))