Average Error: 0.2 → 0.4
Time: 14.4s
Precision: 64
\[\frac{a}{-\cos^{-1} a}\]
\[\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{1}{\cos^{-1} a \cdot \frac{-1}{a}}\right)\right)\]
\frac{a}{-\cos^{-1} a}
\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{1}{\cos^{-1} a \cdot \frac{-1}{a}}\right)\right)
double f(double a) {
        double r75880 = a;
        double r75881 = acos(r75880);
        double r75882 = -r75881;
        double r75883 = r75880 / r75882;
        return r75883;
}

double f(double a) {
        double r75884 = 1.0;
        double r75885 = a;
        double r75886 = acos(r75885);
        double r75887 = -1.0;
        double r75888 = r75887 / r75885;
        double r75889 = r75886 * r75888;
        double r75890 = r75884 / r75889;
        double r75891 = expm1(r75890);
        double r75892 = log1p(r75891);
        return r75892;
}

Error

Bits error versus a

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.2

    \[\frac{a}{-\cos^{-1} a}\]
  2. Using strategy rm
  3. Applied log1p-expm1-u0.2

    \[\leadsto \color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{a}{-\cos^{-1} a}\right)\right)}\]
  4. Using strategy rm
  5. Applied clear-num0.3

    \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\color{blue}{\frac{1}{\frac{-\cos^{-1} a}{a}}}\right)\right)\]
  6. Simplified0.3

    \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{1}{\color{blue}{-\frac{\cos^{-1} a}{a}}}\right)\right)\]
  7. Using strategy rm
  8. Applied div-inv0.4

    \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{1}{-\color{blue}{\cos^{-1} a \cdot \frac{1}{a}}}\right)\right)\]
  9. Final simplification0.4

    \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{1}{\cos^{-1} a \cdot \frac{-1}{a}}\right)\right)\]

Reproduce

herbie shell --seed 2019194 +o rules:numerics
(FPCore (a)
  :name "Fuzzer 001"
  (/ a (- (acos a))))