c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\begin{array}{l}
\mathbf{if}\;V \cdot \ell \le -1.7835769814869 \cdot 10^{-321}:\\
\;\;\;\;\sqrt{\frac{\frac{A}{V}}{\ell}} \cdot c0\\
\mathbf{elif}\;V \cdot \ell \le 0.0:\\
\;\;\;\;\left(\sqrt{\frac{\sqrt[3]{A} \cdot \sqrt[3]{A}}{V}} \cdot c0\right) \cdot \sqrt{\frac{\sqrt[3]{A}}{\ell}}\\
\mathbf{elif}\;V \cdot \ell \le 1.680002958039891 \cdot 10^{-303}:\\
\;\;\;\;\sqrt{\frac{\frac{A}{V}}{\ell}} \cdot c0\\
\mathbf{elif}\;V \cdot \ell \le 2.983558035064543 \cdot 10^{+285}:\\
\;\;\;\;\frac{c0 \cdot \sqrt{A}}{\sqrt{V \cdot \ell}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{1}{V} \cdot \frac{A}{\ell}} \cdot c0\\
\end{array}double f(double c0, double A, double V, double l) {
double r3074465 = c0;
double r3074466 = A;
double r3074467 = V;
double r3074468 = l;
double r3074469 = r3074467 * r3074468;
double r3074470 = r3074466 / r3074469;
double r3074471 = sqrt(r3074470);
double r3074472 = r3074465 * r3074471;
return r3074472;
}
double f(double c0, double A, double V, double l) {
double r3074473 = V;
double r3074474 = l;
double r3074475 = r3074473 * r3074474;
double r3074476 = -1.7835769814869e-321;
bool r3074477 = r3074475 <= r3074476;
double r3074478 = A;
double r3074479 = r3074478 / r3074473;
double r3074480 = r3074479 / r3074474;
double r3074481 = sqrt(r3074480);
double r3074482 = c0;
double r3074483 = r3074481 * r3074482;
double r3074484 = 0.0;
bool r3074485 = r3074475 <= r3074484;
double r3074486 = cbrt(r3074478);
double r3074487 = r3074486 * r3074486;
double r3074488 = r3074487 / r3074473;
double r3074489 = sqrt(r3074488);
double r3074490 = r3074489 * r3074482;
double r3074491 = r3074486 / r3074474;
double r3074492 = sqrt(r3074491);
double r3074493 = r3074490 * r3074492;
double r3074494 = 1.680002958039891e-303;
bool r3074495 = r3074475 <= r3074494;
double r3074496 = 2.983558035064543e+285;
bool r3074497 = r3074475 <= r3074496;
double r3074498 = sqrt(r3074478);
double r3074499 = r3074482 * r3074498;
double r3074500 = sqrt(r3074475);
double r3074501 = r3074499 / r3074500;
double r3074502 = 1.0;
double r3074503 = r3074502 / r3074473;
double r3074504 = r3074478 / r3074474;
double r3074505 = r3074503 * r3074504;
double r3074506 = sqrt(r3074505);
double r3074507 = r3074506 * r3074482;
double r3074508 = r3074497 ? r3074501 : r3074507;
double r3074509 = r3074495 ? r3074483 : r3074508;
double r3074510 = r3074485 ? r3074493 : r3074509;
double r3074511 = r3074477 ? r3074483 : r3074510;
return r3074511;
}



Bits error versus c0



Bits error versus A



Bits error versus V



Bits error versus l
Results
if (* V l) < -1.7835769814869e-321 or 0.0 < (* V l) < 1.680002958039891e-303Initial program 16.2
rmApplied associate-/r*18.4
if -1.7835769814869e-321 < (* V l) < 0.0Initial program 61.0
rmApplied add-cube-cbrt61.0
Applied times-frac35.0
Applied sqrt-prod36.5
Applied associate-*r*36.5
if 1.680002958039891e-303 < (* V l) < 2.983558035064543e+285Initial program 9.8
rmApplied sqrt-div0.4
Applied associate-*r/2.8
if 2.983558035064543e+285 < (* V l) Initial program 37.1
rmApplied *-un-lft-identity37.1
Applied times-frac20.8
Final simplification14.2
herbie shell --seed 2019153 +o rules:numerics
(FPCore (c0 A V l)
:name "Henrywood and Agarwal, Equation (3)"
(* c0 (sqrt (/ A (* V l)))))