\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 r133576 = x;
double r133577 = r133576 / r133576;
double r133578 = 1.0;
double r133579 = r133578 / r133576;
double r133580 = r133576 * r133576;
double r133581 = sqrt(r133580);
double r133582 = r133579 * r133581;
double r133583 = r133577 - r133582;
return r133583;
}
double f(double x) {
double r133584 = 2.0;
double r133585 = 1.0;
double r133586 = x;
double r133587 = r133585 / r133586;
double r133588 = -r133587;
double r133589 = fabs(r133586);
double r133590 = 1.0;
double r133591 = fma(r133588, r133589, r133590);
double r133592 = exp(r133591);
double r133593 = cbrt(r133592);
double r133594 = log(r133593);
double r133595 = r133584 * r133594;
double r133596 = r133595 + r133594;
return r133596;
}




Bits error versus x
| Original | 32.4 |
|---|---|
| Target | 0 |
| Herbie | 0.0 |
Initial program 32.4
Simplified30.3
rmApplied add-log-exp4.9
rmApplied add-cube-cbrt0.0
Applied log-prod0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020081 +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)))))