\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}}{1}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{\sqrt[3]{d}}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right)\right) \cdot \left(1 - \left(\left(\frac{1}{2} \cdot {\left(\left(M \cdot D\right) \cdot \frac{1}{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 r302230 = d;
double r302231 = h;
double r302232 = r302230 / r302231;
double r302233 = 1.0;
double r302234 = 2.0;
double r302235 = r302233 / r302234;
double r302236 = pow(r302232, r302235);
double r302237 = l;
double r302238 = r302230 / r302237;
double r302239 = pow(r302238, r302235);
double r302240 = r302236 * r302239;
double r302241 = M;
double r302242 = D;
double r302243 = r302241 * r302242;
double r302244 = r302234 * r302230;
double r302245 = r302243 / r302244;
double r302246 = pow(r302245, r302234);
double r302247 = r302235 * r302246;
double r302248 = r302231 / r302237;
double r302249 = r302247 * r302248;
double r302250 = r302233 - r302249;
double r302251 = r302240 * r302250;
return r302251;
}
double f(double d, double h, double l, double M, double D) {
double r302252 = 1.0;
double r302253 = h;
double r302254 = cbrt(r302253);
double r302255 = r302254 * r302254;
double r302256 = r302252 / r302255;
double r302257 = 1.0;
double r302258 = 2.0;
double r302259 = r302257 / r302258;
double r302260 = pow(r302256, r302259);
double r302261 = d;
double r302262 = r302261 / r302254;
double r302263 = pow(r302262, r302259);
double r302264 = r302260 * r302263;
double r302265 = cbrt(r302261);
double r302266 = r302265 * r302265;
double r302267 = r302266 / r302252;
double r302268 = pow(r302267, r302259);
double r302269 = l;
double r302270 = r302265 / r302269;
double r302271 = pow(r302270, r302259);
double r302272 = r302268 * r302271;
double r302273 = r302264 * r302272;
double r302274 = M;
double r302275 = D;
double r302276 = r302274 * r302275;
double r302277 = r302258 * r302261;
double r302278 = r302252 / r302277;
double r302279 = r302276 * r302278;
double r302280 = pow(r302279, r302258);
double r302281 = r302259 * r302280;
double r302282 = r302281 * r302253;
double r302283 = r302252 / r302269;
double r302284 = r302282 * r302283;
double r302285 = r302257 - r302284;
double r302286 = r302273 * r302285;
return r302286;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
Initial program 26.1
rmApplied add-cube-cbrt26.4
Applied *-un-lft-identity26.4
Applied times-frac26.4
Applied unpow-prod-down21.5
rmApplied *-un-lft-identity21.5
Applied add-cube-cbrt21.6
Applied times-frac21.6
Applied unpow-prod-down17.9
rmApplied div-inv18.0
Applied associate-*r*15.8
rmApplied div-inv15.8
Final simplification15.8
herbie shell --seed 2019362 +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)))))