#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 r11393 = a;
        float r11394 = asin(r11393);
        float r11395 = fmod(r11393, r11394);
        float r11396 = atan(r11395);
        float r11397 = r11393 * r11393;
        float r11398 = pow(r11396, r11397);
        return r11398;
}

double f_id(double a) {
        double r11399 = a;
        double r11400 = asin(r11399);
        double r11401 = fmod(r11399, r11400);
        double r11402 = atan(r11401);
        double r11403 = r11399 * r11399;
        double r11404 = pow(r11402, r11403);
        return r11404;
}


double f_of(float a) {
        float r11405 = a;
        float r11406 = asin(r11405);
        float r11407 = fmod(r11405, r11406);
        float r11408 = atan(r11407);
        float r11409 = r11405 * r11405;
        float r11410 = pow(r11408, r11409);
        return r11410;
}

double f_od(double a) {
        double r11411 = a;
        double r11412 = asin(r11411);
        double r11413 = fmod(r11411, r11412);
        double r11414 = atan(r11413);
        double r11415 = r11411 * r11411;
        double r11416 = pow(r11414, r11415);
        return r11416;
}

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 r11417, r11418, r11419, r11420, r11421, r11422;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2384);
        mpfr_init(r11417);
        mpfr_init(r11418);
        mpfr_init(r11419);
        mpfr_init(r11420);
        mpfr_init(r11421);
        mpfr_init(r11422);
}

double f_im(double a) {
        mpfr_set_d(r11417, a, MPFR_RNDN);
        mpfr_asin(r11418, r11417, MPFR_RNDN);
        mpfr_fmod(r11419, r11417, r11418, MPFR_RNDN);
        mpfr_atan(r11420, r11419, MPFR_RNDN);
        mpfr_mul(r11421, r11417, r11417, MPFR_RNDN);
        mpfr_pow(r11422, r11420, r11421, MPFR_RNDN);
        return mpfr_get_d(r11422, MPFR_RNDN);
}

static mpfr_t r11423, r11424, r11425, r11426, r11427, r11428;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2384);
        mpfr_init(r11423);
        mpfr_init(r11424);
        mpfr_init(r11425);
        mpfr_init(r11426);
        mpfr_init(r11427);
        mpfr_init(r11428);
}

double f_fm(double a) {
        mpfr_set_d(r11423, a, MPFR_RNDN);
        mpfr_asin(r11424, r11423, MPFR_RNDN);
        mpfr_fmod(r11425, r11423, r11424, MPFR_RNDN);
        mpfr_atan(r11426, r11425, MPFR_RNDN);
        mpfr_mul(r11427, r11423, r11423, MPFR_RNDN);
        mpfr_pow(r11428, r11426, r11427, MPFR_RNDN);
        return mpfr_get_d(r11428, MPFR_RNDN);
}

static mpfr_t r11429, r11430, r11431, r11432, r11433, r11434;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2384);
        mpfr_init(r11429);
        mpfr_init(r11430);
        mpfr_init(r11431);
        mpfr_init(r11432);
        mpfr_init(r11433);
        mpfr_init(r11434);
}

double f_dm(double a) {
        mpfr_set_d(r11429, a, MPFR_RNDN);
        mpfr_asin(r11430, r11429, MPFR_RNDN);
        mpfr_fmod(r11431, r11429, r11430, MPFR_RNDN);
        mpfr_atan(r11432, r11431, MPFR_RNDN);
        mpfr_mul(r11433, r11429, r11429, MPFR_RNDN);
        mpfr_pow(r11434, r11432, r11433, MPFR_RNDN);
        return mpfr_get_d(r11434, MPFR_RNDN);
}

