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

char *name = "quadm (p42, negative)";

double f_if(float a, float b, float c) {
        float r33961 = b;
        float r33962 = -r33961;
        float r33963 = r33961 * r33961;
        float r33964 = 4.0f;
        float r33965 = a;
        float r33966 = c;
        float r33967 = r33965 * r33966;
        float r33968 = r33964 * r33967;
        float r33969 = r33963 - r33968;
        float r33970 = sqrt(r33969);
        float r33971 = r33962 - r33970;
        float r33972 = 2.0f;
        float r33973 = r33972 * r33965;
        float r33974 = r33971 / r33973;
        return r33974;
}

double f_id(double a, double b, double c) {
        double r33975 = b;
        double r33976 = -r33975;
        double r33977 = r33975 * r33975;
        double r33978 = 4.0;
        double r33979 = a;
        double r33980 = c;
        double r33981 = r33979 * r33980;
        double r33982 = r33978 * r33981;
        double r33983 = r33977 - r33982;
        double r33984 = sqrt(r33983);
        double r33985 = r33976 - r33984;
        double r33986 = 2.0;
        double r33987 = r33986 * r33979;
        double r33988 = r33985 / r33987;
        return r33988;
}


double f_of(float a, float b, float c) {
        float r33989 = b;
        float r33990 = -4.319226994044875e+67f;
        bool r33991 = r33989 <= r33990;
        float r33992 = -r33989;
        float r33993 = r33989 + r33992;
        float r33994 = a;
        float r33995 = r33994 + r33994;
        float r33996 = r33993 / r33995;
        float r33997 = c;
        float r33998 = r33997 / r33989;
        float r33999 = r33996 - r33998;
        float r34000 = 7.285691125792036e-223f;
        bool r34001 = r33989 <= r34000;
        float r34002 = 4.0f;
        float r34003 = 2.0f;
        float r34004 = r34002 / r34003;
        float r34005 = r33989 * r33989;
        float r34006 = r33997 * r34002;
        float r34007 = r33994 * r34006;
        float r34008 = r34005 - r34007;
        float r34009 = sqrt(r34008);
        float r34010 = sqrt(r34009);
        float r34011 = r34010 * r34010;
        float r34012 = r33992 + r34011;
        float r34013 = r33997 / r34012;
        float r34014 = r34004 * r34013;
        float r34015 = 1.0905893076356243e+100f;
        bool r34016 = r33989 <= r34015;
        float r34017 = 1.0f;
        float r34018 = r34003 * r33994;
        float r34019 = r33989 * r33989;
        float r34020 = r33994 * r33997;
        float r34021 = r34002 * r34020;
        float r34022 = r34019 - r34021;
        float r34023 = sqrt(r34022);
        float r34024 = r33992 - r34023;
        float r34025 = r34018 / r34024;
        float r34026 = r34017 / r34025;
        float r34027 = r33992 / r33994;
        float r34028 = r34016 ? r34026 : r34027;
        float r34029 = r34001 ? r34014 : r34028;
        float r34030 = r33991 ? r33999 : r34029;
        return r34030;
}

