\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 r3356320 = x;
double r3356321 = 1.0;
double r3356322 = r3356320 + r3356321;
double r3356323 = sqrt(r3356322);
double r3356324 = sqrt(r3356320);
double r3356325 = r3356323 - r3356324;
return r3356325;
}
double f(double x) {
double r3356326 = 1.0;
double r3356327 = x;
double r3356328 = r3356326 + r3356327;
double r3356329 = sqrt(r3356328);
double r3356330 = sqrt(r3356327);
double r3356331 = r3356329 + r3356330;
double r3356332 = r3356331 * r3356331;
double r3356333 = -0.5;
double r3356334 = pow(r3356332, r3356333);
return r3356334;
}




Bits error versus x
Results
| Original | 29.3 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 29.3
rmApplied flip--29.1
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 2019138
(FPCore (x)
:name "2sqrt (example 3.1)"
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))