\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 r467 = x;
double r468 = r467 / r467;
double r469 = 1.0;
double r470 = r469 / r467;
double r471 = r467 * r467;
double r472 = sqrt(r471);
double r473 = r470 * r472;
double r474 = r468 - r473;
return r474;
}
double f(double x) {
double r475 = 2.0;
double r476 = 1.0;
double r477 = x;
double r478 = r476 / r477;
double r479 = -r478;
double r480 = fabs(r477);
double r481 = 1.0;
double r482 = fma(r479, r480, r481);
double r483 = exp(r482);
double r484 = cbrt(r483);
double r485 = log(r484);
double r486 = r475 * r485;
double r487 = r486 + r485;
return r487;
}




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