#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 r26076 = b;
        float r26077 = -r26076;
        float r26078 = r26076 * r26076;
        float r26079 = 4;
        float r26080 = a;
        float r26081 = c;
        float r26082 = r26080 * r26081;
        float r26083 = r26079 * r26082;
        float r26084 = r26078 - r26083;
        float r26085 = sqrt(r26084);
        float r26086 = r26077 - r26085;
        float r26087 = 2;
        float r26088 = r26087 * r26080;
        float r26089 = r26086 / r26088;
        return r26089;
}

double f_id(double a, double b, double c) {
        double r26090 = b;
        double r26091 = -r26090;
        double r26092 = r26090 * r26090;
        double r26093 = 4;
        double r26094 = a;
        double r26095 = c;
        double r26096 = r26094 * r26095;
        double r26097 = r26093 * r26096;
        double r26098 = r26092 - r26097;
        double r26099 = sqrt(r26098);
        double r26100 = r26091 - r26099;
        double r26101 = 2;
        double r26102 = r26101 * r26094;
        double r26103 = r26100 / r26102;
        return r26103;
}


double f_of(float a, float b, float c) {
        float r26104 = b;
        float r26105 = -6.427092433976878e-11;
        bool r26106 = r26104 <= r26105;
        float r26107 = c;
        float r26108 = -r26107;
        float r26109 = r26108 / r26104;
        float r26110 = 1.5848355210534097e-55;
        bool r26111 = r26104 <= r26110;
        float r26112 = 4;
        float r26113 = r26112 * r26107;
        float r26114 = a;
        float r26115 = r26113 * r26114;
        float r26116 = -r26112;
        float r26117 = r26114 * r26107;
        float r26118 = r26104 * r26104;
        float r26119 = fma(r26116, r26117, r26118);
        float r26120 = sqrt(r26119);
        float r26121 = r26120 - r26104;
        float r26122 = r26115 / r26121;
        float r26123 = 2;
        float r26124 = r26123 * r26114;
        float r26125 = r26122 / r26124;
        float r26126 = r26107 / r26104;
        float r26127 = r26104 / r26114;
        float r26128 = r26126 - r26127;
        float r26129 = r26111 ? r26125 : r26128;
        float r26130 = r26106 ? r26109 : r26129;
        return r26130;
}

double f_od(double a, double b, double c) {
        double r26131 = b;
        double r26132 = -6.427092433976878e-11;
        bool r26133 = r26131 <= r26132;
        double r26134 = c;
        double r26135 = -r26134;
        double r26136 = r26135 / r26131;
        double r26137 = 1.5848355210534097e-55;
        bool r26138 = r26131 <= r26137;
        double r26139 = 4;
        double r26140 = r26139 * r26134;
        double r26141 = a;
        double r26142 = r26140 * r26141;
        double r26143 = -r26139;
        double r26144 = r26141 * r26134;
        double r26145 = r26131 * r26131;
        double r26146 = fma(r26143, r26144, r26145);
        double r26147 = sqrt(r26146);
        double r26148 = r26147 - r26131;
        double r26149 = r26142 / r26148;
        double r26150 = 2;
        double r26151 = r26150 * r26141;
        double r26152 = r26149 / r26151;
        double r26153 = r26134 / r26131;
        double r26154 = r26131 / r26141;
        double r26155 = r26153 - r26154;
        double r26156 = r26138 ? r26152 : r26155;
        double r26157 = r26133 ? r26136 : r26156;
        return r26157;
}

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 r26158, r26159, r26160, r26161, r26162, r26163, r26164, r26165, r26166, r26167, r26168, r26169, r26170, r26171;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26158);
        mpfr_init(r26159);
        mpfr_init(r26160);
        mpfr_init_set_str(r26161, "4", 10, MPFR_RNDN);
        mpfr_init(r26162);
        mpfr_init(r26163);
        mpfr_init(r26164);
        mpfr_init(r26165);
        mpfr_init(r26166);
        mpfr_init(r26167);
        mpfr_init(r26168);
        mpfr_init_set_str(r26169, "2", 10, MPFR_RNDN);
        mpfr_init(r26170);
        mpfr_init(r26171);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r26158, b, MPFR_RNDN);
        mpfr_neg(r26159, r26158, MPFR_RNDN);
        mpfr_mul(r26160, r26158, r26158, MPFR_RNDN);
        ;
        mpfr_set_d(r26162, a, MPFR_RNDN);
        mpfr_set_d(r26163, c, MPFR_RNDN);
        mpfr_mul(r26164, r26162, r26163, MPFR_RNDN);
        mpfr_mul(r26165, r26161, r26164, MPFR_RNDN);
        mpfr_sub(r26166, r26160, r26165, MPFR_RNDN);
        mpfr_sqrt(r26167, r26166, MPFR_RNDN);
        mpfr_sub(r26168, r26159, r26167, MPFR_RNDN);
        ;
        mpfr_mul(r26170, r26169, r26162, MPFR_RNDN);
        mpfr_div(r26171, r26168, r26170, MPFR_RNDN);
        return mpfr_get_d(r26171, MPFR_RNDN);
}

