c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\begin{array}{l}
\mathbf{if}\;V \cdot \ell \le -6.074815782204149782432519341284458306068 \cdot 10^{-283}:\\
\;\;\;\;\sqrt{\sqrt{\frac{\sqrt[3]{A} \cdot \sqrt[3]{A}}{\frac{V \cdot \ell}{\sqrt[3]{A}}}}} \cdot \left(\sqrt{\sqrt{\frac{A}{V \cdot \ell}}} \cdot c0\right)\\
\mathbf{elif}\;V \cdot \ell \le 0.0:\\
\;\;\;\;c0 \cdot \left(\sqrt{\frac{1}{V}} \cdot \sqrt{\frac{A}{\ell}}\right)\\
\mathbf{elif}\;V \cdot \ell \le 8.274008779449527226174688106162953762312 \cdot 10^{278}:\\
\;\;\;\;\frac{\sqrt{A}}{\sqrt{V \cdot \ell}} \cdot c0\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{\frac{A}{V}}{\ell}} \cdot c0\\
\end{array}double f(double c0, double A, double V, double l) {
double r133975 = c0;
double r133976 = A;
double r133977 = V;
double r133978 = l;
double r133979 = r133977 * r133978;
double r133980 = r133976 / r133979;
double r133981 = sqrt(r133980);
double r133982 = r133975 * r133981;
return r133982;
}
double f(double c0, double A, double V, double l) {
double r133983 = V;
double r133984 = l;
double r133985 = r133983 * r133984;
double r133986 = -6.07481578220415e-283;
bool r133987 = r133985 <= r133986;
double r133988 = A;
double r133989 = cbrt(r133988);
double r133990 = r133989 * r133989;
double r133991 = r133985 / r133989;
double r133992 = r133990 / r133991;
double r133993 = sqrt(r133992);
double r133994 = sqrt(r133993);
double r133995 = r133988 / r133985;
double r133996 = sqrt(r133995);
double r133997 = sqrt(r133996);
double r133998 = c0;
double r133999 = r133997 * r133998;
double r134000 = r133994 * r133999;
double r134001 = 0.0;
bool r134002 = r133985 <= r134001;
double r134003 = 1.0;
double r134004 = r134003 / r133983;
double r134005 = sqrt(r134004);
double r134006 = r133988 / r133984;
double r134007 = sqrt(r134006);
double r134008 = r134005 * r134007;
double r134009 = r133998 * r134008;
double r134010 = 8.274008779449527e+278;
bool r134011 = r133985 <= r134010;
double r134012 = sqrt(r133988);
double r134013 = sqrt(r133985);
double r134014 = r134012 / r134013;
double r134015 = r134014 * r133998;
double r134016 = r133988 / r133983;
double r134017 = r134016 / r133984;
double r134018 = sqrt(r134017);
double r134019 = r134018 * r133998;
double r134020 = r134011 ? r134015 : r134019;
double r134021 = r134002 ? r134009 : r134020;
double r134022 = r133987 ? r134000 : r134021;
return r134022;
}



Bits error versus c0



Bits error versus A



Bits error versus V



Bits error versus l
Results
if (* V l) < -6.07481578220415e-283Initial program 14.5
rmApplied *-commutative14.5
rmApplied add-sqr-sqrt14.5
Applied sqrt-prod14.7
Applied associate-*l*14.7
rmApplied add-cube-cbrt14.7
Applied associate-/l*14.7
if -6.07481578220415e-283 < (* V l) < 0.0Initial program 54.6
rmApplied *-un-lft-identity54.6
Applied times-frac34.6
Applied sqrt-prod39.5
if 0.0 < (* V l) < 8.274008779449527e+278Initial program 14.9
rmApplied *-commutative14.9
rmApplied sqrt-div6.4
if 8.274008779449527e+278 < (* V l) Initial program 39.5
rmApplied *-commutative39.5
rmApplied associate-/r*23.2
Final simplification12.6
herbie shell --seed 2019306 +o rules:numerics
(FPCore (c0 A V l)
:name "Henrywood and Agarwal, Equation (3)"
:precision binary64
(* c0 (sqrt (/ A (* V l)))))