\sqrt{x + 1} - \sqrt{x}\frac{1}{\sqrt{x + 1} + \sqrt{x}}double f(double x) {
double r7334321 = x;
double r7334322 = 1.0;
double r7334323 = r7334321 + r7334322;
double r7334324 = sqrt(r7334323);
double r7334325 = sqrt(r7334321);
double r7334326 = r7334324 - r7334325;
return r7334326;
}
double f(double x) {
double r7334327 = 1.0;
double r7334328 = x;
double r7334329 = r7334328 + r7334327;
double r7334330 = sqrt(r7334329);
double r7334331 = sqrt(r7334328);
double r7334332 = r7334330 + r7334331;
double r7334333 = r7334327 / r7334332;
return r7334333;
}




Bits error versus x
Results
| Original | 29.9 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 29.9
rmApplied flip--29.7
Taylor expanded around 0 0.2
Final simplification0.2
herbie shell --seed 2019121 +o rules:numerics
(FPCore (x)
:name "2sqrt (example 3.1)"
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))