#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 r10490 = a;
        float r10491 = asin(r10490);
        float r10492 = fmod(r10490, r10491);
        float r10493 = atan(r10492);
        float r10494 = r10490 * r10490;
        float r10495 = pow(r10493, r10494);
        return r10495;
}

double f_id(double a) {
        double r10496 = a;
        double r10497 = asin(r10496);
        double r10498 = fmod(r10496, r10497);
        double r10499 = atan(r10498);
        double r10500 = r10496 * r10496;
        double r10501 = pow(r10499, r10500);
        return r10501;
}


double f_of(float a) {
        float r10502 = a;
        float r10503 = asin(r10502);
        float r10504 = fmod(r10502, r10503);
        float r10505 = atan(r10504);
        float r10506 = r10502 * r10502;
        float r10507 = pow(r10505, r10506);
        return r10507;
}

double f_od(double a) {
        double r10508 = a;
        double r10509 = asin(r10508);
        double r10510 = fmod(r10508, r10509);
        double r10511 = atan(r10510);
        double r10512 = r10508 * r10508;
        double r10513 = pow(r10511, r10512);
        return r10513;
}

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 r10514, r10515, r10516, r10517, r10518, r10519;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2384);
        mpfr_init(r10514);
        mpfr_init(r10515);
        mpfr_init(r10516);
        mpfr_init(r10517);
        mpfr_init(r10518);
        mpfr_init(r10519);
}

double f_im(double a) {
        mpfr_set_d(r10514, a, MPFR_RNDN);
        mpfr_asin(r10515, r10514, MPFR_RNDN);
        mpfr_fmod(r10516, r10514, r10515, MPFR_RNDN);
        mpfr_atan(r10517, r10516, MPFR_RNDN);
        mpfr_mul(r10518, r10514, r10514, MPFR_RNDN);
        mpfr_pow(r10519, r10517, r10518, MPFR_RNDN);
        return mpfr_get_d(r10519, MPFR_RNDN);
}

static mpfr_t r10520, r10521, r10522, r10523, r10524, r10525;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2384);
        mpfr_init(r10520);
        mpfr_init(r10521);
        mpfr_init(r10522);
        mpfr_init(r10523);
        mpfr_init(r10524);
        mpfr_init(r10525);
}

double f_fm(double a) {
        mpfr_set_d(r10520, a, MPFR_RNDN);
        mpfr_asin(r10521, r10520, MPFR_RNDN);
        mpfr_fmod(r10522, r10520, r10521, MPFR_RNDN);
        mpfr_atan(r10523, r10522, MPFR_RNDN);
        mpfr_mul(r10524, r10520, r10520, MPFR_RNDN);
        mpfr_pow(r10525, r10523, r10524, MPFR_RNDN);
        return mpfr_get_d(r10525, MPFR_RNDN);
}

static mpfr_t r10526, r10527, r10528, r10529, r10530, r10531;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2384);
        mpfr_init(r10526);
        mpfr_init(r10527);
        mpfr_init(r10528);
        mpfr_init(r10529);
        mpfr_init(r10530);
        mpfr_init(r10531);
}

double f_dm(double a) {
        mpfr_set_d(r10526, a, MPFR_RNDN);
        mpfr_asin(r10527, r10526, MPFR_RNDN);
        mpfr_fmod(r10528, r10526, r10527, MPFR_RNDN);
        mpfr_atan(r10529, r10528, MPFR_RNDN);
        mpfr_mul(r10530, r10526, r10526, MPFR_RNDN);
        mpfr_pow(r10531, r10529, r10530, MPFR_RNDN);
        return mpfr_get_d(r10531, MPFR_RNDN);
}

