c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\begin{array}{l}
\mathbf{if}\;V \cdot \ell = -\infty:\\
\;\;\;\;\sqrt{\frac{\frac{A}{V}}{\ell}} \cdot c0\\
\mathbf{elif}\;V \cdot \ell \le -3.040558777379324109381380700041437977209 \cdot 10^{-218}:\\
\;\;\;\;\sqrt{\frac{1}{V \cdot \ell} \cdot A} \cdot c0\\
\mathbf{elif}\;V \cdot \ell \le 7.375757807070217284048742538091816401626 \cdot 10^{-319}:\\
\;\;\;\;\left(\sqrt{\frac{A}{\ell}} \cdot \sqrt{\frac{1}{V}}\right) \cdot c0\\
\mathbf{elif}\;V \cdot \ell \le 2.336051817442314793904355180504260870482 \cdot 10^{285}:\\
\;\;\;\;\frac{c0 \cdot \sqrt{A}}{\sqrt{V \cdot \ell}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{\frac{A}{V}}{\ell}} \cdot c0\\
\end{array}double f(double c0, double A, double V, double l) {
double r5927668 = c0;
double r5927669 = A;
double r5927670 = V;
double r5927671 = l;
double r5927672 = r5927670 * r5927671;
double r5927673 = r5927669 / r5927672;
double r5927674 = sqrt(r5927673);
double r5927675 = r5927668 * r5927674;
return r5927675;
}
double f(double c0, double A, double V, double l) {
double r5927676 = V;
double r5927677 = l;
double r5927678 = r5927676 * r5927677;
double r5927679 = -inf.0;
bool r5927680 = r5927678 <= r5927679;
double r5927681 = A;
double r5927682 = r5927681 / r5927676;
double r5927683 = r5927682 / r5927677;
double r5927684 = sqrt(r5927683);
double r5927685 = c0;
double r5927686 = r5927684 * r5927685;
double r5927687 = -3.040558777379324e-218;
bool r5927688 = r5927678 <= r5927687;
double r5927689 = 1.0;
double r5927690 = r5927689 / r5927678;
double r5927691 = r5927690 * r5927681;
double r5927692 = sqrt(r5927691);
double r5927693 = r5927692 * r5927685;
double r5927694 = 7.3757578070702e-319;
bool r5927695 = r5927678 <= r5927694;
double r5927696 = r5927681 / r5927677;
double r5927697 = sqrt(r5927696);
double r5927698 = r5927689 / r5927676;
double r5927699 = sqrt(r5927698);
double r5927700 = r5927697 * r5927699;
double r5927701 = r5927700 * r5927685;
double r5927702 = 2.3360518174423148e+285;
bool r5927703 = r5927678 <= r5927702;
double r5927704 = sqrt(r5927681);
double r5927705 = r5927685 * r5927704;
double r5927706 = sqrt(r5927678);
double r5927707 = r5927705 / r5927706;
double r5927708 = r5927703 ? r5927707 : r5927686;
double r5927709 = r5927695 ? r5927701 : r5927708;
double r5927710 = r5927688 ? r5927693 : r5927709;
double r5927711 = r5927680 ? r5927686 : r5927710;
return r5927711;
}



Bits error versus c0



Bits error versus A



Bits error versus V



Bits error versus l
Results
if (* V l) < -inf.0 or 2.3360518174423148e+285 < (* V l) Initial program 40.2
rmApplied associate-/r*22.5
if -inf.0 < (* V l) < -3.040558777379324e-218Initial program 8.7
rmApplied div-inv8.7
if -3.040558777379324e-218 < (* V l) < 7.3757578070702e-319Initial program 50.4
rmApplied *-un-lft-identity50.4
Applied times-frac31.9
Applied sqrt-prod39.3
if 7.3757578070702e-319 < (* V l) < 2.3360518174423148e+285Initial program 9.9
rmApplied sqrt-div0.5
Applied associate-*r/3.0
Final simplification12.3
herbie shell --seed 2019171 +o rules:numerics
(FPCore (c0 A V l)
:name "Henrywood and Agarwal, Equation (3)"
(* c0 (sqrt (/ A (* V l)))))