\sqrt{x + 1} - \sqrt{x}\frac{1}{\left(\sqrt{\sqrt{\sqrt[3]{x + 1}}} \cdot \sqrt{\sqrt{x + 1}}\right) \cdot \sqrt{\sqrt{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}} + \sqrt{x}}double f(double x) {
double r4914097 = x;
double r4914098 = 1.0;
double r4914099 = r4914097 + r4914098;
double r4914100 = sqrt(r4914099);
double r4914101 = sqrt(r4914097);
double r4914102 = r4914100 - r4914101;
return r4914102;
}
double f(double x) {
double r4914103 = 1.0;
double r4914104 = x;
double r4914105 = r4914104 + r4914103;
double r4914106 = cbrt(r4914105);
double r4914107 = sqrt(r4914106);
double r4914108 = sqrt(r4914107);
double r4914109 = sqrt(r4914105);
double r4914110 = sqrt(r4914109);
double r4914111 = r4914108 * r4914110;
double r4914112 = r4914106 * r4914106;
double r4914113 = sqrt(r4914112);
double r4914114 = sqrt(r4914113);
double r4914115 = r4914111 * r4914114;
double r4914116 = sqrt(r4914104);
double r4914117 = r4914115 + r4914116;
double r4914118 = r4914103 / r4914117;
return r4914118;
}




Bits error versus x
Results
| Original | 30.1 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 30.1
rmApplied flip--29.9
Simplified29.4
Simplified29.4
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
Applied associate-*l*0.3
Final simplification0.3
herbie shell --seed 2019169 +o rules:numerics
(FPCore (x)
:name "2sqrt (example 3.1)"
:herbie-target
(/ 1.0 (+ (sqrt (+ x 1.0)) (sqrt x)))
(- (sqrt (+ x 1.0)) (sqrt x)))