c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\begin{array}{l}
t_0 := \frac{A}{V \cdot \ell}\\
\mathbf{if}\;t_0 \leq 4.8328305849675 \cdot 10^{-311} \lor \neg \left(t_0 \leq 2.437639631441024 \cdot 10^{+295}\right):\\
\;\;\;\;\frac{c0 \cdot \left(\left|\frac{\sqrt[3]{A}}{\sqrt[3]{V}}\right| \cdot \sqrt{\frac{\frac{\sqrt[3]{A}}{\sqrt[3]{\ell}}}{\sqrt[3]{V}}}\right)}{\sqrt{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}}\\
\mathbf{else}:\\
\;\;\;\;c0 \cdot \sqrt{t_0}\\
\end{array}
(FPCore (c0 A V l) :precision binary64 (* c0 (sqrt (/ A (* V l)))))
(FPCore (c0 A V l)
:precision binary64
(let* ((t_0 (/ A (* V l))))
(if (or (<= t_0 4.8328305849675e-311) (not (<= t_0 2.437639631441024e+295)))
(/
(*
c0
(*
(fabs (/ (cbrt A) (cbrt V)))
(sqrt (/ (/ (cbrt A) (cbrt l)) (cbrt V)))))
(sqrt (* (cbrt l) (cbrt l))))
(* c0 (sqrt t_0)))))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 t_0 = A / (V * l);
double tmp;
if ((t_0 <= 4.8328305849675e-311) || !(t_0 <= 2.437639631441024e+295)) {
tmp = (c0 * (fabs(cbrt(A) / cbrt(V)) * sqrt((cbrt(A) / cbrt(l)) / cbrt(V)))) / sqrt(cbrt(l) * cbrt(l));
} else {
tmp = c0 * sqrt(t_0);
}
return tmp;
}



Bits error versus c0



Bits error versus A



Bits error versus V



Bits error versus l
Results
if (/.f64 A (*.f64 V l)) < 4.83283058496745e-311 or 2.4376396314410239e295 < (/.f64 A (*.f64 V l)) Initial program 48.1
Applied *-un-lft-identity_binary6448.1
Applied times-frac_binary6436.9
Applied add-cube-cbrt_binary6437.0
Applied *-un-lft-identity_binary6437.0
Applied times-frac_binary6437.0
Applied associate-*r*_binary6443.4
Simplified43.4
Applied associate-*l/_binary6437.1
Applied sqrt-div_binary6425.1
Applied associate-*r/_binary6425.1
Simplified25.1
Applied add-cube-cbrt_binary6425.2
Applied *-un-lft-identity_binary6425.2
Applied cbrt-prod_binary6425.2
Applied add-cube-cbrt_binary6425.3
Applied times-frac_binary6425.3
Applied times-frac_binary6422.7
Applied sqrt-prod_binary645.5
Simplified1.7
if 4.83283058496745e-311 < (/.f64 A (*.f64 V l)) < 2.4376396314410239e295Initial program 0.6
Applied *-un-lft-identity_binary640.6
Applied times-frac_binary647.9
Applied *-un-lft-identity_binary647.9
Applied *-un-lft-identity_binary647.9
Applied times-frac_binary647.9
Applied associate-*l*_binary647.9
Simplified0.6
Final simplification1.0
herbie shell --seed 2021339
(FPCore (c0 A V l)
:name "Henrywood and Agarwal, Equation (3)"
:precision binary64
(* c0 (sqrt (/ A (* V l)))))