#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 r9936 = b;
        float r9937 = -r9936;
        float r9938 = r9936 * r9936;
        float r9939 = 4;
        float r9940 = a;
        float r9941 = c;
        float r9942 = r9940 * r9941;
        float r9943 = r9939 * r9942;
        float r9944 = r9938 - r9943;
        float r9945 = sqrt(r9944);
        float r9946 = r9937 - r9945;
        float r9947 = 2;
        float r9948 = r9947 * r9940;
        float r9949 = r9946 / r9948;
        return r9949;
}

double f_id(double a, double b, double c) {
        double r9950 = b;
        double r9951 = -r9950;
        double r9952 = r9950 * r9950;
        double r9953 = 4;
        double r9954 = a;
        double r9955 = c;
        double r9956 = r9954 * r9955;
        double r9957 = r9953 * r9956;
        double r9958 = r9952 - r9957;
        double r9959 = sqrt(r9958);
        double r9960 = r9951 - r9959;
        double r9961 = 2;
        double r9962 = r9961 * r9954;
        double r9963 = r9960 / r9962;
        return r9963;
}


double f_of(float a, float b, float c) {
        float r9964 = b;
        float r9965 = -1.0096397814194701e+154;
        bool r9966 = r9964 <= r9965;
        float r9967 = c;
        float r9968 = 2;
        float r9969 = r9967 / r9968;
        float r9970 = 4;
        float r9971 = r9969 * r9970;
        float r9972 = r9971 / r9968;
        float r9973 = a;
        float r9974 = r9964 / r9967;
        float r9975 = r9973 / r9974;
        float r9976 = r9975 - r9964;
        float r9977 = r9972 / r9976;
        float r9978 = -8.812243082114111e-292;
        bool r9979 = r9964 <= r9978;
        float r9980 = r9967 * r9970;
        float r9981 = r9980 / r9968;
        float r9982 = r9964 * r9964;
        float r9983 = r9967 * r9973;
        float r9984 = r9970 * r9983;
        float r9985 = r9982 - r9984;
        float r9986 = sqrt(r9985);
        float r9987 = r9986 - r9964;
        float r9988 = r9981 / r9987;
        float r9989 = 2.9749766316821928e+143;
        bool r9990 = r9964 <= r9989;
        float r9991 = -r9964;
        float r9992 = r9991 - r9986;
        float r9993 = r9992 / r9973;
        float r9994 = 1;
        float r9995 = r9994 / r9968;
        float r9996 = r9993 * r9995;
        float r9997 = r9967 / r9964;
        float r9998 = r9964 / r9973;
        float r9999 = r9997 - r9998;
        float r10000 = r9990 ? r9996 : r9999;
        float r10001 = r9979 ? r9988 : r10000;
        float r10002 = r9966 ? r9977 : r10001;
        return r10002;
}

