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

char *name = "math.abs on complex";

double f_if(float re, float im) {
        float r9272 = re;
        float r9273 = r9272 * r9272;
        float r9274 = im;
        float r9275 = r9274 * r9274;
        float r9276 = r9273 + r9275;
        float r9277 = sqrt(r9276);
        return r9277;
}

double f_id(double re, double im) {
        double r9278 = re;
        double r9279 = r9278 * r9278;
        double r9280 = im;
        double r9281 = r9280 * r9280;
        double r9282 = r9279 + r9281;
        double r9283 = sqrt(r9282);
        return r9283;
}


double f_of(float re, float im) {
        float r9284 = re;
        float r9285 = -1.293482981552853e+154;
        bool r9286 = r9284 <= r9285;
        float r9287 = -r9284;
        float r9288 = 4.2147853830585397e+124;
        bool r9289 = r9284 <= r9288;
        float r9290 = r9284 * r9284;
        float r9291 = im;
        float r9292 = r9291 * r9291;
        float r9293 = r9290 + r9292;
        float r9294 = sqrt(r9293);
        float r9295 = r9289 ? r9294 : r9284;
        float r9296 = r9286 ? r9287 : r9295;
        return r9296;
}

double f_od(double re, double im) {
        double r9297 = re;
        double r9298 = -1.293482981552853e+154;
        bool r9299 = r9297 <= r9298;
        double r9300 = -r9297;
        double r9301 = 4.2147853830585397e+124;
        bool r9302 = r9297 <= r9301;
        double r9303 = r9297 * r9297;
        double r9304 = im;
        double r9305 = r9304 * r9304;
        double r9306 = r9303 + r9305;
        double r9307 = sqrt(r9306);
        double r9308 = r9302 ? r9307 : r9297;
        double r9309 = r9299 ? r9300 : r9308;
        return r9309;
}

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 r9310, r9311, r9312, r9313, r9314, r9315;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r9310);
        mpfr_init(r9311);
        mpfr_init(r9312);
        mpfr_init(r9313);
        mpfr_init(r9314);
        mpfr_init(r9315);
}

double f_im(double re, double im) {
        mpfr_set_d(r9310, re, MPFR_RNDN);
        mpfr_mul(r9311, r9310, r9310, MPFR_RNDN);
        mpfr_set_d(r9312, im, MPFR_RNDN);
        mpfr_mul(r9313, r9312, r9312, MPFR_RNDN);
        mpfr_add(r9314, r9311, r9313, MPFR_RNDN);
        mpfr_sqrt(r9315, r9314, MPFR_RNDN);
        return mpfr_get_d(r9315, MPFR_RNDN);
}

static mpfr_t r9316, r9317, r9318, r9319, r9320, r9321, r9322, r9323, r9324, r9325, r9326, r9327, r9328;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9316);
        mpfr_init_set_str(r9317, "-1.293482981552853e+154", 10, MPFR_RNDN);
        mpfr_init(r9318);
        mpfr_init(r9319);
        mpfr_init_set_str(r9320, "4.2147853830585397e+124", 10, MPFR_RNDN);
        mpfr_init(r9321);
        mpfr_init(r9322);
        mpfr_init(r9323);
        mpfr_init(r9324);
        mpfr_init(r9325);
        mpfr_init(r9326);
        mpfr_init(r9327);
        mpfr_init(r9328);
}

double f_fm(double re, double im) {
        mpfr_set_d(r9316, re, MPFR_RNDN);
        ;
        mpfr_set_si(r9318, mpfr_cmp(r9316, r9317) <= 0, MPFR_RNDN);
        mpfr_neg(r9319, r9316, MPFR_RNDN);
        ;
        mpfr_set_si(r9321, mpfr_cmp(r9316, r9320) <= 0, MPFR_RNDN);
        mpfr_mul(r9322, r9316, r9316, MPFR_RNDN);
        mpfr_set_d(r9323, im, MPFR_RNDN);
        mpfr_mul(r9324, r9323, r9323, MPFR_RNDN);
        mpfr_add(r9325, r9322, r9324, MPFR_RNDN);
        mpfr_sqrt(r9326, r9325, MPFR_RNDN);
        if (mpfr_get_si(r9321, MPFR_RNDN)) { mpfr_set(r9327, r9326, MPFR_RNDN); } else { mpfr_set(r9327, r9316, MPFR_RNDN); };
        if (mpfr_get_si(r9318, MPFR_RNDN)) { mpfr_set(r9328, r9319, MPFR_RNDN); } else { mpfr_set(r9328, r9327, MPFR_RNDN); };
        return mpfr_get_d(r9328, MPFR_RNDN);
}

static mpfr_t r9329, r9330, r9331, r9332, r9333, r9334, r9335, r9336, r9337, r9338, r9339, r9340, r9341;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9329);
        mpfr_init_set_str(r9330, "-1.293482981552853e+154", 10, MPFR_RNDN);
        mpfr_init(r9331);
        mpfr_init(r9332);
        mpfr_init_set_str(r9333, "4.2147853830585397e+124", 10, MPFR_RNDN);
        mpfr_init(r9334);
        mpfr_init(r9335);
        mpfr_init(r9336);
        mpfr_init(r9337);
        mpfr_init(r9338);
        mpfr_init(r9339);
        mpfr_init(r9340);
        mpfr_init(r9341);
}

double f_dm(double re, double im) {
        mpfr_set_d(r9329, re, MPFR_RNDN);
        ;
        mpfr_set_si(r9331, mpfr_cmp(r9329, r9330) <= 0, MPFR_RNDN);
        mpfr_neg(r9332, r9329, MPFR_RNDN);
        ;
        mpfr_set_si(r9334, mpfr_cmp(r9329, r9333) <= 0, MPFR_RNDN);
        mpfr_mul(r9335, r9329, r9329, MPFR_RNDN);
        mpfr_set_d(r9336, im, MPFR_RNDN);
        mpfr_mul(r9337, r9336, r9336, MPFR_RNDN);
        mpfr_add(r9338, r9335, r9337, MPFR_RNDN);
        mpfr_sqrt(r9339, r9338, MPFR_RNDN);
        if (mpfr_get_si(r9334, MPFR_RNDN)) { mpfr_set(r9340, r9339, MPFR_RNDN); } else { mpfr_set(r9340, r9329, MPFR_RNDN); };
        if (mpfr_get_si(r9331, MPFR_RNDN)) { mpfr_set(r9341, r9332, MPFR_RNDN); } else { mpfr_set(r9341, r9340, MPFR_RNDN); };
        return mpfr_get_d(r9341, MPFR_RNDN);
}

