Average Error: 58.5 → 0.3
Time: 15.8s
Precision: 64
\[\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\]
\[\frac{1}{2} \cdot \left(\frac{2}{3} \cdot {\left(\frac{x}{1}\right)}^{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 {\left(\frac{x}{1}\right)}^{3} + \left(2 \cdot x + \frac{2}{5} \cdot \frac{{x}^{5}}{{1}^{5}}\right)\right)
double f(double x) {
        double r36091 = 1.0;
        double r36092 = 2.0;
        double r36093 = r36091 / r36092;
        double r36094 = x;
        double r36095 = r36091 + r36094;
        double r36096 = r36091 - r36094;
        double r36097 = r36095 / r36096;
        double r36098 = log(r36097);
        double r36099 = r36093 * r36098;
        return r36099;
}

double f(double x) {
        double r36100 = 1.0;
        double r36101 = 2.0;
        double r36102 = r36100 / r36101;
        double r36103 = 0.6666666666666666;
        double r36104 = x;
        double r36105 = r36104 / r36100;
        double r36106 = 3.0;
        double r36107 = pow(r36105, r36106);
        double r36108 = r36103 * r36107;
        double r36109 = r36101 * r36104;
        double r36110 = 0.4;
        double r36111 = 5.0;
        double r36112 = pow(r36104, r36111);
        double r36113 = pow(r36100, r36111);
        double r36114 = r36112 / r36113;
        double r36115 = r36110 * r36114;
        double r36116 = r36109 + r36115;
        double r36117 = r36108 + r36116;
        double r36118 = r36102 * r36117;
        return r36118;
}

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. Using strategy rm
  3. Applied flip--58.6

    \[\leadsto \frac{1}{2} \cdot \log \left(\frac{1 + x}{\color{blue}{\frac{1 \cdot 1 - x \cdot x}{1 + x}}}\right)\]
  4. Applied associate-/r/58.5

    \[\leadsto \frac{1}{2} \cdot \log \color{blue}{\left(\frac{1 + x}{1 \cdot 1 - x \cdot x} \cdot \left(1 + x\right)\right)}\]
  5. Applied log-prod58.5

    \[\leadsto \frac{1}{2} \cdot \color{blue}{\left(\log \left(\frac{1 + x}{1 \cdot 1 - x \cdot x}\right) + \log \left(1 + x\right)\right)}\]
  6. Simplified58.5

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

    \[\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)}\]
  8. Simplified0.3

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

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

Reproduce

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