Average Error: 31.0 → 31.0
Time: 26.1s
Precision: 64
\[{\left(\tan^{-1} \left(a \bmod \left(\sin^{-1} a\right)\right)\right)}^{\left(a \cdot a\right)}\]
\[{\left(\tan^{-1} \left(\mathsf{log1p}\left(\mathsf{expm1}\left(\left(a \bmod \left(\sin^{-1} a\right)\right)\right)\right)\right)\right)}^{\left(a \cdot a\right)}\]
{\left(\tan^{-1} \left(a \bmod \left(\sin^{-1} a\right)\right)\right)}^{\left(a \cdot a\right)}
{\left(\tan^{-1} \left(\mathsf{log1p}\left(\mathsf{expm1}\left(\left(a \bmod \left(\sin^{-1} a\right)\right)\right)\right)\right)\right)}^{\left(a \cdot a\right)}
double f(double a) {
        double r4466398 = a;
        double r4466399 = asin(r4466398);
        double r4466400 = fmod(r4466398, r4466399);
        double r4466401 = atan(r4466400);
        double r4466402 = r4466398 * r4466398;
        double r4466403 = pow(r4466401, r4466402);
        return r4466403;
}

double f(double a) {
        double r4466404 = a;
        double r4466405 = asin(r4466404);
        double r4466406 = fmod(r4466404, r4466405);
        double r4466407 = expm1(r4466406);
        double r4466408 = log1p(r4466407);
        double r4466409 = atan(r4466408);
        double r4466410 = r4466404 * r4466404;
        double r4466411 = pow(r4466409, r4466410);
        return r4466411;
}

Error

Bits error versus a

Derivation

  1. Initial program 31.0

    \[{\left(\tan^{-1} \left(a \bmod \left(\sin^{-1} a\right)\right)\right)}^{\left(a \cdot a\right)}\]
  2. Using strategy rm
  3. Applied log1p-expm1-u31.0

    \[\leadsto {\left(\tan^{-1} \color{blue}{\left(\mathsf{log1p}\left(\mathsf{expm1}\left(\left(a \bmod \left(\sin^{-1} a\right)\right)\right)\right)\right)}\right)}^{\left(a \cdot a\right)}\]
  4. Final simplification31.0

    \[\leadsto {\left(\tan^{-1} \left(\mathsf{log1p}\left(\mathsf{expm1}\left(\left(a \bmod \left(\sin^{-1} a\right)\right)\right)\right)\right)\right)}^{\left(a \cdot a\right)}\]

Reproduce

herbie shell --seed 2019143 +o rules:numerics
(FPCore (a)
  :name "Fuzzer 002"
  (pow (atan (fmod a (asin a))) (* a a)))