Average Error: 19.4 → 13.1
Time: 4.8s
Precision: 64
\[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
\[\begin{array}{l} \mathbf{if}\;V \cdot \ell \le -1.14673 \cdot 10^{-320}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{1}{\frac{V \cdot \ell}{A}}}\\ \mathbf{elif}\;V \cdot \ell \le 6.8146969 \cdot 10^{-319}:\\ \;\;\;\;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 4.41241756282401563 \cdot 10^{295}:\\ \;\;\;\;c0 \cdot \frac{\sqrt{A}}{\sqrt{V \cdot \ell}}\\ \mathbf{else}:\\ \;\;\;\;c0 \cdot \left(\sqrt{\frac{1}{V}} \cdot \sqrt{\frac{A}{\ell}}\right)\\ \end{array}\]
c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\begin{array}{l}
\mathbf{if}\;V \cdot \ell \le -1.14673 \cdot 10^{-320}:\\
\;\;\;\;c0 \cdot \sqrt{\frac{1}{\frac{V \cdot \ell}{A}}}\\

\mathbf{elif}\;V \cdot \ell \le 6.8146969 \cdot 10^{-319}:\\
\;\;\;\;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 4.41241756282401563 \cdot 10^{295}:\\
\;\;\;\;c0 \cdot \frac{\sqrt{A}}{\sqrt{V \cdot \ell}}\\

\mathbf{else}:\\
\;\;\;\;c0 \cdot \left(\sqrt{\frac{1}{V}} \cdot \sqrt{\frac{A}{\ell}}\right)\\

\end{array}
double f(double c0, double A, double V, double l) {
        double r192580 = c0;
        double r192581 = A;
        double r192582 = V;
        double r192583 = l;
        double r192584 = r192582 * r192583;
        double r192585 = r192581 / r192584;
        double r192586 = sqrt(r192585);
        double r192587 = r192580 * r192586;
        return r192587;
}

double f(double c0, double A, double V, double l) {
        double r192588 = V;
        double r192589 = l;
        double r192590 = r192588 * r192589;
        double r192591 = -1.1467263639975e-320;
        bool r192592 = r192590 <= r192591;
        double r192593 = c0;
        double r192594 = 1.0;
        double r192595 = A;
        double r192596 = r192590 / r192595;
        double r192597 = r192594 / r192596;
        double r192598 = sqrt(r192597);
        double r192599 = r192593 * r192598;
        double r192600 = 6.8146968596529e-319;
        bool r192601 = r192590 <= r192600;
        double r192602 = cbrt(r192595);
        double r192603 = r192602 * r192602;
        double r192604 = r192603 / r192588;
        double r192605 = sqrt(r192604);
        double r192606 = r192602 / r192589;
        double r192607 = sqrt(r192606);
        double r192608 = r192605 * r192607;
        double r192609 = r192593 * r192608;
        double r192610 = 4.412417562824016e+295;
        bool r192611 = r192590 <= r192610;
        double r192612 = sqrt(r192595);
        double r192613 = sqrt(r192590);
        double r192614 = r192612 / r192613;
        double r192615 = r192593 * r192614;
        double r192616 = r192594 / r192588;
        double r192617 = sqrt(r192616);
        double r192618 = r192595 / r192589;
        double r192619 = sqrt(r192618);
        double r192620 = r192617 * r192619;
        double r192621 = r192593 * r192620;
        double r192622 = r192611 ? r192615 : r192621;
        double r192623 = r192601 ? r192609 : r192622;
        double r192624 = r192592 ? r192599 : r192623;
        return r192624;
}

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) < -1.1467263639975e-320

    1. Initial program 14.6

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

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

    if -1.1467263639975e-320 < (* V l) < 6.8146968596529e-319

    1. Initial program 63.5

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

      \[\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-frac39.4

      \[\leadsto c0 \cdot \sqrt{\color{blue}{\frac{\sqrt[3]{A} \cdot \sqrt[3]{A}}{V} \cdot \frac{\sqrt[3]{A}}{\ell}}}\]
    5. Applied sqrt-prod39.5

      \[\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 6.8146968596529e-319 < (* V l) < 4.412417562824016e+295

    1. Initial program 10.7

      \[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}}}\]

    if 4.412417562824016e+295 < (* V l)

    1. Initial program 39.8

      \[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity39.8

      \[\leadsto c0 \cdot \sqrt{\frac{\color{blue}{1 \cdot A}}{V \cdot \ell}}\]
    4. Applied times-frac23.8

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;V \cdot \ell \le -1.14673 \cdot 10^{-320}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{1}{\frac{V \cdot \ell}{A}}}\\ \mathbf{elif}\;V \cdot \ell \le 6.8146969 \cdot 10^{-319}:\\ \;\;\;\;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 4.41241756282401563 \cdot 10^{295}:\\ \;\;\;\;c0 \cdot \frac{\sqrt{A}}{\sqrt{V \cdot \ell}}\\ \mathbf{else}:\\ \;\;\;\;c0 \cdot \left(\sqrt{\frac{1}{V}} \cdot \sqrt{\frac{A}{\ell}}\right)\\ \end{array}\]

Reproduce

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