Average Error: 18.8 → 11.9
Time: 4.1s
Precision: 64
\[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
\[\begin{array}{l} \mathbf{if}\;V \le 4.2430377227665696 \cdot 10^{-289}:\\ \;\;\;\;\sqrt{\frac{A}{V \cdot \ell}} \cdot c0\\ \mathbf{else}:\\ \;\;\;\;\left(\left|\frac{\sqrt[3]{A}}{{V}^{\frac{1}{2}}}\right| \cdot \sqrt{\frac{\sqrt[3]{A}}{\ell}}\right) \cdot c0\\ \end{array}\]
c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\begin{array}{l}
\mathbf{if}\;V \le 4.2430377227665696 \cdot 10^{-289}:\\
\;\;\;\;\sqrt{\frac{A}{V \cdot \ell}} \cdot c0\\

\mathbf{else}:\\
\;\;\;\;\left(\left|\frac{\sqrt[3]{A}}{{V}^{\frac{1}{2}}}\right| \cdot \sqrt{\frac{\sqrt[3]{A}}{\ell}}\right) \cdot c0\\

\end{array}
double f(double c0, double A, double V, double l) {
        double r157153 = c0;
        double r157154 = A;
        double r157155 = V;
        double r157156 = l;
        double r157157 = r157155 * r157156;
        double r157158 = r157154 / r157157;
        double r157159 = sqrt(r157158);
        double r157160 = r157153 * r157159;
        return r157160;
}

double f(double c0, double A, double V, double l) {
        double r157161 = V;
        double r157162 = 4.24303772276657e-289;
        bool r157163 = r157161 <= r157162;
        double r157164 = A;
        double r157165 = l;
        double r157166 = r157161 * r157165;
        double r157167 = r157164 / r157166;
        double r157168 = sqrt(r157167);
        double r157169 = c0;
        double r157170 = r157168 * r157169;
        double r157171 = cbrt(r157164);
        double r157172 = 0.5;
        double r157173 = pow(r157161, r157172);
        double r157174 = r157171 / r157173;
        double r157175 = fabs(r157174);
        double r157176 = r157171 / r157165;
        double r157177 = sqrt(r157176);
        double r157178 = r157175 * r157177;
        double r157179 = r157178 * r157169;
        double r157180 = r157163 ? r157170 : r157179;
        return r157180;
}

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 2 regimes
  2. if V < 4.24303772276657e-289

    1. Initial program 19.1

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

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

    if 4.24303772276657e-289 < V

    1. Initial program 18.5

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

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

      \[\leadsto \sqrt{\frac{\color{blue}{\left(\sqrt[3]{A} \cdot \sqrt[3]{A}\right) \cdot \sqrt[3]{A}}}{V \cdot \ell}} \cdot c0\]
    6. Applied times-frac17.7

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

      \[\leadsto \color{blue}{\left(\sqrt{\frac{\sqrt[3]{A} \cdot \sqrt[3]{A}}{V}} \cdot \sqrt{\frac{\sqrt[3]{A}}{\ell}}\right)} \cdot c0\]
    8. Simplified4.5

      \[\leadsto \left(\color{blue}{\left|\frac{\sqrt[3]{A}}{{V}^{\frac{1}{2}}}\right|} \cdot \sqrt{\frac{\sqrt[3]{A}}{\ell}}\right) \cdot c0\]
  3. Recombined 2 regimes into one program.
  4. Final simplification11.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;V \le 4.2430377227665696 \cdot 10^{-289}:\\ \;\;\;\;\sqrt{\frac{A}{V \cdot \ell}} \cdot c0\\ \mathbf{else}:\\ \;\;\;\;\left(\left|\frac{\sqrt[3]{A}}{{V}^{\frac{1}{2}}}\right| \cdot \sqrt{\frac{\sqrt[3]{A}}{\ell}}\right) \cdot c0\\ \end{array}\]

Reproduce

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