\sqrt{x + 1} - \sqrt{x}\frac{\frac{1}{\sqrt{\sqrt{x + 1} + \sqrt{x}}}}{\sqrt{\sqrt{x + 1} + \sqrt{x}}}double f(double x) {
double r7217651 = x;
double r7217652 = 1.0;
double r7217653 = r7217651 + r7217652;
double r7217654 = sqrt(r7217653);
double r7217655 = sqrt(r7217651);
double r7217656 = r7217654 - r7217655;
return r7217656;
}
double f(double x) {
double r7217657 = 1.0;
double r7217658 = x;
double r7217659 = r7217658 + r7217657;
double r7217660 = sqrt(r7217659);
double r7217661 = sqrt(r7217658);
double r7217662 = r7217660 + r7217661;
double r7217663 = sqrt(r7217662);
double r7217664 = r7217657 / r7217663;
double r7217665 = r7217664 / r7217663;
return r7217665;
}




Bits error versus x
Results
| Original | 29.8 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 29.8
rmApplied flip--29.6
Taylor expanded around inf 0.2
rmApplied add-sqr-sqrt0.4
Applied associate-/r*0.3
Final simplification0.3
herbie shell --seed 2019104 +o rules:numerics
(FPCore (x)
:name "2sqrt (example 3.1)"
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))