#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 r10052 = b;
        float r10053 = -r10052;
        float r10054 = r10052 * r10052;
        float r10055 = 4;
        float r10056 = a;
        float r10057 = c;
        float r10058 = r10056 * r10057;
        float r10059 = r10055 * r10058;
        float r10060 = r10054 - r10059;
        float r10061 = sqrt(r10060);
        float r10062 = r10053 - r10061;
        float r10063 = 2;
        float r10064 = r10063 * r10056;
        float r10065 = r10062 / r10064;
        return r10065;
}

double f_id(double a, double b, double c) {
        double r10066 = b;
        double r10067 = -r10066;
        double r10068 = r10066 * r10066;
        double r10069 = 4;
        double r10070 = a;
        double r10071 = c;
        double r10072 = r10070 * r10071;
        double r10073 = r10069 * r10072;
        double r10074 = r10068 - r10073;
        double r10075 = sqrt(r10074);
        double r10076 = r10067 - r10075;
        double r10077 = 2;
        double r10078 = r10077 * r10070;
        double r10079 = r10076 / r10078;
        return r10079;
}


double f_of(float a, float b, float c) {
        float r10080 = b;
        float r10081 = -r10080;
        float r10082 = -2.339462468884656e+155;
        bool r10083 = r10081 <= r10082;
        float r10084 = c;
        float r10085 = r10084 / r10080;
        float r10086 = a;
        float r10087 = r10080 / r10086;
        float r10088 = r10085 - r10087;
        float r10089 = 3.224292646406066e-146;
        bool r10090 = r10081 <= r10089;
        float r10091 = 1;
        float r10092 = 2;
        float r10093 = r10091 / r10092;
        float r10094 = r10080 * r10080;
        float r10095 = 4;
        float r10096 = r10084 * r10086;
        float r10097 = r10095 * r10096;
        float r10098 = r10094 - r10097;
        float r10099 = sqrt(r10098);
        float r10100 = r10081 - r10099;
        float r10101 = r10100 / r10086;
        float r10102 = r10093 * r10101;
        float r10103 = 1.7983666308889936e+86;
        bool r10104 = r10081 <= r10103;
        float r10105 = r10095 * r10084;
        float r10106 = r10105 * r10086;
        float r10107 = r10092 * r10086;
        float r10108 = r10106 / r10107;
        float r10109 = r10099 + r10081;
        float r10110 = r10108 / r10109;
        float r10111 = r10105 / r10092;
        float r10112 = r10086 / r10080;
        float r10113 = r10084 * r10092;
        float r10114 = r10112 * r10113;
        float r10115 = r10080 + r10080;
        float r10116 = r10114 - r10115;
        float r10117 = r10111 / r10116;
        float r10118 = r10104 ? r10110 : r10117;
        float r10119 = r10090 ? r10102 : r10118;
        float r10120 = r10083 ? r10088 : r10119;
        return r10120;
}

