Average Error: 58.5 → 0.7
Time: 16.3s
Precision: 64
\[\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\]
\[\frac{1}{2} \cdot \left(2 \cdot \left(x + x \cdot \left(x - \frac{x}{1 \cdot 1}\right)\right) + \log 1\right)\]
\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)
\frac{1}{2} \cdot \left(2 \cdot \left(x + x \cdot \left(x - \frac{x}{1 \cdot 1}\right)\right) + \log 1\right)
double f(double x) {
        double r64672 = 1.0;
        double r64673 = 2.0;
        double r64674 = r64672 / r64673;
        double r64675 = x;
        double r64676 = r64672 + r64675;
        double r64677 = r64672 - r64675;
        double r64678 = r64676 / r64677;
        double r64679 = log(r64678);
        double r64680 = r64674 * r64679;
        return r64680;
}

double f(double x) {
        double r64681 = 1.0;
        double r64682 = 2.0;
        double r64683 = r64681 / r64682;
        double r64684 = x;
        double r64685 = r64681 * r64681;
        double r64686 = r64684 / r64685;
        double r64687 = r64684 - r64686;
        double r64688 = r64684 * r64687;
        double r64689 = r64684 + r64688;
        double r64690 = r64682 * r64689;
        double r64691 = log(r64681);
        double r64692 = r64690 + r64691;
        double r64693 = r64683 * r64692;
        return r64693;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 58.5

    \[\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\]
  2. Taylor expanded around 0 0.7

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

    \[\leadsto \frac{1}{2} \cdot \color{blue}{\left(2 \cdot \left(x + x \cdot \left(x - \frac{x}{1 \cdot 1}\right)\right) + \log 1\right)}\]
  4. Final simplification0.7

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

Reproduce

herbie shell --seed 2019306 
(FPCore (x)
  :name "Hyperbolic arc-(co)tangent"
  :precision binary64
  (* (/ 1 2) (log (/ (+ 1 x) (- 1 x)))))