\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 r85425 = x;
double r85426 = r85425 / r85425;
double r85427 = 1.0;
double r85428 = r85427 / r85425;
double r85429 = r85425 * r85425;
double r85430 = sqrt(r85429);
double r85431 = r85428 * r85430;
double r85432 = r85426 - r85431;
return r85432;
}
double f(double x) {
double r85433 = 1.0;
double r85434 = x;
double r85435 = fabs(r85434);
double r85436 = r85435 / r85434;
double r85437 = -r85436;
double r85438 = 1.0;
double r85439 = fma(r85433, r85437, r85438);
return r85439;
}




Bits error versus x
| Original | 32.8 |
|---|---|
| Target | 0 |
| Herbie | 0 |
Initial program 32.8
Simplified4.5
rmApplied add-cube-cbrt4.5
Applied prod-diff30.5
Simplified30.5
Simplified0
Final simplification0
herbie shell --seed 2019325 +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)))))