Average Error: 19.0 → 12.3
Time: 21.0s
Precision: 64
\[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
\[\begin{array}{l} \mathbf{if}\;V \cdot \ell = -\infty:\\ \;\;\;\;\sqrt{\frac{\frac{A}{V}}{\ell}} \cdot c0\\ \mathbf{elif}\;V \cdot \ell \le -3.040558777379324109381380700041437977209 \cdot 10^{-218}:\\ \;\;\;\;\sqrt{\frac{1}{V \cdot \ell} \cdot A} \cdot c0\\ \mathbf{elif}\;V \cdot \ell \le 7.375757807070217284048742538091816401626 \cdot 10^{-319}:\\ \;\;\;\;\left(\sqrt{\frac{A}{\ell}} \cdot \sqrt{\frac{1}{V}}\right) \cdot c0\\ \mathbf{elif}\;V \cdot \ell \le 2.336051817442314793904355180504260870482 \cdot 10^{285}:\\ \;\;\;\;\frac{c0 \cdot \sqrt{A}}{\sqrt{V \cdot \ell}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{\frac{A}{V}}{\ell}} \cdot c0\\ \end{array}\]
c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\begin{array}{l}
\mathbf{if}\;V \cdot \ell = -\infty:\\
\;\;\;\;\sqrt{\frac{\frac{A}{V}}{\ell}} \cdot c0\\

\mathbf{elif}\;V \cdot \ell \le -3.040558777379324109381380700041437977209 \cdot 10^{-218}:\\
\;\;\;\;\sqrt{\frac{1}{V \cdot \ell} \cdot A} \cdot c0\\

\mathbf{elif}\;V \cdot \ell \le 7.375757807070217284048742538091816401626 \cdot 10^{-319}:\\
\;\;\;\;\left(\sqrt{\frac{A}{\ell}} \cdot \sqrt{\frac{1}{V}}\right) \cdot c0\\

\mathbf{elif}\;V \cdot \ell \le 2.336051817442314793904355180504260870482 \cdot 10^{285}:\\
\;\;\;\;\frac{c0 \cdot \sqrt{A}}{\sqrt{V \cdot \ell}}\\

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

\end{array}
double f(double c0, double A, double V, double l) {
        double r7329581 = c0;
        double r7329582 = A;
        double r7329583 = V;
        double r7329584 = l;
        double r7329585 = r7329583 * r7329584;
        double r7329586 = r7329582 / r7329585;
        double r7329587 = sqrt(r7329586);
        double r7329588 = r7329581 * r7329587;
        return r7329588;
}

double f(double c0, double A, double V, double l) {
        double r7329589 = V;
        double r7329590 = l;
        double r7329591 = r7329589 * r7329590;
        double r7329592 = -inf.0;
        bool r7329593 = r7329591 <= r7329592;
        double r7329594 = A;
        double r7329595 = r7329594 / r7329589;
        double r7329596 = r7329595 / r7329590;
        double r7329597 = sqrt(r7329596);
        double r7329598 = c0;
        double r7329599 = r7329597 * r7329598;
        double r7329600 = -3.040558777379324e-218;
        bool r7329601 = r7329591 <= r7329600;
        double r7329602 = 1.0;
        double r7329603 = r7329602 / r7329591;
        double r7329604 = r7329603 * r7329594;
        double r7329605 = sqrt(r7329604);
        double r7329606 = r7329605 * r7329598;
        double r7329607 = 7.3757578070702e-319;
        bool r7329608 = r7329591 <= r7329607;
        double r7329609 = r7329594 / r7329590;
        double r7329610 = sqrt(r7329609);
        double r7329611 = r7329602 / r7329589;
        double r7329612 = sqrt(r7329611);
        double r7329613 = r7329610 * r7329612;
        double r7329614 = r7329613 * r7329598;
        double r7329615 = 2.3360518174423148e+285;
        bool r7329616 = r7329591 <= r7329615;
        double r7329617 = sqrt(r7329594);
        double r7329618 = r7329598 * r7329617;
        double r7329619 = sqrt(r7329591);
        double r7329620 = r7329618 / r7329619;
        double r7329621 = r7329616 ? r7329620 : r7329599;
        double r7329622 = r7329608 ? r7329614 : r7329621;
        double r7329623 = r7329601 ? r7329606 : r7329622;
        double r7329624 = r7329593 ? r7329599 : r7329623;
        return r7329624;
}

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) < -inf.0 or 2.3360518174423148e+285 < (* V l)

    1. Initial program 40.2

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

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

    if -inf.0 < (* V l) < -3.040558777379324e-218

    1. Initial program 8.7

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

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

    if -3.040558777379324e-218 < (* V l) < 7.3757578070702e-319

    1. Initial program 50.4

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

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

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

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

    if 7.3757578070702e-319 < (* V l) < 2.3360518174423148e+285

    1. Initial program 9.9

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

      \[\leadsto c0 \cdot \color{blue}{\frac{\sqrt{A}}{\sqrt{V \cdot \ell}}}\]
    4. Applied associate-*r/3.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;V \cdot \ell = -\infty:\\ \;\;\;\;\sqrt{\frac{\frac{A}{V}}{\ell}} \cdot c0\\ \mathbf{elif}\;V \cdot \ell \le -3.040558777379324109381380700041437977209 \cdot 10^{-218}:\\ \;\;\;\;\sqrt{\frac{1}{V \cdot \ell} \cdot A} \cdot c0\\ \mathbf{elif}\;V \cdot \ell \le 7.375757807070217284048742538091816401626 \cdot 10^{-319}:\\ \;\;\;\;\left(\sqrt{\frac{A}{\ell}} \cdot \sqrt{\frac{1}{V}}\right) \cdot c0\\ \mathbf{elif}\;V \cdot \ell \le 2.336051817442314793904355180504260870482 \cdot 10^{285}:\\ \;\;\;\;\frac{c0 \cdot \sqrt{A}}{\sqrt{V \cdot \ell}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{\frac{A}{V}}{\ell}} \cdot c0\\ \end{array}\]

Reproduce

herbie shell --seed 2019171 
(FPCore (c0 A V l)
  :name "Henrywood and Agarwal, Equation (3)"
  (* c0 (sqrt (/ A (* V l)))))