\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 r171522 = x;
double r171523 = r171522 / r171522;
double r171524 = 1.0;
double r171525 = r171524 / r171522;
double r171526 = r171522 * r171522;
double r171527 = sqrt(r171526);
double r171528 = r171525 * r171527;
double r171529 = r171523 - r171528;
return r171529;
}
double f(double x) {
double r171530 = 2.0;
double r171531 = 1.0;
double r171532 = x;
double r171533 = r171531 / r171532;
double r171534 = -r171533;
double r171535 = fabs(r171532);
double r171536 = 1.0;
double r171537 = fma(r171534, r171535, r171536);
double r171538 = exp(r171537);
double r171539 = cbrt(r171538);
double r171540 = log(r171539);
double r171541 = r171530 * r171540;
double r171542 = r171541 + r171540;
return r171542;
}




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