\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({\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({\left(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{1}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{\sqrt[3]{d}}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \left(\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{\sqrt[3]{h} \cdot \sqrt[3]{h}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right) \cdot \frac{\sqrt[3]{h}}{\sqrt[3]{\ell}}\right)\right)double f(double d, double h, double l, double M, double D) {
double r186533 = d;
double r186534 = h;
double r186535 = r186533 / r186534;
double r186536 = 1.0;
double r186537 = 2.0;
double r186538 = r186536 / r186537;
double r186539 = pow(r186535, r186538);
double r186540 = l;
double r186541 = r186533 / r186540;
double r186542 = pow(r186541, r186538);
double r186543 = r186539 * r186542;
double r186544 = M;
double r186545 = D;
double r186546 = r186544 * r186545;
double r186547 = r186537 * r186533;
double r186548 = r186546 / r186547;
double r186549 = pow(r186548, r186537);
double r186550 = r186538 * r186549;
double r186551 = r186534 / r186540;
double r186552 = r186550 * r186551;
double r186553 = r186536 - r186552;
double r186554 = r186543 * r186553;
return r186554;
}
double f(double d, double h, double l, double M, double D) {
double r186555 = d;
double r186556 = cbrt(r186555);
double r186557 = r186556 * r186556;
double r186558 = h;
double r186559 = cbrt(r186558);
double r186560 = r186559 * r186559;
double r186561 = r186557 / r186560;
double r186562 = 1.0;
double r186563 = 2.0;
double r186564 = r186562 / r186563;
double r186565 = pow(r186561, r186564);
double r186566 = r186556 / r186559;
double r186567 = pow(r186566, r186564);
double r186568 = r186565 * r186567;
double r186569 = 1.0;
double r186570 = r186557 / r186569;
double r186571 = pow(r186570, r186564);
double r186572 = l;
double r186573 = r186556 / r186572;
double r186574 = pow(r186573, r186564);
double r186575 = r186571 * r186574;
double r186576 = M;
double r186577 = D;
double r186578 = r186576 * r186577;
double r186579 = r186563 * r186555;
double r186580 = r186578 / r186579;
double r186581 = pow(r186580, r186563);
double r186582 = r186564 * r186581;
double r186583 = cbrt(r186572);
double r186584 = r186583 * r186583;
double r186585 = r186560 / r186584;
double r186586 = r186582 * r186585;
double r186587 = r186559 / r186583;
double r186588 = r186586 * r186587;
double r186589 = r186562 - r186588;
double r186590 = r186575 * r186589;
double r186591 = r186568 * r186590;
return r186591;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
Initial program 27.0
rmApplied add-cube-cbrt27.2
Applied add-cube-cbrt27.3
Applied times-frac27.3
Applied unpow-prod-down21.7
rmApplied add-cube-cbrt21.7
Applied add-cube-cbrt21.7
Applied times-frac21.7
Applied associate-*r*19.9
rmApplied *-un-lft-identity19.9
Applied add-cube-cbrt20.1
Applied times-frac20.1
Applied unpow-prod-down15.8
rmApplied associate-*l*15.6
Final simplification15.6
herbie shell --seed 2019344 +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)))))