\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{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} \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 - \frac{\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}} \cdot \frac{h}{\sqrt[3]{\ell}}\right)double f(double d, double h, double l, double M, double D) {
double r224446 = d;
double r224447 = h;
double r224448 = r224446 / r224447;
double r224449 = 1.0;
double r224450 = 2.0;
double r224451 = r224449 / r224450;
double r224452 = pow(r224448, r224451);
double r224453 = l;
double r224454 = r224446 / r224453;
double r224455 = pow(r224454, r224451);
double r224456 = r224452 * r224455;
double r224457 = M;
double r224458 = D;
double r224459 = r224457 * r224458;
double r224460 = r224450 * r224446;
double r224461 = r224459 / r224460;
double r224462 = pow(r224461, r224450);
double r224463 = r224451 * r224462;
double r224464 = r224447 / r224453;
double r224465 = r224463 * r224464;
double r224466 = r224449 - r224465;
double r224467 = r224456 * r224466;
return r224467;
}
double f(double d, double h, double l, double M, double D) {
double r224468 = 1.0;
double r224469 = h;
double r224470 = cbrt(r224469);
double r224471 = r224470 * r224470;
double r224472 = r224468 / r224471;
double r224473 = 1.0;
double r224474 = 2.0;
double r224475 = r224473 / r224474;
double r224476 = pow(r224472, r224475);
double r224477 = d;
double r224478 = r224477 / r224470;
double r224479 = pow(r224478, r224475);
double r224480 = r224476 * r224479;
double r224481 = cbrt(r224477);
double r224482 = r224481 * r224481;
double r224483 = l;
double r224484 = cbrt(r224483);
double r224485 = r224484 * r224484;
double r224486 = r224482 / r224485;
double r224487 = pow(r224486, r224475);
double r224488 = r224481 / r224484;
double r224489 = pow(r224488, r224475);
double r224490 = r224487 * r224489;
double r224491 = r224480 * r224490;
double r224492 = M;
double r224493 = D;
double r224494 = r224492 * r224493;
double r224495 = r224474 * r224477;
double r224496 = r224494 / r224495;
double r224497 = pow(r224496, r224474);
double r224498 = r224475 * r224497;
double r224499 = r224498 / r224485;
double r224500 = r224469 / r224484;
double r224501 = r224499 * r224500;
double r224502 = r224473 - r224501;
double r224503 = r224491 * r224502;
return r224503;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
Initial program 26.6
rmApplied add-cube-cbrt26.9
Applied add-cube-cbrt27.0
Applied times-frac27.0
Applied unpow-prod-down23.0
rmApplied add-cube-cbrt23.0
Applied *-un-lft-identity23.0
Applied times-frac23.0
Applied unpow-prod-down18.2
rmApplied add-cube-cbrt18.2
Applied *-un-lft-identity18.2
Applied times-frac18.2
Applied associate-*r*15.9
Simplified15.9
Final simplification15.9
herbie shell --seed 2019354 +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)))))