Average Error: 58.5 → 0.6
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 r69305 = 1.0;
        double r69306 = 2.0;
        double r69307 = r69305 / r69306;
        double r69308 = x;
        double r69309 = r69305 + r69308;
        double r69310 = r69305 - r69308;
        double r69311 = r69309 / r69310;
        double r69312 = log(r69311);
        double r69313 = r69307 * r69312;
        return r69313;
}

double f(double x) {
        double r69314 = 1.0;
        double r69315 = 2.0;
        double r69316 = r69314 / r69315;
        double r69317 = x;
        double r69318 = r69314 * r69314;
        double r69319 = r69317 / r69318;
        double r69320 = r69317 - r69319;
        double r69321 = r69317 * r69320;
        double r69322 = r69317 + r69321;
        double r69323 = r69315 * r69322;
        double r69324 = log(r69314);
        double r69325 = r69323 + r69324;
        double r69326 = r69316 * r69325;
        return r69326;
}

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.6

    \[\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.6

    \[\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.6

    \[\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 2019325 
(FPCore (x)
  :name "Hyperbolic arc-(co)tangent"
  :precision binary64
  (* (/ 1 2) (log (/ (+ 1 x) (- 1 x)))))