\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) = -\infty:\\
\;\;\;\;\sqrt{\frac{d}{h}} \cdot \left(\sqrt{\frac{\sqrt[3]{d}}{\ell}} \cdot \left|\sqrt[3]{d}\right|\right) - \frac{\left(\frac{M}{\frac{2}{\frac{D}{d}}} \cdot \left(\sqrt{\frac{d}{h}} \cdot \sqrt{\frac{d}{\ell}}\right)\right) \cdot \left(\frac{M}{\frac{2}{\frac{D}{d}}} \cdot h\right)}{\ell \cdot 2}\\
\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 -1.7428153322691488 \cdot 10^{-208}:\\
\;\;\;\;\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)\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt{\frac{\sqrt[3]{d}}{\ell}} \cdot \left|\sqrt[3]{d}\right|\right) \cdot \left(\sqrt{\frac{d}{\sqrt[3]{h}}} \cdot \sqrt{\frac{1}{\sqrt[3]{h} \cdot \sqrt[3]{h}}}\right) - \frac{\left(\frac{M}{\frac{2}{\frac{D}{d}}} \cdot \left(\frac{M}{\frac{2}{\frac{D}{d}}} \cdot h\right)\right) \cdot \left(\left(\sqrt{\frac{d}{\sqrt[3]{h}}} \cdot \sqrt{\frac{1}{\sqrt[3]{h} \cdot \sqrt[3]{h}}}\right) \cdot \left(\left|\frac{\sqrt[3]{d}}{\sqrt[3]{\ell}}\right| \cdot \sqrt{\frac{\sqrt[3]{d}}{\sqrt[3]{\ell}}}\right)\right)}{\ell \cdot 2}\\
\end{array}double f(double d, double h, double l, double M, double D) {
double r7669508 = d;
double r7669509 = h;
double r7669510 = r7669508 / r7669509;
double r7669511 = 1.0;
double r7669512 = 2.0;
double r7669513 = r7669511 / r7669512;
double r7669514 = pow(r7669510, r7669513);
double r7669515 = l;
double r7669516 = r7669508 / r7669515;
double r7669517 = pow(r7669516, r7669513);
double r7669518 = r7669514 * r7669517;
double r7669519 = M;
double r7669520 = D;
double r7669521 = r7669519 * r7669520;
double r7669522 = r7669512 * r7669508;
double r7669523 = r7669521 / r7669522;
double r7669524 = pow(r7669523, r7669512);
double r7669525 = r7669513 * r7669524;
double r7669526 = r7669509 / r7669515;
double r7669527 = r7669525 * r7669526;
double r7669528 = r7669511 - r7669527;
double r7669529 = r7669518 * r7669528;
return r7669529;
}
double f(double d, double h, double l, double M, double D) {
double r7669530 = 1.0;
double r7669531 = h;
double r7669532 = l;
double r7669533 = r7669531 / r7669532;
double r7669534 = M;
double r7669535 = D;
double r7669536 = r7669534 * r7669535;
double r7669537 = 2.0;
double r7669538 = d;
double r7669539 = r7669537 * r7669538;
double r7669540 = r7669536 / r7669539;
double r7669541 = pow(r7669540, r7669537);
double r7669542 = 0.5;
double r7669543 = r7669541 * r7669542;
double r7669544 = r7669533 * r7669543;
double r7669545 = r7669530 - r7669544;
double r7669546 = r7669538 / r7669532;
double r7669547 = pow(r7669546, r7669542);
double r7669548 = r7669538 / r7669531;
double r7669549 = pow(r7669548, r7669542);
double r7669550 = r7669547 * r7669549;
double r7669551 = r7669545 * r7669550;
double r7669552 = -inf.0;
bool r7669553 = r7669551 <= r7669552;
double r7669554 = sqrt(r7669548);
double r7669555 = cbrt(r7669538);
double r7669556 = r7669555 / r7669532;
double r7669557 = sqrt(r7669556);
double r7669558 = fabs(r7669555);
double r7669559 = r7669557 * r7669558;
double r7669560 = r7669554 * r7669559;
double r7669561 = r7669535 / r7669538;
double r7669562 = r7669537 / r7669561;
double r7669563 = r7669534 / r7669562;
double r7669564 = sqrt(r7669546);
double r7669565 = r7669554 * r7669564;
double r7669566 = r7669563 * r7669565;
double r7669567 = r7669563 * r7669531;
double r7669568 = r7669566 * r7669567;
double r7669569 = r7669532 * r7669537;
double r7669570 = r7669568 / r7669569;
double r7669571 = r7669560 - r7669570;
double r7669572 = -1.7428153322691488e-208;
bool r7669573 = r7669551 <= r7669572;
double r7669574 = cbrt(r7669531);
double r7669575 = r7669538 / r7669574;
double r7669576 = sqrt(r7669575);
double r7669577 = r7669574 * r7669574;
double r7669578 = r7669530 / r7669577;
double r7669579 = sqrt(r7669578);
double r7669580 = r7669576 * r7669579;
double r7669581 = r7669559 * r7669580;
double r7669582 = r7669563 * r7669567;
double r7669583 = cbrt(r7669532);
double r7669584 = r7669555 / r7669583;
double r7669585 = fabs(r7669584);
double r7669586 = sqrt(r7669584);
double r7669587 = r7669585 * r7669586;
double r7669588 = r7669580 * r7669587;
double r7669589 = r7669582 * r7669588;
double r7669590 = r7669589 / r7669569;
double r7669591 = r7669581 - r7669590;
double r7669592 = r7669573 ? r7669551 : r7669591;
double r7669593 = r7669553 ? r7669571 : r7669592;
return r7669593;
}



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)))) < -inf.0Initial program 60.1
Simplified41.1
rmApplied *-un-lft-identity41.1
Applied add-cube-cbrt41.1
Applied times-frac41.1
Applied sqrt-prod40.9
Simplified40.9
rmApplied associate-*r*32.5
if -inf.0 < (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))) < -1.7428153322691488e-208Initial program 1.3
if -1.7428153322691488e-208 < (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))) Initial program 25.7
Simplified24.3
rmApplied *-un-lft-identity24.3
Applied add-cube-cbrt24.5
Applied times-frac24.5
Applied sqrt-prod22.3
Simplified22.3
rmApplied add-cube-cbrt22.3
Applied add-cube-cbrt22.3
Applied times-frac22.3
Applied sqrt-prod19.0
Simplified18.9
rmApplied add-cube-cbrt19.0
Applied *-un-lft-identity19.0
Applied times-frac19.0
Applied sqrt-prod18.5
rmApplied add-cube-cbrt18.5
Applied *-un-lft-identity18.5
Applied times-frac18.5
Applied sqrt-prod12.0
Final simplification12.4
herbie shell --seed 2019133
(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)))))