\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 r175191 = x;
double r175192 = r175191 / r175191;
double r175193 = 1.0;
double r175194 = r175193 / r175191;
double r175195 = r175191 * r175191;
double r175196 = sqrt(r175195);
double r175197 = r175194 * r175196;
double r175198 = r175192 - r175197;
return r175198;
}
double f(double x) {
double r175199 = 2.0;
double r175200 = 1.0;
double r175201 = x;
double r175202 = r175200 / r175201;
double r175203 = -r175202;
double r175204 = fabs(r175201);
double r175205 = 1.0;
double r175206 = fma(r175203, r175204, r175205);
double r175207 = exp(r175206);
double r175208 = cbrt(r175207);
double r175209 = log(r175208);
double r175210 = r175199 * r175209;
double r175211 = r175210 + r175209;
return r175211;
}




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)))))