Average Error: 13.3 → 8.2
Time: 1.7m
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{\frac{M \cdot D}{2 \cdot d} \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{\frac{M \cdot D}{2 \cdot d} \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 r32703135 = w0;
        double r32703136 = 1.0;
        double r32703137 = M;
        double r32703138 = D;
        double r32703139 = r32703137 * r32703138;
        double r32703140 = 2.0;
        double r32703141 = d;
        double r32703142 = r32703140 * r32703141;
        double r32703143 = r32703139 / r32703142;
        double r32703144 = pow(r32703143, r32703140);
        double r32703145 = h;
        double r32703146 = l;
        double r32703147 = r32703145 / r32703146;
        double r32703148 = r32703144 * r32703147;
        double r32703149 = r32703136 - r32703148;
        double r32703150 = sqrt(r32703149);
        double r32703151 = r32703135 * r32703150;
        return r32703151;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r32703152 = w0;
        double r32703153 = 1.0;
        double r32703154 = M;
        double r32703155 = D;
        double r32703156 = r32703154 * r32703155;
        double r32703157 = 2.0;
        double r32703158 = d;
        double r32703159 = r32703157 * r32703158;
        double r32703160 = r32703156 / r32703159;
        double r32703161 = h;
        double r32703162 = r32703160 * r32703161;
        double r32703163 = l;
        double r32703164 = r32703162 / r32703163;
        double r32703165 = r32703164 * r32703160;
        double r32703166 = r32703153 - r32703165;
        double r32703167 = sqrt(r32703166);
        double r32703168 = r32703152 * r32703167;
        return r32703168;
}

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

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

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

    \[\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. Final simplification8.2

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

Reproduce

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