Average Error: 19.0 → 12.4
Time: 19.4s
Precision: 64
\[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
\[\begin{array}{l} \mathbf{if}\;V \cdot \ell \le -6.314215375296836 \cdot 10^{-308}:\\ \;\;\;\;\sqrt{\frac{A}{V \cdot \ell}} \cdot c0\\ \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 2.865259651682613 \cdot 10^{+262}:\\ \;\;\;\;\frac{\sqrt{A}}{\sqrt{V \cdot \ell}} \cdot c0\\ \mathbf{else}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\ \end{array}\]
c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\begin{array}{l}
\mathbf{if}\;V \cdot \ell \le -6.314215375296836 \cdot 10^{-308}:\\
\;\;\;\;\sqrt{\frac{A}{V \cdot \ell}} \cdot c0\\

\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 2.865259651682613 \cdot 10^{+262}:\\
\;\;\;\;\frac{\sqrt{A}}{\sqrt{V \cdot \ell}} \cdot c0\\

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

\end{array}
double f(double c0, double A, double V, double l) {
        double r22497436 = c0;
        double r22497437 = A;
        double r22497438 = V;
        double r22497439 = l;
        double r22497440 = r22497438 * r22497439;
        double r22497441 = r22497437 / r22497440;
        double r22497442 = sqrt(r22497441);
        double r22497443 = r22497436 * r22497442;
        return r22497443;
}

double f(double c0, double A, double V, double l) {
        double r22497444 = V;
        double r22497445 = l;
        double r22497446 = r22497444 * r22497445;
        double r22497447 = -6.314215375296836e-308;
        bool r22497448 = r22497446 <= r22497447;
        double r22497449 = A;
        double r22497450 = r22497449 / r22497446;
        double r22497451 = sqrt(r22497450);
        double r22497452 = c0;
        double r22497453 = r22497451 * r22497452;
        double r22497454 = -0.0;
        bool r22497455 = r22497446 <= r22497454;
        double r22497456 = 1.0;
        double r22497457 = r22497456 / r22497444;
        double r22497458 = sqrt(r22497457);
        double r22497459 = r22497449 / r22497445;
        double r22497460 = sqrt(r22497459);
        double r22497461 = r22497458 * r22497460;
        double r22497462 = r22497452 * r22497461;
        double r22497463 = 2.865259651682613e+262;
        bool r22497464 = r22497446 <= r22497463;
        double r22497465 = sqrt(r22497449);
        double r22497466 = sqrt(r22497446);
        double r22497467 = r22497465 / r22497466;
        double r22497468 = r22497467 * r22497452;
        double r22497469 = r22497449 / r22497444;
        double r22497470 = r22497469 / r22497445;
        double r22497471 = sqrt(r22497470);
        double r22497472 = r22497452 * r22497471;
        double r22497473 = r22497464 ? r22497468 : r22497472;
        double r22497474 = r22497455 ? r22497462 : r22497473;
        double r22497475 = r22497448 ? r22497453 : r22497474;
        return r22497475;
}

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 4 regimes
  2. if (* V l) < -6.314215375296836e-308

    1. Initial program 14.8

      \[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
    2. Taylor expanded around 0 14.8

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

    if -6.314215375296836e-308 < (* V l) < -0.0

    1. Initial program 59.4

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

      \[\leadsto c0 \cdot \sqrt{\frac{\color{blue}{1 \cdot A}}{V \cdot \ell}}\]
    4. Applied times-frac36.1

      \[\leadsto c0 \cdot \sqrt{\color{blue}{\frac{1}{V} \cdot \frac{A}{\ell}}}\]
    5. Applied sqrt-prod37.1

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

    if -0.0 < (* V l) < 2.865259651682613e+262

    1. Initial program 10.1

      \[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
    2. Taylor expanded around 0 10.1

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

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

    if 2.865259651682613e+262 < (* V l)

    1. Initial program 34.6

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;V \cdot \ell \le -6.314215375296836 \cdot 10^{-308}:\\ \;\;\;\;\sqrt{\frac{A}{V \cdot \ell}} \cdot c0\\ \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 2.865259651682613 \cdot 10^{+262}:\\ \;\;\;\;\frac{\sqrt{A}}{\sqrt{V \cdot \ell}} \cdot c0\\ \mathbf{else}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\ \end{array}\]

Reproduce

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