\sqrt{x + 1} - \sqrt{x}e^{\sqrt[3]{\log \left((\left(\sqrt{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}\right) \cdot \left(\sqrt{\sqrt[3]{1 + x}}\right) + \left(-\sqrt{x}\right))_*\right) \cdot \left(\log \left((\left(\sqrt{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}\right) \cdot \left(\sqrt{\sqrt[3]{1 + x}}\right) + \left(-\sqrt{x}\right))_*\right) \cdot \log \left((\left(\sqrt{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}\right) \cdot \left(\sqrt{\sqrt[3]{1 + x}}\right) + \left(-\sqrt{x}\right))_*\right)\right)}}double f(double x) {
double r11112470 = x;
double r11112471 = 1.0;
double r11112472 = r11112470 + r11112471;
double r11112473 = sqrt(r11112472);
double r11112474 = sqrt(r11112470);
double r11112475 = r11112473 - r11112474;
return r11112475;
}
double f(double x) {
double r11112476 = 1.0;
double r11112477 = x;
double r11112478 = r11112476 + r11112477;
double r11112479 = cbrt(r11112478);
double r11112480 = r11112479 * r11112479;
double r11112481 = sqrt(r11112480);
double r11112482 = sqrt(r11112479);
double r11112483 = sqrt(r11112477);
double r11112484 = -r11112483;
double r11112485 = fma(r11112481, r11112482, r11112484);
double r11112486 = log(r11112485);
double r11112487 = r11112486 * r11112486;
double r11112488 = r11112486 * r11112487;
double r11112489 = cbrt(r11112488);
double r11112490 = exp(r11112489);
return r11112490;
}




Bits error versus x
| Original | 29.6 |
|---|---|
| Target | 0.2 |
| Herbie | 29.6 |
Initial program 29.6
rmApplied add-cube-cbrt29.7
Applied sqrt-prod29.7
Applied fma-neg29.7
rmApplied add-exp-log29.6
rmApplied add-cbrt-cube29.6
Final simplification29.6
herbie shell --seed 2019112 +o rules:numerics
(FPCore (x)
:name "2sqrt (example 3.1)"
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))