\sqrt{x + 1} - \sqrt{x}\frac{1}{\mathsf{fma}\left(\sqrt{\sqrt[3]{x} \cdot \sqrt[3]{x}}, \sqrt{\sqrt[3]{x}}, \sqrt{x + 1}\right)}double f(double x) {
double r393451 = x;
double r393452 = 1.0;
double r393453 = r393451 + r393452;
double r393454 = sqrt(r393453);
double r393455 = sqrt(r393451);
double r393456 = r393454 - r393455;
return r393456;
}
double f(double x) {
double r393457 = 1.0;
double r393458 = x;
double r393459 = cbrt(r393458);
double r393460 = r393459 * r393459;
double r393461 = sqrt(r393460);
double r393462 = sqrt(r393459);
double r393463 = r393458 + r393457;
double r393464 = sqrt(r393463);
double r393465 = fma(r393461, r393462, r393464);
double r393466 = r393457 / r393465;
return r393466;
}




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