#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 r6239276 = N;
        float r6239277 = 1;
        float r6239278 = r6239276 + r6239277;
        float r6239279 = atan(r6239278);
        float r6239280 = atan(r6239276);
        float r6239281 = r6239279 - r6239280;
        return r6239281;
}

double f_id(double N) {
        double r6239282 = N;
        double r6239283 = 1;
        double r6239284 = r6239282 + r6239283;
        double r6239285 = atan(r6239284);
        double r6239286 = atan(r6239282);
        double r6239287 = r6239285 - r6239286;
        return r6239287;
}


double f_of(float N) {
        float r6239288 = 1;
        float r6239289 = 0;
        float r6239290 = r6239288 - r6239289;
        float r6239291 = N;
        float r6239292 = r6239291 + r6239288;
        float r6239293 = r6239292 * r6239291;
        float r6239294 = r6239288 + r6239293;
        float r6239295 = atan2(r6239290, r6239294);
        return r6239295;
}

double f_od(double N) {
        double r6239296 = 1;
        double r6239297 = 0;
        double r6239298 = r6239296 - r6239297;
        double r6239299 = N;
        double r6239300 = r6239299 + r6239296;
        double r6239301 = r6239300 * r6239299;
        double r6239302 = r6239296 + r6239301;
        double r6239303 = atan2(r6239298, r6239302);
        return r6239303;
}

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 r6239304, r6239305, r6239306, r6239307, r6239308, r6239309;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r6239304);
        mpfr_init_set_str(r6239305, "1", 10, MPFR_RNDN);
        mpfr_init(r6239306);
        mpfr_init(r6239307);
        mpfr_init(r6239308);
        mpfr_init(r6239309);
}

double f_im(double N) {
        mpfr_set_d(r6239304, N, MPFR_RNDN);
        ;
        mpfr_add(r6239306, r6239304, r6239305, MPFR_RNDN);
        mpfr_atan(r6239307, r6239306, MPFR_RNDN);
        mpfr_atan(r6239308, r6239304, MPFR_RNDN);
        mpfr_sub(r6239309, r6239307, r6239308, MPFR_RNDN);
        return mpfr_get_d(r6239309, MPFR_RNDN);
}

static mpfr_t r6239310, r6239311, r6239312, r6239313, r6239314, r6239315, r6239316, r6239317;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r6239310, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r6239311, "0", 10, MPFR_RNDN);
        mpfr_init(r6239312);
        mpfr_init(r6239313);
        mpfr_init(r6239314);
        mpfr_init(r6239315);
        mpfr_init(r6239316);
        mpfr_init(r6239317);
}

double f_fm(double N) {
        ;
        ;
        mpfr_sub(r6239312, r6239310, r6239311, MPFR_RNDN);
        mpfr_set_d(r6239313, N, MPFR_RNDN);
        mpfr_add(r6239314, r6239313, r6239310, MPFR_RNDN);
        mpfr_mul(r6239315, r6239314, r6239313, MPFR_RNDN);
        mpfr_add(r6239316, r6239310, r6239315, MPFR_RNDN);
        mpfr_atan2(r6239317, r6239312, r6239316, MPFR_RNDN);
        return mpfr_get_d(r6239317, MPFR_RNDN);
}

static mpfr_t r6239318, r6239319, r6239320, r6239321, r6239322, r6239323, r6239324, r6239325;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r6239318, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r6239319, "0", 10, MPFR_RNDN);
        mpfr_init(r6239320);
        mpfr_init(r6239321);
        mpfr_init(r6239322);
        mpfr_init(r6239323);
        mpfr_init(r6239324);
        mpfr_init(r6239325);
}

double f_dm(double N) {
        ;
        ;
        mpfr_sub(r6239320, r6239318, r6239319, MPFR_RNDN);
        mpfr_set_d(r6239321, N, MPFR_RNDN);
        mpfr_add(r6239322, r6239321, r6239318, MPFR_RNDN);
        mpfr_mul(r6239323, r6239322, r6239321, MPFR_RNDN);
        mpfr_add(r6239324, r6239318, r6239323, MPFR_RNDN);
        mpfr_atan2(r6239325, r6239320, r6239324, MPFR_RNDN);
        return mpfr_get_d(r6239325, MPFR_RNDN);
}

