Average Error: 33.5 → 33.5
Time: 16.9s
Precision: 64
\[\left|\left(\left(\tan^{-1}_* \frac{\mathsf{expm1}\left(\sin \left(\mathsf{expm1}\left(a\right)\right)\right)}{\tan^{-1} a}\right) \bmod a\right)\right|\]
\[\left|\left(\left(\tan^{-1}_* \frac{\mathsf{expm1}\left(\sin \left(\mathsf{expm1}\left(a\right)\right)\right)}{\tan^{-1} a}\right) \bmod a\right)\right|\]
\left|\left(\left(\tan^{-1}_* \frac{\mathsf{expm1}\left(\sin \left(\mathsf{expm1}\left(a\right)\right)\right)}{\tan^{-1} a}\right) \bmod a\right)\right|
\left|\left(\left(\tan^{-1}_* \frac{\mathsf{expm1}\left(\sin \left(\mathsf{expm1}\left(a\right)\right)\right)}{\tan^{-1} a}\right) \bmod a\right)\right|
double f(double a) {
        double r14809 = a;
        double r14810 = expm1(r14809);
        double r14811 = sin(r14810);
        double r14812 = expm1(r14811);
        double r14813 = atan(r14809);
        double r14814 = atan2(r14812, r14813);
        double r14815 = fmod(r14814, r14809);
        double r14816 = fabs(r14815);
        return r14816;
}

double f(double a) {
        double r14817 = a;
        double r14818 = expm1(r14817);
        double r14819 = sin(r14818);
        double r14820 = expm1(r14819);
        double r14821 = atan(r14817);
        double r14822 = atan2(r14820, r14821);
        double r14823 = fmod(r14822, r14817);
        double r14824 = fabs(r14823);
        return r14824;
}

Error

Bits error versus a

Derivation

  1. Initial program 33.5

    \[\left|\left(\left(\tan^{-1}_* \frac{\mathsf{expm1}\left(\sin \left(\mathsf{expm1}\left(a\right)\right)\right)}{\tan^{-1} a}\right) \bmod a\right)\right|\]
  2. Final simplification33.5

    \[\leadsto \left|\left(\left(\tan^{-1}_* \frac{\mathsf{expm1}\left(\sin \left(\mathsf{expm1}\left(a\right)\right)\right)}{\tan^{-1} a}\right) \bmod a\right)\right|\]

Reproduce

herbie shell --seed 2020060 +o rules:numerics
(FPCore (a)
  :name "Random Jason Timeout Test 006"
  :precision binary64
  (fabs (fmod (atan2 (expm1 (sin (expm1 a))) (atan a)) a)))