\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\sqrt[3]{{\left(\frac{\log 1 - \left(1 \cdot x + \frac{1}{2} \cdot \frac{{x}^{2}}{{1}^{2}}\right)}{\left(1 \cdot x + \log 1\right) - \frac{1}{2} \cdot \frac{{x}^{2}}{{1}^{2}}}\right)}^{3}}double f(double x) {
double r73976 = 1.0;
double r73977 = x;
double r73978 = r73976 - r73977;
double r73979 = log(r73978);
double r73980 = r73976 + r73977;
double r73981 = log(r73980);
double r73982 = r73979 / r73981;
return r73982;
}
double f(double x) {
double r73983 = 1.0;
double r73984 = log(r73983);
double r73985 = x;
double r73986 = r73983 * r73985;
double r73987 = 0.5;
double r73988 = 2.0;
double r73989 = pow(r73985, r73988);
double r73990 = pow(r73983, r73988);
double r73991 = r73989 / r73990;
double r73992 = r73987 * r73991;
double r73993 = r73986 + r73992;
double r73994 = r73984 - r73993;
double r73995 = r73986 + r73984;
double r73996 = r73995 - r73992;
double r73997 = r73994 / r73996;
double r73998 = 3.0;
double r73999 = pow(r73997, r73998);
double r74000 = cbrt(r73999);
return r74000;
}




Bits error versus x
Results
| Original | 61.4 |
|---|---|
| Target | 0.3 |
| Herbie | 0.4 |
Initial program 61.4
Taylor expanded around 0 60.5
Taylor expanded around 0 0.4
rmApplied add-cbrt-cube42.3
Applied add-cbrt-cube41.7
Applied cbrt-undiv41.7
Simplified0.4
Final simplification0.4
herbie shell --seed 2019323
(FPCore (x)
:name "qlog (example 3.10)"
:precision binary64
:pre (and (< -1 x) (< x 1))
:herbie-target
(- (+ (+ (+ 1 x) (/ (* x x) 2)) (* 0.4166666666666667 (pow x 3))))
(/ (log (- 1 x)) (log (+ 1 x))))