Average Error: 58.5 → 0.3
Time: 17.0s
Precision: 64
\[\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\]
\[\frac{1}{2} \cdot \left(\left(\frac{2.666666666666666518636930049979127943516 \cdot \left(x \cdot \left(x \cdot x\right)\right)}{1 \cdot \left(1 \cdot 1\right)} + 2 \cdot \left(x + \frac{x \cdot x}{1 \cdot 1}\right)\right) - 2 \cdot \left(\frac{x \cdot \left(x \cdot x\right)}{1 \cdot 1} + x \cdot x\right)\right)\]
\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)
\frac{1}{2} \cdot \left(\left(\frac{2.666666666666666518636930049979127943516 \cdot \left(x \cdot \left(x \cdot x\right)\right)}{1 \cdot \left(1 \cdot 1\right)} + 2 \cdot \left(x + \frac{x \cdot x}{1 \cdot 1}\right)\right) - 2 \cdot \left(\frac{x \cdot \left(x \cdot x\right)}{1 \cdot 1} + x \cdot x\right)\right)
double f(double x) {
        double r4824088 = 1.0;
        double r4824089 = 2.0;
        double r4824090 = r4824088 / r4824089;
        double r4824091 = x;
        double r4824092 = r4824088 + r4824091;
        double r4824093 = r4824088 - r4824091;
        double r4824094 = r4824092 / r4824093;
        double r4824095 = log(r4824094);
        double r4824096 = r4824090 * r4824095;
        return r4824096;
}

double f(double x) {
        double r4824097 = 1.0;
        double r4824098 = 2.0;
        double r4824099 = r4824097 / r4824098;
        double r4824100 = 2.6666666666666665;
        double r4824101 = x;
        double r4824102 = r4824101 * r4824101;
        double r4824103 = r4824101 * r4824102;
        double r4824104 = r4824100 * r4824103;
        double r4824105 = r4824097 * r4824097;
        double r4824106 = r4824097 * r4824105;
        double r4824107 = r4824104 / r4824106;
        double r4824108 = r4824102 / r4824105;
        double r4824109 = r4824101 + r4824108;
        double r4824110 = r4824098 * r4824109;
        double r4824111 = r4824107 + r4824110;
        double r4824112 = r4824103 / r4824105;
        double r4824113 = r4824112 + r4824102;
        double r4824114 = r4824098 * r4824113;
        double r4824115 = r4824111 - r4824114;
        double r4824116 = r4824099 * r4824115;
        return r4824116;
}

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{\color{blue}{\frac{1 \cdot 1 - x \cdot x}{1 - x}}}{1 - x}\right)\]
  4. Applied associate-/l/58.5

    \[\leadsto \frac{1}{2} \cdot \log \color{blue}{\left(\frac{1 \cdot 1 - x \cdot x}{\left(1 - x\right) \cdot \left(1 - x\right)}\right)}\]
  5. Using strategy rm
  6. Applied log-div58.5

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

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

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

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

Reproduce

herbie shell --seed 2019173 
(FPCore (x)
  :name "Hyperbolic arc-(co)tangent"
  (* (/ 1.0 2.0) (log (/ (+ 1.0 x) (- 1.0 x)))))