\frac{x}{x} - \frac{1}{x} \cdot \sqrt{x \cdot x}-1 \cdot \left(1 \cdot \frac{\left|x\right|}{x}\right) + 1double f(double x) {
double r176477 = x;
double r176478 = r176477 / r176477;
double r176479 = 1.0;
double r176480 = r176479 / r176477;
double r176481 = r176477 * r176477;
double r176482 = sqrt(r176481);
double r176483 = r176480 * r176482;
double r176484 = r176478 - r176483;
return r176484;
}
double f(double x) {
double r176485 = -1.0;
double r176486 = 1.0;
double r176487 = x;
double r176488 = fabs(r176487);
double r176489 = r176488 / r176487;
double r176490 = r176486 * r176489;
double r176491 = r176485 * r176490;
double r176492 = 1.0;
double r176493 = r176491 + r176492;
return r176493;
}




Bits error versus x
Results
| Original | 31.8 |
|---|---|
| Target | 0 |
| Herbie | 0 |
Initial program 31.8
Simplified31.0
rmApplied fma-udef4.4
rmApplied neg-mul-14.4
Applied associate-*l*4.4
Simplified0
Final simplification0
herbie shell --seed 2020065 +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)))))