\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 r125948 = x;
double r125949 = r125948 / r125948;
double r125950 = 1.0;
double r125951 = r125950 / r125948;
double r125952 = r125948 * r125948;
double r125953 = sqrt(r125952);
double r125954 = r125951 * r125953;
double r125955 = r125949 - r125954;
return r125955;
}
double f(double x) {
double r125956 = 2.0;
double r125957 = 1.0;
double r125958 = x;
double r125959 = r125957 / r125958;
double r125960 = -r125959;
double r125961 = fabs(r125958);
double r125962 = 1.0;
double r125963 = fma(r125960, r125961, r125962);
double r125964 = exp(r125963);
double r125965 = cbrt(r125964);
double r125966 = log(r125965);
double r125967 = r125956 * r125966;
double r125968 = r125967 + r125966;
return r125968;
}




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