\sqrt{x + 1} - \sqrt{x}\sqrt{\frac{1 + 0}{\sqrt{x + 1} + \sqrt{x}}} \cdot \sqrt{\frac{1 + 0}{\sqrt{x + 1} + \sqrt{x}}}double f(double x) {
double r95069 = x;
double r95070 = 1.0;
double r95071 = r95069 + r95070;
double r95072 = sqrt(r95071);
double r95073 = sqrt(r95069);
double r95074 = r95072 - r95073;
return r95074;
}
double f(double x) {
double r95075 = 1.0;
double r95076 = 0.0;
double r95077 = r95075 + r95076;
double r95078 = x;
double r95079 = r95078 + r95075;
double r95080 = sqrt(r95079);
double r95081 = sqrt(r95078);
double r95082 = r95080 + r95081;
double r95083 = r95077 / r95082;
double r95084 = sqrt(r95083);
double r95085 = r95084 * r95084;
return r95085;
}




Bits error versus x
Results
| Original | 29.5 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 29.5
rmApplied flip--29.2
Simplified0.2
rmApplied add-sqr-sqrt0.3
Final simplification0.3
herbie shell --seed 2020089 +o rules:numerics
(FPCore (x)
:name "2sqrt (example 3.1)"
:precision binary64
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))