\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}\;M \cdot D \le -9.245315613590049790887576834522785452706 \cdot 10^{-157}:\\
\;\;\;\;\left(\left({\left(\frac{d}{\sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{1}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \frac{h}{\ell} \cdot \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{d \cdot 2}\right)}^{2}\right)\right)\right) \cdot \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)\\
\mathbf{elif}\;M \cdot D \le 4.549166989006167360998813878732388929493 \cdot 10^{-10}:\\
\;\;\;\;\left(1 - \left(\left(\frac{1}{2} \cdot {\left(\frac{M}{\frac{d \cdot 2}{D}}\right)}^{2}\right) \cdot h\right) \cdot \frac{1}{\ell}\right) \cdot \left(\left({\left(\frac{d}{\sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{1}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \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)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left({\left(\frac{d}{\sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{1}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \frac{h}{\ell} \cdot \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{d \cdot 2}\right)}^{2}\right)\right)\right) \cdot \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)\\
\end{array}double f(double d, double h, double l, double M, double D) {
double r6816120 = d;
double r6816121 = h;
double r6816122 = r6816120 / r6816121;
double r6816123 = 1.0;
double r6816124 = 2.0;
double r6816125 = r6816123 / r6816124;
double r6816126 = pow(r6816122, r6816125);
double r6816127 = l;
double r6816128 = r6816120 / r6816127;
double r6816129 = pow(r6816128, r6816125);
double r6816130 = r6816126 * r6816129;
double r6816131 = M;
double r6816132 = D;
double r6816133 = r6816131 * r6816132;
double r6816134 = r6816124 * r6816120;
double r6816135 = r6816133 / r6816134;
double r6816136 = pow(r6816135, r6816124);
double r6816137 = r6816125 * r6816136;
double r6816138 = r6816121 / r6816127;
double r6816139 = r6816137 * r6816138;
double r6816140 = r6816123 - r6816139;
double r6816141 = r6816130 * r6816140;
return r6816141;
}
double f(double d, double h, double l, double M, double D) {
double r6816142 = M;
double r6816143 = D;
double r6816144 = r6816142 * r6816143;
double r6816145 = -9.24531561359005e-157;
bool r6816146 = r6816144 <= r6816145;
double r6816147 = d;
double r6816148 = l;
double r6816149 = cbrt(r6816148);
double r6816150 = r6816147 / r6816149;
double r6816151 = 1.0;
double r6816152 = 2.0;
double r6816153 = r6816151 / r6816152;
double r6816154 = pow(r6816150, r6816153);
double r6816155 = 1.0;
double r6816156 = r6816149 * r6816149;
double r6816157 = r6816155 / r6816156;
double r6816158 = pow(r6816157, r6816153);
double r6816159 = r6816154 * r6816158;
double r6816160 = h;
double r6816161 = r6816160 / r6816148;
double r6816162 = r6816147 * r6816152;
double r6816163 = r6816144 / r6816162;
double r6816164 = pow(r6816163, r6816152);
double r6816165 = r6816153 * r6816164;
double r6816166 = r6816161 * r6816165;
double r6816167 = r6816151 - r6816166;
double r6816168 = r6816159 * r6816167;
double r6816169 = cbrt(r6816160);
double r6816170 = r6816169 * r6816169;
double r6816171 = r6816155 / r6816170;
double r6816172 = pow(r6816171, r6816153);
double r6816173 = r6816147 / r6816169;
double r6816174 = pow(r6816173, r6816153);
double r6816175 = r6816172 * r6816174;
double r6816176 = r6816168 * r6816175;
double r6816177 = 4.5491669890061674e-10;
bool r6816178 = r6816144 <= r6816177;
double r6816179 = r6816162 / r6816143;
double r6816180 = r6816142 / r6816179;
double r6816181 = pow(r6816180, r6816152);
double r6816182 = r6816153 * r6816181;
double r6816183 = r6816182 * r6816160;
double r6816184 = r6816155 / r6816148;
double r6816185 = r6816183 * r6816184;
double r6816186 = r6816151 - r6816185;
double r6816187 = r6816159 * r6816175;
double r6816188 = r6816186 * r6816187;
double r6816189 = r6816178 ? r6816188 : r6816176;
double r6816190 = r6816146 ? r6816176 : r6816189;
return r6816190;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
if (* M D) < -9.24531561359005e-157 or 4.5491669890061674e-10 < (* M D) Initial program 30.7
rmApplied add-cube-cbrt31.0
Applied *-un-lft-identity31.0
Applied times-frac31.0
Applied unpow-prod-down28.5
rmApplied add-cube-cbrt28.6
Applied *-un-lft-identity28.6
Applied times-frac28.6
Applied unpow-prod-down23.2
rmApplied associate-*l*23.0
if -9.24531561359005e-157 < (* M D) < 4.5491669890061674e-10Initial program 22.6
rmApplied add-cube-cbrt22.8
Applied *-un-lft-identity22.8
Applied times-frac22.8
Applied unpow-prod-down17.9
rmApplied add-cube-cbrt18.1
Applied *-un-lft-identity18.1
Applied times-frac18.1
Applied unpow-prod-down13.3
rmApplied div-inv13.3
Applied associate-*r*8.7
rmApplied associate-/l*9.0
Final simplification15.4
herbie shell --seed 2019169
(FPCore (d h l M D)
:name "Henrywood and Agarwal, Equation (12)"
(* (* (pow (/ d h) (/ 1.0 2.0)) (pow (/ d l) (/ 1.0 2.0))) (- 1.0 (* (* (/ 1.0 2.0) (pow (/ (* M D) (* 2.0 d)) 2.0)) (/ h l)))))