\frac{c0}{2.0 \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}\;w \le -1.4409442624034558 \cdot 10^{+204}:\\
\;\;\;\;\frac{\left(\frac{d}{D} \cdot \left(c0 \cdot \frac{\frac{2}{h}}{w}\right)\right) \cdot \frac{\frac{d}{D} \cdot c0}{w}}{2.0}\\
\mathbf{elif}\;w \le -1.9090683015159143 \cdot 10^{+115}:\\
\;\;\;\;\frac{\sqrt[3]{\sqrt{\left(\frac{\frac{d}{D} \cdot \left(\frac{d}{D} \cdot c0\right)}{h \cdot w} - M\right) \cdot \left(M + \frac{\frac{d}{D} \cdot \left(\frac{d}{D} \cdot c0\right)}{h \cdot w}\right)} + \frac{\frac{d}{D} \cdot \left(\frac{d}{D} \cdot c0\right)}{h \cdot w}} \cdot \left(\sqrt[3]{\sqrt{\left(\frac{\frac{d}{D} \cdot \left(\frac{d}{D} \cdot c0\right)}{h \cdot w} - M\right) \cdot \left(M + \frac{\frac{d}{D} \cdot \left(\frac{d}{D} \cdot c0\right)}{h \cdot w}\right)} + \frac{\frac{d}{D} \cdot \left(\frac{d}{D} \cdot c0\right)}{h \cdot w}} \cdot \sqrt[3]{\sqrt{\left(\frac{\frac{d}{D} \cdot \left(\frac{d}{D} \cdot c0\right)}{h \cdot w} - M\right) \cdot \left(M + \frac{\frac{d}{D} \cdot \left(\frac{d}{D} \cdot c0\right)}{h \cdot w}\right)} + \frac{\frac{d}{D} \cdot \left(\frac{d}{D} \cdot c0\right)}{h \cdot w}}\right)}{w} \cdot \frac{c0}{2.0}\\
\mathbf{elif}\;w \le -1.3308495693303094 \cdot 10^{-88}:\\
\;\;\;\;\frac{\frac{1}{\frac{w}{\frac{d \cdot c0}{D} \cdot \left(\frac{\frac{2}{h}}{w} \cdot \frac{d \cdot c0}{D}\right)}}}{2.0}\\
\mathbf{elif}\;w \le 8.433285243664178 \cdot 10^{+80}:\\
\;\;\;\;\frac{\frac{\left(\frac{d}{D} \cdot c0\right) \cdot \left(\frac{1}{w} \cdot \left(\frac{2}{h} \cdot \frac{d \cdot c0}{D}\right)\right)}{w}}{2.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\left(d \cdot c0\right) \cdot \left(\frac{2}{h} \cdot \left(d \cdot c0\right)\right)}{\left(w \cdot D\right) \cdot \left(w \cdot D\right)}}{2.0}\\
\end{array}double f(double c0, double w, double h, double D, double d, double M) {
double r9649509 = c0;
double r9649510 = 2.0;
double r9649511 = w;
double r9649512 = r9649510 * r9649511;
double r9649513 = r9649509 / r9649512;
double r9649514 = d;
double r9649515 = r9649514 * r9649514;
double r9649516 = r9649509 * r9649515;
double r9649517 = h;
double r9649518 = r9649511 * r9649517;
double r9649519 = D;
double r9649520 = r9649519 * r9649519;
double r9649521 = r9649518 * r9649520;
double r9649522 = r9649516 / r9649521;
double r9649523 = r9649522 * r9649522;
double r9649524 = M;
double r9649525 = r9649524 * r9649524;
double r9649526 = r9649523 - r9649525;
double r9649527 = sqrt(r9649526);
double r9649528 = r9649522 + r9649527;
double r9649529 = r9649513 * r9649528;
return r9649529;
}
double f(double c0, double w, double h, double D, double d, double M) {
double r9649530 = w;
double r9649531 = -1.4409442624034558e+204;
bool r9649532 = r9649530 <= r9649531;
double r9649533 = d;
double r9649534 = D;
double r9649535 = r9649533 / r9649534;
double r9649536 = c0;
double r9649537 = 2.0;
double r9649538 = h;
double r9649539 = r9649537 / r9649538;
double r9649540 = r9649539 / r9649530;
double r9649541 = r9649536 * r9649540;
double r9649542 = r9649535 * r9649541;
double r9649543 = r9649535 * r9649536;
double r9649544 = r9649543 / r9649530;
double r9649545 = r9649542 * r9649544;
double r9649546 = 2.0;
double r9649547 = r9649545 / r9649546;
double r9649548 = -1.9090683015159143e+115;
bool r9649549 = r9649530 <= r9649548;
double r9649550 = r9649535 * r9649543;
double r9649551 = r9649538 * r9649530;
double r9649552 = r9649550 / r9649551;
double r9649553 = M;
double r9649554 = r9649552 - r9649553;
double r9649555 = r9649553 + r9649552;
double r9649556 = r9649554 * r9649555;
double r9649557 = sqrt(r9649556);
double r9649558 = r9649557 + r9649552;
double r9649559 = cbrt(r9649558);
double r9649560 = r9649559 * r9649559;
double r9649561 = r9649559 * r9649560;
double r9649562 = r9649561 / r9649530;
double r9649563 = r9649536 / r9649546;
double r9649564 = r9649562 * r9649563;
double r9649565 = -1.3308495693303094e-88;
bool r9649566 = r9649530 <= r9649565;
double r9649567 = 1.0;
double r9649568 = r9649533 * r9649536;
double r9649569 = r9649568 / r9649534;
double r9649570 = r9649540 * r9649569;
double r9649571 = r9649569 * r9649570;
double r9649572 = r9649530 / r9649571;
double r9649573 = r9649567 / r9649572;
double r9649574 = r9649573 / r9649546;
double r9649575 = 8.433285243664178e+80;
bool r9649576 = r9649530 <= r9649575;
double r9649577 = r9649567 / r9649530;
double r9649578 = r9649539 * r9649569;
double r9649579 = r9649577 * r9649578;
double r9649580 = r9649543 * r9649579;
double r9649581 = r9649580 / r9649530;
double r9649582 = r9649581 / r9649546;
double r9649583 = r9649539 * r9649568;
double r9649584 = r9649568 * r9649583;
double r9649585 = r9649530 * r9649534;
double r9649586 = r9649585 * r9649585;
double r9649587 = r9649584 / r9649586;
double r9649588 = r9649587 / r9649546;
double r9649589 = r9649576 ? r9649582 : r9649588;
double r9649590 = r9649566 ? r9649574 : r9649589;
double r9649591 = r9649549 ? r9649564 : r9649590;
double r9649592 = r9649532 ? r9649547 : r9649591;
return r9649592;
}



