\sqrt{x + 1} - \sqrt{x}\frac{1}{\sqrt{x} + \left(\sqrt{\sqrt{\sqrt[3]{x + 1}}} \cdot \sqrt{\left|\sqrt[3]{x + 1}\right|}\right) \cdot \sqrt{\sqrt{x + 1}}}double f(double x) {
double r2378721 = x;
double r2378722 = 1.0;
double r2378723 = r2378721 + r2378722;
double r2378724 = sqrt(r2378723);
double r2378725 = sqrt(r2378721);
double r2378726 = r2378724 - r2378725;
return r2378726;
}
double f(double x) {
double r2378727 = 1.0;
double r2378728 = x;
double r2378729 = sqrt(r2378728);
double r2378730 = r2378728 + r2378727;
double r2378731 = cbrt(r2378730);
double r2378732 = sqrt(r2378731);
double r2378733 = sqrt(r2378732);
double r2378734 = fabs(r2378731);
double r2378735 = sqrt(r2378734);
double r2378736 = r2378733 * r2378735;
double r2378737 = sqrt(r2378730);
double r2378738 = sqrt(r2378737);
double r2378739 = r2378736 * r2378738;
double r2378740 = r2378729 + r2378739;
double r2378741 = r2378727 / r2378740;
return r2378741;
}




Bits error versus x
Results
| Original | 29.6 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 29.6
rmApplied flip--29.4
Simplified28.9
Taylor expanded around 0 0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.3
rmApplied add-cube-cbrt0.3
Applied sqrt-prod0.3
Applied sqrt-prod0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019156
(FPCore (x)
:name "2sqrt (example 3.1)"
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))