Average Error: 19.1 → 11.6
Time: 6.4s
Precision: 64
\[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
\[\begin{array}{l} \mathbf{if}\;V \cdot \ell = -\infty:\\ \;\;\;\;c0 \cdot \frac{\sqrt{\frac{\sqrt[3]{A} \cdot \sqrt[3]{A}}{V} \cdot \sqrt[3]{A}}}{\sqrt{\ell}}\\ \mathbf{elif}\;V \cdot \ell \le -1.835395593822581832332355453274066870075 \cdot 10^{-314}:\\ \;\;\;\;\left(c0 \cdot \sqrt{\sqrt{\frac{A}{V \cdot \ell}}}\right) \cdot \sqrt{\sqrt{\frac{A}{V \cdot \ell}}}\\ \mathbf{elif}\;V \cdot \ell \le 8.360333116513188518368357839765512541553 \cdot 10^{-312}:\\ \;\;\;\;c0 \cdot \left(\sqrt{\frac{\sqrt[3]{A} \cdot \sqrt[3]{A}}{V}} \cdot \sqrt{\frac{\sqrt[3]{A}}{\ell}}\right)\\ \mathbf{elif}\;V \cdot \ell \le 1.306286793967515713805092573865699780315 \cdot 10^{304}:\\ \;\;\;\;c0 \cdot \frac{\sqrt{A}}{\sqrt{V \cdot \ell}}\\ \mathbf{else}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\ \end{array}\]
c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\begin{array}{l}
\mathbf{if}\;V \cdot \ell = -\infty:\\
\;\;\;\;c0 \cdot \frac{\sqrt{\frac{\sqrt[3]{A} \cdot \sqrt[3]{A}}{V} \cdot \sqrt[3]{A}}}{\sqrt{\ell}}\\

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

\mathbf{elif}\;V \cdot \ell \le 8.360333116513188518368357839765512541553 \cdot 10^{-312}:\\
\;\;\;\;c0 \cdot \left(\sqrt{\frac{\sqrt[3]{A} \cdot \sqrt[3]{A}}{V}} \cdot \sqrt{\frac{\sqrt[3]{A}}{\ell}}\right)\\

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

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

\end{array}
double f(double c0, double A, double V, double l) {
        double r133174 = c0;
        double r133175 = A;
        double r133176 = V;
        double r133177 = l;
        double r133178 = r133176 * r133177;
        double r133179 = r133175 / r133178;
        double r133180 = sqrt(r133179);
        double r133181 = r133174 * r133180;
        return r133181;
}

double f(double c0, double A, double V, double l) {
        double r133182 = V;
        double r133183 = l;
        double r133184 = r133182 * r133183;
        double r133185 = -inf.0;
        bool r133186 = r133184 <= r133185;
        double r133187 = c0;
        double r133188 = A;
        double r133189 = cbrt(r133188);
        double r133190 = r133189 * r133189;
        double r133191 = r133190 / r133182;
        double r133192 = r133191 * r133189;
        double r133193 = sqrt(r133192);
        double r133194 = sqrt(r133183);
        double r133195 = r133193 / r133194;
        double r133196 = r133187 * r133195;
        double r133197 = -1.8353955938226e-314;
        bool r133198 = r133184 <= r133197;
        double r133199 = r133188 / r133184;
        double r133200 = sqrt(r133199);
        double r133201 = sqrt(r133200);
        double r133202 = r133187 * r133201;
        double r133203 = r133202 * r133201;
        double r133204 = 8.3603331165132e-312;
        bool r133205 = r133184 <= r133204;
        double r133206 = sqrt(r133191);
        double r133207 = r133189 / r133183;
        double r133208 = sqrt(r133207);
        double r133209 = r133206 * r133208;
        double r133210 = r133187 * r133209;
        double r133211 = 1.3062867939675157e+304;
        bool r133212 = r133184 <= r133211;
        double r133213 = sqrt(r133188);
        double r133214 = sqrt(r133184);
        double r133215 = r133213 / r133214;
        double r133216 = r133187 * r133215;
        double r133217 = r133188 / r133182;
        double r133218 = r133217 / r133183;
        double r133219 = sqrt(r133218);
        double r133220 = r133187 * r133219;
        double r133221 = r133212 ? r133216 : r133220;
        double r133222 = r133205 ? r133210 : r133221;
        double r133223 = r133198 ? r133203 : r133222;
        double r133224 = r133186 ? r133196 : r133223;
        return r133224;
}

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 5 regimes
  2. if (* V l) < -inf.0

    1. Initial program 43.2

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

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

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

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

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

    if -inf.0 < (* V l) < -1.8353955938226e-314

    1. Initial program 10.0

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

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

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

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

    if -1.8353955938226e-314 < (* V l) < 8.3603331165132e-312

    1. Initial program 62.4

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

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

      \[\leadsto c0 \cdot \sqrt{\color{blue}{\frac{\sqrt[3]{A} \cdot \sqrt[3]{A}}{V} \cdot \frac{\sqrt[3]{A}}{\ell}}}\]
    5. Using strategy rm
    6. Applied sqrt-prod40.1

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

    if 8.3603331165132e-312 < (* V l) < 1.3062867939675157e+304

    1. Initial program 10.1

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

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

    if 1.3062867939675157e+304 < (* V l)

    1. Initial program 41.4

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;V \cdot \ell = -\infty:\\ \;\;\;\;c0 \cdot \frac{\sqrt{\frac{\sqrt[3]{A} \cdot \sqrt[3]{A}}{V} \cdot \sqrt[3]{A}}}{\sqrt{\ell}}\\ \mathbf{elif}\;V \cdot \ell \le -1.835395593822581832332355453274066870075 \cdot 10^{-314}:\\ \;\;\;\;\left(c0 \cdot \sqrt{\sqrt{\frac{A}{V \cdot \ell}}}\right) \cdot \sqrt{\sqrt{\frac{A}{V \cdot \ell}}}\\ \mathbf{elif}\;V \cdot \ell \le 8.360333116513188518368357839765512541553 \cdot 10^{-312}:\\ \;\;\;\;c0 \cdot \left(\sqrt{\frac{\sqrt[3]{A} \cdot \sqrt[3]{A}}{V}} \cdot \sqrt{\frac{\sqrt[3]{A}}{\ell}}\right)\\ \mathbf{elif}\;V \cdot \ell \le 1.306286793967515713805092573865699780315 \cdot 10^{304}:\\ \;\;\;\;c0 \cdot \frac{\sqrt{A}}{\sqrt{V \cdot \ell}}\\ \mathbf{else}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{V}}{\ell}}\\ \end{array}\]

Reproduce

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