\frac{x}{x} - \frac{1}{x} \cdot \sqrt{x \cdot x}1 + \left(-\frac{1 \cdot \left|x\right|}{x}\right)double f(double x) {
double r157067 = x;
double r157068 = r157067 / r157067;
double r157069 = 1.0;
double r157070 = r157069 / r157067;
double r157071 = r157067 * r157067;
double r157072 = sqrt(r157071);
double r157073 = r157070 * r157072;
double r157074 = r157068 - r157073;
return r157074;
}
double f(double x) {
double r157075 = 1.0;
double r157076 = 1.0;
double r157077 = x;
double r157078 = fabs(r157077);
double r157079 = r157076 * r157078;
double r157080 = r157079 / r157077;
double r157081 = -r157080;
double r157082 = r157075 + r157081;
return r157082;
}




Bits error versus x
Results
| Original | 32.4 |
|---|---|
| Target | 0 |
| Herbie | 0 |
Initial program 32.4
Simplified0
Final simplification0
herbie shell --seed 2020100
(FPCore (x)
:name "sqrt sqr"
:precision binary64
:herbie-target
(if (< x 0.0) 2 0.0)
(- (/ x x) (* (/ 1 x) (sqrt (* x x)))))