static mpfr_t r26172, r26173, r26174, r26175, r26176, r26177, r26178, r26179, r26180, r26181, r26182, r26183, r26184, r26185, r26186, r26187, r26188, r26189, r26190, r26191, r26192, r26193, r26194, r26195, r26196, r26197, r26198;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26172);
        mpfr_init_set_str(r26173, "-6.427092433976878e-11", 10, MPFR_RNDN);
        mpfr_init(r26174);
        mpfr_init(r26175);
        mpfr_init(r26176);
        mpfr_init(r26177);
        mpfr_init_set_str(r26178, "1.5848355210534097e-55", 10, MPFR_RNDN);
        mpfr_init(r26179);
        mpfr_init_set_str(r26180, "4", 10, MPFR_RNDN);
        mpfr_init(r26181);
        mpfr_init(r26182);
        mpfr_init(r26183);
        mpfr_init(r26184);
        mpfr_init(r26185);
        mpfr_init(r26186);
        mpfr_init(r26187);
        mpfr_init(r26188);
        mpfr_init(r26189);
        mpfr_init(r26190);
        mpfr_init_set_str(r26191, "2", 10, MPFR_RNDN);
        mpfr_init(r26192);
        mpfr_init(r26193);
        mpfr_init(r26194);
        mpfr_init(r26195);
        mpfr_init(r26196);
        mpfr_init(r26197);
        mpfr_init(r26198);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r26172, b, MPFR_RNDN);
        ;
        mpfr_set_si(r26174, mpfr_cmp(r26172, r26173) <= 0, MPFR_RNDN);
        mpfr_set_d(r26175, c, MPFR_RNDN);
        mpfr_neg(r26176, r26175, MPFR_RNDN);
        mpfr_div(r26177, r26176, r26172, MPFR_RNDN);
        ;
        mpfr_set_si(r26179, mpfr_cmp(r26172, r26178) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r26181, r26180, r26175, MPFR_RNDN);
        mpfr_set_d(r26182, a, MPFR_RNDN);
        mpfr_mul(r26183, r26181, r26182, MPFR_RNDN);
        mpfr_neg(r26184, r26180, MPFR_RNDN);
        mpfr_mul(r26185, r26182, r26175, MPFR_RNDN);
        mpfr_mul(r26186, r26172, r26172, MPFR_RNDN);
        mpfr_fma(r26187, r26184, r26185, r26186, MPFR_RNDN);
        mpfr_sqrt(r26188, r26187, MPFR_RNDN);
        mpfr_sub(r26189, r26188, r26172, MPFR_RNDN);
        mpfr_div(r26190, r26183, r26189, MPFR_RNDN);
        ;
        mpfr_mul(r26192, r26191, r26182, MPFR_RNDN);
        mpfr_div(r26193, r26190, r26192, MPFR_RNDN);
        mpfr_div(r26194, r26175, r26172, MPFR_RNDN);
        mpfr_div(r26195, r26172, r26182, MPFR_RNDN);
        mpfr_sub(r26196, r26194, r26195, MPFR_RNDN);
        if (mpfr_get_si(r26179, MPFR_RNDN)) { mpfr_set(r26197, r26193, MPFR_RNDN); } else { mpfr_set(r26197, r26196, MPFR_RNDN); };
        if (mpfr_get_si(r26174, MPFR_RNDN)) { mpfr_set(r26198, r26177, MPFR_RNDN); } else { mpfr_set(r26198, r26197, MPFR_RNDN); };
        return mpfr_get_d(r26198, MPFR_RNDN);
}