Bits error versus c0



Bits error versus w



Bits error versus h



Bits error versus D



Bits error versus d



Bits error versus M
Results
if w < -1.4409442624034558e+204Initial program 57.1
Simplified52.0
Taylor expanded around 0 57.1
Simplified46.7
rmApplied associate-*l/46.7
Simplified47.8
rmApplied *-un-lft-identity47.8
Applied times-frac47.7
Applied associate-*l*50.0
rmApplied *-un-lft-identity50.0
Applied times-frac49.7
Simplified44.2
if -1.4409442624034558e+204 < w < -1.9090683015159143e+115Initial program 57.5
Simplified50.0
rmApplied add-cube-cbrt50.1
if -1.9090683015159143e+115 < w < -1.3308495693303094e-88Initial program 59.1
Simplified50.0
Taylor expanded around 0 59.0
Simplified49.2
rmApplied associate-*l/49.2
Simplified47.5
rmApplied *-un-lft-identity47.5
Applied times-frac47.5
Applied associate-*l*47.1
rmApplied clear-num47.1
Simplified46.7
if -1.3308495693303094e-88 < w < 8.433285243664178e+80Initial program 60.1
Simplified55.2
Taylor expanded around 0 61.0
Simplified56.1
rmApplied associate-*l/56.0
Simplified53.7
rmApplied *-un-lft-identity53.7
Applied times-frac53.7
Applied associate-*l*51.5
rmApplied associate-*l/52.1
if 8.433285243664178e+80 < w Initial program 57.6
Simplified49.9
Taylor expanded around 0 57.3
Simplified46.9
rmApplied associate-*l/46.9
Simplified48.3
rmApplied *-un-lft-identity48.3
Applied times-frac48.3
Applied associate-*l*49.6
rmApplied associate-*l/50.2
Applied associate-*l/47.6
Applied associate-*r/48.7
Applied frac-times47.2
Applied frac-times50.3
Applied associate-/l/48.6
Simplified45.9
Final simplification49.3
herbie shell --seed 2019165
(FPCore (c0 w h D d M)
:name "Henrywood and Agarwal, Equation (13)"
(* (/ c0 (* 2.0 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))))))