\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{1}{\sqrt{x}} \cdot \frac{1}{\sqrt{x + 1} \cdot \sqrt{x} + \left(x + 1\right)}double f(double x) {
double r500 = 1.0;
double r501 = x;
double r502 = sqrt(r501);
double r503 = r500 / r502;
double r504 = r501 + r500;
double r505 = sqrt(r504);
double r506 = r500 / r505;
double r507 = r503 - r506;
return r507;
}
double f(double x) {
double r508 = 1.0;
double r509 = x;
double r510 = sqrt(r509);
double r511 = r508 / r510;
double r512 = r509 + r508;
double r513 = sqrt(r512);
double r514 = r513 * r510;
double r515 = r514 + r512;
double r516 = r508 / r515;
double r517 = r511 * r516;
return r517;
}




Bits error versus x
Results
| Original | 20.2 |
|---|---|
| Target | 0.8 |
| Herbie | 0.3 |
Initial program 20.2
rmApplied frac-sub20.2
Simplified20.2
rmApplied flip--20.0
Simplified19.6
Taylor expanded around 0 0.4
rmApplied times-frac0.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2020025
(FPCore (x)
:name "2isqrt (example 3.6)"
:precision binary64
:herbie-target
(/ 1 (+ (* (+ x 1) (sqrt x)) (* x (sqrt (+ x 1)))))
(- (/ 1 (sqrt x)) (/ 1 (sqrt (+ x 1)))))