double f_od(double a, double b, double c) {
        double r10003 = b;
        double r10004 = -1.0096397814194701e+154;
        bool r10005 = r10003 <= r10004;
        double r10006 = c;
        double r10007 = 2;
        double r10008 = r10006 / r10007;
        double r10009 = 4;
        double r10010 = r10008 * r10009;
        double r10011 = r10010 / r10007;
        double r10012 = a;
        double r10013 = r10003 / r10006;
        double r10014 = r10012 / r10013;
        double r10015 = r10014 - r10003;
        double r10016 = r10011 / r10015;
        double r10017 = -8.812243082114111e-292;
        bool r10018 = r10003 <= r10017;
        double r10019 = r10006 * r10009;
        double r10020 = r10019 / r10007;
        double r10021 = r10003 * r10003;
        double r10022 = r10006 * r10012;
        double r10023 = r10009 * r10022;
        double r10024 = r10021 - r10023;
        double r10025 = sqrt(r10024);
        double r10026 = r10025 - r10003;
        double r10027 = r10020 / r10026;
        double r10028 = 2.9749766316821928e+143;
        bool r10029 = r10003 <= r10028;
        double r10030 = -r10003;
        double r10031 = r10030 - r10025;
        double r10032 = r10031 / r10012;
        double r10033 = 1;
        double r10034 = r10033 / r10007;
        double r10035 = r10032 * r10034;
        double r10036 = r10006 / r10003;
        double r10037 = r10003 / r10012;
        double r10038 = r10036 - r10037;
        double r10039 = r10029 ? r10035 : r10038;
        double r10040 = r10018 ? r10027 : r10039;
        double r10041 = r10005 ? r10016 : r10040;
        return r10041;
}

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 r10042, r10043, r10044, r10045, r10046, r10047, r10048, r10049, r10050, r10051, r10052, r10053, r10054, r10055;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r10042);
        mpfr_init(r10043);
        mpfr_init(r10044);
        mpfr_init_set_str(r10045, "4", 10, MPFR_RNDN);
        mpfr_init(r10046);
        mpfr_init(r10047);
        mpfr_init(r10048);
        mpfr_init(r10049);
        mpfr_init(r10050);
        mpfr_init(r10051);
        mpfr_init(r10052);
        mpfr_init_set_str(r10053, "2", 10, MPFR_RNDN);
        mpfr_init(r10054);
        mpfr_init(r10055);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r10042, b, MPFR_RNDN);
        mpfr_neg(r10043, r10042, MPFR_RNDN);
        mpfr_mul(r10044, r10042, r10042, MPFR_RNDN);
        ;
        mpfr_set_d(r10046, a, MPFR_RNDN);
        mpfr_set_d(r10047, c, MPFR_RNDN);
        mpfr_mul(r10048, r10046, r10047, MPFR_RNDN);
        mpfr_mul(r10049, r10045, r10048, MPFR_RNDN);
        mpfr_sub(r10050, r10044, r10049, MPFR_RNDN);
        mpfr_sqrt(r10051, r10050, MPFR_RNDN);
        mpfr_sub(r10052, r10043, r10051, MPFR_RNDN);
        ;
        mpfr_mul(r10054, r10053, r10046, MPFR_RNDN);
        mpfr_div(r10055, r10052, r10054, MPFR_RNDN);
        return mpfr_get_d(r10055, MPFR_RNDN);
}

