\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\frac{\frac{1}{\sqrt{1 + x} + \sqrt{x}}}{\sqrt{1 + x}} \cdot {x}^{\frac{-1}{2}}double f(double x) {
double r1460709 = 1.0;
double r1460710 = x;
double r1460711 = sqrt(r1460710);
double r1460712 = r1460709 / r1460711;
double r1460713 = r1460710 + r1460709;
double r1460714 = sqrt(r1460713);
double r1460715 = r1460709 / r1460714;
double r1460716 = r1460712 - r1460715;
return r1460716;
}
double f(double x) {
double r1460717 = 1.0;
double r1460718 = x;
double r1460719 = r1460717 + r1460718;
double r1460720 = sqrt(r1460719);
double r1460721 = sqrt(r1460718);
double r1460722 = r1460720 + r1460721;
double r1460723 = r1460717 / r1460722;
double r1460724 = r1460723 / r1460720;
double r1460725 = -0.5;
double r1460726 = pow(r1460718, r1460725);
double r1460727 = r1460724 * r1460726;
return r1460727;
}




Bits error versus x
Results
| Original | 19.6 |
|---|---|
| Target | 0.7 |
| Herbie | 0.2 |
Initial program 19.6
rmApplied frac-sub19.5
Simplified19.5
rmApplied flip--19.3
Simplified18.9
rmApplied *-un-lft-identity18.9
Applied *-un-lft-identity18.9
Applied times-frac18.9
Applied times-frac18.9
Simplified18.9
Simplified0.4
rmApplied pow1/20.4
Applied pow-flip0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019153
(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)))))