#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 r11527 = N;
        float r11528 = 1;
        float r11529 = r11527 + r11528;
        float r11530 = atan(r11529);
        float r11531 = atan(r11527);
        float r11532 = r11530 - r11531;
        return r11532;
}

double f_id(double N) {
        double r11533 = N;
        double r11534 = 1;
        double r11535 = r11533 + r11534;
        double r11536 = atan(r11535);
        double r11537 = atan(r11533);
        double r11538 = r11536 - r11537;
        return r11538;
}


double f_of(float N) {
        float r11539 = 1;
        float r11540 = N;
        float r11541 = r11539 + r11540;
        float r11542 = fma(r11540, r11541, r11539);
        float r11543 = atan2(r11539, r11542);
        return r11543;
}

double f_od(double N) {
        double r11544 = 1;
        double r11545 = N;
        double r11546 = r11544 + r11545;
        double r11547 = fma(r11545, r11546, r11544);
        double r11548 = atan2(r11544, r11547);
        return r11548;
}

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 r11549, r11550, r11551, r11552, r11553, r11554;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r11549);
        mpfr_init_set_str(r11550, "1", 10, MPFR_RNDN);
        mpfr_init(r11551);
        mpfr_init(r11552);
        mpfr_init(r11553);
        mpfr_init(r11554);
}

double f_im(double N) {
        mpfr_set_d(r11549, N, MPFR_RNDN);
        ;
        mpfr_add(r11551, r11549, r11550, MPFR_RNDN);
        mpfr_atan(r11552, r11551, MPFR_RNDN);
        mpfr_atan(r11553, r11549, MPFR_RNDN);
        mpfr_sub(r11554, r11552, r11553, MPFR_RNDN);
        return mpfr_get_d(r11554, MPFR_RNDN);
}

static mpfr_t r11555, r11556, r11557, r11558, r11559;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11555, "1", 10, MPFR_RNDN);
        mpfr_init(r11556);
        mpfr_init(r11557);
        mpfr_init(r11558);
        mpfr_init(r11559);
}

double f_fm(double N) {
        ;
        mpfr_set_d(r11556, N, MPFR_RNDN);
        mpfr_add(r11557, r11555, r11556, MPFR_RNDN);
        mpfr_fma(r11558, r11556, r11557, r11555, MPFR_RNDN);
        mpfr_atan2(r11559, r11555, r11558, MPFR_RNDN);
        return mpfr_get_d(r11559, MPFR_RNDN);
}

static mpfr_t r11560, r11561, r11562, r11563, r11564;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11560, "1", 10, MPFR_RNDN);
        mpfr_init(r11561);
        mpfr_init(r11562);
        mpfr_init(r11563);
        mpfr_init(r11564);
}

double f_dm(double N) {
        ;
        mpfr_set_d(r11561, N, MPFR_RNDN);
        mpfr_add(r11562, r11560, r11561, MPFR_RNDN);
        mpfr_fma(r11563, r11561, r11562, r11560, MPFR_RNDN);
        mpfr_atan2(r11564, r11560, r11563, MPFR_RNDN);
        return mpfr_get_d(r11564, MPFR_RNDN);
}