static mpfr_t r10056, r10057, r10058, r10059, r10060, r10061, r10062, r10063, r10064, r10065, r10066, r10067, r10068, r10069, r10070, r10071, r10072, r10073, r10074, r10075, r10076, r10077, r10078, r10079, r10080, r10081, r10082, r10083, r10084, r10085, r10086, r10087, r10088, r10089, r10090, r10091, r10092, r10093, r10094;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r10056);
        mpfr_init_set_str(r10057, "-1.0096397814194701e+154", 10, MPFR_RNDN);
        mpfr_init(r10058);
        mpfr_init(r10059);
        mpfr_init_set_str(r10060, "2", 10, MPFR_RNDN);
        mpfr_init(r10061);
        mpfr_init_set_str(r10062, "4", 10, MPFR_RNDN);
        mpfr_init(r10063);
        mpfr_init(r10064);
        mpfr_init(r10065);
        mpfr_init(r10066);
        mpfr_init(r10067);
        mpfr_init(r10068);
        mpfr_init(r10069);
        mpfr_init_set_str(r10070, "-8.812243082114111e-292", 10, MPFR_RNDN);
        mpfr_init(r10071);
        mpfr_init(r10072);
        mpfr_init(r10073);
        mpfr_init(r10074);
        mpfr_init(r10075);
        mpfr_init(r10076);
        mpfr_init(r10077);
        mpfr_init(r10078);
        mpfr_init(r10079);
        mpfr_init(r10080);
        mpfr_init_set_str(r10081, "2.9749766316821928e+143", 10, MPFR_RNDN);
        mpfr_init(r10082);
        mpfr_init(r10083);
        mpfr_init(r10084);
        mpfr_init(r10085);
        mpfr_init_set_str(r10086, "1", 10, MPFR_RNDN);
        mpfr_init(r10087);
        mpfr_init(r10088);
        mpfr_init(r10089);
        mpfr_init(r10090);
        mpfr_init(r10091);
        mpfr_init(r10092);
        mpfr_init(r10093);
        mpfr_init(r10094);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r10056, b, MPFR_RNDN);
        ;
        mpfr_set_si(r10058, mpfr_cmp(r10056, r10057) <= 0, MPFR_RNDN);
        mpfr_set_d(r10059, c, MPFR_RNDN);
        ;
        mpfr_div(r10061, r10059, r10060, MPFR_RNDN);
        ;
        mpfr_mul(r10063, r10061, r10062, MPFR_RNDN);
        mpfr_div(r10064, r10063, r10060, MPFR_RNDN);
        mpfr_set_d(r10065, a, MPFR_RNDN);
        mpfr_div(r10066, r10056, r10059, MPFR_RNDN);
        mpfr_div(r10067, r10065, r10066, MPFR_RNDN);
        mpfr_sub(r10068, r10067, r10056, MPFR_RNDN);
        mpfr_div(r10069, r10064, r10068, MPFR_RNDN);
        ;
        mpfr_set_si(r10071, mpfr_cmp(r10056, r10070) <= 0, MPFR_RNDN);
        mpfr_mul(r10072, r10059, r10062, MPFR_RNDN);
        mpfr_div(r10073, r10072, r10060, MPFR_RNDN);
        mpfr_mul(r10074, r10056, r10056, MPFR_RNDN);
        mpfr_mul(r10075, r10059, r10065, MPFR_RNDN);
        mpfr_mul(r10076, r10062, r10075, MPFR_RNDN);
        mpfr_sub(r10077, r10074, r10076, MPFR_RNDN);
        mpfr_sqrt(r10078, r10077, MPFR_RNDN);
        mpfr_sub(r10079, r10078, r10056, MPFR_RNDN);
        mpfr_div(r10080, r10073, r10079, MPFR_RNDN);
        ;
        mpfr_set_si(r10082, mpfr_cmp(r10056, r10081) <= 0, MPFR_RNDN);
        mpfr_neg(r10083, r10056, MPFR_RNDN);
        mpfr_sub(r10084, r10083, r10078, MPFR_RNDN);
        mpfr_div(r10085, r10084, r10065, MPFR_RNDN);
        ;
        mpfr_div(r10087, r10086, r10060, MPFR_RNDN);
        mpfr_mul(r10088, r10085, r10087, MPFR_RNDN);
        mpfr_div(r10089, r10059, r10056, MPFR_RNDN);
        mpfr_div(r10090, r10056, r10065, MPFR_RNDN);
        mpfr_sub(r10091, r10089, r10090, MPFR_RNDN);
        if (mpfr_get_si(r10082, MPFR_RNDN)) { mpfr_set(r10092, r10088, MPFR_RNDN); } else { mpfr_set(r10092, r10091, MPFR_RNDN); };
        if (mpfr_get_si(r10071, MPFR_RNDN)) { mpfr_set(r10093, r10080, MPFR_RNDN); } else { mpfr_set(r10093, r10092, MPFR_RNDN); };
        if (mpfr_get_si(r10058, MPFR_RNDN)) { mpfr_set(r10094, r10069, MPFR_RNDN); } else { mpfr_set(r10094, r10093, MPFR_RNDN); };
        return mpfr_get_d(r10094, MPFR_RNDN);
}

