#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Fuzzer 002";

double f_if(float a) {
        float r10282 = a;
        float r10283 = asin(r10282);
        float r10284 = fmod(r10282, r10283);
        float r10285 = atan(r10284);
        float r10286 = r10282 * r10282;
        float r10287 = pow(r10285, r10286);
        return r10287;
}

double f_id(double a) {
        double r10288 = a;
        double r10289 = asin(r10288);
        double r10290 = fmod(r10288, r10289);
        double r10291 = atan(r10290);
        double r10292 = r10288 * r10288;
        double r10293 = pow(r10291, r10292);
        return r10293;
}


double f_of(float a) {
        float r10294 = a;
        float r10295 = asin(r10294);
        float r10296 = fmod(r10294, r10295);
        float r10297 = log1p(r10296);
        float r10298 = expm1(r10297);
        float r10299 = atan(r10298);
        float r10300 = r10294 * r10294;
        float r10301 = pow(r10299, r10300);
        return r10301;
}

double f_od(double a) {
        double r10302 = a;
        double r10303 = asin(r10302);
        double r10304 = fmod(r10302, r10303);
        double r10305 = log1p(r10304);
        double r10306 = expm1(r10305);
        double r10307 = atan(r10306);
        double r10308 = r10302 * r10302;
        double r10309 = pow(r10307, r10308);
        return r10309;
}

void mpfr_fmod2(mpfr_t r, mpfr_t n, mpfr_t d, mpfr_rnd_t rmd) {
        mpfr_fmod(r, n, d, rmd);
        if (mpfr_cmp_ui(r, 0) < 0) mpfr_add(r, r, d, rmd);
}


static mpfr_t r10310, r10311, r10312, r10313, r10314, r10315;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2384);
        mpfr_init(r10310);
        mpfr_init(r10311);
        mpfr_init(r10312);
        mpfr_init(r10313);
        mpfr_init(r10314);
        mpfr_init(r10315);
}

double f_im(double a) {
        mpfr_set_d(r10310, a, MPFR_RNDN);
        mpfr_asin(r10311, r10310, MPFR_RNDN);
        mpfr_fmod(r10312, r10310, r10311, MPFR_RNDN);
        mpfr_atan(r10313, r10312, MPFR_RNDN);
        mpfr_mul(r10314, r10310, r10310, MPFR_RNDN);
        mpfr_pow(r10315, r10313, r10314, MPFR_RNDN);
        return mpfr_get_d(r10315, MPFR_RNDN);
}

static mpfr_t r10316, r10317, r10318, r10319, r10320, r10321, r10322, r10323;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2384);
        mpfr_init(r10316);
        mpfr_init(r10317);
        mpfr_init(r10318);
        mpfr_init(r10319);
        mpfr_init(r10320);
        mpfr_init(r10321);
        mpfr_init(r10322);
        mpfr_init(r10323);
}

double f_fm(double a) {
        mpfr_set_d(r10316, a, MPFR_RNDN);
        mpfr_asin(r10317, r10316, MPFR_RNDN);
        mpfr_fmod(r10318, r10316, r10317, MPFR_RNDN);
        mpfr_log1p(r10319, r10318, MPFR_RNDN);
        mpfr_expm1(r10320, r10319, MPFR_RNDN);
        mpfr_atan(r10321, r10320, MPFR_RNDN);
        mpfr_mul(r10322, r10316, r10316, MPFR_RNDN);
        mpfr_pow(r10323, r10321, r10322, MPFR_RNDN);
        return mpfr_get_d(r10323, MPFR_RNDN);
}

static mpfr_t r10324, r10325, r10326, r10327, r10328, r10329, r10330, r10331;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2384);
        mpfr_init(r10324);
        mpfr_init(r10325);
        mpfr_init(r10326);
        mpfr_init(r10327);
        mpfr_init(r10328);
        mpfr_init(r10329);
        mpfr_init(r10330);
        mpfr_init(r10331);
}

double f_dm(double a) {
        mpfr_set_d(r10324, a, MPFR_RNDN);
        mpfr_asin(r10325, r10324, MPFR_RNDN);
        mpfr_fmod(r10326, r10324, r10325, MPFR_RNDN);
        mpfr_log1p(r10327, r10326, MPFR_RNDN);
        mpfr_expm1(r10328, r10327, MPFR_RNDN);
        mpfr_atan(r10329, r10328, MPFR_RNDN);
        mpfr_mul(r10330, r10324, r10324, MPFR_RNDN);
        mpfr_pow(r10331, r10329, r10330, MPFR_RNDN);
        return mpfr_get_d(r10331, MPFR_RNDN);
}

