\left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\begin{array}{l}
\mathbf{if}\;\ell \le -4.824389863243856874428581165129592262042 \cdot 10^{-22}:\\
\;\;\;\;\left({\left(\frac{1}{\sqrt[3]{h} \cdot \sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(\left({\left(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{\sqrt[3]{d}}{\sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left({\left(\frac{1}{\sqrt[3]{h} \cdot \sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left({\left(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{\sqrt[3]{d}}{\sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)}\right)\right) \cdot \left(1 - \frac{\left(\frac{1}{2} \cdot {\left(\frac{M}{\frac{2 \cdot d}{D}}\right)}^{2}\right) \cdot h}{\ell}\right)\\
\end{array}double f(double d, double h, double l, double M, double D) {
double r191611 = d;
double r191612 = h;
double r191613 = r191611 / r191612;
double r191614 = 1.0;
double r191615 = 2.0;
double r191616 = r191614 / r191615;
double r191617 = pow(r191613, r191616);
double r191618 = l;
double r191619 = r191611 / r191618;
double r191620 = pow(r191619, r191616);
double r191621 = r191617 * r191620;
double r191622 = M;
double r191623 = D;
double r191624 = r191622 * r191623;
double r191625 = r191615 * r191611;
double r191626 = r191624 / r191625;
double r191627 = pow(r191626, r191615);
double r191628 = r191616 * r191627;
double r191629 = r191612 / r191618;
double r191630 = r191628 * r191629;
double r191631 = r191614 - r191630;
double r191632 = r191621 * r191631;
return r191632;
}
double f(double d, double h, double l, double M, double D) {
double r191633 = l;
double r191634 = -4.824389863243857e-22;
bool r191635 = r191633 <= r191634;
double r191636 = 1.0;
double r191637 = h;
double r191638 = cbrt(r191637);
double r191639 = r191638 * r191638;
double r191640 = r191636 / r191639;
double r191641 = 1.0;
double r191642 = 2.0;
double r191643 = r191641 / r191642;
double r191644 = pow(r191640, r191643);
double r191645 = d;
double r191646 = r191645 / r191638;
double r191647 = pow(r191646, r191643);
double r191648 = r191644 * r191647;
double r191649 = cbrt(r191645);
double r191650 = r191649 * r191649;
double r191651 = cbrt(r191633);
double r191652 = r191651 * r191651;
double r191653 = r191650 / r191652;
double r191654 = pow(r191653, r191643);
double r191655 = r191649 / r191651;
double r191656 = pow(r191655, r191643);
double r191657 = r191654 * r191656;
double r191658 = M;
double r191659 = D;
double r191660 = r191658 * r191659;
double r191661 = r191642 * r191645;
double r191662 = r191660 / r191661;
double r191663 = pow(r191662, r191642);
double r191664 = r191643 * r191663;
double r191665 = r191637 / r191633;
double r191666 = r191664 * r191665;
double r191667 = r191641 - r191666;
double r191668 = r191657 * r191667;
double r191669 = r191648 * r191668;
double r191670 = r191648 * r191657;
double r191671 = r191661 / r191659;
double r191672 = r191658 / r191671;
double r191673 = pow(r191672, r191642);
double r191674 = r191643 * r191673;
double r191675 = r191674 * r191637;
double r191676 = r191675 / r191633;
double r191677 = r191641 - r191676;
double r191678 = r191670 * r191677;
double r191679 = r191635 ? r191669 : r191678;
return r191679;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
if l < -4.824389863243857e-22Initial program 24.9
rmApplied add-cube-cbrt25.1
Applied *-un-lft-identity25.1
Applied times-frac25.1
Applied unpow-prod-down19.2
rmApplied add-cube-cbrt19.3
Applied add-cube-cbrt19.4
Applied times-frac19.4
Applied unpow-prod-down16.0
rmApplied associate-*l*15.4
if -4.824389863243857e-22 < l Initial program 27.0
rmApplied add-cube-cbrt27.3
Applied *-un-lft-identity27.3
Applied times-frac27.3
Applied unpow-prod-down22.7
rmApplied add-cube-cbrt22.9
Applied add-cube-cbrt23.0
Applied times-frac23.0
Applied unpow-prod-down18.6
rmApplied associate-*r/14.2
rmApplied associate-/l*14.7
Final simplification14.9
herbie shell --seed 2019350
(FPCore (d h l M D)
:name "Henrywood and Agarwal, Equation (12)"
:precision binary64
(* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))))