static mpfr_t r26199, r26200, r26201, r26202, r26203, r26204, r26205, r26206, r26207, r26208, r26209, r26210, r26211, r26212, r26213, r26214, r26215, r26216, r26217, r26218, r26219, r26220, r26221, r26222, r26223, r26224, r26225;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26199);
        mpfr_init_set_str(r26200, "-6.427092433976878e-11", 10, MPFR_RNDN);
        mpfr_init(r26201);
        mpfr_init(r26202);
        mpfr_init(r26203);
        mpfr_init(r26204);
        mpfr_init_set_str(r26205, "1.5848355210534097e-55", 10, MPFR_RNDN);
        mpfr_init(r26206);
        mpfr_init_set_str(r26207, "4", 10, MPFR_RNDN);
        mpfr_init(r26208);
        mpfr_init(r26209);
        mpfr_init(r26210);
        mpfr_init(r26211);
        mpfr_init(r26212);
        mpfr_init(r26213);
        mpfr_init(r26214);
        mpfr_init(r26215);
        mpfr_init(r26216);
        mpfr_init(r26217);
        mpfr_init_set_str(r26218, "2", 10, MPFR_RNDN);
        mpfr_init(r26219);
        mpfr_init(r26220);
        mpfr_init(r26221);
        mpfr_init(r26222);
        mpfr_init(r26223);
        mpfr_init(r26224);
        mpfr_init(r26225);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r26199, b, MPFR_RNDN);
        ;
        mpfr_set_si(r26201, mpfr_cmp(r26199, r26200) <= 0, MPFR_RNDN);
        mpfr_set_d(r26202, c, MPFR_RNDN);
        mpfr_neg(r26203, r26202, MPFR_RNDN);
        mpfr_div(r26204, r26203, r26199, MPFR_RNDN);
        ;
        mpfr_set_si(r26206, mpfr_cmp(r26199, r26205) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r26208, r26207, r26202, MPFR_RNDN);
        mpfr_set_d(r26209, a, MPFR_RNDN);
        mpfr_mul(r26210, r26208, r26209, MPFR_RNDN);
        mpfr_neg(r26211, r26207, MPFR_RNDN);
        mpfr_mul(r26212, r26209, r26202, MPFR_RNDN);
        mpfr_mul(r26213, r26199, r26199, MPFR_RNDN);
        mpfr_fma(r26214, r26211, r26212, r26213, MPFR_RNDN);
        mpfr_sqrt(r26215, r26214, MPFR_RNDN);
        mpfr_sub(r26216, r26215, r26199, MPFR_RNDN);
        mpfr_div(r26217, r26210, r26216, MPFR_RNDN);
        ;
        mpfr_mul(r26219, r26218, r26209, MPFR_RNDN);
        mpfr_div(r26220, r26217, r26219, MPFR_RNDN);
        mpfr_div(r26221, r26202, r26199, MPFR_RNDN);
        mpfr_div(r26222, r26199, r26209, MPFR_RNDN);
        mpfr_sub(r26223, r26221, r26222, MPFR_RNDN);
        if (mpfr_get_si(r26206, MPFR_RNDN)) { mpfr_set(r26224, r26220, MPFR_RNDN); } else { mpfr_set(r26224, r26223, MPFR_RNDN); };
        if (mpfr_get_si(r26201, MPFR_RNDN)) { mpfr_set(r26225, r26204, MPFR_RNDN); } else { mpfr_set(r26225, r26224, MPFR_RNDN); };
        return mpfr_get_d(r26225, MPFR_RNDN);
}

