Average Error: 13.8 → 8.4
Time: 2.0m
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{h}{\frac{\ell}{\frac{M \cdot D}{d \cdot 2}}} \cdot \frac{M \cdot D}{d \cdot 2}}\]
double f(double w0, double M, double D, double h, double l, double d) {
        double r32063570 = w0;
        double r32063571 = 1.0;
        double r32063572 = M;
        double r32063573 = D;
        double r32063574 = r32063572 * r32063573;
        double r32063575 = 2.0;
        double r32063576 = d;
        double r32063577 = r32063575 * r32063576;
        double r32063578 = r32063574 / r32063577;
        double r32063579 = pow(r32063578, r32063575);
        double r32063580 = h;
        double r32063581 = l;
        double r32063582 = r32063580 / r32063581;
        double r32063583 = r32063579 * r32063582;
        double r32063584 = r32063571 - r32063583;
        double r32063585 = sqrt(r32063584);
        double r32063586 = r32063570 * r32063585;
        return r32063586;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r32063587 = w0;
        double r32063588 = 1.0;
        double r32063589 = h;
        double r32063590 = l;
        double r32063591 = M;
        double r32063592 = D;
        double r32063593 = r32063591 * r32063592;
        double r32063594 = d;
        double r32063595 = 2.0;
        double r32063596 = r32063594 * r32063595;
        double r32063597 = r32063593 / r32063596;
        double r32063598 = r32063590 / r32063597;
        double r32063599 = r32063589 / r32063598;
        double r32063600 = r32063599 * r32063597;
        double r32063601 = r32063588 - r32063600;
        double r32063602 = sqrt(r32063601);
        double r32063603 = r32063587 * r32063602;
        return r32063603;
}

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

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

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

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

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

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

Reproduce

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