w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\begin{array}{l}
\mathbf{if}\;\frac{M \cdot D}{2 \cdot d} = -\infty:\\
\;\;\;\;w0 \cdot \sqrt{1 - \left({\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{2} \cdot \frac{\sqrt[3]{h} \cdot \sqrt[3]{h}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right) \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}}\\
\mathbf{elif}\;\frac{M \cdot D}{2 \cdot d} \le -2.459544082082623877126440069328057953432 \cdot 10^{-105} \lor \neg \left(\frac{M \cdot D}{2 \cdot d} \le 2.475593378518339803291364317838566404249 \cdot 10^{-226}\right):\\
\;\;\;\;w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{h}{\ell}\right)}\\
\mathbf{else}:\\
\;\;\;\;w0 \cdot \sqrt{1}\\
\end{array}double f(double w0, double M, double D, double h, double l, double d) {
double r182821 = w0;
double r182822 = 1.0;
double r182823 = M;
double r182824 = D;
double r182825 = r182823 * r182824;
double r182826 = 2.0;
double r182827 = d;
double r182828 = r182826 * r182827;
double r182829 = r182825 / r182828;
double r182830 = pow(r182829, r182826);
double r182831 = h;
double r182832 = l;
double r182833 = r182831 / r182832;
double r182834 = r182830 * r182833;
double r182835 = r182822 - r182834;
double r182836 = sqrt(r182835);
double r182837 = r182821 * r182836;
return r182837;
}
double f(double w0, double M, double D, double h, double l, double d) {
double r182838 = M;
double r182839 = D;
double r182840 = r182838 * r182839;
double r182841 = 2.0;
double r182842 = d;
double r182843 = r182841 * r182842;
double r182844 = r182840 / r182843;
double r182845 = -inf.0;
bool r182846 = r182844 <= r182845;
double r182847 = w0;
double r182848 = 1.0;
double r182849 = r182843 / r182839;
double r182850 = r182838 / r182849;
double r182851 = pow(r182850, r182841);
double r182852 = h;
double r182853 = cbrt(r182852);
double r182854 = r182853 * r182853;
double r182855 = l;
double r182856 = cbrt(r182855);
double r182857 = r182856 * r182856;
double r182858 = r182854 / r182857;
double r182859 = r182851 * r182858;
double r182860 = r182853 / r182856;
double r182861 = r182859 * r182860;
double r182862 = r182848 - r182861;
double r182863 = sqrt(r182862);
double r182864 = r182847 * r182863;
double r182865 = -2.459544082082624e-105;
bool r182866 = r182844 <= r182865;
double r182867 = 2.4755933785183398e-226;
bool r182868 = r182844 <= r182867;
double r182869 = !r182868;
bool r182870 = r182866 || r182869;
double r182871 = 2.0;
double r182872 = r182841 / r182871;
double r182873 = pow(r182844, r182872);
double r182874 = r182852 / r182855;
double r182875 = r182873 * r182874;
double r182876 = r182873 * r182875;
double r182877 = r182848 - r182876;
double r182878 = sqrt(r182877);
double r182879 = r182847 * r182878;
double r182880 = sqrt(r182848);
double r182881 = r182847 * r182880;
double r182882 = r182870 ? r182879 : r182881;
double r182883 = r182846 ? r182864 : r182882;
return r182883;
}



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 (/ (* M D) (* 2.0 d)) < -inf.0Initial program 64.0
rmApplied add-cube-cbrt64.0
Applied add-cube-cbrt64.0
Applied times-frac64.0
Applied associate-*r*64.0
rmApplied associate-/l*56.3
if -inf.0 < (/ (* M D) (* 2.0 d)) < -2.459544082082624e-105 or 2.4755933785183398e-226 < (/ (* M D) (* 2.0 d)) Initial program 17.3
rmApplied sqr-pow17.3
Applied associate-*l*14.3
if -2.459544082082624e-105 < (/ (* M D) (* 2.0 d)) < 2.4755933785183398e-226Initial program 7.5
Taylor expanded around 0 1.0
Final simplification9.1
herbie shell --seed 2019323
(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))))))