#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 r11369 = a;
        float r11370 = asin(r11369);
        float r11371 = fmod(r11369, r11370);
        float r11372 = atan(r11371);
        float r11373 = r11369 * r11369;
        float r11374 = pow(r11372, r11373);
        return r11374;
}

double f_id(double a) {
        double r11375 = a;
        double r11376 = asin(r11375);
        double r11377 = fmod(r11375, r11376);
        double r11378 = atan(r11377);
        double r11379 = r11375 * r11375;
        double r11380 = pow(r11378, r11379);
        return r11380;
}


double f_of(float a) {
        float r11381 = a;
        float r11382 = asin(r11381);
        float r11383 = fmod(r11381, r11382);
        float r11384 = atan(r11383);
        float r11385 = r11381 * r11381;
        float r11386 = pow(r11384, r11385);
        return r11386;
}

double f_od(double a) {
        double r11387 = a;
        double r11388 = asin(r11387);
        double r11389 = fmod(r11387, r11388);
        double r11390 = atan(r11389);
        double r11391 = r11387 * r11387;
        double r11392 = pow(r11390, r11391);
        return r11392;
}

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 r11393, r11394, r11395, r11396, r11397, r11398;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2384);
        mpfr_init(r11393);
        mpfr_init(r11394);
        mpfr_init(r11395);
        mpfr_init(r11396);
        mpfr_init(r11397);
        mpfr_init(r11398);
}

double f_im(double a) {
        mpfr_set_d(r11393, a, MPFR_RNDN);
        mpfr_asin(r11394, r11393, MPFR_RNDN);
        mpfr_fmod(r11395, r11393, r11394, MPFR_RNDN);
        mpfr_atan(r11396, r11395, MPFR_RNDN);
        mpfr_mul(r11397, r11393, r11393, MPFR_RNDN);
        mpfr_pow(r11398, r11396, r11397, MPFR_RNDN);
        return mpfr_get_d(r11398, MPFR_RNDN);
}

static mpfr_t r11399, r11400, r11401, r11402, r11403, r11404;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2384);
        mpfr_init(r11399);
        mpfr_init(r11400);
        mpfr_init(r11401);
        mpfr_init(r11402);
        mpfr_init(r11403);
        mpfr_init(r11404);
}

double f_fm(double a) {
        mpfr_set_d(r11399, a, MPFR_RNDN);
        mpfr_asin(r11400, r11399, MPFR_RNDN);
        mpfr_fmod(r11401, r11399, r11400, MPFR_RNDN);
        mpfr_atan(r11402, r11401, MPFR_RNDN);
        mpfr_mul(r11403, r11399, r11399, MPFR_RNDN);
        mpfr_pow(r11404, r11402, r11403, MPFR_RNDN);
        return mpfr_get_d(r11404, MPFR_RNDN);
}

static mpfr_t r11405, r11406, r11407, r11408, r11409, r11410;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2384);
        mpfr_init(r11405);
        mpfr_init(r11406);
        mpfr_init(r11407);
        mpfr_init(r11408);
        mpfr_init(r11409);
        mpfr_init(r11410);
}

double f_dm(double a) {
        mpfr_set_d(r11405, a, MPFR_RNDN);
        mpfr_asin(r11406, r11405, MPFR_RNDN);
        mpfr_fmod(r11407, r11405, r11406, MPFR_RNDN);
        mpfr_atan(r11408, r11407, MPFR_RNDN);
        mpfr_mul(r11409, r11405, r11405, MPFR_RNDN);
        mpfr_pow(r11410, r11408, r11409, MPFR_RNDN);
        return mpfr_get_d(r11410, MPFR_RNDN);
}

