\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 r150307 = x;
double r150308 = r150307 / r150307;
double r150309 = 1.0;
double r150310 = r150309 / r150307;
double r150311 = r150307 * r150307;
double r150312 = sqrt(r150311);
double r150313 = r150310 * r150312;
double r150314 = r150308 - r150313;
return r150314;
}
double f(double x) {
double r150315 = 2.0;
double r150316 = 1.0;
double r150317 = x;
double r150318 = r150316 / r150317;
double r150319 = -r150318;
double r150320 = fabs(r150317);
double r150321 = 1.0;
double r150322 = fma(r150319, r150320, r150321);
double r150323 = exp(r150322);
double r150324 = cbrt(r150323);
double r150325 = log(r150324);
double r150326 = r150315 * r150325;
double r150327 = r150326 + r150325;
return r150327;
}




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