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

char *name = "(atan2 (+ b (- b)) (+ (- b 7.078918604288237e+238) 1.3789227555638566e+245))";

double f_if(float __attribute__((unused)) a, float b) {
        float r15012 = b;
        float r15013 = -r15012;
        float r15014 = r15012 + r15013;
        float r15015 = +inf.0f;
        float r15016 = r15012 - r15015;
        float r15017 = +inf.0f;
        float r15018 = r15016 + r15017;
        float r15019 = atan2(r15014, r15018);
        return r15019;
}

double f_id(double __attribute__((unused)) a, double b) {
        double r15020 = b;
        double r15021 = -r15020;
        double r15022 = r15020 + r15021;
        double r15023 = +inf.0;
        double r15024 = r15020 - r15023;
        double r15025 = +inf.0;
        double r15026 = r15024 + r15025;
        double r15027 = atan2(r15022, r15026);
        return r15027;
}


double f_of(float __attribute__((unused)) a, float b) {
        float r15028 = b;
        float r15029 = -r15028;
        float r15030 = r15028 + r15029;
        float r15031 = +inf.0f;
        float r15032 = r15028 + r15031;
        float r15033 = atan2(r15030, r15032);
        return r15033;
}

double f_od(double __attribute__((unused)) a, double b) {
        double r15034 = b;
        double r15035 = -r15034;
        double r15036 = r15034 + r15035;
        double r15037 = +inf.0;
        double r15038 = r15034 + r15037;
        double r15039 = atan2(r15036, r15038);
        return r15039;
}

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 r15040, r15041, r15042, r15043, r15044, r15045, r15046, r15047;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r15040);
        mpfr_init(r15041);
        mpfr_init(r15042);
        mpfr_init_set_str(r15043, "7.078918604288237e+238", 10, MPFR_RNDN);
        mpfr_init(r15044);
        mpfr_init_set_str(r15045, "1.3789227555638566e+245", 10, MPFR_RNDN);
        mpfr_init(r15046);
        mpfr_init(r15047);
}

double f_im(double __attribute__((unused)) a, double b) {
        mpfr_set_d(r15040, b, MPFR_RNDN);
        mpfr_neg(r15041, r15040, MPFR_RNDN);
        mpfr_add(r15042, r15040, r15041, MPFR_RNDN);
        ;
        mpfr_sub(r15044, r15040, r15043, MPFR_RNDN);
        ;
        mpfr_add(r15046, r15044, r15045, MPFR_RNDN);
        mpfr_atan2(r15047, r15042, r15046, MPFR_RNDN);
        return mpfr_get_d(r15047, MPFR_RNDN);
}

static mpfr_t r15048, r15049, r15050, r15051, r15052, r15053;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15048);
        mpfr_init(r15049);
        mpfr_init(r15050);
        mpfr_init_set_str(r15051, "1.3789220476719961e+245", 10, MPFR_RNDN);
        mpfr_init(r15052);
        mpfr_init(r15053);
}

double f_fm(double __attribute__((unused)) a, double b) {
        mpfr_set_d(r15048, b, MPFR_RNDN);
        mpfr_neg(r15049, r15048, MPFR_RNDN);
        mpfr_add(r15050, r15048, r15049, MPFR_RNDN);
        ;
        mpfr_add(r15052, r15048, r15051, MPFR_RNDN);
        mpfr_atan2(r15053, r15050, r15052, MPFR_RNDN);
        return mpfr_get_d(r15053, MPFR_RNDN);
}

static mpfr_t r15054, r15055, r15056, r15057, r15058, r15059;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15054);
        mpfr_init(r15055);
        mpfr_init(r15056);
        mpfr_init_set_str(r15057, "1.3789220476719961e+245", 10, MPFR_RNDN);
        mpfr_init(r15058);
        mpfr_init(r15059);
}

double f_dm(double __attribute__((unused)) a, double b) {
        mpfr_set_d(r15054, b, MPFR_RNDN);
        mpfr_neg(r15055, r15054, MPFR_RNDN);
        mpfr_add(r15056, r15054, r15055, MPFR_RNDN);
        ;
        mpfr_add(r15058, r15054, r15057, MPFR_RNDN);
        mpfr_atan2(r15059, r15056, r15058, MPFR_RNDN);
        return mpfr_get_d(r15059, MPFR_RNDN);
}

