\sqrt{x + 1} - \sqrt{x}\frac{\sqrt{\frac{1 + 0}{\sqrt{x + 1} + \sqrt{x}}} \cdot \sqrt{1}}{\sqrt{\sqrt{x + 1} + \sqrt{x}}}double f(double x) {
double r486748 = x;
double r486749 = 1.0;
double r486750 = r486748 + r486749;
double r486751 = sqrt(r486750);
double r486752 = sqrt(r486748);
double r486753 = r486751 - r486752;
return r486753;
}
double f(double x) {
double r486754 = 1.0;
double r486755 = 0.0;
double r486756 = r486754 + r486755;
double r486757 = x;
double r486758 = r486757 + r486754;
double r486759 = sqrt(r486758);
double r486760 = sqrt(r486757);
double r486761 = r486759 + r486760;
double r486762 = r486756 / r486761;
double r486763 = sqrt(r486762);
double r486764 = sqrt(r486754);
double r486765 = r486763 * r486764;
double r486766 = sqrt(r486761);
double r486767 = r486765 / r486766;
return r486767;
}




Bits error versus x
Results
| Original | 30.1 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 30.1
rmApplied flip--29.9
Simplified0.2
rmApplied add-sqr-sqrt0.3
rmApplied sqrt-div0.3
Applied associate-*r/0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019353 +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)))