#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 r9950 = a;
        float r9951 = acos(r9950);
        float r9952 = -r9951;
        float r9953 = r9950 / r9952;
        return r9953;
}

double f_id(double a) {
        double r9954 = a;
        double r9955 = acos(r9954);
        double r9956 = -r9955;
        double r9957 = r9954 / r9956;
        return r9957;
}


double f_of(float a) {
        float r9958 = a;
        float r9959 = acos(r9958);
        float r9960 = -r9959;
        float r9961 = r9958 / r9960;
        return r9961;
}

double f_od(double a) {
        double r9962 = a;
        double r9963 = acos(r9962);
        double r9964 = -r9963;
        double r9965 = r9962 / r9964;
        return r9965;
}

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 r9966, r9967, r9968, r9969;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9966);
        mpfr_init(r9967);
        mpfr_init(r9968);
        mpfr_init(r9969);
}

double f_im(double a) {
        mpfr_set_d(r9966, a, MPFR_RNDN);
        mpfr_acos(r9967, r9966, MPFR_RNDN);
        mpfr_neg(r9968, r9967, MPFR_RNDN);
        mpfr_div(r9969, r9966, r9968, MPFR_RNDN);
        return mpfr_get_d(r9969, MPFR_RNDN);
}

static mpfr_t r9970, r9971, r9972, r9973;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9970);
        mpfr_init(r9971);
        mpfr_init(r9972);
        mpfr_init(r9973);
}

double f_fm(double a) {
        mpfr_set_d(r9970, a, MPFR_RNDN);
        mpfr_acos(r9971, r9970, MPFR_RNDN);
        mpfr_neg(r9972, r9971, MPFR_RNDN);
        mpfr_div(r9973, r9970, r9972, MPFR_RNDN);
        return mpfr_get_d(r9973, MPFR_RNDN);
}

static mpfr_t r9974, r9975, r9976, r9977;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9974);
        mpfr_init(r9975);
        mpfr_init(r9976);
        mpfr_init(r9977);
}

double f_dm(double a) {
        mpfr_set_d(r9974, a, MPFR_RNDN);
        mpfr_acos(r9975, r9974, MPFR_RNDN);
        mpfr_neg(r9976, r9975, MPFR_RNDN);
        mpfr_div(r9977, r9974, r9976, MPFR_RNDN);
        return mpfr_get_d(r9977, MPFR_RNDN);
}

