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

char *name = "cos atan frac";

double f_if(float r, float d) {
        float r163305 = r;
        float r163306 = d;
        float r163307 = r163305 / r163306;
        float r163308 = atan(r163307);
        float r163309 = cos(r163308);
        return r163309;
}

double f_id(double r, double d) {
        double r163310 = r;
        double r163311 = d;
        double r163312 = r163310 / r163311;
        double r163313 = atan(r163312);
        double r163314 = cos(r163313);
        return r163314;
}


double f_of(float r, float d) {
        float r163315 = r;
        float r163316 = d;
        float r163317 = r163315 / r163316;
        float r163318 = atan(r163317);
        float r163319 = cos(r163318);
        float r163320 = exp(r163319);
        float r163321 = log(r163320);
        float r163322 = log(r163321);
        float r163323 = cbrt(r163322);
        float r163324 = r163323 * r163323;
        float r163325 = cbrt(r163319);
        float r163326 = r163325 * r163325;
        float r163327 = r163325 * r163326;
        float r163328 = log(r163327);
        float r163329 = cbrt(r163328);
        float r163330 = r163324 * r163329;
        float r163331 = exp(r163330);
        return r163331;
}

double f_od(double r, double d) {
        double r163332 = r;
        double r163333 = d;
        double r163334 = r163332 / r163333;
        double r163335 = atan(r163334);
        double r163336 = cos(r163335);
        double r163337 = exp(r163336);
        double r163338 = log(r163337);
        double r163339 = log(r163338);
        double r163340 = cbrt(r163339);
        double r163341 = r163340 * r163340;
        double r163342 = cbrt(r163336);
        double r163343 = r163342 * r163342;
        double r163344 = r163342 * r163343;
        double r163345 = log(r163344);
        double r163346 = cbrt(r163345);
        double r163347 = r163341 * r163346;
        double r163348 = exp(r163347);
        return r163348;
}

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 r163349, r163350, r163351, r163352, r163353;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r163349);
        mpfr_init(r163350);
        mpfr_init(r163351);
        mpfr_init(r163352);
        mpfr_init(r163353);
}

double f_im(double r, double d) {
        mpfr_set_d(r163349, r, MPFR_RNDN);
        mpfr_set_d(r163350, d, MPFR_RNDN);
        mpfr_div(r163351, r163349, r163350, MPFR_RNDN);
        mpfr_atan(r163352, r163351, MPFR_RNDN);
        mpfr_cos(r163353, r163352, MPFR_RNDN);
        return mpfr_get_d(r163353, MPFR_RNDN);
}

static mpfr_t r163354, r163355, r163356, r163357, r163358, r163359, r163360, r163361, r163362, r163363, r163364, r163365, r163366, r163367, r163368, r163369, r163370;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r163354);
        mpfr_init(r163355);
        mpfr_init(r163356);
        mpfr_init(r163357);
        mpfr_init(r163358);
        mpfr_init(r163359);
        mpfr_init(r163360);
        mpfr_init(r163361);
        mpfr_init(r163362);
        mpfr_init(r163363);
        mpfr_init(r163364);
        mpfr_init(r163365);
        mpfr_init(r163366);
        mpfr_init(r163367);
        mpfr_init(r163368);
        mpfr_init(r163369);
        mpfr_init(r163370);
}

double f_fm(double r, double d) {
        mpfr_set_d(r163354, r, MPFR_RNDN);
        mpfr_set_d(r163355, d, MPFR_RNDN);
        mpfr_div(r163356, r163354, r163355, MPFR_RNDN);
        mpfr_atan(r163357, r163356, MPFR_RNDN);
        mpfr_cos(r163358, r163357, MPFR_RNDN);
        mpfr_exp(r163359, r163358, MPFR_RNDN);
        mpfr_log(r163360, r163359, MPFR_RNDN);
        mpfr_log(r163361, r163360, MPFR_RNDN);
        mpfr_cbrt(r163362, r163361, MPFR_RNDN);
        mpfr_mul(r163363, r163362, r163362, MPFR_RNDN);
        mpfr_cbrt(r163364, r163358, MPFR_RNDN);
        mpfr_mul(r163365, r163364, r163364, MPFR_RNDN);
        mpfr_mul(r163366, r163364, r163365, MPFR_RNDN);
        mpfr_log(r163367, r163366, MPFR_RNDN);
        mpfr_cbrt(r163368, r163367, MPFR_RNDN);
        mpfr_mul(r163369, r163363, r163368, MPFR_RNDN);
        mpfr_exp(r163370, r163369, MPFR_RNDN);
        return mpfr_get_d(r163370, MPFR_RNDN);
}

static mpfr_t r163371, r163372, r163373, r163374, r163375, r163376, r163377, r163378, r163379, r163380, r163381, r163382, r163383, r163384, r163385, r163386, r163387;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r163371);
        mpfr_init(r163372);
        mpfr_init(r163373);
        mpfr_init(r163374);
        mpfr_init(r163375);
        mpfr_init(r163376);
        mpfr_init(r163377);
        mpfr_init(r163378);
        mpfr_init(r163379);
        mpfr_init(r163380);
        mpfr_init(r163381);
        mpfr_init(r163382);
        mpfr_init(r163383);
        mpfr_init(r163384);
        mpfr_init(r163385);
        mpfr_init(r163386);
        mpfr_init(r163387);
}

double f_dm(double r, double d) {
        mpfr_set_d(r163371, r, MPFR_RNDN);
        mpfr_set_d(r163372, d, MPFR_RNDN);
        mpfr_div(r163373, r163371, r163372, MPFR_RNDN);
        mpfr_atan(r163374, r163373, MPFR_RNDN);
        mpfr_cos(r163375, r163374, MPFR_RNDN);
        mpfr_exp(r163376, r163375, MPFR_RNDN);
        mpfr_log(r163377, r163376, MPFR_RNDN);
        mpfr_log(r163378, r163377, MPFR_RNDN);
        mpfr_cbrt(r163379, r163378, MPFR_RNDN);
        mpfr_mul(r163380, r163379, r163379, MPFR_RNDN);
        mpfr_cbrt(r163381, r163375, MPFR_RNDN);
        mpfr_mul(r163382, r163381, r163381, MPFR_RNDN);
        mpfr_mul(r163383, r163381, r163382, MPFR_RNDN);
        mpfr_log(r163384, r163383, MPFR_RNDN);
        mpfr_cbrt(r163385, r163384, MPFR_RNDN);
        mpfr_mul(r163386, r163380, r163385, MPFR_RNDN);
        mpfr_exp(r163387, r163386, MPFR_RNDN);
        return mpfr_get_d(r163387, MPFR_RNDN);
}

