Average Error: 19.1 → 12.3
Time: 19.2s
Precision: 64
\[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
\[\begin{array}{l} \mathbf{if}\;V \cdot \ell \le -2.568047760982784846268573395460668197323 \cdot 10^{255}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\ \mathbf{elif}\;V \cdot \ell \le -3.260833262552227191565354032930261057609 \cdot 10^{-322}:\\ \;\;\;\;\sqrt{\sqrt{\frac{A}{V \cdot \ell}}} \cdot \left(c0 \cdot \sqrt{\sqrt{\frac{A}{V \cdot \ell}}}\right)\\ \mathbf{elif}\;V \cdot \ell \le -0.0:\\ \;\;\;\;\left(c0 \cdot \sqrt{\frac{A}{\ell}}\right) \cdot \sqrt{\frac{1}{V}}\\ \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 -2.568047760982784846268573395460668197323 \cdot 10^{255}:\\
\;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\

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

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

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

\end{array}
double f(double c0, double A, double V, double l) {
        double r3584902 = c0;
        double r3584903 = A;
        double r3584904 = V;
        double r3584905 = l;
        double r3584906 = r3584904 * r3584905;
        double r3584907 = r3584903 / r3584906;
        double r3584908 = sqrt(r3584907);
        double r3584909 = r3584902 * r3584908;
        return r3584909;
}

double f(double c0, double A, double V, double l) {
        double r3584910 = V;
        double r3584911 = l;
        double r3584912 = r3584910 * r3584911;
        double r3584913 = -2.568047760982785e+255;
        bool r3584914 = r3584912 <= r3584913;
        double r3584915 = c0;
        double r3584916 = A;
        double r3584917 = r3584916 / r3584910;
        double r3584918 = r3584917 / r3584911;
        double r3584919 = sqrt(r3584918);
        double r3584920 = r3584915 * r3584919;
        double r3584921 = -3.2608332625522e-322;
        bool r3584922 = r3584912 <= r3584921;
        double r3584923 = r3584916 / r3584912;
        double r3584924 = sqrt(r3584923);
        double r3584925 = sqrt(r3584924);
        double r3584926 = r3584915 * r3584925;
        double r3584927 = r3584925 * r3584926;
        double r3584928 = -0.0;
        bool r3584929 = r3584912 <= r3584928;
        double r3584930 = r3584916 / r3584911;
        double r3584931 = sqrt(r3584930);
        double r3584932 = r3584915 * r3584931;
        double r3584933 = 1.0;
        double r3584934 = r3584933 / r3584910;
        double r3584935 = sqrt(r3584934);
        double r3584936 = r3584932 * r3584935;
        double r3584937 = sqrt(r3584916);
        double r3584938 = sqrt(r3584912);
        double r3584939 = r3584937 / r3584938;
        double r3584940 = r3584939 * r3584915;
        double r3584941 = r3584929 ? r3584936 : r3584940;
        double r3584942 = r3584922 ? r3584927 : r3584941;
        double r3584943 = r3584914 ? r3584920 : r3584942;
        return r3584943;
}

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) < -2.568047760982785e+255

    1. Initial program 33.6

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

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

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

    if -2.568047760982785e+255 < (* V l) < -3.2608332625522e-322

    1. Initial program 9.9

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

      \[\leadsto \color{blue}{\sqrt{\frac{A}{V \cdot \ell}} \cdot c0}\]
    4. Using strategy rm
    5. Applied add-sqr-sqrt9.9

      \[\leadsto \sqrt{\color{blue}{\sqrt{\frac{A}{V \cdot \ell}} \cdot \sqrt{\frac{A}{V \cdot \ell}}}} \cdot c0\]
    6. Applied sqrt-prod10.2

      \[\leadsto \color{blue}{\left(\sqrt{\sqrt{\frac{A}{V \cdot \ell}}} \cdot \sqrt{\sqrt{\frac{A}{V \cdot \ell}}}\right)} \cdot c0\]
    7. Applied associate-*l*10.2

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

    if -3.2608332625522e-322 < (* V l) < -0.0

    1. Initial program 63.9

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

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

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

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

      \[\leadsto \color{blue}{\left(\sqrt{\frac{1}{V}} \cdot \sqrt{\frac{A}{\ell}}\right)} \cdot c0\]
    8. Applied associate-*l*39.1

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

    if -0.0 < (* V l)

    1. Initial program 15.1

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;V \cdot \ell \le -2.568047760982784846268573395460668197323 \cdot 10^{255}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\ \mathbf{elif}\;V \cdot \ell \le -3.260833262552227191565354032930261057609 \cdot 10^{-322}:\\ \;\;\;\;\sqrt{\sqrt{\frac{A}{V \cdot \ell}}} \cdot \left(c0 \cdot \sqrt{\sqrt{\frac{A}{V \cdot \ell}}}\right)\\ \mathbf{elif}\;V \cdot \ell \le -0.0:\\ \;\;\;\;\left(c0 \cdot \sqrt{\frac{A}{\ell}}\right) \cdot \sqrt{\frac{1}{V}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{A}}{\sqrt{V \cdot \ell}} \cdot c0\\ \end{array}\]

Reproduce

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