\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({\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{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{\ell} \cdot \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(1 - \left(\sqrt{\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}}} \cdot \sqrt{\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)double f(double d, double h, double l, double M, double D) {
double r264445 = d;
double r264446 = h;
double r264447 = r264445 / r264446;
double r264448 = 1.0;
double r264449 = 2.0;
double r264450 = r264448 / r264449;
double r264451 = pow(r264447, r264450);
double r264452 = l;
double r264453 = r264445 / r264452;
double r264454 = pow(r264453, r264450);
double r264455 = r264451 * r264454;
double r264456 = M;
double r264457 = D;
double r264458 = r264456 * r264457;
double r264459 = r264449 * r264445;
double r264460 = r264458 / r264459;
double r264461 = pow(r264460, r264449);
double r264462 = r264450 * r264461;
double r264463 = r264446 / r264452;
double r264464 = r264462 * r264463;
double r264465 = r264448 - r264464;
double r264466 = r264455 * r264465;
return r264466;
}
double f(double d, double h, double l, double M, double D) {
double r264467 = d;
double r264468 = cbrt(r264467);
double r264469 = r264468 * r264468;
double r264470 = h;
double r264471 = cbrt(r264470);
double r264472 = r264471 * r264471;
double r264473 = r264469 / r264472;
double r264474 = 1.0;
double r264475 = 2.0;
double r264476 = r264474 / r264475;
double r264477 = pow(r264473, r264476);
double r264478 = r264468 / r264471;
double r264479 = pow(r264478, r264476);
double r264480 = r264477 * r264479;
double r264481 = l;
double r264482 = cbrt(r264481);
double r264483 = r264482 * r264482;
double r264484 = r264469 / r264483;
double r264485 = pow(r264484, r264476);
double r264486 = r264468 / r264482;
double r264487 = pow(r264486, r264476);
double r264488 = r264485 * r264487;
double r264489 = r264480 * r264488;
double r264490 = M;
double r264491 = D;
double r264492 = r264490 * r264491;
double r264493 = r264475 * r264467;
double r264494 = r264492 / r264493;
double r264495 = pow(r264494, r264475);
double r264496 = r264476 * r264495;
double r264497 = r264472 / r264483;
double r264498 = r264496 * r264497;
double r264499 = sqrt(r264498);
double r264500 = r264499 * r264499;
double r264501 = r264471 / r264482;
double r264502 = r264500 * r264501;
double r264503 = r264474 - r264502;
double r264504 = r264489 * r264503;
return r264504;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
Initial program 26.5
rmApplied add-cube-cbrt26.8
Applied add-cube-cbrt26.9
Applied times-frac26.9
Applied unpow-prod-down21.4
rmApplied add-cube-cbrt21.5
Applied add-cube-cbrt21.6
Applied times-frac21.6
Applied unpow-prod-down17.7
rmApplied add-cube-cbrt17.8
Applied add-cube-cbrt17.8
Applied times-frac17.8
Applied associate-*r*14.9
rmApplied add-sqr-sqrt14.9
Final simplification14.9
herbie shell --seed 2020018 +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)))))