double f_od(double a, double b, double c) {
        double r10121 = b;
        double r10122 = -r10121;
        double r10123 = -2.339462468884656e+155;
        bool r10124 = r10122 <= r10123;
        double r10125 = c;
        double r10126 = r10125 / r10121;
        double r10127 = a;
        double r10128 = r10121 / r10127;
        double r10129 = r10126 - r10128;
        double r10130 = 3.224292646406066e-146;
        bool r10131 = r10122 <= r10130;
        double r10132 = 1;
        double r10133 = 2;
        double r10134 = r10132 / r10133;
        double r10135 = r10121 * r10121;
        double r10136 = 4;
        double r10137 = r10125 * r10127;
        double r10138 = r10136 * r10137;
        double r10139 = r10135 - r10138;
        double r10140 = sqrt(r10139);
        double r10141 = r10122 - r10140;
        double r10142 = r10141 / r10127;
        double r10143 = r10134 * r10142;
        double r10144 = 1.7983666308889936e+86;
        bool r10145 = r10122 <= r10144;
        double r10146 = r10136 * r10125;
        double r10147 = r10146 * r10127;
        double r10148 = r10133 * r10127;
        double r10149 = r10147 / r10148;
        double r10150 = r10140 + r10122;
        double r10151 = r10149 / r10150;
        double r10152 = r10146 / r10133;
        double r10153 = r10127 / r10121;
        double r10154 = r10125 * r10133;
        double r10155 = r10153 * r10154;
        double r10156 = r10121 + r10121;
        double r10157 = r10155 - r10156;
        double r10158 = r10152 / r10157;
        double r10159 = r10145 ? r10151 : r10158;
        double r10160 = r10131 ? r10143 : r10159;
        double r10161 = r10124 ? r10129 : r10160;
        return r10161;
}

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 r10162, r10163, r10164, r10165, r10166, r10167, r10168, r10169, r10170, r10171, r10172, r10173, r10174, r10175;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r10162);
        mpfr_init(r10163);
        mpfr_init(r10164);
        mpfr_init_set_str(r10165, "4", 10, MPFR_RNDN);
        mpfr_init(r10166);
        mpfr_init(r10167);
        mpfr_init(r10168);
        mpfr_init(r10169);
        mpfr_init(r10170);
        mpfr_init(r10171);
        mpfr_init(r10172);
        mpfr_init_set_str(r10173, "2", 10, MPFR_RNDN);
        mpfr_init(r10174);
        mpfr_init(r10175);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r10162, b, MPFR_RNDN);
        mpfr_neg(r10163, r10162, MPFR_RNDN);
        mpfr_mul(r10164, r10162, r10162, MPFR_RNDN);
        ;
        mpfr_set_d(r10166, a, MPFR_RNDN);
        mpfr_set_d(r10167, c, MPFR_RNDN);
        mpfr_mul(r10168, r10166, r10167, MPFR_RNDN);
        mpfr_mul(r10169, r10165, r10168, MPFR_RNDN);
        mpfr_sub(r10170, r10164, r10169, MPFR_RNDN);
        mpfr_sqrt(r10171, r10170, MPFR_RNDN);
        mpfr_sub(r10172, r10163, r10171, MPFR_RNDN);
        ;
        mpfr_mul(r10174, r10173, r10166, MPFR_RNDN);
        mpfr_div(r10175, r10172, r10174, MPFR_RNDN);
        return mpfr_get_d(r10175, MPFR_RNDN);
}

