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

char *name = "2atan (example 3.5)";

double f_if(float N) {
        float r11295 = N;
        float r11296 = 1;
        float r11297 = r11295 + r11296;
        float r11298 = atan(r11297);
        float r11299 = atan(r11295);
        float r11300 = r11298 - r11299;
        return r11300;
}

double f_id(double N) {
        double r11301 = N;
        double r11302 = 1;
        double r11303 = r11301 + r11302;
        double r11304 = atan(r11303);
        double r11305 = atan(r11301);
        double r11306 = r11304 - r11305;
        return r11306;
}


double f_of(float N) {
        float r11307 = 1;
        float r11308 = N;
        float r11309 = r11308 + r11307;
        float r11310 = r11309 * r11308;
        float r11311 = r11307 + r11310;
        float r11312 = atan2(r11307, r11311);
        return r11312;
}

double f_od(double N) {
        double r11313 = 1;
        double r11314 = N;
        double r11315 = r11314 + r11313;
        double r11316 = r11315 * r11314;
        double r11317 = r11313 + r11316;
        double r11318 = atan2(r11313, r11317);
        return r11318;
}

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 r11319, r11320, r11321, r11322, r11323, r11324;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r11319);
        mpfr_init_set_str(r11320, "1", 10, MPFR_RNDN);
        mpfr_init(r11321);
        mpfr_init(r11322);
        mpfr_init(r11323);
        mpfr_init(r11324);
}

double f_im(double N) {
        mpfr_set_d(r11319, N, MPFR_RNDN);
        ;
        mpfr_add(r11321, r11319, r11320, MPFR_RNDN);
        mpfr_atan(r11322, r11321, MPFR_RNDN);
        mpfr_atan(r11323, r11319, MPFR_RNDN);
        mpfr_sub(r11324, r11322, r11323, MPFR_RNDN);
        return mpfr_get_d(r11324, MPFR_RNDN);
}

static mpfr_t r11325, r11326, r11327, r11328, r11329, r11330;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11325, "1", 10, MPFR_RNDN);
        mpfr_init(r11326);
        mpfr_init(r11327);
        mpfr_init(r11328);
        mpfr_init(r11329);
        mpfr_init(r11330);
}

double f_fm(double N) {
        ;
        mpfr_set_d(r11326, N, MPFR_RNDN);
        mpfr_add(r11327, r11326, r11325, MPFR_RNDN);
        mpfr_mul(r11328, r11327, r11326, MPFR_RNDN);
        mpfr_add(r11329, r11325, r11328, MPFR_RNDN);
        mpfr_atan2(r11330, r11325, r11329, MPFR_RNDN);
        return mpfr_get_d(r11330, MPFR_RNDN);
}

static mpfr_t r11331, r11332, r11333, r11334, r11335, r11336;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11331, "1", 10, MPFR_RNDN);
        mpfr_init(r11332);
        mpfr_init(r11333);
        mpfr_init(r11334);
        mpfr_init(r11335);
        mpfr_init(r11336);
}

double f_dm(double N) {
        ;
        mpfr_set_d(r11332, N, MPFR_RNDN);
        mpfr_add(r11333, r11332, r11331, MPFR_RNDN);
        mpfr_mul(r11334, r11333, r11332, MPFR_RNDN);
        mpfr_add(r11335, r11331, r11334, MPFR_RNDN);
        mpfr_atan2(r11336, r11331, r11335, MPFR_RNDN);
        return mpfr_get_d(r11336, MPFR_RNDN);
}

