\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}6 \cdot \log \left(e^{\frac{x - 1}{\left(x + 1\right) + 4 \cdot \sqrt{x}}}\right)double f(double x) {
double r989857 = 6.0;
double r989858 = x;
double r989859 = 1.0;
double r989860 = r989858 - r989859;
double r989861 = r989857 * r989860;
double r989862 = r989858 + r989859;
double r989863 = 4.0;
double r989864 = sqrt(r989858);
double r989865 = r989863 * r989864;
double r989866 = r989862 + r989865;
double r989867 = r989861 / r989866;
return r989867;
}
double f(double x) {
double r989868 = 6.0;
double r989869 = x;
double r989870 = 1.0;
double r989871 = r989869 - r989870;
double r989872 = r989869 + r989870;
double r989873 = 4.0;
double r989874 = sqrt(r989869);
double r989875 = r989873 * r989874;
double r989876 = r989872 + r989875;
double r989877 = r989871 / r989876;
double r989878 = exp(r989877);
double r989879 = log(r989878);
double r989880 = r989868 * r989879;
return r989880;
}




Bits error versus x
Results
| Original | 0.2 |
|---|---|
| Target | 0.0 |
| Herbie | 0.1 |
Initial program 0.2
rmApplied *-un-lft-identity0.2
Applied times-frac0.0
Simplified0.0
rmApplied add-log-exp0.1
Final simplification0.1
herbie shell --seed 2020036
(FPCore (x)
:name "Data.Approximate.Numerics:blog from approximate-0.2.2.1"
:precision binary64
:herbie-target
(/ 6 (/ (+ (+ x 1) (* 4 (sqrt x))) (- x 1)))
(/ (* 6 (- x 1)) (+ (+ x 1) (* 4 (sqrt x)))))