Average Error: 18.6 → 11.0
Time: 4.7s
Precision: 64
\[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
\[\begin{array}{l} \mathbf{if}\;V \cdot \ell \le -2.4434735274781182 \cdot 10^{206}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{A}{V} \cdot \frac{1}{\ell}}\\ \mathbf{elif}\;V \cdot \ell \le -1.41419940329650414 \cdot 10^{-256}:\\ \;\;\;\;c0 \cdot \sqrt{A \cdot \frac{1}{V \cdot \ell}}\\ \mathbf{elif}\;V \cdot \ell \le -0.0:\\ \;\;\;\;c0 \cdot \frac{\sqrt{A \cdot \left(1 \cdot \frac{1}{\ell}\right)}}{\sqrt{V}}\\ \mathbf{elif}\;V \cdot \ell \le 5.48202489866836828 \cdot 10^{294}:\\ \;\;\;\;c0 \cdot \frac{\sqrt{A}}{\sqrt{V \cdot \ell}}\\ \mathbf{else}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{A}{V} \cdot \frac{1}{\ell}}\\ \end{array}\]
c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\begin{array}{l}
\mathbf{if}\;V \cdot \ell \le -2.4434735274781182 \cdot 10^{206}:\\
\;\;\;\;c0 \cdot \sqrt{\frac{A}{V} \cdot \frac{1}{\ell}}\\

\mathbf{elif}\;V \cdot \ell \le -1.41419940329650414 \cdot 10^{-256}:\\
\;\;\;\;c0 \cdot \sqrt{A \cdot \frac{1}{V \cdot \ell}}\\

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

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

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

\end{array}
double f(double c0, double A, double V, double l) {
        double r147099 = c0;
        double r147100 = A;
        double r147101 = V;
        double r147102 = l;
        double r147103 = r147101 * r147102;
        double r147104 = r147100 / r147103;
        double r147105 = sqrt(r147104);
        double r147106 = r147099 * r147105;
        return r147106;
}

double f(double c0, double A, double V, double l) {
        double r147107 = V;
        double r147108 = l;
        double r147109 = r147107 * r147108;
        double r147110 = -2.4434735274781182e+206;
        bool r147111 = r147109 <= r147110;
        double r147112 = c0;
        double r147113 = A;
        double r147114 = r147113 / r147107;
        double r147115 = 1.0;
        double r147116 = r147115 / r147108;
        double r147117 = r147114 * r147116;
        double r147118 = sqrt(r147117);
        double r147119 = r147112 * r147118;
        double r147120 = -1.414199403296504e-256;
        bool r147121 = r147109 <= r147120;
        double r147122 = r147115 / r147109;
        double r147123 = r147113 * r147122;
        double r147124 = sqrt(r147123);
        double r147125 = r147112 * r147124;
        double r147126 = -0.0;
        bool r147127 = r147109 <= r147126;
        double r147128 = r147115 * r147116;
        double r147129 = r147113 * r147128;
        double r147130 = sqrt(r147129);
        double r147131 = sqrt(r147107);
        double r147132 = r147130 / r147131;
        double r147133 = r147112 * r147132;
        double r147134 = 5.482024898668368e+294;
        bool r147135 = r147109 <= r147134;
        double r147136 = sqrt(r147113);
        double r147137 = sqrt(r147109);
        double r147138 = r147136 / r147137;
        double r147139 = r147112 * r147138;
        double r147140 = r147135 ? r147139 : r147119;
        double r147141 = r147127 ? r147133 : r147140;
        double r147142 = r147121 ? r147125 : r147141;
        double r147143 = r147111 ? r147119 : r147142;
        return r147143;
}

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.4434735274781182e+206 or 5.482024898668368e+294 < (* V l)

    1. Initial program 33.9

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

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

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

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

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

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

    if -2.4434735274781182e+206 < (* V l) < -1.414199403296504e-256

    1. Initial program 8.2

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

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

    if -1.414199403296504e-256 < (* V l) < -0.0

    1. Initial program 55.9

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

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

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

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

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

      \[\leadsto c0 \cdot \sqrt{A \cdot \left(\frac{1}{V} \cdot \color{blue}{\frac{1}{\ell}}\right)}\]
    9. Using strategy rm
    10. Applied associate-*l/57.0

      \[\leadsto c0 \cdot \sqrt{A \cdot \color{blue}{\frac{1 \cdot \frac{1}{\ell}}{V}}}\]
    11. Applied associate-*r/37.3

      \[\leadsto c0 \cdot \sqrt{\color{blue}{\frac{A \cdot \left(1 \cdot \frac{1}{\ell}\right)}{V}}}\]
    12. Applied sqrt-div39.4

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

    if -0.0 < (* V l) < 5.482024898668368e+294

    1. Initial program 9.7

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;V \cdot \ell \le -2.4434735274781182 \cdot 10^{206}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{A}{V} \cdot \frac{1}{\ell}}\\ \mathbf{elif}\;V \cdot \ell \le -1.41419940329650414 \cdot 10^{-256}:\\ \;\;\;\;c0 \cdot \sqrt{A \cdot \frac{1}{V \cdot \ell}}\\ \mathbf{elif}\;V \cdot \ell \le -0.0:\\ \;\;\;\;c0 \cdot \frac{\sqrt{A \cdot \left(1 \cdot \frac{1}{\ell}\right)}}{\sqrt{V}}\\ \mathbf{elif}\;V \cdot \ell \le 5.48202489866836828 \cdot 10^{294}:\\ \;\;\;\;c0 \cdot \frac{\sqrt{A}}{\sqrt{V \cdot \ell}}\\ \mathbf{else}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{A}{V} \cdot \frac{1}{\ell}}\\ \end{array}\]

Reproduce

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