\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}1 \cdot \frac{\frac{\frac{1}{\sqrt{x}}}{\sqrt{x + 1}}}{1 \cdot \left(\sqrt{x} + \sqrt{x + 1}\right)}double f(double x) {
double r5953419 = 1.0;
double r5953420 = x;
double r5953421 = sqrt(r5953420);
double r5953422 = r5953419 / r5953421;
double r5953423 = r5953420 + r5953419;
double r5953424 = sqrt(r5953423);
double r5953425 = r5953419 / r5953424;
double r5953426 = r5953422 - r5953425;
return r5953426;
}
double f(double x) {
double r5953427 = 1.0;
double r5953428 = 1.0;
double r5953429 = x;
double r5953430 = sqrt(r5953429);
double r5953431 = r5953428 / r5953430;
double r5953432 = r5953429 + r5953427;
double r5953433 = sqrt(r5953432);
double r5953434 = r5953431 / r5953433;
double r5953435 = r5953430 + r5953433;
double r5953436 = r5953427 * r5953435;
double r5953437 = r5953434 / r5953436;
double r5953438 = r5953427 * r5953437;
return r5953438;
}




Bits error versus x
Results
| Original | 19.9 |
|---|---|
| Target | 0.7 |
| Herbie | 0.4 |
Initial program 19.9
rmApplied frac-sub19.9
rmApplied flip--19.7
Applied associate-/l/19.7
Taylor expanded around 0 0.8
rmApplied div-inv0.8
Simplified0.4
Final simplification0.4
herbie shell --seed 2019200
(FPCore (x)
:name "2isqrt (example 3.6)"
:herbie-target
(/ 1.0 (+ (* (+ x 1.0) (sqrt x)) (* x (sqrt (+ x 1.0)))))
(- (/ 1.0 (sqrt x)) (/ 1.0 (sqrt (+ x 1.0)))))