\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 r193547 = x;
double r193548 = r193547 / r193547;
double r193549 = 1.0;
double r193550 = r193549 / r193547;
double r193551 = r193547 * r193547;
double r193552 = sqrt(r193551);
double r193553 = r193550 * r193552;
double r193554 = r193548 - r193553;
return r193554;
}
double f(double x) {
double r193555 = 2.0;
double r193556 = 1.0;
double r193557 = x;
double r193558 = r193556 / r193557;
double r193559 = -r193558;
double r193560 = fabs(r193557);
double r193561 = 1.0;
double r193562 = fma(r193559, r193560, r193561);
double r193563 = exp(r193562);
double r193564 = cbrt(r193563);
double r193565 = log(r193564);
double r193566 = r193555 * r193565;
double r193567 = r193566 + r193565;
return r193567;
}




Bits error versus x
| Original | 32.8 |
|---|---|
| Target | 0 |
| Herbie | 0.0 |
Initial program 32.8
Simplified31.1
rmApplied add-log-exp4.8
rmApplied add-cube-cbrt0.0
Applied log-prod0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020056 +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)))))