Average Error: 14.0 → 10.5
Time: 11.1s
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{1}{\frac{\frac{\ell}{{\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{\left(2 \cdot \frac{2}{2}\right)}}}{h}}}\]
w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}
w0 \cdot \sqrt{1 - \frac{1}{\frac{\frac{\ell}{{\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{\left(2 \cdot \frac{2}{2}\right)}}}{h}}}
double f(double w0, double M, double D, double h, double l, double d) {
        double r195791 = w0;
        double r195792 = 1.0;
        double r195793 = M;
        double r195794 = D;
        double r195795 = r195793 * r195794;
        double r195796 = 2.0;
        double r195797 = d;
        double r195798 = r195796 * r195797;
        double r195799 = r195795 / r195798;
        double r195800 = pow(r195799, r195796);
        double r195801 = h;
        double r195802 = l;
        double r195803 = r195801 / r195802;
        double r195804 = r195800 * r195803;
        double r195805 = r195792 - r195804;
        double r195806 = sqrt(r195805);
        double r195807 = r195791 * r195806;
        return r195807;
}

double f(double w0, double M, double D, double h, double l, double d) {
        double r195808 = w0;
        double r195809 = 1.0;
        double r195810 = 1.0;
        double r195811 = l;
        double r195812 = M;
        double r195813 = 2.0;
        double r195814 = r195812 / r195813;
        double r195815 = D;
        double r195816 = d;
        double r195817 = r195815 / r195816;
        double r195818 = r195814 * r195817;
        double r195819 = 2.0;
        double r195820 = r195813 / r195819;
        double r195821 = r195819 * r195820;
        double r195822 = pow(r195818, r195821);
        double r195823 = r195811 / r195822;
        double r195824 = h;
        double r195825 = r195823 / r195824;
        double r195826 = r195810 / r195825;
        double r195827 = r195809 - r195826;
        double r195828 = sqrt(r195827);
        double r195829 = r195808 * r195828;
        return r195829;
}

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 14.0

    \[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
  2. Using strategy rm
  3. Applied associate-*r/10.5

    \[\leadsto w0 \cdot \sqrt{1 - \color{blue}{\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h}{\ell}}}\]
  4. Using strategy rm
  5. Applied times-frac10.5

    \[\leadsto w0 \cdot \sqrt{1 - \frac{{\color{blue}{\left(\frac{M}{2} \cdot \frac{D}{d}\right)}}^{2} \cdot h}{\ell}}\]
  6. Using strategy rm
  7. Applied sqr-pow10.5

    \[\leadsto w0 \cdot \sqrt{1 - \frac{\color{blue}{\left({\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{\left(\frac{2}{2}\right)}\right)} \cdot h}{\ell}}\]
  8. Applied associate-*l*8.9

    \[\leadsto w0 \cdot \sqrt{1 - \frac{\color{blue}{{\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right)}}{\ell}}\]
  9. Using strategy rm
  10. Applied clear-num8.9

    \[\leadsto w0 \cdot \sqrt{1 - \color{blue}{\frac{1}{\frac{\ell}{{\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{\left(\frac{2}{2}\right)} \cdot h\right)}}}}\]
  11. Simplified10.5

    \[\leadsto w0 \cdot \sqrt{1 - \frac{1}{\color{blue}{\frac{\frac{\ell}{{\left(\frac{M}{2} \cdot \frac{D}{d}\right)}^{\left(2 \cdot \frac{2}{2}\right)}}}{h}}}}\]
  12. Final simplification10.5

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

Reproduce

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