\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{\frac{1 \cdot \frac{1}{\sqrt{x + 1} + \sqrt{x}}}{\sqrt{x}}}{\sqrt{x + 1}}double f(double x) {
double r173142 = 1.0;
double r173143 = x;
double r173144 = sqrt(r173143);
double r173145 = r173142 / r173144;
double r173146 = r173143 + r173142;
double r173147 = sqrt(r173146);
double r173148 = r173142 / r173147;
double r173149 = r173145 - r173148;
return r173149;
}
double f(double x) {
double r173150 = 1.0;
double r173151 = x;
double r173152 = r173151 + r173150;
double r173153 = sqrt(r173152);
double r173154 = sqrt(r173151);
double r173155 = r173153 + r173154;
double r173156 = r173150 / r173155;
double r173157 = r173150 * r173156;
double r173158 = r173157 / r173154;
double r173159 = r173158 / r173153;
return r173159;
}




Bits error versus x
Results
| Original | 20.0 |
|---|---|
| Target | 0.7 |
| Herbie | 0.4 |
Initial program 20.0
rmApplied frac-sub20.0
Simplified20.0
rmApplied flip--19.8
Simplified19.5
Taylor expanded around 0 0.4
rmApplied associate-/r*0.4
Final simplification0.4
herbie shell --seed 2020018
(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)))))