\frac{c0}{2 \cdot w} \cdot \left(\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} + \sqrt{\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} \cdot \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} - M \cdot M}\right)\begin{array}{l}
\mathbf{if}\;d \le -9.210163746526576 \cdot 10^{-130}:\\
\;\;\;\;0\\
\mathbf{elif}\;d \le 7.672846710951726 \cdot 10^{-196}:\\
\;\;\;\;\left(\mathsf{fma}\left(\left(\sqrt{\frac{\frac{d}{D}}{h} \cdot \frac{\frac{d}{D} \cdot c0}{w} + M}\right), \left(\sqrt{\frac{\frac{d}{D}}{h} \cdot \frac{\frac{d}{D} \cdot c0}{w} - M}\right), \left(\frac{\frac{d}{D}}{h} \cdot \frac{\frac{d}{D} \cdot c0}{w}\right)\right) \cdot \frac{\frac{1}{2}}{w}\right) \cdot c0\\
\mathbf{elif}\;d \le 3.1308943303645432 \cdot 10^{-12}:\\
\;\;\;\;0\\
\mathbf{elif}\;d \le 1.6897539912803299 \cdot 10^{+78}:\\
\;\;\;\;\left(\mathsf{fma}\left(\left(\sqrt{\frac{\frac{d}{D}}{h} \cdot \frac{\frac{d}{D} \cdot c0}{w} + M}\right), \left(\sqrt{\frac{\frac{d}{D}}{h} \cdot \frac{\frac{d}{D} \cdot c0}{w} - M}\right), \left(\frac{\frac{d}{D}}{h} \cdot \frac{\frac{d}{D} \cdot c0}{w}\right)\right) \cdot \frac{\frac{1}{2}}{w}\right) \cdot c0\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r3726339 = c0;
double r3726340 = 2.0;
double r3726341 = w;
double r3726342 = r3726340 * r3726341;
double r3726343 = r3726339 / r3726342;
double r3726344 = d;
double r3726345 = r3726344 * r3726344;
double r3726346 = r3726339 * r3726345;
double r3726347 = h;
double r3726348 = r3726341 * r3726347;
double r3726349 = D;
double r3726350 = r3726349 * r3726349;
double r3726351 = r3726348 * r3726350;
double r3726352 = r3726346 / r3726351;
double r3726353 = r3726352 * r3726352;
double r3726354 = M;
double r3726355 = r3726354 * r3726354;
double r3726356 = r3726353 - r3726355;
double r3726357 = sqrt(r3726356);
double r3726358 = r3726352 + r3726357;
double r3726359 = r3726343 * r3726358;
return r3726359;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r3726360 = d;
double r3726361 = -9.210163746526576e-130;
bool r3726362 = r3726360 <= r3726361;
double r3726363 = 0.0;
double r3726364 = 7.672846710951726e-196;
bool r3726365 = r3726360 <= r3726364;
double r3726366 = D;
double r3726367 = r3726360 / r3726366;
double r3726368 = h;
double r3726369 = r3726367 / r3726368;
double r3726370 = c0;
double r3726371 = r3726367 * r3726370;
double r3726372 = w;
double r3726373 = r3726371 / r3726372;
double r3726374 = r3726369 * r3726373;
double r3726375 = M;
double r3726376 = r3726374 + r3726375;
double r3726377 = sqrt(r3726376);
double r3726378 = r3726374 - r3726375;
double r3726379 = sqrt(r3726378);
double r3726380 = fma(r3726377, r3726379, r3726374);
double r3726381 = 0.5;
double r3726382 = r3726381 / r3726372;
double r3726383 = r3726380 * r3726382;
double r3726384 = r3726383 * r3726370;
double r3726385 = 3.1308943303645432e-12;
bool r3726386 = r3726360 <= r3726385;
double r3726387 = 1.6897539912803299e+78;
bool r3726388 = r3726360 <= r3726387;
double r3726389 = r3726388 ? r3726384 : r3726363;
double r3726390 = r3726386 ? r3726363 : r3726389;
double r3726391 = r3726365 ? r3726384 : r3726390;
double r3726392 = r3726362 ? r3726363 : r3726391;
return r3726392;
}



Bits error versus c0



Bits error versus w



Bits error versus h



Bits error versus D



Bits error versus d



Bits error versus M
if d < -9.210163746526576e-130 or 7.672846710951726e-196 < d < 3.1308943303645432e-12 or 1.6897539912803299e+78 < d Initial program 58.1
Simplified52.1
Taylor expanded around -inf 31.7
if -9.210163746526576e-130 < d < 7.672846710951726e-196 or 3.1308943303645432e-12 < d < 1.6897539912803299e+78Initial program 57.4
Simplified47.6
rmApplied div-inv47.6
Applied associate-*l*47.4
Simplified45.3
rmApplied sqrt-prod49.7
Applied fma-def49.6
Final simplification34.9
herbie shell --seed 2019133 +o rules:numerics
(FPCore (c0 w h D d M)
:name "Henrywood and Agarwal, Equation (13)"
(* (/ c0 (* 2 w)) (+ (/ (* c0 (* d d)) (* (* w h) (* D D))) (sqrt (- (* (/ (* c0 (* d d)) (* (* w h) (* D D))) (/ (* c0 (* d d)) (* (* w h) (* D D)))) (* M M))))))