\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 r153477 = x;
double r153478 = r153477 / r153477;
double r153479 = 1.0;
double r153480 = r153479 / r153477;
double r153481 = r153477 * r153477;
double r153482 = sqrt(r153481);
double r153483 = r153480 * r153482;
double r153484 = r153478 - r153483;
return r153484;
}
double f(double x) {
double r153485 = 1.0;
double r153486 = 1.0;
double r153487 = x;
double r153488 = r153486 / r153487;
double r153489 = fabs(r153487);
double r153490 = r153488 * r153489;
double r153491 = log1p(r153490);
double r153492 = expm1(r153491);
double r153493 = r153485 - r153492;
return r153493;
}




Bits error versus x
Results
| Original | 32.3 |
|---|---|
| Target | 0 |
| Herbie | 0.0 |
Initial program 32.3
Simplified5.0
rmApplied expm1-log1p-u0.0
Final simplification0.0
herbie shell --seed 2020043 +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)))))