#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 r11463 = N;
        float r11464 = 1;
        float r11465 = r11463 + r11464;
        float r11466 = atan(r11465);
        float r11467 = atan(r11463);
        float r11468 = r11466 - r11467;
        return r11468;
}

double f_id(double N) {
        double r11469 = N;
        double r11470 = 1;
        double r11471 = r11469 + r11470;
        double r11472 = atan(r11471);
        double r11473 = atan(r11469);
        double r11474 = r11472 - r11473;
        return r11474;
}


double f_of(float N) {
        float r11475 = 1;
        float r11476 = N;
        float r11477 = r11476 + r11475;
        float r11478 = fma(r11476, r11477, r11475);
        float r11479 = atan2(r11475, r11478);
        return r11479;
}

double f_od(double N) {
        double r11480 = 1;
        double r11481 = N;
        double r11482 = r11481 + r11480;
        double r11483 = fma(r11481, r11482, r11480);
        double r11484 = atan2(r11480, r11483);
        return r11484;
}

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 r11485, r11486, r11487, r11488, r11489, r11490;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r11485);
        mpfr_init_set_str(r11486, "1", 10, MPFR_RNDN);
        mpfr_init(r11487);
        mpfr_init(r11488);
        mpfr_init(r11489);
        mpfr_init(r11490);
}

double f_im(double N) {
        mpfr_set_d(r11485, N, MPFR_RNDN);
        ;
        mpfr_add(r11487, r11485, r11486, MPFR_RNDN);
        mpfr_atan(r11488, r11487, MPFR_RNDN);
        mpfr_atan(r11489, r11485, MPFR_RNDN);
        mpfr_sub(r11490, r11488, r11489, MPFR_RNDN);
        return mpfr_get_d(r11490, MPFR_RNDN);
}

static mpfr_t r11491, r11492, r11493, r11494, r11495;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11491, "1", 10, MPFR_RNDN);
        mpfr_init(r11492);
        mpfr_init(r11493);
        mpfr_init(r11494);
        mpfr_init(r11495);
}

double f_fm(double N) {
        ;
        mpfr_set_d(r11492, N, MPFR_RNDN);
        mpfr_add(r11493, r11492, r11491, MPFR_RNDN);
        mpfr_fma(r11494, r11492, r11493, r11491, MPFR_RNDN);
        mpfr_atan2(r11495, r11491, r11494, MPFR_RNDN);
        return mpfr_get_d(r11495, MPFR_RNDN);
}

static mpfr_t r11496, r11497, r11498, r11499, r11500;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11496, "1", 10, MPFR_RNDN);
        mpfr_init(r11497);
        mpfr_init(r11498);
        mpfr_init(r11499);
        mpfr_init(r11500);
}

double f_dm(double N) {
        ;
        mpfr_set_d(r11497, N, MPFR_RNDN);
        mpfr_add(r11498, r11497, r11496, MPFR_RNDN);
        mpfr_fma(r11499, r11497, r11498, r11496, MPFR_RNDN);
        mpfr_atan2(r11500, r11496, r11499, MPFR_RNDN);
        return mpfr_get_d(r11500, MPFR_RNDN);
}

