\sqrt{x + 1} - \sqrt{x}\frac{1 + 0}{1 \cdot \sqrt{x + 1} + \sqrt{x}}double f(double x) {
double r595665 = x;
double r595666 = 1.0;
double r595667 = r595665 + r595666;
double r595668 = sqrt(r595667);
double r595669 = sqrt(r595665);
double r595670 = r595668 - r595669;
return r595670;
}
double f(double x) {
double r595671 = 1.0;
double r595672 = 0.0;
double r595673 = r595671 + r595672;
double r595674 = 1.0;
double r595675 = x;
double r595676 = r595675 + r595671;
double r595677 = sqrt(r595676);
double r595678 = r595674 * r595677;
double r595679 = sqrt(r595675);
double r595680 = r595678 + r595679;
double r595681 = r595673 / r595680;
return r595681;
}




Bits error versus x
Results
| Original | 29.9 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 29.9
rmApplied flip--29.7
Simplified0.2
rmApplied *-un-lft-identity0.2
Applied sqrt-prod0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019354 +o rules:numerics
(FPCore (x)
:name "Main:bigenough3 from C"
:precision binary64
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))