\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)\left(\sqrt[3]{\left(\left({\left(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{h} \cdot \sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{\sqrt[3]{d}}{\sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left({\left(\frac{1}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)}\right)\right) \cdot \left(1 - \frac{\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{\ell}\right)} \cdot \sqrt[3]{\left(\left({\left(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{h} \cdot \sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{\sqrt[3]{d}}{\sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left({\left(\frac{1}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)}\right)\right) \cdot \left(1 - \frac{\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{\ell}\right)}\right) \cdot \sqrt[3]{\left(\left({\left(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{h} \cdot \sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{\sqrt[3]{d}}{\sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left({\left(\frac{1}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)}\right)\right) \cdot \left(1 - \frac{\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{\ell}\right)}double f(double d, double h, double l, double M, double D) {
double r204549 = d;
double r204550 = h;
double r204551 = r204549 / r204550;
double r204552 = 1.0;
double r204553 = 2.0;
double r204554 = r204552 / r204553;
double r204555 = pow(r204551, r204554);
double r204556 = l;
double r204557 = r204549 / r204556;
double r204558 = pow(r204557, r204554);
double r204559 = r204555 * r204558;
double r204560 = M;
double r204561 = D;
double r204562 = r204560 * r204561;
double r204563 = r204553 * r204549;
double r204564 = r204562 / r204563;
double r204565 = pow(r204564, r204553);
double r204566 = r204554 * r204565;
double r204567 = r204550 / r204556;
double r204568 = r204566 * r204567;
double r204569 = r204552 - r204568;
double r204570 = r204559 * r204569;
return r204570;
}
double f(double d, double h, double l, double M, double D) {
double r204571 = d;
double r204572 = cbrt(r204571);
double r204573 = r204572 * r204572;
double r204574 = h;
double r204575 = cbrt(r204574);
double r204576 = r204575 * r204575;
double r204577 = r204573 / r204576;
double r204578 = 1.0;
double r204579 = 2.0;
double r204580 = r204578 / r204579;
double r204581 = pow(r204577, r204580);
double r204582 = r204572 / r204575;
double r204583 = pow(r204582, r204580);
double r204584 = r204581 * r204583;
double r204585 = 1.0;
double r204586 = l;
double r204587 = cbrt(r204586);
double r204588 = r204587 * r204587;
double r204589 = r204585 / r204588;
double r204590 = pow(r204589, r204580);
double r204591 = r204571 / r204587;
double r204592 = pow(r204591, r204580);
double r204593 = r204590 * r204592;
double r204594 = r204584 * r204593;
double r204595 = M;
double r204596 = D;
double r204597 = r204595 * r204596;
double r204598 = r204579 * r204571;
double r204599 = r204597 / r204598;
double r204600 = pow(r204599, r204579);
double r204601 = r204580 * r204600;
double r204602 = r204601 * r204574;
double r204603 = r204602 / r204586;
double r204604 = r204578 - r204603;
double r204605 = r204594 * r204604;
double r204606 = cbrt(r204605);
double r204607 = r204606 * r204606;
double r204608 = r204607 * r204606;
return r204608;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
Initial program 26.9
rmApplied add-cube-cbrt27.1
Applied add-cube-cbrt27.2
Applied times-frac27.2
Applied unpow-prod-down21.9
rmApplied add-cube-cbrt22.0
Applied *-un-lft-identity22.0
Applied times-frac22.0
Applied unpow-prod-down18.2
rmApplied associate-*r/15.7
rmApplied add-cube-cbrt15.9
Final simplification15.9
herbie shell --seed 2019195 +o rules:numerics
(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)))))