Average Error: 18.6 → 11.7
Time: 16.0s
Precision: 64
\[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
\[\begin{array}{l} \mathbf{if}\;V \cdot \ell \le -5.58568470454480992344359247202975780932 \cdot 10^{191}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\ \mathbf{elif}\;V \cdot \ell \le -2.686318369682329774863010285209018555865 \cdot 10^{-308}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\\ \mathbf{elif}\;V \cdot \ell \le -0.0:\\ \;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{A}}{\sqrt{V \cdot \ell}} \cdot c0\\ \end{array}\]
c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\begin{array}{l}
\mathbf{if}\;V \cdot \ell \le -5.58568470454480992344359247202975780932 \cdot 10^{191}:\\
\;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\

\mathbf{elif}\;V \cdot \ell \le -2.686318369682329774863010285209018555865 \cdot 10^{-308}:\\
\;\;\;\;c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\\

\mathbf{elif}\;V \cdot \ell \le -0.0:\\
\;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\

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

\end{array}
double f(double c0, double A, double V, double l) {
        double r186596 = c0;
        double r186597 = A;
        double r186598 = V;
        double r186599 = l;
        double r186600 = r186598 * r186599;
        double r186601 = r186597 / r186600;
        double r186602 = sqrt(r186601);
        double r186603 = r186596 * r186602;
        return r186603;
}

double f(double c0, double A, double V, double l) {
        double r186604 = V;
        double r186605 = l;
        double r186606 = r186604 * r186605;
        double r186607 = -5.58568470454481e+191;
        bool r186608 = r186606 <= r186607;
        double r186609 = c0;
        double r186610 = A;
        double r186611 = r186610 / r186604;
        double r186612 = r186611 / r186605;
        double r186613 = sqrt(r186612);
        double r186614 = r186609 * r186613;
        double r186615 = -2.68631836968233e-308;
        bool r186616 = r186606 <= r186615;
        double r186617 = r186610 / r186606;
        double r186618 = sqrt(r186617);
        double r186619 = r186609 * r186618;
        double r186620 = -0.0;
        bool r186621 = r186606 <= r186620;
        double r186622 = sqrt(r186610);
        double r186623 = sqrt(r186606);
        double r186624 = r186622 / r186623;
        double r186625 = r186624 * r186609;
        double r186626 = r186621 ? r186614 : r186625;
        double r186627 = r186616 ? r186619 : r186626;
        double r186628 = r186608 ? r186614 : r186627;
        return r186628;
}

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) < -5.58568470454481e+191 or -2.68631836968233e-308 < (* V l) < -0.0

    1. Initial program 36.4

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

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

    if -5.58568470454481e+191 < (* V l) < -2.68631836968233e-308

    1. Initial program 9.1

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

      \[\leadsto \color{blue}{\sqrt{\frac{A}{V \cdot \ell}} \cdot c0}\]
    4. Using strategy rm
    5. Applied *-commutative9.1

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

    if -0.0 < (* V l)

    1. Initial program 18.8

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

      \[\leadsto \color{blue}{\sqrt{\frac{A}{V \cdot \ell}} \cdot c0}\]
    4. Using strategy rm
    5. Applied sqrt-div11.3

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;V \cdot \ell \le -5.58568470454480992344359247202975780932 \cdot 10^{191}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\ \mathbf{elif}\;V \cdot \ell \le -2.686318369682329774863010285209018555865 \cdot 10^{-308}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\\ \mathbf{elif}\;V \cdot \ell \le -0.0:\\ \;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{A}}{\sqrt{V \cdot \ell}} \cdot c0\\ \end{array}\]

Reproduce

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