Average Error: 13.4 → 9.1
Time: 2.5m
Precision: 64
\[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
\[\sqrt{1 - \frac{\frac{M \cdot D}{2 \cdot d} \cdot h}{\ell} \cdot \frac{M}{\frac{2 \cdot d}{D}}} \cdot w0\]
w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}
\sqrt{1 - \frac{\frac{M \cdot D}{2 \cdot d} \cdot h}{\ell} \cdot \frac{M}{\frac{2 \cdot d}{D}}} \cdot w0
double f(double w0, double M, double D, double h, double l, double d) {
        double r48970291 = w0;
        double r48970292 = 1.0;
        double r48970293 = M;
        double r48970294 = D;
        double r48970295 = r48970293 * r48970294;
        double r48970296 = 2.0;
        double r48970297 = d;
        double r48970298 = r48970296 * r48970297;
        double r48970299 = r48970295 / r48970298;
        double r48970300 = pow(r48970299, r48970296);
        double r48970301 = h;
        double r48970302 = l;
        double r48970303 = r48970301 / r48970302;
        double r48970304 = r48970300 * r48970303;
        double r48970305 = r48970292 - r48970304;
        double r48970306 = sqrt(r48970305);
        double r48970307 = r48970291 * r48970306;
        return r48970307;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r48970308 = 1.0;
        double r48970309 = M;
        double r48970310 = D;
        double r48970311 = r48970309 * r48970310;
        double r48970312 = 2.0;
        double r48970313 = d;
        double r48970314 = r48970312 * r48970313;
        double r48970315 = r48970311 / r48970314;
        double r48970316 = h;
        double r48970317 = r48970315 * r48970316;
        double r48970318 = l;
        double r48970319 = r48970317 / r48970318;
        double r48970320 = r48970314 / r48970310;
        double r48970321 = r48970309 / r48970320;
        double r48970322 = r48970319 * r48970321;
        double r48970323 = r48970308 - r48970322;
        double r48970324 = sqrt(r48970323);
        double r48970325 = w0;
        double r48970326 = r48970324 * r48970325;
        return r48970326;
}

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.4

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

    \[\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.3

    \[\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 associate-/l*9.1

    \[\leadsto \sqrt{1 - \frac{h \cdot \frac{M \cdot D}{2 \cdot d}}{\ell} \cdot \color{blue}{\frac{M}{\frac{2 \cdot d}{D}}}} \cdot w0\]
  7. Final simplification9.1

    \[\leadsto \sqrt{1 - \frac{\frac{M \cdot D}{2 \cdot d} \cdot h}{\ell} \cdot \frac{M}{\frac{2 \cdot d}{D}}} \cdot w0\]

Reproduce

herbie shell --seed 2019128 +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))))))