\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\sqrt{\frac{\frac{1}{\sqrt{x + 1} + \sqrt{x}}}{x}} \cdot \frac{\sqrt{\frac{1}{\sqrt{x + 1} + \sqrt{x}}}}{\sqrt{x + 1}}double f(double x) {
double r4294979 = 1.0;
double r4294980 = x;
double r4294981 = sqrt(r4294980);
double r4294982 = r4294979 / r4294981;
double r4294983 = r4294980 + r4294979;
double r4294984 = sqrt(r4294983);
double r4294985 = r4294979 / r4294984;
double r4294986 = r4294982 - r4294985;
return r4294986;
}
double f(double x) {
double r4294987 = 1.0;
double r4294988 = x;
double r4294989 = r4294988 + r4294987;
double r4294990 = sqrt(r4294989);
double r4294991 = sqrt(r4294988);
double r4294992 = r4294990 + r4294991;
double r4294993 = r4294987 / r4294992;
double r4294994 = r4294993 / r4294988;
double r4294995 = sqrt(r4294994);
double r4294996 = sqrt(r4294993);
double r4294997 = r4294996 / r4294990;
double r4294998 = r4294995 * r4294997;
return r4294998;
}




Bits error versus x
Results
| Original | 19.5 |
|---|---|
| Target | 0.7 |
| Herbie | 0.3 |
Initial program 19.5
rmApplied frac-sub19.4
Simplified19.4
rmApplied flip--19.2
Simplified0.4
rmApplied add-sqr-sqrt0.4
Applied times-frac0.4
rmApplied sqrt-undiv0.3
Final simplification0.3
herbie shell --seed 2019142
(FPCore (x)
:name "2isqrt (example 3.6)"
:herbie-target
(/ 1 (+ (* (+ x 1) (sqrt x)) (* x (sqrt (+ x 1)))))
(- (/ 1 (sqrt x)) (/ 1 (sqrt (+ x 1)))))