\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}\;\ell \le -1.803741056830326925130393814369985870376 \cdot 10^{-21} \lor \neg \left(\ell \le 9729194181935.689453125\right):\\
\;\;\;\;\left({\left(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{h} \cdot \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) \cdot \left(\left({\left(\frac{\sqrt[3]{d}}{\sqrt[3]{\ell}}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\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)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt[3]{\left(\left({\left(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{h} \cdot \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) \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 - \frac{\left(1 \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{2 \cdot \ell}\right)} \cdot \sqrt[3]{\left(\left({\left(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{h} \cdot \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) \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 - \frac{\left(1 \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{2 \cdot \ell}\right)}\right) \cdot \sqrt[3]{\left(\left({\left(\frac{\sqrt[3]{d} \cdot \sqrt[3]{d}}{\sqrt[3]{h} \cdot \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) \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 - \frac{\left(1 \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{2 \cdot \ell}\right)}\\
\end{array}double f(double d, double h, double l, double M, double D) {
double r207210 = d;
double r207211 = h;
double r207212 = r207210 / r207211;
double r207213 = 1.0;
double r207214 = 2.0;
double r207215 = r207213 / r207214;
double r207216 = pow(r207212, r207215);
double r207217 = l;
double r207218 = r207210 / r207217;
double r207219 = pow(r207218, r207215);
double r207220 = r207216 * r207219;
double r207221 = M;
double r207222 = D;
double r207223 = r207221 * r207222;
double r207224 = r207214 * r207210;
double r207225 = r207223 / r207224;
double r207226 = pow(r207225, r207214);
double r207227 = r207215 * r207226;
double r207228 = r207211 / r207217;
double r207229 = r207227 * r207228;
double r207230 = r207213 - r207229;
double r207231 = r207220 * r207230;
return r207231;
}
double f(double d, double h, double l, double M, double D) {
double r207232 = l;
double r207233 = -1.803741056830327e-21;
bool r207234 = r207232 <= r207233;
double r207235 = 9729194181935.69;
bool r207236 = r207232 <= r207235;
double r207237 = !r207236;
bool r207238 = r207234 || r207237;
double r207239 = d;
double r207240 = cbrt(r207239);
double r207241 = r207240 * r207240;
double r207242 = h;
double r207243 = cbrt(r207242);
double r207244 = r207243 * r207243;
double r207245 = r207241 / r207244;
double r207246 = 1.0;
double r207247 = 2.0;
double r207248 = r207246 / r207247;
double r207249 = pow(r207245, r207248);
double r207250 = r207240 / r207243;
double r207251 = pow(r207250, r207248);
double r207252 = r207249 * r207251;
double r207253 = cbrt(r207232);
double r207254 = r207240 / r207253;
double r207255 = pow(r207254, r207248);
double r207256 = r207253 * r207253;
double r207257 = r207241 / r207256;
double r207258 = pow(r207257, r207248);
double r207259 = r207255 * r207258;
double r207260 = M;
double r207261 = D;
double r207262 = r207260 * r207261;
double r207263 = r207247 * r207239;
double r207264 = r207262 / r207263;
double r207265 = pow(r207264, r207247);
double r207266 = r207248 * r207265;
double r207267 = r207242 / r207232;
double r207268 = r207266 * r207267;
double r207269 = r207246 - r207268;
double r207270 = r207259 * r207269;
double r207271 = r207252 * r207270;
double r207272 = r207258 * r207255;
double r207273 = r207252 * r207272;
double r207274 = r207246 * r207265;
double r207275 = r207274 * r207242;
double r207276 = r207247 * r207232;
double r207277 = r207275 / r207276;
double r207278 = r207246 - r207277;
double r207279 = r207273 * r207278;
double r207280 = cbrt(r207279);
double r207281 = r207280 * r207280;
double r207282 = r207281 * r207280;
double r207283 = r207238 ? r207271 : r207282;
return r207283;
}



Bits error versus d



Bits error versus h



Bits error versus l



Bits error versus M



Bits error versus D
Results
if l < -1.803741056830327e-21 or 9729194181935.69 < l Initial program 26.0
rmApplied add-cube-cbrt26.3
Applied add-cube-cbrt26.4
Applied times-frac26.4
Applied unpow-prod-down19.4
rmApplied add-cube-cbrt19.4
Applied add-cube-cbrt19.6
Applied times-frac19.6
Applied unpow-prod-down16.4
rmApplied associate-*l*15.7
Simplified15.7
if -1.803741056830327e-21 < l < 9729194181935.69Initial program 27.1
rmApplied add-cube-cbrt27.4
Applied add-cube-cbrt27.5
Applied times-frac27.5
Applied unpow-prod-down24.3
rmApplied add-cube-cbrt24.5
Applied add-cube-cbrt24.6
Applied times-frac24.6
Applied unpow-prod-down19.2
rmApplied associate-*l/19.2
Applied frac-times9.9
rmApplied add-cube-cbrt10.1
Final simplification13.8
herbie shell --seed 2019322 +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)))))