\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 -89.70047366523088783196726581081748008728:\\
\;\;\;\;\left(1 - \left(\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h\right) \cdot \frac{1}{\ell}\right) \cdot \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}}{\sqrt[3]{\ell}} \cdot \frac{\sqrt[3]{d}}{\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)\\
\mathbf{elif}\;d \le 1.864380778933404752357939169541342658888 \cdot 10^{-151}:\\
\;\;\;\;\left(\left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right) \cdot \left({\left(\frac{\sqrt[3]{d}}{\sqrt[3]{\ell}} \cdot \frac{\sqrt[3]{d}}{\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({\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{else}:\\
\;\;\;\;\left(1 - \left(\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h\right) \cdot \frac{1}{\ell}\right) \cdot \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}}{\sqrt[3]{\ell}} \cdot \frac{\sqrt[3]{d}}{\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)\\
\end{array}double f(double d, double h, double l, double M, double D) {
double r6798511 = d;
double r6798512 = h;
double r6798513 = r6798511 / r6798512;
double r6798514 = 1.0;
double r6798515 = 2.0;
double r6798516 = r6798514 / r6798515;
double r6798517 = pow(r6798513, r6798516);
double r6798518 = l;
double r6798519 = r6798511 / r6798518;
double r6798520 = pow(r6798519, r6798516);
double r6798521 = r6798517 * r6798520;
double r6798522 = M;
double r6798523 = D;
double r6798524 = r6798522 * r6798523;
double r6798525 = r6798515 * r6798511;
double r6798526 = r6798524 / r6798525;
double r6798527 = pow(r6798526, r6798515);
double r6798528 = r6798516 * r6798527;
double r6798529 = r6798512 / r6798518;
double r6798530 = r6798528 * r6798529;
double r6798531 = r6798514 - r6798530;
double r6798532 = r6798521 * r6798531;
return r6798532;
}
double f(double d, double h, double l, double M, double D) {
double r6798533 = d;
double r6798534 = -89.70047366523089;
bool r6798535 = r6798533 <= r6798534;
double r6798536 = 1.0;
double r6798537 = 2.0;
double r6798538 = r6798536 / r6798537;
double r6798539 = M;
double r6798540 = D;
double r6798541 = r6798539 * r6798540;
double r6798542 = r6798537 * r6798533;
double r6798543 = r6798541 / r6798542;
double r6798544 = pow(r6798543, r6798537);
double r6798545 = r6798538 * r6798544;
double r6798546 = h;
double r6798547 = r6798545 * r6798546;
double r6798548 = 1.0;
double r6798549 = l;
double r6798550 = r6798548 / r6798549;
double r6798551 = r6798547 * r6798550;
double r6798552 = r6798536 - r6798551;
double r6798553 = cbrt(r6798546);
double r6798554 = r6798553 * r6798553;
double r6798555 = r6798548 / r6798554;
double r6798556 = pow(r6798555, r6798538);
double r6798557 = r6798533 / r6798553;
double r6798558 = pow(r6798557, r6798538);
double r6798559 = r6798556 * r6798558;
double r6798560 = cbrt(r6798533);
double r6798561 = cbrt(r6798549);
double r6798562 = r6798560 / r6798561;
double r6798563 = r6798562 * r6798562;
double r6798564 = pow(r6798563, r6798538);
double r6798565 = pow(r6798562, r6798538);
double r6798566 = r6798564 * r6798565;
double r6798567 = r6798559 * r6798566;
double r6798568 = r6798552 * r6798567;
double r6798569 = 1.8643807789334048e-151;
bool r6798570 = r6798533 <= r6798569;
double r6798571 = r6798546 / r6798549;
double r6798572 = r6798545 * r6798571;
double r6798573 = r6798536 - r6798572;
double r6798574 = r6798573 * r6798566;
double r6798575 = r6798574 * r6798559;
double r6798576 = r6798570 ? r6798575 : r6798568;
double r6798577 = r6798535 ? r6798568 : r6798576;
return r6798577;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
if d < -89.70047366523089 or 1.8643807789334048e-151 < d Initial program 23.1
rmApplied add-cube-cbrt23.4
Applied add-cube-cbrt23.5
Applied times-frac23.5
Applied unpow-prod-down20.0
Simplified20.0
rmApplied add-cube-cbrt20.1
Applied *-un-lft-identity20.1
Applied times-frac20.1
Applied unpow-prod-down13.2
rmApplied div-inv13.2
Applied associate-*r*9.8
if -89.70047366523089 < d < 1.8643807789334048e-151Initial program 33.4
rmApplied add-cube-cbrt33.6
Applied add-cube-cbrt33.7
Applied times-frac33.7
Applied unpow-prod-down28.9
Simplified28.8
rmApplied add-cube-cbrt28.9
Applied *-un-lft-identity28.9
Applied times-frac28.9
Applied unpow-prod-down27.4
rmApplied associate-*l*26.5
Final simplification15.9
herbie shell --seed 2019171
(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)))))