double f_od(double a, double b, double c) {
        double r34031 = b;
        double r34032 = -4.319226994044875e+67;
        bool r34033 = r34031 <= r34032;
        double r34034 = -r34031;
        double r34035 = r34031 + r34034;
        double r34036 = a;
        double r34037 = r34036 + r34036;
        double r34038 = r34035 / r34037;
        double r34039 = c;
        double r34040 = r34039 / r34031;
        double r34041 = r34038 - r34040;
        double r34042 = 7.285691125792036e-223;
        bool r34043 = r34031 <= r34042;
        double r34044 = 4.0;
        double r34045 = 2.0;
        double r34046 = r34044 / r34045;
        double r34047 = r34031 * r34031;
        double r34048 = r34039 * r34044;
        double r34049 = r34036 * r34048;
        double r34050 = r34047 - r34049;
        double r34051 = sqrt(r34050);
        double r34052 = sqrt(r34051);
        double r34053 = r34052 * r34052;
        double r34054 = r34034 + r34053;
        double r34055 = r34039 / r34054;
        double r34056 = r34046 * r34055;
        double r34057 = 1.0905893076356243e+100;
        bool r34058 = r34031 <= r34057;
        double r34059 = 1.0;
        double r34060 = r34045 * r34036;
        double r34061 = r34031 * r34031;
        double r34062 = r34036 * r34039;
        double r34063 = r34044 * r34062;
        double r34064 = r34061 - r34063;
        double r34065 = sqrt(r34064);
        double r34066 = r34034 - r34065;
        double r34067 = r34060 / r34066;
        double r34068 = r34059 / r34067;
        double r34069 = r34034 / r34036;
        double r34070 = r34058 ? r34068 : r34069;
        double r34071 = r34043 ? r34056 : r34070;
        double r34072 = r34033 ? r34041 : r34071;
        return r34072;
}

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 r34073, r34074, r34075, r34076, r34077, r34078, r34079, r34080, r34081, r34082, r34083, r34084, r34085, r34086;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r34073);
        mpfr_init(r34074);
        mpfr_init(r34075);
        mpfr_init_set_str(r34076, "4", 10, MPFR_RNDN);
        mpfr_init(r34077);
        mpfr_init(r34078);
        mpfr_init(r34079);
        mpfr_init(r34080);
        mpfr_init(r34081);
        mpfr_init(r34082);
        mpfr_init(r34083);
        mpfr_init_set_str(r34084, "2", 10, MPFR_RNDN);
        mpfr_init(r34085);
        mpfr_init(r34086);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r34073, b, MPFR_RNDN);
        mpfr_neg(r34074, r34073, MPFR_RNDN);
        mpfr_sqr(r34075, r34073, MPFR_RNDN);
        ;
        mpfr_set_d(r34077, a, MPFR_RNDN);
        mpfr_set_d(r34078, c, MPFR_RNDN);
        mpfr_mul(r34079, r34077, r34078, MPFR_RNDN);
        mpfr_mul(r34080, r34076, r34079, MPFR_RNDN);
        mpfr_sub(r34081, r34075, r34080, MPFR_RNDN);
        mpfr_sqrt(r34082, r34081, MPFR_RNDN);
        mpfr_sub(r34083, r34074, r34082, MPFR_RNDN);
        ;
        mpfr_mul(r34085, r34084, r34077, MPFR_RNDN);
        mpfr_div(r34086, r34083, r34085, MPFR_RNDN);
        return mpfr_get_d(r34086, MPFR_RNDN);
}

