\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 r125497 = x;
double r125498 = r125497 / r125497;
double r125499 = 1.0;
double r125500 = r125499 / r125497;
double r125501 = r125497 * r125497;
double r125502 = sqrt(r125501);
double r125503 = r125500 * r125502;
double r125504 = r125498 - r125503;
return r125504;
}
double f(double x) {
double r125505 = 2.0;
double r125506 = 1.0;
double r125507 = x;
double r125508 = r125506 / r125507;
double r125509 = -r125508;
double r125510 = fabs(r125507);
double r125511 = 1.0;
double r125512 = fma(r125509, r125510, r125511);
double r125513 = exp(r125512);
double r125514 = cbrt(r125513);
double r125515 = log(r125514);
double r125516 = r125505 * r125515;
double r125517 = r125516 + r125515;
return r125517;
}




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