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

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

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

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

\end{array}
double f(double c0, double A, double V, double l) {
        double r254868 = c0;
        double r254869 = A;
        double r254870 = V;
        double r254871 = l;
        double r254872 = r254870 * r254871;
        double r254873 = r254869 / r254872;
        double r254874 = sqrt(r254873);
        double r254875 = r254868 * r254874;
        return r254875;
}

double f(double c0, double A, double V, double l) {
        double r254876 = V;
        double r254877 = l;
        double r254878 = r254876 * r254877;
        double r254879 = -5.58568470454481e+191;
        bool r254880 = r254878 <= r254879;
        double r254881 = A;
        double r254882 = r254881 / r254876;
        double r254883 = r254882 / r254877;
        double r254884 = sqrt(r254883);
        double r254885 = c0;
        double r254886 = r254884 * r254885;
        double r254887 = -2.68631836968233e-308;
        bool r254888 = r254878 <= r254887;
        double r254889 = 1.0;
        double r254890 = sqrt(r254889);
        double r254891 = r254881 / r254878;
        double r254892 = sqrt(r254891);
        double r254893 = r254892 * r254885;
        double r254894 = r254890 * r254893;
        double r254895 = -0.0;
        bool r254896 = r254878 <= r254895;
        double r254897 = sqrt(r254881);
        double r254898 = sqrt(r254878);
        double r254899 = r254897 / r254898;
        double r254900 = r254885 * r254899;
        double r254901 = r254896 ? r254886 : r254900;
        double r254902 = r254888 ? r254894 : r254901;
        double r254903 = r254880 ? r254886 : r254902;
        return r254903;
}

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 *-commutative36.4

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

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

    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 *-un-lft-identity9.1

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

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

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

    if -0.0 < (* V l)

    1. Initial program 18.8

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

      \[\leadsto c0 \cdot \color{blue}{\frac{\sqrt{A}}{\sqrt{V \cdot \ell}}}\]
  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}:\\ \;\;\;\;\sqrt{\frac{\frac{A}{V}}{\ell}} \cdot c0\\ \mathbf{elif}\;V \cdot \ell \le -2.686318369682329774863010285209018555865 \cdot 10^{-308}:\\ \;\;\;\;\sqrt{1} \cdot \left(\sqrt{\frac{A}{V \cdot \ell}} \cdot c0\right)\\ \mathbf{elif}\;V \cdot \ell \le -0.0:\\ \;\;\;\;\sqrt{\frac{\frac{A}{V}}{\ell}} \cdot c0\\ \mathbf{else}:\\ \;\;\;\;c0 \cdot \frac{\sqrt{A}}{\sqrt{V \cdot \ell}}\\ \end{array}\]

Reproduce

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