\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}\;d \le -9.6145456522853459 \cdot 10^{128}:\\
\;\;\;\;\left(e^{0.5 \cdot \left(\log \left(\frac{-1}{h}\right) - \log \left(\frac{-1}{d}\right)\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)}^{\left(\frac{2}{2}\right)}\right) \cdot \left({\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \frac{h}{\ell}\right)\right)\\
\mathbf{elif}\;d \le -1.86853407285333 \cdot 10^{-310}:\\
\;\;\;\;\left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot e^{0.5 \cdot \left(\log \left(\frac{-1}{\ell}\right) - \log \left(\frac{-1}{d}\right)\right)}\right) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(-h\right)}{-\ell}\right)\\
\mathbf{elif}\;d \le 3.70657678297185702 \cdot 10^{82}:\\
\;\;\;\;\left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot {d}^{\left(\frac{1}{2}\right)}\right) \cdot \left({\left(\frac{1}{\ell}\right)}^{\left(\frac{1}{2}\right)} \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(-h\right)}{-\ell}\right)\right)\\
\mathbf{elif}\;d \le 1.7042909891776182 \cdot 10^{187}:\\
\;\;\;\;{d}^{\left(\frac{1}{2}\right)} \cdot \left(\left({\left(\frac{1}{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)}^{\left(\frac{2}{2}\right)}\right) \cdot \frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(-h\right)}{-\ell}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;1 \cdot \left({\left({d}^{1}\right)}^{1} \cdot {\left(\frac{1}{{h}^{1} \cdot {\ell}^{1}}\right)}^{0.5}\right)\\
\end{array}double code(double d, double h, double l, double M, double D) {
return ((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))));
}
double code(double d, double h, double l, double M, double D) {
double VAR;
if ((d <= -9.614545652285346e+128)) {
VAR = ((exp((0.5 * (log((-1.0 / h)) - log((-1.0 / d))))) * pow((d / l), (1.0 / 2.0))) * (1.0 - (((1.0 / 2.0) * pow(((M * D) / (2.0 * d)), (2.0 / 2.0))) * (pow(((M * D) / (2.0 * d)), (2.0 / 2.0)) * (h / l)))));
} else {
double VAR_1;
if ((d <= -1.86853407285333e-310)) {
VAR_1 = ((pow((d / h), (1.0 / 2.0)) * exp((0.5 * (log((-1.0 / l)) - log((-1.0 / d)))))) * (1.0 - (((1.0 / 2.0) * pow(((M * D) / (2.0 * d)), (2.0 / 2.0))) * ((pow(((M * D) / (2.0 * d)), (2.0 / 2.0)) * -h) / -l))));
} else {
double VAR_2;
if ((d <= 3.706576782971857e+82)) {
VAR_2 = ((pow((d / h), (1.0 / 2.0)) * pow(d, (1.0 / 2.0))) * (pow((1.0 / l), (1.0 / 2.0)) * (1.0 - (((1.0 / 2.0) * pow(((M * D) / (2.0 * d)), (2.0 / 2.0))) * ((pow(((M * D) / (2.0 * d)), (2.0 / 2.0)) * -h) / -l)))));
} else {
double VAR_3;
if ((d <= 1.7042909891776182e+187)) {
VAR_3 = (pow(d, (1.0 / 2.0)) * ((pow((1.0 / 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 / 2.0))) * ((pow(((M * D) / (2.0 * d)), (2.0 / 2.0)) * -h) / -l)))));
} else {
VAR_3 = (1.0 * (pow(pow(d, 1.0), 1.0) * pow((1.0 / (pow(h, 1.0) * pow(l, 1.0))), 0.5)));
}
VAR_2 = VAR_3;
}
VAR_1 = VAR_2;
}
VAR = VAR_1;
}
return VAR;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
if d < -9.614545652285346e+128Initial program 27.6
rmApplied sqr-pow27.6
Applied associate-*r*27.6
Applied associate-*l*27.6
Taylor expanded around -inf 17.7
if -9.614545652285346e+128 < d < -1.86853407285333e-310Initial program 25.4
rmApplied sqr-pow25.4
Applied associate-*r*25.4
Applied associate-*l*23.1
rmApplied frac-2neg23.1
Applied associate-*r/21.0
Taylor expanded around -inf 18.7
if -1.86853407285333e-310 < d < 3.706576782971857e+82Initial program 27.7
rmApplied sqr-pow27.7
Applied associate-*r*27.7
Applied associate-*l*25.0
rmApplied frac-2neg25.0
Applied associate-*r/23.0
rmApplied div-inv23.0
Applied unpow-prod-down16.5
Applied associate-*r*16.5
Applied associate-*l*16.7
if 3.706576782971857e+82 < d < 1.7042909891776182e+187Initial program 23.2
rmApplied sqr-pow23.2
Applied associate-*r*23.2
Applied associate-*l*22.7
rmApplied frac-2neg22.7
Applied associate-*r/20.6
rmApplied div-inv20.6
Applied unpow-prod-down9.6
Applied associate-*l*9.5
Applied associate-*l*9.5
if 1.7042909891776182e+187 < d Initial program 30.8
Taylor expanded around 0 14.1
Final simplification16.6
herbie shell --seed 2020078 +o rules:numerics
(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)))))