Average Error: 58.6 → 0.2
Time: 5.8s
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 r70344 = 1.0;
        double r70345 = 2.0;
        double r70346 = r70344 / r70345;
        double r70347 = x;
        double r70348 = r70344 + r70347;
        double r70349 = r70344 - r70347;
        double r70350 = r70348 / r70349;
        double r70351 = log(r70350);
        double r70352 = r70346 * r70351;
        return r70352;
}

double f(double x) {
        double r70353 = 1.0;
        double r70354 = 2.0;
        double r70355 = r70353 / r70354;
        double r70356 = 0.6666666666666666;
        double r70357 = x;
        double r70358 = 3.0;
        double r70359 = pow(r70357, r70358);
        double r70360 = pow(r70353, r70358);
        double r70361 = r70359 / r70360;
        double r70362 = r70356 * r70361;
        double r70363 = r70354 * r70357;
        double r70364 = 0.4;
        double r70365 = 5.0;
        double r70366 = pow(r70357, r70365);
        double r70367 = pow(r70353, r70365);
        double r70368 = r70366 / r70367;
        double r70369 = r70364 * r70368;
        double r70370 = r70363 + r70369;
        double r70371 = r70362 + r70370;
        double r70372 = r70355 * r70371;
        return r70372;
}

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