static mpfr_t r10176, r10177, r10178, r10179, r10180, r10181, r10182, r10183, r10184, r10185, r10186, r10187, r10188, r10189, r10190, r10191, r10192, r10193, r10194, r10195, r10196, r10197, r10198, r10199, r10200, r10201, r10202, r10203, r10204, r10205, r10206, r10207, r10208, r10209, r10210, r10211, r10212, r10213, r10214, r10215, r10216;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r10176);
        mpfr_init(r10177);
        mpfr_init_set_str(r10178, "-2.339462468884656e+155", 10, MPFR_RNDN);
        mpfr_init(r10179);
        mpfr_init(r10180);
        mpfr_init(r10181);
        mpfr_init(r10182);
        mpfr_init(r10183);
        mpfr_init(r10184);
        mpfr_init_set_str(r10185, "3.224292646406066e-146", 10, MPFR_RNDN);
        mpfr_init(r10186);
        mpfr_init_set_str(r10187, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10188, "2", 10, MPFR_RNDN);
        mpfr_init(r10189);
        mpfr_init(r10190);
        mpfr_init_set_str(r10191, "4", 10, MPFR_RNDN);
        mpfr_init(r10192);
        mpfr_init(r10193);
        mpfr_init(r10194);
        mpfr_init(r10195);
        mpfr_init(r10196);
        mpfr_init(r10197);
        mpfr_init(r10198);
        mpfr_init_set_str(r10199, "1.7983666308889936e+86", 10, MPFR_RNDN);
        mpfr_init(r10200);
        mpfr_init(r10201);
        mpfr_init(r10202);
        mpfr_init(r10203);
        mpfr_init(r10204);
        mpfr_init(r10205);
        mpfr_init(r10206);
        mpfr_init(r10207);
        mpfr_init(r10208);
        mpfr_init(r10209);
        mpfr_init(r10210);
        mpfr_init(r10211);
        mpfr_init(r10212);
        mpfr_init(r10213);
        mpfr_init(r10214);
        mpfr_init(r10215);
        mpfr_init(r10216);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r10176, b, MPFR_RNDN);
        mpfr_neg(r10177, r10176, MPFR_RNDN);
        ;
        mpfr_set_si(r10179, mpfr_cmp(r10177, r10178) <= 0, MPFR_RNDN);
        mpfr_set_d(r10180, c, MPFR_RNDN);
        mpfr_div(r10181, r10180, r10176, MPFR_RNDN);
        mpfr_set_d(r10182, a, MPFR_RNDN);
        mpfr_div(r10183, r10176, r10182, MPFR_RNDN);
        mpfr_sub(r10184, r10181, r10183, MPFR_RNDN);
        ;
        mpfr_set_si(r10186, mpfr_cmp(r10177, r10185) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r10189, r10187, r10188, MPFR_RNDN);
        mpfr_mul(r10190, r10176, r10176, MPFR_RNDN);
        ;
        mpfr_mul(r10192, r10180, r10182, MPFR_RNDN);
        mpfr_mul(r10193, r10191, r10192, MPFR_RNDN);
        mpfr_sub(r10194, r10190, r10193, MPFR_RNDN);
        mpfr_sqrt(r10195, r10194, MPFR_RNDN);
        mpfr_sub(r10196, r10177, r10195, MPFR_RNDN);
        mpfr_div(r10197, r10196, r10182, MPFR_RNDN);
        mpfr_mul(r10198, r10189, r10197, MPFR_RNDN);
        ;
        mpfr_set_si(r10200, mpfr_cmp(r10177, r10199) <= 0, MPFR_RNDN);
        mpfr_mul(r10201, r10191, r10180, MPFR_RNDN);
        mpfr_mul(r10202, r10201, r10182, MPFR_RNDN);
        mpfr_mul(r10203, r10188, r10182, MPFR_RNDN);
        mpfr_div(r10204, r10202, r10203, MPFR_RNDN);
        mpfr_add(r10205, r10195, r10177, MPFR_RNDN);
        mpfr_div(r10206, r10204, r10205, MPFR_RNDN);
        mpfr_div(r10207, r10201, r10188, MPFR_RNDN);
        mpfr_div(r10208, r10182, r10176, MPFR_RNDN);
        mpfr_mul(r10209, r10180, r10188, MPFR_RNDN);
        mpfr_mul(r10210, r10208, r10209, MPFR_RNDN);
        mpfr_add(r10211, r10176, r10176, MPFR_RNDN);
        mpfr_sub(r10212, r10210, r10211, MPFR_RNDN);
        mpfr_div(r10213, r10207, r10212, MPFR_RNDN);
        if (mpfr_get_si(r10200, MPFR_RNDN)) { mpfr_set(r10214, r10206, MPFR_RNDN); } else { mpfr_set(r10214, r10213, MPFR_RNDN); };
        if (mpfr_get_si(r10186, MPFR_RNDN)) { mpfr_set(r10215, r10198, MPFR_RNDN); } else { mpfr_set(r10215, r10214, MPFR_RNDN); };
        if (mpfr_get_si(r10179, MPFR_RNDN)) { mpfr_set(r10216, r10184, MPFR_RNDN); } else { mpfr_set(r10216, r10215, MPFR_RNDN); };
        return mpfr_get_d(r10216, MPFR_RNDN);
}