static mpfr_t r34087, r34088, r34089, r34090, r34091, r34092, r34093, r34094, r34095, r34096, r34097, r34098, r34099, r34100, r34101, r34102, r34103, r34104, r34105, r34106, r34107, r34108, r34109, r34110, r34111, r34112, r34113, r34114, r34115, r34116, r34117, r34118, r34119, r34120, r34121, r34122, r34123, r34124, r34125, r34126, r34127, r34128;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r34087);
        mpfr_init_set_str(r34088, "-4.319226994044875e+67", 10, MPFR_RNDN);
        mpfr_init(r34089);
        mpfr_init(r34090);
        mpfr_init(r34091);
        mpfr_init(r34092);
        mpfr_init(r34093);
        mpfr_init(r34094);
        mpfr_init(r34095);
        mpfr_init(r34096);
        mpfr_init(r34097);
        mpfr_init_set_str(r34098, "7.285691125792036e-223", 10, MPFR_RNDN);
        mpfr_init(r34099);
        mpfr_init_set_str(r34100, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r34101, "2", 10, MPFR_RNDN);
        mpfr_init(r34102);
        mpfr_init(r34103);
        mpfr_init(r34104);
        mpfr_init(r34105);
        mpfr_init(r34106);
        mpfr_init(r34107);
        mpfr_init(r34108);
        mpfr_init(r34109);
        mpfr_init(r34110);
        mpfr_init(r34111);
        mpfr_init(r34112);
        mpfr_init_set_str(r34113, "1.0905893076356243e+100", 10, MPFR_RNDN);
        mpfr_init(r34114);
        mpfr_init_set_str(r34115, "1", 10, MPFR_RNDN);
        mpfr_init(r34116);
        mpfr_init(r34117);
        mpfr_init(r34118);
        mpfr_init(r34119);
        mpfr_init(r34120);
        mpfr_init(r34121);
        mpfr_init(r34122);
        mpfr_init(r34123);
        mpfr_init(r34124);
        mpfr_init(r34125);
        mpfr_init(r34126);
        mpfr_init(r34127);
        mpfr_init(r34128);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r34087, b, MPFR_RNDN);
        ;
        mpfr_set_si(r34089, mpfr_cmp(r34087, r34088) <= 0, MPFR_RNDN);
        mpfr_neg(r34090, r34087, MPFR_RNDN);
        mpfr_add(r34091, r34087, r34090, MPFR_RNDN);
        mpfr_set_d(r34092, a, MPFR_RNDN);
        mpfr_add(r34093, r34092, r34092, MPFR_RNDN);
        mpfr_div(r34094, r34091, r34093, MPFR_RNDN);
        mpfr_set_d(r34095, c, MPFR_RNDN);
        mpfr_div(r34096, r34095, r34087, MPFR_RNDN);
        mpfr_sub(r34097, r34094, r34096, MPFR_RNDN);
        ;
        mpfr_set_si(r34099, mpfr_cmp(r34087, r34098) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r34102, r34100, r34101, MPFR_RNDN);
        mpfr_mul(r34103, r34087, r34087, MPFR_RNDN);
        mpfr_mul(r34104, r34095, r34100, MPFR_RNDN);
        mpfr_mul(r34105, r34092, r34104, MPFR_RNDN);
        mpfr_sub(r34106, r34103, r34105, MPFR_RNDN);
        mpfr_sqrt(r34107, r34106, MPFR_RNDN);
        mpfr_sqrt(r34108, r34107, MPFR_RNDN);
        mpfr_sqr(r34109, r34108, MPFR_RNDN);
        mpfr_add(r34110, r34090, r34109, MPFR_RNDN);
        mpfr_div(r34111, r34095, r34110, MPFR_RNDN);
        mpfr_mul(r34112, r34102, r34111, MPFR_RNDN);
        ;
        mpfr_set_si(r34114, mpfr_cmp(r34087, r34113) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r34116, r34101, r34092, MPFR_RNDN);
        mpfr_sqr(r34117, r34087, MPFR_RNDN);
        mpfr_mul(r34118, r34092, r34095, MPFR_RNDN);
        mpfr_mul(r34119, r34100, r34118, MPFR_RNDN);
        mpfr_sub(r34120, r34117, r34119, MPFR_RNDN);
        mpfr_sqrt(r34121, r34120, MPFR_RNDN);
        mpfr_sub(r34122, r34090, r34121, MPFR_RNDN);
        mpfr_div(r34123, r34116, r34122, MPFR_RNDN);
        mpfr_div(r34124, r34115, r34123, MPFR_RNDN);
        mpfr_div(r34125, r34090, r34092, MPFR_RNDN);
        if (mpfr_get_si(r34114, MPFR_RNDN)) { mpfr_set(r34126, r34124, MPFR_RNDN); } else { mpfr_set(r34126, r34125, MPFR_RNDN); };
        if (mpfr_get_si(r34099, MPFR_RNDN)) { mpfr_set(r34127, r34112, MPFR_RNDN); } else { mpfr_set(r34127, r34126, MPFR_RNDN); };
        if (mpfr_get_si(r34089, MPFR_RNDN)) { mpfr_set(r34128, r34097, MPFR_RNDN); } else { mpfr_set(r34128, r34127, MPFR_RNDN); };
        return mpfr_get_d(r34128, MPFR_RNDN);
}

