e^{a \cdot x} - 1\begin{array}{l}
\mathbf{if}\;x \le -4.769746002479849413485688169289897765182 \cdot 10^{75}:\\
\;\;\;\;\frac{\frac{\frac{e^{\left(a \cdot x\right) \cdot 27} - \left(\left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right) \cdot \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right)\right) \cdot \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right)}{e^{x \cdot \left(a \cdot 9\right)} \cdot \left(e^{x \cdot \left(a \cdot 9\right)} + \left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right) + \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right) \cdot \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right)}}{\left(e^{\left(a \cdot x\right) \cdot 3} + \left(1 \cdot 1\right) \cdot 1\right) \cdot e^{\left(a \cdot x\right) \cdot 3} + \left(\left(1 \cdot 1\right) \cdot 1\right) \cdot \left(\left(1 \cdot 1\right) \cdot 1\right)}}{\left(1 \cdot 1 + e^{a \cdot x} \cdot 1\right) + e^{a \cdot x} \cdot e^{a \cdot x}}\\
\mathbf{elif}\;x \le -2.773503098171754549439485465195885024121 \cdot 10^{-34}:\\
\;\;\;\;\left(\left(\left(a \cdot x\right) \cdot \left(a \cdot x\right)\right) \cdot \left(a \cdot x\right)\right) \cdot \frac{1}{6} + \left(a \cdot x + \left(a \cdot x\right) \cdot \left(\left(a \cdot x\right) \cdot \frac{1}{2}\right)\right)\\
\mathbf{elif}\;x \le -2.253008826999895251155572445945559152759 \cdot 10^{-43}:\\
\;\;\;\;\frac{\frac{\frac{e^{\left(a \cdot x\right) \cdot 27} - \left(\left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right) \cdot \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right)\right) \cdot \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right)}{e^{x \cdot \left(a \cdot 9\right)} \cdot \left(e^{x \cdot \left(a \cdot 9\right)} + \left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right) + \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right) \cdot \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right)}}{\left(e^{\left(a \cdot x\right) \cdot 3} + \left(1 \cdot 1\right) \cdot 1\right) \cdot e^{\left(a \cdot x\right) \cdot 3} + \left(\left(1 \cdot 1\right) \cdot 1\right) \cdot \left(\left(1 \cdot 1\right) \cdot 1\right)}}{\left(1 \cdot 1 + e^{a \cdot x} \cdot 1\right) + e^{a \cdot x} \cdot e^{a \cdot x}}\\
\mathbf{elif}\;x \le 1.615963223807510020381636500169761159394 \cdot 10^{101}:\\
\;\;\;\;\left(\left(\left(a \cdot x\right) \cdot \left(a \cdot x\right)\right) \cdot \left(a \cdot x\right)\right) \cdot \frac{1}{6} + \left(a \cdot x + \left(a \cdot x\right) \cdot \left(\left(a \cdot x\right) \cdot \frac{1}{2}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{e^{\left(a \cdot x\right) \cdot 27} - \left(\left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right) \cdot \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right)\right) \cdot \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right)}{e^{x \cdot \left(a \cdot 9\right)} \cdot \left(e^{x \cdot \left(a \cdot 9\right)} + \left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right) + \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right) \cdot \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right)}}{\left(e^{\left(a \cdot x\right) \cdot 3} + \left(1 \cdot 1\right) \cdot 1\right) \cdot e^{\left(a \cdot x\right) \cdot 3} + \left(\left(1 \cdot 1\right) \cdot 1\right) \cdot \left(\left(1 \cdot 1\right) \cdot 1\right)}}{\left(1 \cdot 1 + e^{a \cdot x} \cdot 1\right) + e^{a \cdot x} \cdot e^{a \cdot x}}\\
\end{array}double f(double a, double x) {
double r4104549 = a;
double r4104550 = x;
double r4104551 = r4104549 * r4104550;
double r4104552 = exp(r4104551);
double r4104553 = 1.0;
double r4104554 = r4104552 - r4104553;
return r4104554;
}
double f(double a, double x) {
double r4104555 = x;
double r4104556 = -4.7697460024798494e+75;
bool r4104557 = r4104555 <= r4104556;
double r4104558 = a;
double r4104559 = r4104558 * r4104555;
double r4104560 = 27.0;
double r4104561 = r4104559 * r4104560;
double r4104562 = exp(r4104561);
double r4104563 = 1.0;
double r4104564 = r4104563 * r4104563;
double r4104565 = r4104564 * r4104564;
double r4104566 = r4104565 * r4104565;
double r4104567 = r4104566 * r4104563;
double r4104568 = r4104567 * r4104567;
double r4104569 = r4104568 * r4104567;
double r4104570 = r4104562 - r4104569;
double r4104571 = 9.0;
double r4104572 = r4104558 * r4104571;
double r4104573 = r4104555 * r4104572;
double r4104574 = exp(r4104573);
double r4104575 = r4104574 + r4104567;
double r4104576 = r4104574 * r4104575;
double r4104577 = r4104576 + r4104568;
double r4104578 = r4104570 / r4104577;
double r4104579 = 3.0;
double r4104580 = r4104559 * r4104579;
double r4104581 = exp(r4104580);
double r4104582 = r4104564 * r4104563;
double r4104583 = r4104581 + r4104582;
double r4104584 = r4104583 * r4104581;
double r4104585 = r4104582 * r4104582;
double r4104586 = r4104584 + r4104585;
double r4104587 = r4104578 / r4104586;
double r4104588 = exp(r4104559);
double r4104589 = r4104588 * r4104563;
double r4104590 = r4104564 + r4104589;
double r4104591 = r4104588 * r4104588;
double r4104592 = r4104590 + r4104591;
double r4104593 = r4104587 / r4104592;
double r4104594 = -2.7735030981717545e-34;
bool r4104595 = r4104555 <= r4104594;
double r4104596 = r4104559 * r4104559;
double r4104597 = r4104596 * r4104559;
double r4104598 = 0.16666666666666666;
double r4104599 = r4104597 * r4104598;
double r4104600 = 0.5;
double r4104601 = r4104559 * r4104600;
double r4104602 = r4104559 * r4104601;
double r4104603 = r4104559 + r4104602;
double r4104604 = r4104599 + r4104603;
double r4104605 = -2.2530088269998953e-43;
bool r4104606 = r4104555 <= r4104605;
double r4104607 = 1.61596322380751e+101;
bool r4104608 = r4104555 <= r4104607;
double r4104609 = r4104608 ? r4104604 : r4104593;
double r4104610 = r4104606 ? r4104593 : r4104609;
double r4104611 = r4104595 ? r4104604 : r4104610;
double r4104612 = r4104557 ? r4104593 : r4104611;
return r4104612;
}




Bits error versus a




Bits error versus x
Results
| Original | 28.6 |
|---|---|
| Target | 0.2 |
| Herbie | 14.0 |
if x < -4.7697460024798494e+75 or -2.7735030981717545e-34 < x < -2.2530088269998953e-43 or 1.61596322380751e+101 < x Initial program 16.4
rmApplied flip3--16.4
Simplified16.3
rmApplied flip3--16.4
Simplified16.3
Simplified16.3
rmApplied flip3--16.4
Simplified16.3
Simplified16.3
if -4.7697460024798494e+75 < x < -2.7735030981717545e-34 or -2.2530088269998953e-43 < x < 1.61596322380751e+101Initial program 33.5
Taylor expanded around 0 19.2
Simplified13.0
Final simplification14.0
herbie shell --seed 2019169
(FPCore (a x)
:name "expax (section 3.5)"
:herbie-expected 14
:herbie-target
(if (< (fabs (* a x)) 0.1) (* (* a x) (+ 1.0 (+ (/ (* a x) 2.0) (/ (pow (* a x) 2.0) 6.0)))) (- (exp (* a x)) 1.0))
(- (exp (* a x)) 1.0))