#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 r9231 = re;
        float r9232 = r9231 * r9231;
        float r9233 = im;
        float r9234 = r9233 * r9233;
        float r9235 = r9232 + r9234;
        float r9236 = sqrt(r9235);
        return r9236;
}

double f_id(double re, double im) {
        double r9237 = re;
        double r9238 = r9237 * r9237;
        double r9239 = im;
        double r9240 = r9239 * r9239;
        double r9241 = r9238 + r9240;
        double r9242 = sqrt(r9241);
        return r9242;
}


double f_of(float re, float im) {
        float r9243 = re;
        float r9244 = -7.1459028545956985e+149f;
        bool r9245 = r9243 <= r9244;
        float r9246 = -r9243;
        float r9247 = 2.937250069907319e-180f;
        bool r9248 = r9243 <= r9247;
        float r9249 = 4.820775704044266e-164f;
        bool r9250 = r9243 <= r9249;
        float r9251 = !r9250;
        float r9252 = 9.389022784286144e+118f;
        bool r9253 = r9243 <= r9252;
        bool r9254 = r9251 && r9253;
        bool r9255 = r9248 || r9254;
        float r9256 = im;
        float r9257 = r9256 * r9256;
        float r9258 = r9243 * r9243;
        float r9259 = r9257 + r9258;
        float r9260 = sqrt(r9259);
        float r9261 = r9255 ? r9260 : r9243;
        float r9262 = r9245 ? r9246 : r9261;
        return r9262;
}

double f_od(double re, double im) {
        double r9263 = re;
        double r9264 = -7.1459028545956985e+149;
        bool r9265 = r9263 <= r9264;
        double r9266 = -r9263;
        double r9267 = 2.937250069907319e-180;
        bool r9268 = r9263 <= r9267;
        double r9269 = 4.820775704044266e-164;
        bool r9270 = r9263 <= r9269;
        double r9271 = !r9270;
        double r9272 = 9.389022784286144e+118;
        bool r9273 = r9263 <= r9272;
        bool r9274 = r9271 && r9273;
        bool r9275 = r9268 || r9274;
        double r9276 = im;
        double r9277 = r9276 * r9276;
        double r9278 = r9263 * r9263;
        double r9279 = r9277 + r9278;
        double r9280 = sqrt(r9279);
        double r9281 = r9275 ? r9280 : r9263;
        double r9282 = r9265 ? r9266 : r9281;
        return r9282;
}

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 r9283, r9284, r9285, r9286, r9287, r9288;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r9283);
        mpfr_init(r9284);
        mpfr_init(r9285);
        mpfr_init(r9286);
        mpfr_init(r9287);
        mpfr_init(r9288);
}

double f_im(double re, double im) {
        mpfr_set_d(r9283, re, MPFR_RNDN);
        mpfr_mul(r9284, r9283, r9283, MPFR_RNDN);
        mpfr_set_d(r9285, im, MPFR_RNDN);
        mpfr_mul(r9286, r9285, r9285, MPFR_RNDN);
        mpfr_add(r9287, r9284, r9286, MPFR_RNDN);
        mpfr_sqrt(r9288, r9287, MPFR_RNDN);
        return mpfr_get_d(r9288, MPFR_RNDN);
}

static mpfr_t r9289, r9290, r9291, r9292, r9293, r9294, r9295, r9296, r9297, r9298, r9299, r9300, r9301, r9302, r9303, r9304, r9305, r9306, r9307, r9308;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9289);
        mpfr_init_set_str(r9290, "-7.1459028545956985e+149", 10, MPFR_RNDN);
        mpfr_init(r9291);
        mpfr_init(r9292);
        mpfr_init_set_str(r9293, "2.937250069907319e-180", 10, MPFR_RNDN);
        mpfr_init(r9294);
        mpfr_init_set_str(r9295, "4.820775704044266e-164", 10, MPFR_RNDN);
        mpfr_init(r9296);
        mpfr_init(r9297);
        mpfr_init_set_str(r9298, "9.389022784286144e+118", 10, MPFR_RNDN);
        mpfr_init(r9299);
        mpfr_init(r9300);
        mpfr_init(r9301);
        mpfr_init(r9302);
        mpfr_init(r9303);
        mpfr_init(r9304);
        mpfr_init(r9305);
        mpfr_init(r9306);
        mpfr_init(r9307);
        mpfr_init(r9308);
}

