\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 r139352 = x;
double r139353 = r139352 / r139352;
double r139354 = 1.0;
double r139355 = r139354 / r139352;
double r139356 = r139352 * r139352;
double r139357 = sqrt(r139356);
double r139358 = r139355 * r139357;
double r139359 = r139353 - r139358;
return r139359;
}
double f(double x) {
double r139360 = -1.0;
double r139361 = 1.0;
double r139362 = x;
double r139363 = fabs(r139362);
double r139364 = r139363 / r139362;
double r139365 = r139361 * r139364;
double r139366 = r139360 * r139365;
double r139367 = 1.0;
double r139368 = r139366 + r139367;
return r139368;
}




Bits error versus x
Results
| Original | 32.4 |
|---|---|
| Target | 0 |
| Herbie | 0 |
Initial program 32.4
Simplified30.4
rmApplied fma-udef4.9
rmApplied neg-mul-14.9
Applied associate-*l*4.9
Simplified0
Final simplification0
herbie shell --seed 2020001 +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)))))