\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{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{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 - \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 \sqrt[3]{\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{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 - \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)}\right) \cdot \sqrt[3]{\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{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 - \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)}double f(double d, double h, double l, double M, double D) {
double r287460 = d;
double r287461 = h;
double r287462 = r287460 / r287461;
double r287463 = 1.0;
double r287464 = 2.0;
double r287465 = r287463 / r287464;
double r287466 = pow(r287462, r287465);
double r287467 = l;
double r287468 = r287460 / r287467;
double r287469 = pow(r287468, r287465);
double r287470 = r287466 * r287469;
double r287471 = M;
double r287472 = D;
double r287473 = r287471 * r287472;
double r287474 = r287464 * r287460;
double r287475 = r287473 / r287474;
double r287476 = pow(r287475, r287464);
double r287477 = r287465 * r287476;
double r287478 = r287461 / r287467;
double r287479 = r287477 * r287478;
double r287480 = r287463 - r287479;
double r287481 = r287470 * r287480;
return r287481;
}
double f(double d, double h, double l, double M, double D) {
double r287482 = 1.0;
double r287483 = h;
double r287484 = cbrt(r287483);
double r287485 = r287484 * r287484;
double r287486 = r287482 / r287485;
double r287487 = 1.0;
double r287488 = 2.0;
double r287489 = r287487 / r287488;
double r287490 = pow(r287486, r287489);
double r287491 = d;
double r287492 = r287491 / r287484;
double r287493 = pow(r287492, r287489);
double r287494 = r287490 * r287493;
double r287495 = l;
double r287496 = cbrt(r287495);
double r287497 = r287496 * r287496;
double r287498 = r287482 / r287497;
double r287499 = pow(r287498, r287489);
double r287500 = r287491 / r287496;
double r287501 = pow(r287500, r287489);
double r287502 = r287499 * r287501;
double r287503 = r287494 * r287502;
double r287504 = M;
double r287505 = D;
double r287506 = r287504 * r287505;
double r287507 = r287488 * r287491;
double r287508 = r287506 / r287507;
double r287509 = pow(r287508, r287488);
double r287510 = r287489 * r287509;
double r287511 = r287510 * r287483;
double r287512 = r287482 / r287495;
double r287513 = r287511 * r287512;
double r287514 = r287487 - r287513;
double r287515 = r287503 * r287514;
double r287516 = cbrt(r287515);
double r287517 = r287516 * r287516;
double r287518 = r287517 * r287516;
return r287518;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
Initial program 26.2
rmApplied add-cube-cbrt26.5
Applied *-un-lft-identity26.5
Applied times-frac26.5
Applied unpow-prod-down21.4
rmApplied add-cube-cbrt21.6
Applied *-un-lft-identity21.6
Applied times-frac21.6
Applied unpow-prod-down18.0
rmApplied div-inv18.0
Applied associate-*r*15.6
rmApplied add-cube-cbrt15.9
Final simplification15.9
herbie shell --seed 2020045
(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)))))