\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 r78701 = x;
double r78702 = r78701 / r78701;
double r78703 = 1.0;
double r78704 = r78703 / r78701;
double r78705 = r78701 * r78701;
double r78706 = sqrt(r78705);
double r78707 = r78704 * r78706;
double r78708 = r78702 - r78707;
return r78708;
}
double f(double x) {
double r78709 = 1.0;
double r78710 = x;
double r78711 = fabs(r78710);
double r78712 = r78711 / r78710;
double r78713 = -r78712;
double r78714 = 1.0;
double r78715 = fma(r78709, r78713, r78714);
return r78715;
}




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