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

char *name = "Fuzzer 001";

double f_if(float a) {
        float r27287 = a;
        float r27288 = acos(r27287);
        float r27289 = -r27288;
        float r27290 = r27287 / r27289;
        return r27290;
}

double f_id(double a) {
        double r27291 = a;
        double r27292 = acos(r27291);
        double r27293 = -r27292;
        double r27294 = r27291 / r27293;
        return r27294;
}


double f_of(float a) {
        float r27295 = a;
        float r27296 = acos(r27295);
        float r27297 = -r27296;
        float r27298 = r27295 / r27297;
        return r27298;
}

double f_od(double a) {
        double r27299 = a;
        double r27300 = acos(r27299);
        double r27301 = -r27300;
        double r27302 = r27299 / r27301;
        return r27302;
}

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 r27303, r27304, r27305, r27306;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r27303);
        mpfr_init(r27304);
        mpfr_init(r27305);
        mpfr_init(r27306);
}

double f_im(double a) {
        mpfr_set_d(r27303, a, MPFR_RNDN);
        mpfr_acos(r27304, r27303, MPFR_RNDN);
        mpfr_neg(r27305, r27304, MPFR_RNDN);
        mpfr_div(r27306, r27303, r27305, MPFR_RNDN);
        return mpfr_get_d(r27306, MPFR_RNDN);
}

static mpfr_t r27307, r27308, r27309, r27310;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27307);
        mpfr_init(r27308);
        mpfr_init(r27309);
        mpfr_init(r27310);
}

double f_fm(double a) {
        mpfr_set_d(r27307, a, MPFR_RNDN);
        mpfr_acos(r27308, r27307, MPFR_RNDN);
        mpfr_neg(r27309, r27308, MPFR_RNDN);
        mpfr_div(r27310, r27307, r27309, MPFR_RNDN);
        return mpfr_get_d(r27310, MPFR_RNDN);
}

static mpfr_t r27311, r27312, r27313, r27314;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27311);
        mpfr_init(r27312);
        mpfr_init(r27313);
        mpfr_init(r27314);
}

double f_dm(double a) {
        mpfr_set_d(r27311, a, MPFR_RNDN);
        mpfr_acos(r27312, r27311, MPFR_RNDN);
        mpfr_neg(r27313, r27312, MPFR_RNDN);
        mpfr_div(r27314, r27311, r27313, MPFR_RNDN);
        return mpfr_get_d(r27314, MPFR_RNDN);
}

