#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 r10634 = a;
        float r10635 = asin(r10634);
        float r10636 = fmod(r10634, r10635);
        float r10637 = atan(r10636);
        float r10638 = r10634 * r10634;
        float r10639 = pow(r10637, r10638);
        return r10639;
}

double f_id(double a) {
        double r10640 = a;
        double r10641 = asin(r10640);
        double r10642 = fmod(r10640, r10641);
        double r10643 = atan(r10642);
        double r10644 = r10640 * r10640;
        double r10645 = pow(r10643, r10644);
        return r10645;
}


double f_of(float a) {
        float r10646 = a;
        float r10647 = asin(r10646);
        float r10648 = fmod(r10646, r10647);
        float r10649 = atan(r10648);
        float r10650 = r10646 * r10646;
        float r10651 = pow(r10649, r10650);
        return r10651;
}

double f_od(double a) {
        double r10652 = a;
        double r10653 = asin(r10652);
        double r10654 = fmod(r10652, r10653);
        double r10655 = atan(r10654);
        double r10656 = r10652 * r10652;
        double r10657 = pow(r10655, r10656);
        return r10657;
}

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 r10658, r10659, r10660, r10661, r10662, r10663;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2384);
        mpfr_init(r10658);
        mpfr_init(r10659);
        mpfr_init(r10660);
        mpfr_init(r10661);
        mpfr_init(r10662);
        mpfr_init(r10663);
}

double f_im(double a) {
        mpfr_set_d(r10658, a, MPFR_RNDN);
        mpfr_asin(r10659, r10658, MPFR_RNDN);
        mpfr_fmod(r10660, r10658, r10659, MPFR_RNDN);
        mpfr_atan(r10661, r10660, MPFR_RNDN);
        mpfr_mul(r10662, r10658, r10658, MPFR_RNDN);
        mpfr_pow(r10663, r10661, r10662, MPFR_RNDN);
        return mpfr_get_d(r10663, MPFR_RNDN);
}

static mpfr_t r10664, r10665, r10666, r10667, r10668, r10669;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2384);
        mpfr_init(r10664);
        mpfr_init(r10665);
        mpfr_init(r10666);
        mpfr_init(r10667);
        mpfr_init(r10668);
        mpfr_init(r10669);
}

double f_fm(double a) {
        mpfr_set_d(r10664, a, MPFR_RNDN);
        mpfr_asin(r10665, r10664, MPFR_RNDN);
        mpfr_fmod(r10666, r10664, r10665, MPFR_RNDN);
        mpfr_atan(r10667, r10666, MPFR_RNDN);
        mpfr_mul(r10668, r10664, r10664, MPFR_RNDN);
        mpfr_pow(r10669, r10667, r10668, MPFR_RNDN);
        return mpfr_get_d(r10669, MPFR_RNDN);
}

static mpfr_t r10670, r10671, r10672, r10673, r10674, r10675;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2384);
        mpfr_init(r10670);
        mpfr_init(r10671);
        mpfr_init(r10672);
        mpfr_init(r10673);
        mpfr_init(r10674);
        mpfr_init(r10675);
}

double f_dm(double a) {
        mpfr_set_d(r10670, a, MPFR_RNDN);
        mpfr_asin(r10671, r10670, MPFR_RNDN);
        mpfr_fmod(r10672, r10670, r10671, MPFR_RNDN);
        mpfr_atan(r10673, r10672, MPFR_RNDN);
        mpfr_mul(r10674, r10670, r10670, MPFR_RNDN);
        mpfr_pow(r10675, r10673, r10674, MPFR_RNDN);
        return mpfr_get_d(r10675, MPFR_RNDN);
}

