\frac{x}{x} - \frac{1.0}{x} \cdot \sqrt{x \cdot x}1 - \left(\left(\frac{1.0}{x} \cdot \left|x\right|\right)\right)double f(double x) {
double r4440515 = x;
double r4440516 = r4440515 / r4440515;
double r4440517 = 1.0;
double r4440518 = r4440517 / r4440515;
double r4440519 = r4440515 * r4440515;
double r4440520 = sqrt(r4440519);
double r4440521 = r4440518 * r4440520;
double r4440522 = r4440516 - r4440521;
return r4440522;
}
double f(double x) {
double r4440523 = 1.0;
double r4440524 = 1.0;
double r4440525 = x;
double r4440526 = r4440524 / r4440525;
double r4440527 = fabs(r4440525);
double r4440528 = r4440526 * r4440527;
double r4440529 = /* ERROR: no posit support in C */;
double r4440530 = /* ERROR: no posit support in C */;
double r4440531 = r4440523 - r4440530;
return r4440531;
}




Bits error versus x
| Original | 32.0 |
|---|---|
| Target | 0 |
| Herbie | 0 |
Initial program 32.0
Simplified4.6
rmApplied insert-posit160
Final simplification0
herbie shell --seed 2019165 +o rules:numerics
(FPCore (x)
:name "sqrt sqr"
:herbie-target
(if (< x 0.0) 2.0 0.0)
(- (/ x x) (* (/ 1.0 x) (sqrt (* x x)))))