Average Error: 19.0 → 12.3
Time: 22.9s
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 r6091990 = c0;
        double r6091991 = A;
        double r6091992 = V;
        double r6091993 = l;
        double r6091994 = r6091992 * r6091993;
        double r6091995 = r6091991 / r6091994;
        double r6091996 = sqrt(r6091995);
        double r6091997 = r6091990 * r6091996;
        return r6091997;
}

double f(double c0, double A, double V, double l) {
        double r6091998 = V;
        double r6091999 = l;
        double r6092000 = r6091998 * r6091999;
        double r6092001 = -inf.0;
        bool r6092002 = r6092000 <= r6092001;
        double r6092003 = A;
        double r6092004 = r6092003 / r6091998;
        double r6092005 = r6092004 / r6091999;
        double r6092006 = sqrt(r6092005);
        double r6092007 = c0;
        double r6092008 = r6092006 * r6092007;
        double r6092009 = -3.040558777379324e-218;
        bool r6092010 = r6092000 <= r6092009;
        double r6092011 = 1.0;
        double r6092012 = r6092011 / r6092000;
        double r6092013 = r6092012 * r6092003;
        double r6092014 = sqrt(r6092013);
        double r6092015 = r6092014 * r6092007;
        double r6092016 = 7.3757578070702e-319;
        bool r6092017 = r6092000 <= r6092016;
        double r6092018 = r6092003 / r6091999;
        double r6092019 = sqrt(r6092018);
        double r6092020 = r6092011 / r6091998;
        double r6092021 = sqrt(r6092020);
        double r6092022 = r6092019 * r6092021;
        double r6092023 = r6092022 * r6092007;
        double r6092024 = 2.3360518174423148e+285;
        bool r6092025 = r6092000 <= r6092024;
        double r6092026 = sqrt(r6092003);
        double r6092027 = r6092007 * r6092026;
        double r6092028 = sqrt(r6092000);
        double r6092029 = r6092027 / r6092028;
        double r6092030 = r6092025 ? r6092029 : r6092008;
        double r6092031 = r6092017 ? r6092023 : r6092030;
        double r6092032 = r6092010 ? r6092015 : r6092031;
        double r6092033 = r6092002 ? r6092008 : r6092032;
        return r6092033;
}

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 +o rules:numerics
(FPCore (c0 A V l)
  :name "Henrywood and Agarwal, Equation (3)"
  (* c0 (sqrt (/ A (* V l)))))