Average Error: 19.2 → 12.5
Time: 34.0s
Precision: 64
\[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
\[\begin{array}{l} \mathbf{if}\;V \cdot \ell \le -8.5572345250440904 \cdot 10^{-135}:\\ \;\;\;\;c0 \cdot \sqrt{A \cdot \frac{1}{V \cdot \ell}}\\ \mathbf{elif}\;V \cdot \ell \le 1.8153855847994239 \cdot 10^{-294} \lor \neg \left(V \cdot \ell \le 3.7077968492082611 \cdot 10^{274}\right):\\ \;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\ \mathbf{else}:\\ \;\;\;\;c0 \cdot \frac{\sqrt{A}}{\sqrt{V \cdot \ell}}\\ \end{array}\]
c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\begin{array}{l}
\mathbf{if}\;V \cdot \ell \le -8.5572345250440904 \cdot 10^{-135}:\\
\;\;\;\;c0 \cdot \sqrt{A \cdot \frac{1}{V \cdot \ell}}\\

\mathbf{elif}\;V \cdot \ell \le 1.8153855847994239 \cdot 10^{-294} \lor \neg \left(V \cdot \ell \le 3.7077968492082611 \cdot 10^{274}\right):\\
\;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\

\mathbf{else}:\\
\;\;\;\;c0 \cdot \frac{\sqrt{A}}{\sqrt{V \cdot \ell}}\\

\end{array}
double f(double c0, double A, double V, double l) {
        double r157596 = c0;
        double r157597 = A;
        double r157598 = V;
        double r157599 = l;
        double r157600 = r157598 * r157599;
        double r157601 = r157597 / r157600;
        double r157602 = sqrt(r157601);
        double r157603 = r157596 * r157602;
        return r157603;
}

double f(double c0, double A, double V, double l) {
        double r157604 = V;
        double r157605 = l;
        double r157606 = r157604 * r157605;
        double r157607 = -8.55723452504409e-135;
        bool r157608 = r157606 <= r157607;
        double r157609 = c0;
        double r157610 = A;
        double r157611 = 1.0;
        double r157612 = r157611 / r157606;
        double r157613 = r157610 * r157612;
        double r157614 = sqrt(r157613);
        double r157615 = r157609 * r157614;
        double r157616 = 1.815385584799424e-294;
        bool r157617 = r157606 <= r157616;
        double r157618 = 3.707796849208261e+274;
        bool r157619 = r157606 <= r157618;
        double r157620 = !r157619;
        bool r157621 = r157617 || r157620;
        double r157622 = r157610 / r157604;
        double r157623 = r157622 / r157605;
        double r157624 = sqrt(r157623);
        double r157625 = r157609 * r157624;
        double r157626 = sqrt(r157610);
        double r157627 = sqrt(r157606);
        double r157628 = r157626 / r157627;
        double r157629 = r157609 * r157628;
        double r157630 = r157621 ? r157625 : r157629;
        double r157631 = r157608 ? r157615 : r157630;
        return r157631;
}

Error

Bits error versus c0

Bits error versus A

Bits error versus V

Bits error versus l

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if (* V l) < -8.55723452504409e-135

    1. Initial program 14.3

      \[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
    2. Using strategy rm
    3. Applied div-inv14.3

      \[\leadsto c0 \cdot \sqrt{\color{blue}{A \cdot \frac{1}{V \cdot \ell}}}\]

    if -8.55723452504409e-135 < (* V l) < 1.815385584799424e-294 or 3.707796849208261e+274 < (* V l)

    1. Initial program 39.0

      \[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
    2. Using strategy rm
    3. Applied associate-/r*26.1

      \[\leadsto c0 \cdot \sqrt{\color{blue}{\frac{\frac{A}{V}}{\ell}}}\]

    if 1.815385584799424e-294 < (* V l) < 3.707796849208261e+274

    1. Initial program 9.4

      \[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
    2. Using strategy rm
    3. Applied sqrt-div0.4

      \[\leadsto c0 \cdot \color{blue}{\frac{\sqrt{A}}{\sqrt{V \cdot \ell}}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification12.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;V \cdot \ell \le -8.5572345250440904 \cdot 10^{-135}:\\ \;\;\;\;c0 \cdot \sqrt{A \cdot \frac{1}{V \cdot \ell}}\\ \mathbf{elif}\;V \cdot \ell \le 1.8153855847994239 \cdot 10^{-294} \lor \neg \left(V \cdot \ell \le 3.7077968492082611 \cdot 10^{274}\right):\\ \;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\ \mathbf{else}:\\ \;\;\;\;c0 \cdot \frac{\sqrt{A}}{\sqrt{V \cdot \ell}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019199 +o rules:numerics
(FPCore (c0 A V l)
  :name "Henrywood and Agarwal, Equation (3)"
  (* c0 (sqrt (/ A (* V l)))))