Average Error: 13.8 → 8.4
Time: 1.2m
Precision: 64
\[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
\[w0 \cdot \sqrt{1 - \frac{\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)\right) \cdot h}{\ell} \cdot \frac{M \cdot D}{2 \cdot d}}\]
w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}
w0 \cdot \sqrt{1 - \frac{\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)\right) \cdot h}{\ell} \cdot \frac{M \cdot D}{2 \cdot d}}
double f(double w0, double M, double D, double h, double l, double d) {
        double r16896251 = w0;
        double r16896252 = 1.0;
        double r16896253 = M;
        double r16896254 = D;
        double r16896255 = r16896253 * r16896254;
        double r16896256 = 2.0;
        double r16896257 = d;
        double r16896258 = r16896256 * r16896257;
        double r16896259 = r16896255 / r16896258;
        double r16896260 = pow(r16896259, r16896256);
        double r16896261 = h;
        double r16896262 = l;
        double r16896263 = r16896261 / r16896262;
        double r16896264 = r16896260 * r16896263;
        double r16896265 = r16896252 - r16896264;
        double r16896266 = sqrt(r16896265);
        double r16896267 = r16896251 * r16896266;
        return r16896267;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r16896268 = w0;
        double r16896269 = 1.0;
        double r16896270 = M;
        double r16896271 = D;
        double r16896272 = r16896270 * r16896271;
        double r16896273 = 2.0;
        double r16896274 = d;
        double r16896275 = r16896273 * r16896274;
        double r16896276 = r16896272 / r16896275;
        double r16896277 = cbrt(r16896276);
        double r16896278 = r16896277 * r16896277;
        double r16896279 = r16896277 * r16896278;
        double r16896280 = h;
        double r16896281 = r16896279 * r16896280;
        double r16896282 = l;
        double r16896283 = r16896281 / r16896282;
        double r16896284 = r16896283 * r16896276;
        double r16896285 = r16896269 - r16896284;
        double r16896286 = sqrt(r16896285);
        double r16896287 = r16896268 * r16896286;
        return r16896287;
}

Error

Bits error versus w0

Bits error versus M

Bits error versus D

Bits error versus h

Bits error versus l

Bits error versus d

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 13.8

    \[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
  2. Simplified12.2

    \[\leadsto \color{blue}{\sqrt{1 - \left(\frac{h}{\ell} \cdot \frac{M \cdot D}{2 \cdot d}\right) \cdot \frac{M \cdot D}{2 \cdot d}} \cdot w0}\]
  3. Using strategy rm
  4. Applied associate-*l/8.4

    \[\leadsto \sqrt{1 - \color{blue}{\frac{h \cdot \frac{M \cdot D}{2 \cdot d}}{\ell}} \cdot \frac{M \cdot D}{2 \cdot d}} \cdot w0\]
  5. Using strategy rm
  6. Applied add-cube-cbrt8.4

    \[\leadsto \sqrt{1 - \frac{h \cdot \color{blue}{\left(\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right) \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)}}{\ell} \cdot \frac{M \cdot D}{2 \cdot d}} \cdot w0\]
  7. Final simplification8.4

    \[\leadsto w0 \cdot \sqrt{1 - \frac{\left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \left(\sqrt[3]{\frac{M \cdot D}{2 \cdot d}} \cdot \sqrt[3]{\frac{M \cdot D}{2 \cdot d}}\right)\right) \cdot h}{\ell} \cdot \frac{M \cdot D}{2 \cdot d}}\]

Reproduce

herbie shell --seed 2019119 +o rules:numerics
(FPCore (w0 M D h l d)
  :name "Henrywood and Agarwal, Equation (9a)"
  (* w0 (sqrt (- 1 (* (pow (/ (* M D) (* 2 d)) 2) (/ h l))))))