double f_fm(double re, double im) {
        mpfr_set_d(r9289, re, MPFR_RNDN);
        ;
        mpfr_set_si(r9291, mpfr_cmp(r9289, r9290) <= 0, MPFR_RNDN);
        mpfr_neg(r9292, r9289, MPFR_RNDN);
        ;
        mpfr_set_si(r9294, mpfr_cmp(r9289, r9293) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9296, mpfr_cmp(r9289, r9295) <= 0, MPFR_RNDN);
        mpfr_set_si(r9297, !mpfr_get_si(r9296, MPFR_RNDN), MPFR_RNDN);
        ;
        mpfr_set_si(r9299, mpfr_cmp(r9289, r9298) <= 0, MPFR_RNDN);
        mpfr_set_si(r9300, mpfr_get_si(r9297, MPFR_RNDN) && mpfr_get_si(r9299, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r9301, mpfr_get_si(r9294, MPFR_RNDN) || mpfr_get_si(r9300, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_d(r9302, im, MPFR_RNDN);
        mpfr_mul(r9303, r9302, r9302, MPFR_RNDN);
        mpfr_mul(r9304, r9289, r9289, MPFR_RNDN);
        mpfr_add(r9305, r9303, r9304, MPFR_RNDN);
        mpfr_sqrt(r9306, r9305, MPFR_RNDN);
        if (mpfr_get_si(r9301, MPFR_RNDN)) { mpfr_set(r9307, r9306, MPFR_RNDN); } else { mpfr_set(r9307, r9289, MPFR_RNDN); };
        if (mpfr_get_si(r9291, MPFR_RNDN)) { mpfr_set(r9308, r9292, MPFR_RNDN); } else { mpfr_set(r9308, r9307, MPFR_RNDN); };
        return mpfr_get_d(r9308, MPFR_RNDN);
}

static mpfr_t r9309, r9310, r9311, r9312, r9313, r9314, r9315, r9316, r9317, r9318, r9319, r9320, r9321, r9322, r9323, r9324, r9325, r9326, r9327, r9328;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9309);
        mpfr_init_set_str(r9310, "-7.1459028545956985e+149", 10, MPFR_RNDN);
        mpfr_init(r9311);
        mpfr_init(r9312);
        mpfr_init_set_str(r9313, "2.937250069907319e-180", 10, MPFR_RNDN);
        mpfr_init(r9314);
        mpfr_init_set_str(r9315, "4.820775704044266e-164", 10, MPFR_RNDN);
        mpfr_init(r9316);
        mpfr_init(r9317);
        mpfr_init_set_str(r9318, "9.389022784286144e+118", 10, MPFR_RNDN);
        mpfr_init(r9319);
        mpfr_init(r9320);
        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_dm(double re, double im) {
        mpfr_set_d(r9309, re, MPFR_RNDN);
        ;
        mpfr_set_si(r9311, mpfr_cmp(r9309, r9310) <= 0, MPFR_RNDN);
        mpfr_neg(r9312, r9309, MPFR_RNDN);
        ;
        mpfr_set_si(r9314, mpfr_cmp(r9309, r9313) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9316, mpfr_cmp(r9309, r9315) <= 0, MPFR_RNDN);
        mpfr_set_si(r9317, !mpfr_get_si(r9316, MPFR_RNDN), MPFR_RNDN);
        ;
        mpfr_set_si(r9319, mpfr_cmp(r9309, r9318) <= 0, MPFR_RNDN);
        mpfr_set_si(r9320, mpfr_get_si(r9317, MPFR_RNDN) && mpfr_get_si(r9319, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r9321, mpfr_get_si(r9314, MPFR_RNDN) || mpfr_get_si(r9320, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_d(r9322, im, MPFR_RNDN);
        mpfr_mul(r9323, r9322, r9322, MPFR_RNDN);
        mpfr_mul(r9324, r9309, r9309, MPFR_RNDN);
        mpfr_add(r9325, r9323, 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, r9309, MPFR_RNDN); };
        if (mpfr_get_si(r9311, MPFR_RNDN)) { mpfr_set(r9328, r9312, MPFR_RNDN); } else { mpfr_set(r9328, r9327, MPFR_RNDN); };
        return mpfr_get_d(r9328, MPFR_RNDN);
}

