w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\begin{array}{l}
\mathbf{if}\;\ell \le 3.4319858655868117 \cdot 10^{+19}:\\
\;\;\;\;\sqrt{1 - \frac{\frac{M \cdot D}{2 \cdot d}}{\frac{1}{h}} \cdot \frac{\frac{M \cdot D}{2 \cdot d}}{\ell}} \cdot w0\\
\mathbf{elif}\;\ell \le 1.6103340374846473 \cdot 10^{+298}:\\
\;\;\;\;w0 \cdot \sqrt{1 - \frac{\frac{\frac{M}{d} \cdot \frac{D}{2}}{\sqrt[3]{\frac{\ell}{h}}} \cdot \frac{\frac{M}{d} \cdot \frac{D}{2}}{\sqrt[3]{\frac{\ell}{h}}}}{\sqrt[3]{\frac{\ell}{h}}}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{1 - \frac{\frac{M \cdot D}{2 \cdot d}}{\frac{1}{h}} \cdot \frac{\frac{M \cdot D}{2 \cdot d}}{\ell}} \cdot w0\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r3277857 = w0;
double r3277858 = 1.0;
double r3277859 = M;
double r3277860 = D;
double r3277861 = r3277859 * r3277860;
double r3277862 = 2.0;
double r3277863 = d;
double r3277864 = r3277862 * r3277863;
double r3277865 = r3277861 / r3277864;
double r3277866 = pow(r3277865, r3277862);
double r3277867 = h;
double r3277868 = l;
double r3277869 = r3277867 / r3277868;
double r3277870 = r3277866 * r3277869;
double r3277871 = r3277858 - r3277870;
double r3277872 = sqrt(r3277871);
double r3277873 = r3277857 * r3277872;
return r3277873;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r3277874 = l;
double r3277875 = 3.4319858655868117e+19;
bool r3277876 = r3277874 <= r3277875;
double r3277877 = 1.0;
double r3277878 = M;
double r3277879 = D;
double r3277880 = r3277878 * r3277879;
double r3277881 = 2.0;
double r3277882 = d;
double r3277883 = r3277881 * r3277882;
double r3277884 = r3277880 / r3277883;
double r3277885 = h;
double r3277886 = r3277877 / r3277885;
double r3277887 = r3277884 / r3277886;
double r3277888 = r3277884 / r3277874;
double r3277889 = r3277887 * r3277888;
double r3277890 = r3277877 - r3277889;
double r3277891 = sqrt(r3277890);
double r3277892 = w0;
double r3277893 = r3277891 * r3277892;
double r3277894 = 1.6103340374846473e+298;
bool r3277895 = r3277874 <= r3277894;
double r3277896 = r3277878 / r3277882;
double r3277897 = r3277879 / r3277881;
double r3277898 = r3277896 * r3277897;
double r3277899 = r3277874 / r3277885;
double r3277900 = cbrt(r3277899);
double r3277901 = r3277898 / r3277900;
double r3277902 = r3277901 * r3277901;
double r3277903 = r3277902 / r3277900;
double r3277904 = r3277877 - r3277903;
double r3277905 = sqrt(r3277904);
double r3277906 = r3277892 * r3277905;
double r3277907 = r3277895 ? r3277906 : r3277893;
double r3277908 = r3277876 ? r3277893 : r3277907;
return r3277908;
}



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
if l < 3.4319858655868117e+19 or 1.6103340374846473e+298 < l Initial program 15.0
Simplified14.4
rmApplied div-inv14.4
Applied times-frac8.8
rmApplied *-un-lft-identity8.8
if 3.4319858655868117e+19 < l < 1.6103340374846473e+298Initial program 9.5
Simplified9.5
rmApplied add-cube-cbrt9.5
Applied associate-/r*9.5
Simplified7.9
Final simplification8.5
herbie shell --seed 2019134 +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))))))