\frac{x}{x} - \frac{1}{x} \cdot \sqrt{x \cdot x}1 - \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{1}{x} \cdot \left|x\right|\right)\right)double f(double x) {
double r135799 = x;
double r135800 = r135799 / r135799;
double r135801 = 1.0;
double r135802 = r135801 / r135799;
double r135803 = r135799 * r135799;
double r135804 = sqrt(r135803);
double r135805 = r135802 * r135804;
double r135806 = r135800 - r135805;
return r135806;
}
double f(double x) {
double r135807 = 1.0;
double r135808 = 1.0;
double r135809 = x;
double r135810 = r135808 / r135809;
double r135811 = fabs(r135809);
double r135812 = r135810 * r135811;
double r135813 = log1p(r135812);
double r135814 = expm1(r135813);
double r135815 = r135807 - r135814;
return r135815;
}




Bits error versus x
Results
| Original | 32.6 |
|---|---|
| Target | 0 |
| Herbie | 0.0 |
Initial program 32.6
Simplified4.9
rmApplied expm1-log1p-u0.0
Final simplification0.0
herbie shell --seed 2020047 +o rules:numerics
(FPCore (x)
:name "sqrt sqr"
:precision binary64
:herbie-target
(if (< x 0.0) 2 0.0)
(- (/ x x) (* (/ 1 x) (sqrt (* x x)))))