\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{1}{\sqrt{x}} \cdot \frac{1}{\sqrt{x + 1} \cdot \sqrt{x} + \left(x + 1\right)}double f(double x) {
double r127776 = 1.0;
double r127777 = x;
double r127778 = sqrt(r127777);
double r127779 = r127776 / r127778;
double r127780 = r127777 + r127776;
double r127781 = sqrt(r127780);
double r127782 = r127776 / r127781;
double r127783 = r127779 - r127782;
return r127783;
}
double f(double x) {
double r127784 = 1.0;
double r127785 = x;
double r127786 = sqrt(r127785);
double r127787 = r127784 / r127786;
double r127788 = r127785 + r127784;
double r127789 = sqrt(r127788);
double r127790 = r127789 * r127786;
double r127791 = r127790 + r127788;
double r127792 = r127784 / r127791;
double r127793 = r127787 * r127792;
return r127793;
}




Bits error versus x
Results
| Original | 19.2 |
|---|---|
| Target | 0.7 |
| Herbie | 0.3 |
Initial program 19.2
rmApplied frac-sub19.2
Simplified19.2
rmApplied flip--19.0
Simplified18.6
Taylor expanded around 0 0.4
rmApplied times-frac0.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2019297
(FPCore (x)
:name "2isqrt (example 3.6)"
:precision binary64
:herbie-target
(/ 1 (+ (* (+ x 1) (sqrt x)) (* x (sqrt (+ x 1)))))
(- (/ 1 (sqrt x)) (/ 1 (sqrt (+ x 1)))))