\frac{x}{x} - \frac{1}{x} \cdot \sqrt{x \cdot x}2 \cdot \log \left(\sqrt[3]{e^{\mathsf{fma}\left(-\frac{1}{x}, \left|x\right|, 1\right)}}\right) + \log \left(\sqrt[3]{e^{\mathsf{fma}\left(-\frac{1}{x}, \left|x\right|, 1\right)}}\right)double f(double x) {
double r210278 = x;
double r210279 = r210278 / r210278;
double r210280 = 1.0;
double r210281 = r210280 / r210278;
double r210282 = r210278 * r210278;
double r210283 = sqrt(r210282);
double r210284 = r210281 * r210283;
double r210285 = r210279 - r210284;
return r210285;
}
double f(double x) {
double r210286 = 2.0;
double r210287 = 1.0;
double r210288 = x;
double r210289 = r210287 / r210288;
double r210290 = -r210289;
double r210291 = fabs(r210288);
double r210292 = 1.0;
double r210293 = fma(r210290, r210291, r210292);
double r210294 = exp(r210293);
double r210295 = cbrt(r210294);
double r210296 = log(r210295);
double r210297 = r210286 * r210296;
double r210298 = r210297 + r210296;
return r210298;
}




Bits error versus x
| Original | 32.3 |
|---|---|
| Target | 0 |
| Herbie | 0.0 |
Initial program 32.3
Simplified30.9
rmApplied add-log-exp4.7
rmApplied add-cube-cbrt0.0
Applied log-prod0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019362 +o rules:numerics
(FPCore (x)
:name "sqrt sqr"
:precision binary64
:herbie-target
(if (< x 0.0) 2 0.0)
(- (/ x x) (* (/ 1 x) (sqrt (* x x)))))