Average Error: 58.7 → 0.2
Time: 6.1s
Precision: 64
\[\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\]
\[\frac{1}{2} \cdot \mathsf{fma}\left(\frac{2}{3}, \frac{{x}^{3}}{{1}^{3}}, \mathsf{fma}\left(2, 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 \mathsf{fma}\left(\frac{2}{3}, \frac{{x}^{3}}{{1}^{3}}, \mathsf{fma}\left(2, x, \frac{2}{5} \cdot \frac{{x}^{5}}{{1}^{5}}\right)\right)
double f(double x) {
        double r59357 = 1.0;
        double r59358 = 2.0;
        double r59359 = r59357 / r59358;
        double r59360 = x;
        double r59361 = r59357 + r59360;
        double r59362 = r59357 - r59360;
        double r59363 = r59361 / r59362;
        double r59364 = log(r59363);
        double r59365 = r59359 * r59364;
        return r59365;
}

double f(double x) {
        double r59366 = 1.0;
        double r59367 = 2.0;
        double r59368 = r59366 / r59367;
        double r59369 = 0.6666666666666666;
        double r59370 = x;
        double r59371 = 3.0;
        double r59372 = pow(r59370, r59371);
        double r59373 = pow(r59366, r59371);
        double r59374 = r59372 / r59373;
        double r59375 = 0.4;
        double r59376 = 5.0;
        double r59377 = pow(r59370, r59376);
        double r59378 = pow(r59366, r59376);
        double r59379 = r59377 / r59378;
        double r59380 = r59375 * r59379;
        double r59381 = fma(r59367, r59370, r59380);
        double r59382 = fma(r59369, r59374, r59381);
        double r59383 = r59368 * r59382;
        return r59383;
}

Error

Bits error versus x

Derivation

  1. Initial program 58.7

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

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

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

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

    \[\leadsto \frac{1}{2} \cdot \left(\color{blue}{\log \left(\frac{1}{1 - x}\right)} + \log \left(1 + x\right)\right)\]
  7. Using strategy rm
  8. Applied add-cbrt-cube58.7

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

    \[\leadsto \frac{1}{2} \cdot \sqrt[3]{\color{blue}{{\left(\log \left(1 + x\right) - \log \left(1 - x\right)\right)}^{3}}}\]
  10. 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)}\]
  11. Simplified0.2

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

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

Reproduce

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