\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)\begin{array}{l}
\mathbf{if}\;d \le -2.060659295181660287501474328136091907816 \cdot 10^{-192}:\\
\;\;\;\;\left(\left({\left(\frac{\frac{1}{\sqrt[3]{\ell}}}{\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{\sqrt[3]{d}}{\sqrt[3]{h}} \cdot \frac{\sqrt[3]{d}}{\sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{\sqrt[3]{d}}{\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 \cdot D}{2 \cdot d}\right)}^{2}\right)}{\ell}\right)\\
\mathbf{elif}\;d \le 2.597551639889483470317062119134074225611 \cdot 10^{-76}:\\
\;\;\;\;\left(\left({\left(\frac{d}{\sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{1}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \frac{h}{\ell} \cdot \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right)\right)\right) \cdot \left({\left(\frac{\sqrt[3]{d}}{\sqrt[3]{h}} \cdot \frac{\sqrt[3]{d}}{\sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{\sqrt[3]{d}}{\sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)}\right)\\
\mathbf{elif}\;d \le 3.250720647390449018094318486671871932784 \cdot 10^{146}:\\
\;\;\;\;\left(\left({\left(\frac{\frac{1}{\sqrt[3]{\ell}}}{\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{\sqrt[3]{d}}{\sqrt[3]{h}} \cdot \frac{\sqrt[3]{d}}{\sqrt[3]{h}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{\sqrt[3]{d}}{\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 \cdot D}{2 \cdot d}\right)}^{2}\right)}{\ell}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(1 - \frac{h}{\ell} \cdot \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right)\right) \cdot \left({\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)} \cdot \left({d}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{1}{h}\right)}^{\left(\frac{1}{2}\right)}\right)\right)\\
\end{array}double f(double d, double h, double l, double M, double D) {
double r8227220 = d;
double r8227221 = h;
double r8227222 = r8227220 / r8227221;
double r8227223 = 1.0;
double r8227224 = 2.0;
double r8227225 = r8227223 / r8227224;
double r8227226 = pow(r8227222, r8227225);
double r8227227 = l;
double r8227228 = r8227220 / r8227227;
double r8227229 = pow(r8227228, r8227225);
double r8227230 = r8227226 * r8227229;
double r8227231 = M;
double r8227232 = D;
double r8227233 = r8227231 * r8227232;
double r8227234 = r8227224 * r8227220;
double r8227235 = r8227233 / r8227234;
double r8227236 = pow(r8227235, r8227224);
double r8227237 = r8227225 * r8227236;
double r8227238 = r8227221 / r8227227;
double r8227239 = r8227237 * r8227238;
double r8227240 = r8227223 - r8227239;
double r8227241 = r8227230 * r8227240;
return r8227241;
}
double f(double d, double h, double l, double M, double D) {
double r8227242 = d;
double r8227243 = -2.0606592951816603e-192;
bool r8227244 = r8227242 <= r8227243;
double r8227245 = 1.0;
double r8227246 = l;
double r8227247 = cbrt(r8227246);
double r8227248 = r8227245 / r8227247;
double r8227249 = r8227248 / r8227247;
double r8227250 = 1.0;
double r8227251 = 2.0;
double r8227252 = r8227250 / r8227251;
double r8227253 = pow(r8227249, r8227252);
double r8227254 = r8227242 / r8227247;
double r8227255 = pow(r8227254, r8227252);
double r8227256 = r8227253 * r8227255;
double r8227257 = cbrt(r8227242);
double r8227258 = h;
double r8227259 = cbrt(r8227258);
double r8227260 = r8227257 / r8227259;
double r8227261 = r8227260 * r8227260;
double r8227262 = pow(r8227261, r8227252);
double r8227263 = pow(r8227260, r8227252);
double r8227264 = r8227262 * r8227263;
double r8227265 = r8227256 * r8227264;
double r8227266 = M;
double r8227267 = D;
double r8227268 = r8227266 * r8227267;
double r8227269 = r8227251 * r8227242;
double r8227270 = r8227268 / r8227269;
double r8227271 = pow(r8227270, r8227251);
double r8227272 = r8227252 * r8227271;
double r8227273 = r8227258 * r8227272;
double r8227274 = r8227273 / r8227246;
double r8227275 = r8227250 - r8227274;
double r8227276 = r8227265 * r8227275;
double r8227277 = 2.5975516398894835e-76;
bool r8227278 = r8227242 <= r8227277;
double r8227279 = r8227247 * r8227247;
double r8227280 = r8227245 / r8227279;
double r8227281 = pow(r8227280, r8227252);
double r8227282 = r8227255 * r8227281;
double r8227283 = r8227258 / r8227246;
double r8227284 = r8227283 * r8227272;
double r8227285 = r8227250 - r8227284;
double r8227286 = r8227282 * r8227285;
double r8227287 = r8227286 * r8227264;
double r8227288 = 3.250720647390449e+146;
bool r8227289 = r8227242 <= r8227288;
double r8227290 = r8227242 / r8227246;
double r8227291 = pow(r8227290, r8227252);
double r8227292 = pow(r8227242, r8227252);
double r8227293 = r8227245 / r8227258;
double r8227294 = pow(r8227293, r8227252);
double r8227295 = r8227292 * r8227294;
double r8227296 = r8227291 * r8227295;
double r8227297 = r8227285 * r8227296;
double r8227298 = r8227289 ? r8227276 : r8227297;
double r8227299 = r8227278 ? r8227287 : r8227298;
double r8227300 = r8227244 ? r8227276 : r8227299;
return r8227300;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
if d < -2.0606592951816603e-192 or 2.5975516398894835e-76 < d < 3.250720647390449e+146Initial program 21.7
rmApplied add-cube-cbrt22.1
Applied add-cube-cbrt22.2
Applied times-frac22.2
Applied unpow-prod-down16.2
Simplified16.2
rmApplied add-cube-cbrt16.3
Applied *-un-lft-identity16.3
Applied times-frac16.3
Applied unpow-prod-down13.3
rmApplied associate-*r/10.4
rmApplied *-un-lft-identity10.4
Applied associate-*r*10.4
Simplified10.4
if -2.0606592951816603e-192 < d < 2.5975516398894835e-76Initial program 37.1
rmApplied add-cube-cbrt37.2
Applied add-cube-cbrt37.3
Applied times-frac37.2
Applied unpow-prod-down35.8
Simplified35.8
rmApplied add-cube-cbrt35.8
Applied *-un-lft-identity35.8
Applied times-frac35.8
Applied unpow-prod-down30.7
rmApplied associate-*l*29.7
if 3.250720647390449e+146 < d Initial program 28.6
rmApplied div-inv28.7
Applied unpow-prod-down14.0
Final simplification15.7
herbie shell --seed 2019200 +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)))))