\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}\;\left(1 - \frac{h}{\ell} \cdot \left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{1}{2}\right)\right) \cdot \left({\left(\frac{d}{\ell}\right)}^{\frac{1}{2}} \cdot {\left(\frac{d}{h}\right)}^{\frac{1}{2}}\right) \le -7.41627020524322 \cdot 10^{-12}:\\
\;\;\;\;\left(\left(\sqrt{\frac{d}{\sqrt[3]{h}}} \cdot \sqrt{\frac{1}{\sqrt[3]{h} \cdot \sqrt[3]{h}}}\right) \cdot \left(\sqrt{\frac{\frac{1}{\sqrt[3]{\ell}}}{\sqrt[3]{\ell}}} \cdot \sqrt{\frac{d}{\sqrt[3]{\ell}}}\right)\right) \cdot \left(1 - \frac{\left(\frac{M}{\frac{2}{\frac{D}{d}}} \cdot h\right) \cdot \frac{M}{\frac{2}{\frac{D}{d}}}}{\ell \cdot 2}\right)\\
\mathbf{elif}\;\left(1 - \frac{h}{\ell} \cdot \left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{1}{2}\right)\right) \cdot \left({\left(\frac{d}{\ell}\right)}^{\frac{1}{2}} \cdot {\left(\frac{d}{h}\right)}^{\frac{1}{2}}\right) \le 0.0:\\
\;\;\;\;\left(\sqrt{\frac{d}{\sqrt[3]{h}}} \cdot \sqrt{\frac{1}{\sqrt[3]{h} \cdot \sqrt[3]{h}}}\right) \cdot \left(\left(\frac{h}{\ell} \cdot \left(\left(\frac{M}{\frac{2}{\frac{D}{d}}} \cdot \frac{M}{\frac{2}{\frac{D}{d}}}\right) \cdot \frac{-1}{2}\right)\right) \cdot \left(\sqrt{\frac{\frac{1}{\sqrt[3]{\ell}}}{\sqrt[3]{\ell}}} \cdot \sqrt{\frac{d}{\sqrt[3]{\ell}}}\right)\right) + \left(\sqrt{\frac{d}{\sqrt[3]{h}}} \cdot \sqrt{\frac{1}{\sqrt[3]{h} \cdot \sqrt[3]{h}}}\right) \cdot \left(\sqrt{\frac{\frac{1}{\sqrt[3]{\ell}}}{\sqrt[3]{\ell}}} \cdot \sqrt{\frac{d}{\sqrt[3]{\ell}}}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\sqrt{\frac{d}{\sqrt[3]{h}}} \cdot \sqrt{\frac{1}{\sqrt[3]{h} \cdot \sqrt[3]{h}}}\right) \cdot \left(\sqrt{\frac{\frac{1}{\sqrt[3]{\ell}}}{\sqrt[3]{\ell}}} \cdot \sqrt{\frac{d}{\sqrt[3]{\ell}}}\right)\right) \cdot \left(1 - \frac{\left(\frac{M}{\frac{2}{\frac{D}{d}}} \cdot h\right) \cdot \frac{M}{\frac{2}{\frac{D}{d}}}}{\ell \cdot 2}\right)\\
\end{array}double f(double d, double h, double l, double M, double D) {
double r4207100 = d;
double r4207101 = h;
double r4207102 = r4207100 / r4207101;
double r4207103 = 1.0;
double r4207104 = 2.0;
double r4207105 = r4207103 / r4207104;
double r4207106 = pow(r4207102, r4207105);
double r4207107 = l;
double r4207108 = r4207100 / r4207107;
double r4207109 = pow(r4207108, r4207105);
double r4207110 = r4207106 * r4207109;
double r4207111 = M;
double r4207112 = D;
double r4207113 = r4207111 * r4207112;
double r4207114 = r4207104 * r4207100;
double r4207115 = r4207113 / r4207114;
double r4207116 = pow(r4207115, r4207104);
double r4207117 = r4207105 * r4207116;
double r4207118 = r4207101 / r4207107;
double r4207119 = r4207117 * r4207118;
double r4207120 = r4207103 - r4207119;
double r4207121 = r4207110 * r4207120;
return r4207121;
}
double f(double d, double h, double l, double M, double D) {
double r4207122 = 1.0;
double r4207123 = h;
double r4207124 = l;
double r4207125 = r4207123 / r4207124;
double r4207126 = M;
double r4207127 = D;
double r4207128 = r4207126 * r4207127;
double r4207129 = 2.0;
double r4207130 = d;
double r4207131 = r4207129 * r4207130;
double r4207132 = r4207128 / r4207131;
double r4207133 = pow(r4207132, r4207129);
double r4207134 = 0.5;
double r4207135 = r4207133 * r4207134;
double r4207136 = r4207125 * r4207135;
double r4207137 = r4207122 - r4207136;
double r4207138 = r4207130 / r4207124;
double r4207139 = pow(r4207138, r4207134);
double r4207140 = r4207130 / r4207123;
double r4207141 = pow(r4207140, r4207134);
double r4207142 = r4207139 * r4207141;
double r4207143 = r4207137 * r4207142;
double r4207144 = -7.41627020524322e-12;
bool r4207145 = r4207143 <= r4207144;
double r4207146 = cbrt(r4207123);
double r4207147 = r4207130 / r4207146;
double r4207148 = sqrt(r4207147);
double r4207149 = r4207146 * r4207146;
double r4207150 = r4207122 / r4207149;
double r4207151 = sqrt(r4207150);
double r4207152 = r4207148 * r4207151;
double r4207153 = cbrt(r4207124);
double r4207154 = r4207122 / r4207153;
double r4207155 = r4207154 / r4207153;
double r4207156 = sqrt(r4207155);
double r4207157 = r4207130 / r4207153;
double r4207158 = sqrt(r4207157);
double r4207159 = r4207156 * r4207158;
double r4207160 = r4207152 * r4207159;
double r4207161 = r4207127 / r4207130;
double r4207162 = r4207129 / r4207161;
double r4207163 = r4207126 / r4207162;
double r4207164 = r4207163 * r4207123;
double r4207165 = r4207164 * r4207163;
double r4207166 = r4207124 * r4207129;
double r4207167 = r4207165 / r4207166;
double r4207168 = r4207122 - r4207167;
double r4207169 = r4207160 * r4207168;
double r4207170 = 0.0;
bool r4207171 = r4207143 <= r4207170;
double r4207172 = r4207163 * r4207163;
double r4207173 = -0.5;
double r4207174 = r4207172 * r4207173;
double r4207175 = r4207125 * r4207174;
double r4207176 = r4207175 * r4207159;
double r4207177 = r4207152 * r4207176;
double r4207178 = r4207177 + r4207160;
double r4207179 = r4207171 ? r4207178 : r4207169;
double r4207180 = r4207145 ? r4207169 : r4207179;
return r4207180;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
if (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))) < -7.41627020524322e-12 or 0.0 < (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))) Initial program 24.4
rmApplied add-cube-cbrt24.7
Applied *-un-lft-identity24.7
Applied times-frac24.7
Applied unpow-prod-down19.7
Simplified19.7
Simplified19.7
rmApplied add-cube-cbrt19.8
Applied *-un-lft-identity19.8
Applied times-frac19.8
Applied unpow-prod-down18.2
Simplified18.2
Simplified18.2
rmApplied associate-*l/18.2
Applied frac-times15.1
Simplified15.5
rmApplied associate-*r*13.4
if -7.41627020524322e-12 < (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))) < 0.0Initial program 33.5
rmApplied add-cube-cbrt33.5
Applied *-un-lft-identity33.5
Applied times-frac33.5
Applied unpow-prod-down27.9
Simplified27.9
Simplified27.9
rmApplied add-cube-cbrt28.0
Applied *-un-lft-identity28.0
Applied times-frac28.0
Applied unpow-prod-down9.2
Simplified9.2
Simplified9.2
rmApplied sub-neg9.2
Applied distribute-lft-in9.2
Simplified8.4
Final simplification12.8
herbie shell --seed 2019156
(FPCore (d h l M D)
:name "Henrywood and Agarwal, Equation (12)"
(* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))))