w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\sqrt{1 - \frac{1}{\frac{\ell}{\frac{\frac{M \cdot D}{2}}{d}}} \cdot \frac{\frac{\frac{M \cdot D}{2}}{d}}{\frac{1}{h}}} \cdot w0double f(double w0, double M, double D, double h, double l, double d) {
double r4640569 = w0;
double r4640570 = 1.0;
double r4640571 = M;
double r4640572 = D;
double r4640573 = r4640571 * r4640572;
double r4640574 = 2.0;
double r4640575 = d;
double r4640576 = r4640574 * r4640575;
double r4640577 = r4640573 / r4640576;
double r4640578 = pow(r4640577, r4640574);
double r4640579 = h;
double r4640580 = l;
double r4640581 = r4640579 / r4640580;
double r4640582 = r4640578 * r4640581;
double r4640583 = r4640570 - r4640582;
double r4640584 = sqrt(r4640583);
double r4640585 = r4640569 * r4640584;
return r4640585;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r4640586 = 1.0;
double r4640587 = l;
double r4640588 = M;
double r4640589 = D;
double r4640590 = r4640588 * r4640589;
double r4640591 = 2.0;
double r4640592 = r4640590 / r4640591;
double r4640593 = d;
double r4640594 = r4640592 / r4640593;
double r4640595 = r4640587 / r4640594;
double r4640596 = r4640586 / r4640595;
double r4640597 = h;
double r4640598 = r4640586 / r4640597;
double r4640599 = r4640594 / r4640598;
double r4640600 = r4640596 * r4640599;
double r4640601 = r4640586 - r4640600;
double r4640602 = sqrt(r4640601);
double r4640603 = w0;
double r4640604 = r4640602 * r4640603;
return r4640604;
}



Bits error versus w0



Bits error versus M



Bits error versus D



Bits error versus h



Bits error versus l



Bits error versus d
Results
Initial program 13.5
Simplified13.0
rmApplied div-inv13.0
Applied times-frac8.3
rmApplied clear-num8.3
Final simplification8.3
herbie shell --seed 2019164 +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))))))