Average Error: 0.0 → 0.0
Time: 3.8s
Precision: 64
\[2 \cdot \tan^{-1} \left(\sqrt{\frac{1 - x}{1 + x}}\right)\]
\[2 \cdot \tan^{-1} \left(\sqrt{\frac{{\left(\frac{1}{x + 1}\right)}^{3} - {\left(\frac{x}{x + 1}\right)}^{3}}{\mathsf{fma}\left(\frac{x}{x + 1}, \frac{1}{x + 1} + \frac{x}{x + 1}, \frac{1}{x + 1} \cdot \frac{1}{x + 1}\right)}}\right)\]
2 \cdot \tan^{-1} \left(\sqrt{\frac{1 - x}{1 + x}}\right)
2 \cdot \tan^{-1} \left(\sqrt{\frac{{\left(\frac{1}{x + 1}\right)}^{3} - {\left(\frac{x}{x + 1}\right)}^{3}}{\mathsf{fma}\left(\frac{x}{x + 1}, \frac{1}{x + 1} + \frac{x}{x + 1}, \frac{1}{x + 1} \cdot \frac{1}{x + 1}\right)}}\right)
double f(double x) {
        double r11590 = 2.0;
        double r11591 = 1.0;
        double r11592 = x;
        double r11593 = r11591 - r11592;
        double r11594 = r11591 + r11592;
        double r11595 = r11593 / r11594;
        double r11596 = sqrt(r11595);
        double r11597 = atan(r11596);
        double r11598 = r11590 * r11597;
        return r11598;
}

double f(double x) {
        double r11599 = 2.0;
        double r11600 = 1.0;
        double r11601 = x;
        double r11602 = r11601 + r11600;
        double r11603 = r11600 / r11602;
        double r11604 = 3.0;
        double r11605 = pow(r11603, r11604);
        double r11606 = r11601 / r11602;
        double r11607 = pow(r11606, r11604);
        double r11608 = r11605 - r11607;
        double r11609 = r11603 + r11606;
        double r11610 = r11603 * r11603;
        double r11611 = fma(r11606, r11609, r11610);
        double r11612 = r11608 / r11611;
        double r11613 = sqrt(r11612);
        double r11614 = atan(r11613);
        double r11615 = r11599 * r11614;
        return r11615;
}

Error

Bits error versus x

Derivation

  1. Initial program 0.0

    \[2 \cdot \tan^{-1} \left(\sqrt{\frac{1 - x}{1 + x}}\right)\]
  2. Using strategy rm
  3. Applied div-sub0.0

    \[\leadsto 2 \cdot \tan^{-1} \left(\sqrt{\color{blue}{\frac{1}{1 + x} - \frac{x}{1 + x}}}\right)\]
  4. Simplified0.0

    \[\leadsto 2 \cdot \tan^{-1} \left(\sqrt{\color{blue}{\frac{1}{x + 1}} - \frac{x}{1 + x}}\right)\]
  5. Simplified0.0

    \[\leadsto 2 \cdot \tan^{-1} \left(\sqrt{\frac{1}{x + 1} - \color{blue}{\frac{x}{x + 1}}}\right)\]
  6. Using strategy rm
  7. Applied flip3--0.0

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

    \[\leadsto 2 \cdot \tan^{-1} \left(\sqrt{\frac{{\left(\frac{1}{x + 1}\right)}^{3} - {\left(\frac{x}{x + 1}\right)}^{3}}{\color{blue}{\mathsf{fma}\left(\frac{x}{x + 1}, \frac{1}{x + 1} + \frac{x}{x + 1}, \frac{1}{x + 1} \cdot \frac{1}{x + 1}\right)}}}\right)\]
  9. Final simplification0.0

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

Reproduce

herbie shell --seed 2020002 +o rules:numerics
(FPCore (x)
  :name "arccos"
  :precision binary64
  (* 2 (atan (sqrt (/ (- 1 x) (+ 1 x))))))