\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]{\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) \cdot \left({\left(\frac{d}{\sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{1}{\sqrt[3]{h} \cdot \sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)}\right)\right) \cdot \left(1 - \frac{h \cdot \left(\frac{1}{2} \cdot {\left(\frac{M}{\frac{d \cdot 2}{D}}\right)}^{2}\right)}{\ell}\right)double f(double d, double h, double l, double M, double D) {
double r7467417 = d;
double r7467418 = h;
double r7467419 = r7467417 / r7467418;
double r7467420 = 1.0;
double r7467421 = 2.0;
double r7467422 = r7467420 / r7467421;
double r7467423 = pow(r7467419, r7467422);
double r7467424 = l;
double r7467425 = r7467417 / r7467424;
double r7467426 = pow(r7467425, r7467422);
double r7467427 = r7467423 * r7467426;
double r7467428 = M;
double r7467429 = D;
double r7467430 = r7467428 * r7467429;
double r7467431 = r7467421 * r7467417;
double r7467432 = r7467430 / r7467431;
double r7467433 = pow(r7467432, r7467421);
double r7467434 = r7467422 * r7467433;
double r7467435 = r7467418 / r7467424;
double r7467436 = r7467434 * r7467435;
double r7467437 = r7467420 - r7467436;
double r7467438 = r7467427 * r7467437;
return r7467438;
}
double f(double d, double h, double l, double M, double D) {
double r7467439 = 1.0;
double r7467440 = l;
double r7467441 = cbrt(r7467440);
double r7467442 = r7467441 * r7467441;
double r7467443 = r7467439 / r7467442;
double r7467444 = 1.0;
double r7467445 = 2.0;
double r7467446 = r7467444 / r7467445;
double r7467447 = pow(r7467443, r7467446);
double r7467448 = d;
double r7467449 = r7467448 / r7467441;
double r7467450 = pow(r7467449, r7467446);
double r7467451 = r7467447 * r7467450;
double r7467452 = h;
double r7467453 = cbrt(r7467452);
double r7467454 = r7467448 / r7467453;
double r7467455 = pow(r7467454, r7467446);
double r7467456 = r7467453 * r7467453;
double r7467457 = r7467439 / r7467456;
double r7467458 = pow(r7467457, r7467446);
double r7467459 = r7467455 * r7467458;
double r7467460 = r7467451 * r7467459;
double r7467461 = M;
double r7467462 = r7467448 * r7467445;
double r7467463 = D;
double r7467464 = r7467462 / r7467463;
double r7467465 = r7467461 / r7467464;
double r7467466 = pow(r7467465, r7467445);
double r7467467 = r7467446 * r7467466;
double r7467468 = r7467452 * r7467467;
double r7467469 = r7467468 / r7467440;
double r7467470 = r7467444 - r7467469;
double r7467471 = r7467460 * r7467470;
return r7467471;
}



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 *-un-lft-identity26.9
Applied times-frac26.9
Applied unpow-prod-down21.9
rmApplied add-cube-cbrt22.0
Applied *-un-lft-identity22.0
Applied times-frac22.0
Applied unpow-prod-down18.5
rmApplied associate-*r/16.1
rmApplied associate-/l*16.3
Final simplification16.3
herbie shell --seed 2019170 +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)))))