static mpfr_t r10095, r10096, r10097, r10098, r10099, r10100, r10101, r10102, r10103, r10104, r10105, r10106, r10107, r10108, r10109, r10110, r10111, r10112, r10113, r10114, r10115, r10116, r10117, r10118, r10119, r10120, r10121, r10122, r10123, r10124, r10125, r10126, r10127, r10128, r10129, r10130, r10131, r10132, r10133;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r10095);
        mpfr_init_set_str(r10096, "-1.0096397814194701e+154", 10, MPFR_RNDN);
        mpfr_init(r10097);
        mpfr_init(r10098);
        mpfr_init_set_str(r10099, "2", 10, MPFR_RNDN);
        mpfr_init(r10100);
        mpfr_init_set_str(r10101, "4", 10, MPFR_RNDN);
        mpfr_init(r10102);
        mpfr_init(r10103);
        mpfr_init(r10104);
        mpfr_init(r10105);
        mpfr_init(r10106);
        mpfr_init(r10107);
        mpfr_init(r10108);
        mpfr_init_set_str(r10109, "-8.812243082114111e-292", 10, MPFR_RNDN);
        mpfr_init(r10110);
        mpfr_init(r10111);
        mpfr_init(r10112);
        mpfr_init(r10113);
        mpfr_init(r10114);
        mpfr_init(r10115);
        mpfr_init(r10116);
        mpfr_init(r10117);
        mpfr_init(r10118);
        mpfr_init(r10119);
        mpfr_init_set_str(r10120, "2.9749766316821928e+143", 10, MPFR_RNDN);
        mpfr_init(r10121);
        mpfr_init(r10122);
        mpfr_init(r10123);
        mpfr_init(r10124);
        mpfr_init_set_str(r10125, "1", 10, MPFR_RNDN);
        mpfr_init(r10126);
        mpfr_init(r10127);
        mpfr_init(r10128);
        mpfr_init(r10129);
        mpfr_init(r10130);
        mpfr_init(r10131);
        mpfr_init(r10132);
        mpfr_init(r10133);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r10095, b, MPFR_RNDN);
        ;
        mpfr_set_si(r10097, mpfr_cmp(r10095, r10096) <= 0, MPFR_RNDN);
        mpfr_set_d(r10098, c, MPFR_RNDN);
        ;
        mpfr_div(r10100, r10098, r10099, MPFR_RNDN);
        ;
        mpfr_mul(r10102, r10100, r10101, MPFR_RNDN);
        mpfr_div(r10103, r10102, r10099, MPFR_RNDN);
        mpfr_set_d(r10104, a, MPFR_RNDN);
        mpfr_div(r10105, r10095, r10098, MPFR_RNDN);
        mpfr_div(r10106, r10104, r10105, MPFR_RNDN);
        mpfr_sub(r10107, r10106, r10095, MPFR_RNDN);
        mpfr_div(r10108, r10103, r10107, MPFR_RNDN);
        ;
        mpfr_set_si(r10110, mpfr_cmp(r10095, r10109) <= 0, MPFR_RNDN);
        mpfr_mul(r10111, r10098, r10101, MPFR_RNDN);
        mpfr_div(r10112, r10111, r10099, MPFR_RNDN);
        mpfr_mul(r10113, r10095, r10095, MPFR_RNDN);
        mpfr_mul(r10114, r10098, r10104, MPFR_RNDN);
        mpfr_mul(r10115, r10101, r10114, MPFR_RNDN);
        mpfr_sub(r10116, r10113, r10115, MPFR_RNDN);
        mpfr_sqrt(r10117, r10116, MPFR_RNDN);
        mpfr_sub(r10118, r10117, r10095, MPFR_RNDN);
        mpfr_div(r10119, r10112, r10118, MPFR_RNDN);
        ;
        mpfr_set_si(r10121, mpfr_cmp(r10095, r10120) <= 0, MPFR_RNDN);
        mpfr_neg(r10122, r10095, MPFR_RNDN);
        mpfr_sub(r10123, r10122, r10117, MPFR_RNDN);
        mpfr_div(r10124, r10123, r10104, MPFR_RNDN);
        ;
        mpfr_div(r10126, r10125, r10099, MPFR_RNDN);
        mpfr_mul(r10127, r10124, r10126, MPFR_RNDN);
        mpfr_div(r10128, r10098, r10095, MPFR_RNDN);
        mpfr_div(r10129, r10095, r10104, MPFR_RNDN);
        mpfr_sub(r10130, r10128, r10129, MPFR_RNDN);
        if (mpfr_get_si(r10121, MPFR_RNDN)) { mpfr_set(r10131, r10127, MPFR_RNDN); } else { mpfr_set(r10131, r10130, MPFR_RNDN); };
        if (mpfr_get_si(r10110, MPFR_RNDN)) { mpfr_set(r10132, r10119, MPFR_RNDN); } else { mpfr_set(r10132, r10131, MPFR_RNDN); };
        if (mpfr_get_si(r10097, MPFR_RNDN)) { mpfr_set(r10133, r10108, MPFR_RNDN); } else { mpfr_set(r10133, r10132, MPFR_RNDN); };
        return mpfr_get_d(r10133, MPFR_RNDN);
}

