Average Error: 58.6 → 0.2
Time: 6.4s
Precision: 64
\[\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\]
\[\frac{1}{2} \cdot \left(\frac{2}{3} \cdot \frac{{x}^{3}}{{1}^{3}} + \left(2 \cdot x + \frac{2}{5} \cdot \frac{{x}^{5}}{{1}^{5}}\right)\right)\]
\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)
\frac{1}{2} \cdot \left(\frac{2}{3} \cdot \frac{{x}^{3}}{{1}^{3}} + \left(2 \cdot x + \frac{2}{5} \cdot \frac{{x}^{5}}{{1}^{5}}\right)\right)
double f(double x) {
        double r120463 = 1.0;
        double r120464 = 2.0;
        double r120465 = r120463 / r120464;
        double r120466 = x;
        double r120467 = r120463 + r120466;
        double r120468 = r120463 - r120466;
        double r120469 = r120467 / r120468;
        double r120470 = log(r120469);
        double r120471 = r120465 * r120470;
        return r120471;
}

double f(double x) {
        double r120472 = 1.0;
        double r120473 = 2.0;
        double r120474 = r120472 / r120473;
        double r120475 = 0.6666666666666666;
        double r120476 = x;
        double r120477 = 3.0;
        double r120478 = pow(r120476, r120477);
        double r120479 = pow(r120472, r120477);
        double r120480 = r120478 / r120479;
        double r120481 = r120475 * r120480;
        double r120482 = r120473 * r120476;
        double r120483 = 0.4;
        double r120484 = 5.0;
        double r120485 = pow(r120476, r120484);
        double r120486 = pow(r120472, r120484);
        double r120487 = r120485 / r120486;
        double r120488 = r120483 * r120487;
        double r120489 = r120482 + r120488;
        double r120490 = r120481 + r120489;
        double r120491 = r120474 * r120490;
        return r120491;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 58.6

    \[\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\]
  2. Using strategy rm
  3. Applied log-div58.6

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

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

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

Reproduce

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