Average Error: 33.6 → 33.6
Time: 22.8s
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 r11231 = a;
        double r11232 = expm1(r11231);
        double r11233 = sin(r11232);
        double r11234 = expm1(r11233);
        double r11235 = atan(r11231);
        double r11236 = atan2(r11234, r11235);
        double r11237 = fmod(r11236, r11231);
        double r11238 = fabs(r11237);
        return r11238;
}

double f(double a) {
        double r11239 = a;
        double r11240 = expm1(r11239);
        double r11241 = sin(r11240);
        double r11242 = expm1(r11241);
        double r11243 = atan(r11239);
        double r11244 = atan2(r11242, r11243);
        double r11245 = fmod(r11244, r11239);
        double r11246 = fabs(r11245);
        return r11246;
}

Error

Bits error versus a

Derivation

  1. Initial program 33.6

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

    \[\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 2020047 +o rules:numerics
(FPCore (a)
  :name "Random Jason Timeout Test 006"
  :precision binary64
  (fabs (fmod (atan2 (expm1 (sin (expm1 a))) (atan a)) a)))