static mpfr_t r34129, r34130, r34131, r34132, r34133, r34134, r34135, r34136, r34137, r34138, r34139, r34140, r34141, r34142, r34143, r34144, r34145, r34146, r34147, r34148, r34149, r34150, r34151, r34152, r34153, r34154, r34155, r34156, r34157, r34158, r34159, r34160, r34161, r34162, r34163, r34164, r34165, r34166, r34167, r34168, r34169, r34170;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r34129);
        mpfr_init_set_str(r34130, "-4.319226994044875e+67", 10, MPFR_RNDN);
        mpfr_init(r34131);
        mpfr_init(r34132);
        mpfr_init(r34133);
        mpfr_init(r34134);
        mpfr_init(r34135);
        mpfr_init(r34136);
        mpfr_init(r34137);
        mpfr_init(r34138);
        mpfr_init(r34139);
        mpfr_init_set_str(r34140, "7.285691125792036e-223", 10, MPFR_RNDN);
        mpfr_init(r34141);
        mpfr_init_set_str(r34142, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r34143, "2", 10, MPFR_RNDN);
        mpfr_init(r34144);
        mpfr_init(r34145);
        mpfr_init(r34146);
        mpfr_init(r34147);
        mpfr_init(r34148);
        mpfr_init(r34149);
        mpfr_init(r34150);
        mpfr_init(r34151);
        mpfr_init(r34152);
        mpfr_init(r34153);
        mpfr_init(r34154);
        mpfr_init_set_str(r34155, "1.0905893076356243e+100", 10, MPFR_RNDN);
        mpfr_init(r34156);
        mpfr_init_set_str(r34157, "1", 10, MPFR_RNDN);
        mpfr_init(r34158);
        mpfr_init(r34159);
        mpfr_init(r34160);
        mpfr_init(r34161);
        mpfr_init(r34162);
        mpfr_init(r34163);
        mpfr_init(r34164);
        mpfr_init(r34165);
        mpfr_init(r34166);
        mpfr_init(r34167);
        mpfr_init(r34168);
        mpfr_init(r34169);
        mpfr_init(r34170);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r34129, b, MPFR_RNDN);
        ;
        mpfr_set_si(r34131, mpfr_cmp(r34129, r34130) <= 0, MPFR_RNDN);
        mpfr_neg(r34132, r34129, MPFR_RNDN);
        mpfr_add(r34133, r34129, r34132, MPFR_RNDN);
        mpfr_set_d(r34134, a, MPFR_RNDN);
        mpfr_add(r34135, r34134, r34134, MPFR_RNDN);
        mpfr_div(r34136, r34133, r34135, MPFR_RNDN);
        mpfr_set_d(r34137, c, MPFR_RNDN);
        mpfr_div(r34138, r34137, r34129, MPFR_RNDN);
        mpfr_sub(r34139, r34136, r34138, MPFR_RNDN);
        ;
        mpfr_set_si(r34141, mpfr_cmp(r34129, r34140) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r34144, r34142, r34143, MPFR_RNDN);
        mpfr_mul(r34145, r34129, r34129, MPFR_RNDN);
        mpfr_mul(r34146, r34137, r34142, MPFR_RNDN);
        mpfr_mul(r34147, r34134, r34146, MPFR_RNDN);
        mpfr_sub(r34148, r34145, r34147, MPFR_RNDN);
        mpfr_sqrt(r34149, r34148, MPFR_RNDN);
        mpfr_sqrt(r34150, r34149, MPFR_RNDN);
        mpfr_sqr(r34151, r34150, MPFR_RNDN);
        mpfr_add(r34152, r34132, r34151, MPFR_RNDN);
        mpfr_div(r34153, r34137, r34152, MPFR_RNDN);
        mpfr_mul(r34154, r34144, r34153, MPFR_RNDN);
        ;
        mpfr_set_si(r34156, mpfr_cmp(r34129, r34155) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r34158, r34143, r34134, MPFR_RNDN);
        mpfr_sqr(r34159, r34129, MPFR_RNDN);
        mpfr_mul(r34160, r34134, r34137, MPFR_RNDN);
        mpfr_mul(r34161, r34142, r34160, MPFR_RNDN);
        mpfr_sub(r34162, r34159, r34161, MPFR_RNDN);
        mpfr_sqrt(r34163, r34162, MPFR_RNDN);
        mpfr_sub(r34164, r34132, r34163, MPFR_RNDN);
        mpfr_div(r34165, r34158, r34164, MPFR_RNDN);
        mpfr_div(r34166, r34157, r34165, MPFR_RNDN);
        mpfr_div(r34167, r34132, r34134, MPFR_RNDN);
        if (mpfr_get_si(r34156, MPFR_RNDN)) { mpfr_set(r34168, r34166, MPFR_RNDN); } else { mpfr_set(r34168, r34167, MPFR_RNDN); };
        if (mpfr_get_si(r34141, MPFR_RNDN)) { mpfr_set(r34169, r34154, MPFR_RNDN); } else { mpfr_set(r34169, r34168, MPFR_RNDN); };
        if (mpfr_get_si(r34131, MPFR_RNDN)) { mpfr_set(r34170, r34139, MPFR_RNDN); } else { mpfr_set(r34170, r34169, MPFR_RNDN); };
        return mpfr_get_d(r34170, MPFR_RNDN);
}

