\frac{x}{x} - \frac{1}{x} \cdot \sqrt{x \cdot x}\mathsf{fma}\left(1, -\frac{\left|x\right|}{x}, 1\right)double f(double x) {
double r110984 = x;
double r110985 = r110984 / r110984;
double r110986 = 1.0;
double r110987 = r110986 / r110984;
double r110988 = r110984 * r110984;
double r110989 = sqrt(r110988);
double r110990 = r110987 * r110989;
double r110991 = r110985 - r110990;
return r110991;
}
double f(double x) {
double r110992 = 1.0;
double r110993 = x;
double r110994 = fabs(r110993);
double r110995 = r110994 / r110993;
double r110996 = -r110995;
double r110997 = 1.0;
double r110998 = fma(r110992, r110996, r110997);
return r110998;
}




Bits error versus x
| Original | 31.8 |
|---|---|
| Target | 0 |
| Herbie | 0 |
Initial program 31.8
Simplified4.5
Taylor expanded around 0 0
Simplified0
Final simplification0
herbie shell --seed 2019303 +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)))))