\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 - \left(\left(\frac{1}{2} \cdot {\left(\frac{M}{\frac{2 \cdot d}{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 r261365 = d;
double r261366 = h;
double r261367 = r261365 / r261366;
double r261368 = 1.0;
double r261369 = 2.0;
double r261370 = r261368 / r261369;
double r261371 = pow(r261367, r261370);
double r261372 = l;
double r261373 = r261365 / r261372;
double r261374 = pow(r261373, r261370);
double r261375 = r261371 * r261374;
double r261376 = M;
double r261377 = D;
double r261378 = r261376 * r261377;
double r261379 = r261369 * r261365;
double r261380 = r261378 / r261379;
double r261381 = pow(r261380, r261369);
double r261382 = r261370 * r261381;
double r261383 = r261366 / r261372;
double r261384 = r261382 * r261383;
double r261385 = r261368 - r261384;
double r261386 = r261375 * r261385;
return r261386;
}
double f(double d, double h, double l, double M, double D) {
double r261387 = 1.0;
double r261388 = h;
double r261389 = cbrt(r261388);
double r261390 = r261389 * r261389;
double r261391 = r261387 / r261390;
double r261392 = 1.0;
double r261393 = 2.0;
double r261394 = r261392 / r261393;
double r261395 = pow(r261391, r261394);
double r261396 = d;
double r261397 = r261396 / r261389;
double r261398 = pow(r261397, r261394);
double r261399 = r261395 * r261398;
double r261400 = cbrt(r261396);
double r261401 = r261400 * r261400;
double r261402 = l;
double r261403 = cbrt(r261402);
double r261404 = r261403 * r261403;
double r261405 = r261401 / r261404;
double r261406 = pow(r261405, r261394);
double r261407 = r261400 / r261403;
double r261408 = pow(r261407, r261394);
double r261409 = r261406 * r261408;
double r261410 = r261399 * r261409;
double r261411 = M;
double r261412 = r261393 * r261396;
double r261413 = D;
double r261414 = r261412 / r261413;
double r261415 = r261411 / r261414;
double r261416 = pow(r261415, r261393);
double r261417 = r261394 * r261416;
double r261418 = r261390 / r261404;
double r261419 = r261417 * r261418;
double r261420 = r261389 / r261403;
double r261421 = r261419 * r261420;
double r261422 = r261392 - r261421;
double r261423 = r261410 * r261422;
return r261423;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
Initial program 26.8
rmApplied add-cube-cbrt27.1
Applied *-un-lft-identity27.1
Applied times-frac27.1
Applied unpow-prod-down22.3
rmApplied add-cube-cbrt22.4
Applied add-cube-cbrt22.5
Applied times-frac22.5
Applied unpow-prod-down18.7
rmApplied add-cube-cbrt18.7
Applied add-cube-cbrt18.7
Applied times-frac18.7
Applied associate-*r*15.6
rmApplied associate-/l*15.9
Final simplification15.9
herbie shell --seed 2020057 +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)))))