\sqrt{x + 1} - \sqrt{x}{\left(\left(\sqrt{1 + x} + \sqrt{x}\right) \cdot \left(\sqrt{1 + x} + \sqrt{x}\right)\right)}^{\frac{-1}{2}}double f(double x) {
double r14156796 = x;
double r14156797 = 1.0;
double r14156798 = r14156796 + r14156797;
double r14156799 = sqrt(r14156798);
double r14156800 = sqrt(r14156796);
double r14156801 = r14156799 - r14156800;
return r14156801;
}
double f(double x) {
double r14156802 = 1.0;
double r14156803 = x;
double r14156804 = r14156802 + r14156803;
double r14156805 = sqrt(r14156804);
double r14156806 = sqrt(r14156803);
double r14156807 = r14156805 + r14156806;
double r14156808 = r14156807 * r14156807;
double r14156809 = -0.5;
double r14156810 = pow(r14156808, r14156809);
return r14156810;
}




Bits error versus x
Results
| Original | 29.1 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 29.1
rmApplied flip--28.9
Simplified0.2
rmApplied add-sqr-sqrt0.3
rmApplied inv-pow0.3
Applied sqrt-pow10.3
Applied inv-pow0.3
Applied sqrt-pow10.3
Applied pow-prod-down0.2
Final simplification0.2
herbie shell --seed 2019125
(FPCore (x)
:name "2sqrt (example 3.1)"
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))