#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 r11435 = a;
        float r11436 = acos(r11435);
        float r11437 = -r11436;
        float r11438 = r11435 / r11437;
        return r11438;
}

double f_id(double a) {
        double r11439 = a;
        double r11440 = acos(r11439);
        double r11441 = -r11440;
        double r11442 = r11439 / r11441;
        return r11442;
}


double f_of(float a) {
        float r11443 = 1;
        float r11444 = a;
        float r11445 = acos(r11444);
        float r11446 = r11445 * r11445;
        float r11447 = r11443 / r11446;
        float r11448 = -r11445;
        float r11449 = r11447 / r11448;
        float r11450 = cbrt(r11449);
        float r11451 = r11450 * r11450;
        float r11452 = cbrt(r11451);
        float r11453 = cbrt(r11450);
        float r11454 = r11453 * r11444;
        float r11455 = r11452 * r11454;
        return r11455;
}

double f_od(double a) {
        double r11456 = 1;
        double r11457 = a;
        double r11458 = acos(r11457);
        double r11459 = r11458 * r11458;
        double r11460 = r11456 / r11459;
        double r11461 = -r11458;
        double r11462 = r11460 / r11461;
        double r11463 = cbrt(r11462);
        double r11464 = r11463 * r11463;
        double r11465 = cbrt(r11464);
        double r11466 = cbrt(r11463);
        double r11467 = r11466 * r11457;
        double r11468 = r11465 * r11467;
        return r11468;
}

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 r11469, r11470, r11471, r11472;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r11469);
        mpfr_init(r11470);
        mpfr_init(r11471);
        mpfr_init(r11472);
}

double f_im(double a) {
        mpfr_set_d(r11469, a, MPFR_RNDN);
        mpfr_acos(r11470, r11469, MPFR_RNDN);
        mpfr_neg(r11471, r11470, MPFR_RNDN);
        mpfr_div(r11472, r11469, r11471, MPFR_RNDN);
        return mpfr_get_d(r11472, MPFR_RNDN);
}

static mpfr_t r11473, r11474, r11475, r11476, r11477, r11478, r11479, r11480, r11481, r11482, r11483, r11484, r11485;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11473, "1", 10, MPFR_RNDN);
        mpfr_init(r11474);
        mpfr_init(r11475);
        mpfr_init(r11476);
        mpfr_init(r11477);
        mpfr_init(r11478);
        mpfr_init(r11479);
        mpfr_init(r11480);
        mpfr_init(r11481);
        mpfr_init(r11482);
        mpfr_init(r11483);
        mpfr_init(r11484);
        mpfr_init(r11485);
}

double f_fm(double a) {
        ;
        mpfr_set_d(r11474, a, MPFR_RNDN);
        mpfr_acos(r11475, r11474, MPFR_RNDN);
        mpfr_mul(r11476, r11475, r11475, MPFR_RNDN);
        mpfr_div(r11477, r11473, r11476, MPFR_RNDN);
        mpfr_neg(r11478, r11475, MPFR_RNDN);
        mpfr_div(r11479, r11477, r11478, MPFR_RNDN);
        mpfr_cbrt(r11480, r11479, MPFR_RNDN);
        mpfr_mul(r11481, r11480, r11480, MPFR_RNDN);
        mpfr_cbrt(r11482, r11481, MPFR_RNDN);
        mpfr_cbrt(r11483, r11480, MPFR_RNDN);
        mpfr_mul(r11484, r11483, r11474, MPFR_RNDN);
        mpfr_mul(r11485, r11482, r11484, MPFR_RNDN);
        return mpfr_get_d(r11485, MPFR_RNDN);
}

static mpfr_t r11486, r11487, r11488, r11489, r11490, r11491, r11492, r11493, r11494, r11495, r11496, r11497, r11498;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11486, "1", 10, MPFR_RNDN);
        mpfr_init(r11487);
        mpfr_init(r11488);
        mpfr_init(r11489);
        mpfr_init(r11490);
        mpfr_init(r11491);
        mpfr_init(r11492);
        mpfr_init(r11493);
        mpfr_init(r11494);
        mpfr_init(r11495);
        mpfr_init(r11496);
        mpfr_init(r11497);
        mpfr_init(r11498);
}

double f_dm(double a) {
        ;
        mpfr_set_d(r11487, a, MPFR_RNDN);
        mpfr_acos(r11488, r11487, MPFR_RNDN);
        mpfr_mul(r11489, r11488, r11488, MPFR_RNDN);
        mpfr_div(r11490, r11486, r11489, MPFR_RNDN);
        mpfr_neg(r11491, r11488, MPFR_RNDN);
        mpfr_div(r11492, r11490, r11491, MPFR_RNDN);
        mpfr_cbrt(r11493, r11492, MPFR_RNDN);
        mpfr_mul(r11494, r11493, r11493, MPFR_RNDN);
        mpfr_cbrt(r11495, r11494, MPFR_RNDN);
        mpfr_cbrt(r11496, r11493, MPFR_RNDN);
        mpfr_mul(r11497, r11496, r11487, MPFR_RNDN);
        mpfr_mul(r11498, r11495, r11497, MPFR_RNDN);
        return mpfr_get_d(r11498, MPFR_RNDN);
}

