Average Error: 0.0 → 0.0
Time: 16.6s
Precision: 64
\[2 \cdot \tan^{-1} \left(\sqrt{\frac{1 - x}{1 + x}}\right)\]
\[\tan^{-1} \left(\sqrt{\frac{\frac{1 - x}{\sqrt{1 + x}}}{\sqrt{1 + x}}}\right) \cdot 2\]
2 \cdot \tan^{-1} \left(\sqrt{\frac{1 - x}{1 + x}}\right)
\tan^{-1} \left(\sqrt{\frac{\frac{1 - x}{\sqrt{1 + x}}}{\sqrt{1 + x}}}\right) \cdot 2
double f(double x) {
        double r725638 = 2.0;
        double r725639 = 1.0;
        double r725640 = x;
        double r725641 = r725639 - r725640;
        double r725642 = r725639 + r725640;
        double r725643 = r725641 / r725642;
        double r725644 = sqrt(r725643);
        double r725645 = atan(r725644);
        double r725646 = r725638 * r725645;
        return r725646;
}

double f(double x) {
        double r725647 = 1.0;
        double r725648 = x;
        double r725649 = r725647 - r725648;
        double r725650 = r725647 + r725648;
        double r725651 = sqrt(r725650);
        double r725652 = r725649 / r725651;
        double r725653 = r725652 / r725651;
        double r725654 = sqrt(r725653);
        double r725655 = atan(r725654);
        double r725656 = 2.0;
        double r725657 = r725655 * r725656;
        return r725657;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

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

    \[\leadsto 2 \cdot \tan^{-1} \left(\sqrt{\frac{1 - x}{\color{blue}{\sqrt{1 + x} \cdot \sqrt{1 + x}}}}\right)\]
  4. Applied associate-/r*0.0

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

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

Reproduce

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