static mpfr_t r10217, r10218, r10219, r10220, r10221, r10222, r10223, r10224, r10225, r10226, r10227, r10228, r10229, r10230, r10231, r10232, r10233, r10234, r10235, r10236, r10237, r10238, r10239, r10240, r10241, r10242, r10243, r10244, r10245, r10246, r10247, r10248, r10249, r10250, r10251, r10252, r10253, r10254, r10255, r10256, r10257;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r10217);
        mpfr_init(r10218);
        mpfr_init_set_str(r10219, "-2.339462468884656e+155", 10, MPFR_RNDN);
        mpfr_init(r10220);
        mpfr_init(r10221);
        mpfr_init(r10222);
        mpfr_init(r10223);
        mpfr_init(r10224);
        mpfr_init(r10225);
        mpfr_init_set_str(r10226, "3.224292646406066e-146", 10, MPFR_RNDN);
        mpfr_init(r10227);
        mpfr_init_set_str(r10228, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10229, "2", 10, MPFR_RNDN);
        mpfr_init(r10230);
        mpfr_init(r10231);
        mpfr_init_set_str(r10232, "4", 10, MPFR_RNDN);
        mpfr_init(r10233);
        mpfr_init(r10234);
        mpfr_init(r10235);
        mpfr_init(r10236);
        mpfr_init(r10237);
        mpfr_init(r10238);
        mpfr_init(r10239);
        mpfr_init_set_str(r10240, "1.7983666308889936e+86", 10, MPFR_RNDN);
        mpfr_init(r10241);
        mpfr_init(r10242);
        mpfr_init(r10243);
        mpfr_init(r10244);
        mpfr_init(r10245);
        mpfr_init(r10246);
        mpfr_init(r10247);
        mpfr_init(r10248);
        mpfr_init(r10249);
        mpfr_init(r10250);
        mpfr_init(r10251);
        mpfr_init(r10252);
        mpfr_init(r10253);
        mpfr_init(r10254);
        mpfr_init(r10255);
        mpfr_init(r10256);
        mpfr_init(r10257);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r10217, b, MPFR_RNDN);
        mpfr_neg(r10218, r10217, MPFR_RNDN);
        ;
        mpfr_set_si(r10220, mpfr_cmp(r10218, r10219) <= 0, MPFR_RNDN);
        mpfr_set_d(r10221, c, MPFR_RNDN);
        mpfr_div(r10222, r10221, r10217, MPFR_RNDN);
        mpfr_set_d(r10223, a, MPFR_RNDN);
        mpfr_div(r10224, r10217, r10223, MPFR_RNDN);
        mpfr_sub(r10225, r10222, r10224, MPFR_RNDN);
        ;
        mpfr_set_si(r10227, mpfr_cmp(r10218, r10226) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r10230, r10228, r10229, MPFR_RNDN);
        mpfr_mul(r10231, r10217, r10217, MPFR_RNDN);
        ;
        mpfr_mul(r10233, r10221, r10223, MPFR_RNDN);
        mpfr_mul(r10234, r10232, r10233, MPFR_RNDN);
        mpfr_sub(r10235, r10231, r10234, MPFR_RNDN);
        mpfr_sqrt(r10236, r10235, MPFR_RNDN);
        mpfr_sub(r10237, r10218, r10236, MPFR_RNDN);
        mpfr_div(r10238, r10237, r10223, MPFR_RNDN);
        mpfr_mul(r10239, r10230, r10238, MPFR_RNDN);
        ;
        mpfr_set_si(r10241, mpfr_cmp(r10218, r10240) <= 0, MPFR_RNDN);
        mpfr_mul(r10242, r10232, r10221, MPFR_RNDN);
        mpfr_mul(r10243, r10242, r10223, MPFR_RNDN);
        mpfr_mul(r10244, r10229, r10223, MPFR_RNDN);
        mpfr_div(r10245, r10243, r10244, MPFR_RNDN);
        mpfr_add(r10246, r10236, r10218, MPFR_RNDN);
        mpfr_div(r10247, r10245, r10246, MPFR_RNDN);
        mpfr_div(r10248, r10242, r10229, MPFR_RNDN);
        mpfr_div(r10249, r10223, r10217, MPFR_RNDN);
        mpfr_mul(r10250, r10221, r10229, MPFR_RNDN);
        mpfr_mul(r10251, r10249, r10250, MPFR_RNDN);
        mpfr_add(r10252, r10217, r10217, MPFR_RNDN);
        mpfr_sub(r10253, r10251, r10252, MPFR_RNDN);
        mpfr_div(r10254, r10248, r10253, MPFR_RNDN);
        if (mpfr_get_si(r10241, MPFR_RNDN)) { mpfr_set(r10255, r10247, MPFR_RNDN); } else { mpfr_set(r10255, r10254, MPFR_RNDN); };
        if (mpfr_get_si(r10227, MPFR_RNDN)) { mpfr_set(r10256, r10239, MPFR_RNDN); } else { mpfr_set(r10256, r10255, MPFR_RNDN); };
        if (mpfr_get_si(r10220, MPFR_RNDN)) { mpfr_set(r10257, r10225, MPFR_RNDN); } else { mpfr_set(r10257, r10256, MPFR_RNDN); };
        return mpfr_get_d(r10257, MPFR_RNDN);
}

