\sqrt{x + 1} - \sqrt{x}\frac{1 + 0}{\mathsf{fma}\left(\sqrt{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}, \sqrt{\sqrt[3]{x + 1}}, \sqrt{x}\right)}double f(double x) {
double r685456 = x;
double r685457 = 1.0;
double r685458 = r685456 + r685457;
double r685459 = sqrt(r685458);
double r685460 = sqrt(r685456);
double r685461 = r685459 - r685460;
return r685461;
}
double f(double x) {
double r685462 = 1.0;
double r685463 = 0.0;
double r685464 = r685462 + r685463;
double r685465 = x;
double r685466 = r685465 + r685462;
double r685467 = cbrt(r685466);
double r685468 = r685467 * r685467;
double r685469 = sqrt(r685468);
double r685470 = sqrt(r685467);
double r685471 = sqrt(r685465);
double r685472 = fma(r685469, r685470, r685471);
double r685473 = r685464 / r685472;
return r685473;
}




Bits error versus x
| Original | 30.6 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 30.6
rmApplied flip--30.4
Simplified0.2
rmApplied add-cube-cbrt0.3
Applied sqrt-prod0.3
Applied fma-def0.3
Final simplification0.3
herbie shell --seed 2020025 +o rules:numerics
(FPCore (x)
:name "Main:bigenough3 from C"
:precision binary64
:herbie-target
(/ 1 (+ (sqrt (+ x 1)) (sqrt x)))
(- (sqrt (+ x 1)) (sqrt x)))