#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 r27363 = a;
        float r27364 = acos(r27363);
        float r27365 = -r27364;
        float r27366 = r27363 / r27365;
        return r27366;
}

double f_id(double a) {
        double r27367 = a;
        double r27368 = acos(r27367);
        double r27369 = -r27368;
        double r27370 = r27367 / r27369;
        return r27370;
}


double f_of(float a) {
        float r27371 = a;
        float r27372 = acos(r27371);
        float r27373 = -r27372;
        float r27374 = r27371 / r27373;
        return r27374;
}

double f_od(double a) {
        double r27375 = a;
        double r27376 = acos(r27375);
        double r27377 = -r27376;
        double r27378 = r27375 / r27377;
        return r27378;
}

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 r27379, r27380, r27381, r27382;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r27379);
        mpfr_init(r27380);
        mpfr_init(r27381);
        mpfr_init(r27382);
}

double f_im(double a) {
        mpfr_set_d(r27379, a, MPFR_RNDN);
        mpfr_acos(r27380, r27379, MPFR_RNDN);
        mpfr_neg(r27381, r27380, MPFR_RNDN);
        mpfr_div(r27382, r27379, r27381, MPFR_RNDN);
        return mpfr_get_d(r27382, MPFR_RNDN);
}

static mpfr_t r27383, r27384, r27385, r27386;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27383);
        mpfr_init(r27384);
        mpfr_init(r27385);
        mpfr_init(r27386);
}

double f_fm(double a) {
        mpfr_set_d(r27383, a, MPFR_RNDN);
        mpfr_acos(r27384, r27383, MPFR_RNDN);
        mpfr_neg(r27385, r27384, MPFR_RNDN);
        mpfr_div(r27386, r27383, r27385, MPFR_RNDN);
        return mpfr_get_d(r27386, MPFR_RNDN);
}

static mpfr_t r27387, r27388, r27389, r27390;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27387);
        mpfr_init(r27388);
        mpfr_init(r27389);
        mpfr_init(r27390);
}

double f_dm(double a) {
        mpfr_set_d(r27387, a, MPFR_RNDN);
        mpfr_acos(r27388, r27387, MPFR_RNDN);
        mpfr_neg(r27389, r27388, MPFR_RNDN);
        mpfr_div(r27390, r27387, r27389, MPFR_RNDN);
        return mpfr_get_d(r27390, MPFR_RNDN);
}

