Average Error: 58.4 → 0.2
Time: 11.8s
Precision: 64
\[\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\]
\[\mathsf{fma}\left(2, x, \mathsf{fma}\left(\frac{2}{5}, {x}^{5}, x \cdot \left(\left(x \cdot x\right) \cdot \frac{2}{3}\right)\right)\right) \cdot \frac{1}{2}\]
\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)
\mathsf{fma}\left(2, x, \mathsf{fma}\left(\frac{2}{5}, {x}^{5}, x \cdot \left(\left(x \cdot x\right) \cdot \frac{2}{3}\right)\right)\right) \cdot \frac{1}{2}
double f(double x) {
        double r976970 = 1.0;
        double r976971 = 2.0;
        double r976972 = r976970 / r976971;
        double r976973 = x;
        double r976974 = r976970 + r976973;
        double r976975 = r976970 - r976973;
        double r976976 = r976974 / r976975;
        double r976977 = log(r976976);
        double r976978 = r976972 * r976977;
        return r976978;
}

double f(double x) {
        double r976979 = 2.0;
        double r976980 = x;
        double r976981 = 0.4;
        double r976982 = 5.0;
        double r976983 = pow(r976980, r976982);
        double r976984 = r976980 * r976980;
        double r976985 = 0.6666666666666666;
        double r976986 = r976984 * r976985;
        double r976987 = r976980 * r976986;
        double r976988 = fma(r976981, r976983, r976987);
        double r976989 = fma(r976979, r976980, r976988);
        double r976990 = 0.5;
        double r976991 = r976989 * r976990;
        return r976991;
}

Error

Bits error versus x

Derivation

  1. Initial program 58.4

    \[\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\]
  2. Simplified58.4

    \[\leadsto \color{blue}{\frac{1}{2} \cdot \log \left(\frac{x + 1}{1 - x}\right)}\]
  3. Taylor expanded around 0 0.2

    \[\leadsto \frac{1}{2} \cdot \color{blue}{\left(2 \cdot x + \left(\frac{2}{3} \cdot {x}^{3} + \frac{2}{5} \cdot {x}^{5}\right)\right)}\]
  4. Simplified0.2

    \[\leadsto \frac{1}{2} \cdot \color{blue}{\mathsf{fma}\left(2, x, \mathsf{fma}\left(\frac{2}{5}, {x}^{5}, \left(\frac{2}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right)\right)}\]
  5. Final simplification0.2

    \[\leadsto \mathsf{fma}\left(2, x, \mathsf{fma}\left(\frac{2}{5}, {x}^{5}, x \cdot \left(\left(x \cdot x\right) \cdot \frac{2}{3}\right)\right)\right) \cdot \frac{1}{2}\]

Reproduce

herbie shell --seed 2019154 +o rules:numerics
(FPCore (x)
  :name "Hyperbolic arc-(co)tangent"
  (* (/ 1 2) (log (/ (+ 1 x) (- 1 x)))))