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

char *name = "quadp (p42, positive)";

double f_if(float a, float b, float c) {
        float r38131 = b;
        float r38132 = -r38131;
        float r38133 = r38131 * r38131;
        float r38134 = 4;
        float r38135 = a;
        float r38136 = c;
        float r38137 = r38135 * r38136;
        float r38138 = r38134 * r38137;
        float r38139 = r38133 - r38138;
        float r38140 = sqrt(r38139);
        float r38141 = r38132 + r38140;
        float r38142 = 2;
        float r38143 = r38142 * r38135;
        float r38144 = r38141 / r38143;
        return r38144;
}

double f_id(double a, double b, double c) {
        double r38145 = b;
        double r38146 = -r38145;
        double r38147 = r38145 * r38145;
        double r38148 = 4;
        double r38149 = a;
        double r38150 = c;
        double r38151 = r38149 * r38150;
        double r38152 = r38148 * r38151;
        double r38153 = r38147 - r38152;
        double r38154 = sqrt(r38153);
        double r38155 = r38146 + r38154;
        double r38156 = 2;
        double r38157 = r38156 * r38149;
        double r38158 = r38155 / r38157;
        return r38158;
}


double f_of(float a, float b, float c) {
        float r38159 = b;
        float r38160 = -2.788370916558726e+153;
        bool r38161 = r38159 <= r38160;
        float r38162 = c;
        float r38163 = r38162 / r38159;
        float r38164 = a;
        float r38165 = r38159 / r38164;
        float r38166 = r38163 - r38165;
        float r38167 = 7.580412743766101e-138;
        bool r38168 = r38159 <= r38167;
        float r38169 = r38159 * r38159;
        float r38170 = 4;
        float r38171 = r38170 * r38162;
        float r38172 = r38171 * r38164;
        float r38173 = r38169 - r38172;
        float r38174 = sqrt(r38173);
        float r38175 = -r38174;
        float r38176 = r38159 + r38175;
        float r38177 = 2;
        float r38178 = r38177 * r38164;
        float r38179 = -r38178;
        float r38180 = r38176 / r38179;
        float r38181 = -2;
        float r38182 = r38181 / r38177;
        float r38183 = r38163 * r38182;
        float r38184 = r38168 ? r38180 : r38183;
        float r38185 = r38161 ? r38166 : r38184;
        return r38185;
}

double f_od(double a, double b, double c) {
        double r38186 = b;
        double r38187 = -2.788370916558726e+153;
        bool r38188 = r38186 <= r38187;
        double r38189 = c;
        double r38190 = r38189 / r38186;
        double r38191 = a;
        double r38192 = r38186 / r38191;
        double r38193 = r38190 - r38192;
        double r38194 = 7.580412743766101e-138;
        bool r38195 = r38186 <= r38194;
        double r38196 = r38186 * r38186;
        double r38197 = 4;
        double r38198 = r38197 * r38189;
        double r38199 = r38198 * r38191;
        double r38200 = r38196 - r38199;
        double r38201 = sqrt(r38200);
        double r38202 = -r38201;
        double r38203 = r38186 + r38202;
        double r38204 = 2;
        double r38205 = r38204 * r38191;
        double r38206 = -r38205;
        double r38207 = r38203 / r38206;
        double r38208 = -2;
        double r38209 = r38208 / r38204;
        double r38210 = r38190 * r38209;
        double r38211 = r38195 ? r38207 : r38210;
        double r38212 = r38188 ? r38193 : r38211;
        return r38212;
}

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 r38213, r38214, r38215, r38216, r38217, r38218, r38219, r38220, r38221, r38222, r38223, r38224, r38225, r38226;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r38213);
        mpfr_init(r38214);
        mpfr_init(r38215);
        mpfr_init_set_str(r38216, "4", 10, MPFR_RNDN);
        mpfr_init(r38217);
        mpfr_init(r38218);
        mpfr_init(r38219);
        mpfr_init(r38220);
        mpfr_init(r38221);
        mpfr_init(r38222);
        mpfr_init(r38223);
        mpfr_init_set_str(r38224, "2", 10, MPFR_RNDN);
        mpfr_init(r38225);
        mpfr_init(r38226);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r38213, b, MPFR_RNDN);
        mpfr_neg(r38214, r38213, MPFR_RNDN);
        mpfr_mul(r38215, r38213, r38213, MPFR_RNDN);
        ;
        mpfr_set_d(r38217, a, MPFR_RNDN);
        mpfr_set_d(r38218, c, MPFR_RNDN);
        mpfr_mul(r38219, r38217, r38218, MPFR_RNDN);
        mpfr_mul(r38220, r38216, r38219, MPFR_RNDN);
        mpfr_sub(r38221, r38215, r38220, MPFR_RNDN);
        mpfr_sqrt(r38222, r38221, MPFR_RNDN);
        mpfr_add(r38223, r38214, r38222, MPFR_RNDN);
        ;
        mpfr_mul(r38225, r38224, r38217, MPFR_RNDN);
        mpfr_div(r38226, r38223, r38225, MPFR_RNDN);
        return mpfr_get_d(r38226, MPFR_RNDN);
}

static mpfr_t r38227, r38228, r38229, r38230, r38231, r38232, r38233, r38234, r38235, r38236, r38237, r38238, r38239, r38240, r38241, r38242, r38243, r38244, r38245, r38246, r38247, r38248, r38249, r38250, r38251, r38252, r38253;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r38227);
        mpfr_init_set_str(r38228, "-2.788370916558726e+153", 10, MPFR_RNDN);
        mpfr_init(r38229);
        mpfr_init(r38230);
        mpfr_init(r38231);
        mpfr_init(r38232);
        mpfr_init(r38233);
        mpfr_init(r38234);
        mpfr_init_set_str(r38235, "7.580412743766101e-138", 10, MPFR_RNDN);
        mpfr_init(r38236);
        mpfr_init(r38237);
        mpfr_init_set_str(r38238, "4", 10, MPFR_RNDN);
        mpfr_init(r38239);
        mpfr_init(r38240);
        mpfr_init(r38241);
        mpfr_init(r38242);
        mpfr_init(r38243);
        mpfr_init(r38244);
        mpfr_init_set_str(r38245, "2", 10, MPFR_RNDN);
        mpfr_init(r38246);
        mpfr_init(r38247);
        mpfr_init(r38248);
        mpfr_init_set_str(r38249, "-2", 10, MPFR_RNDN);
        mpfr_init(r38250);
        mpfr_init(r38251);
        mpfr_init(r38252);
        mpfr_init(r38253);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r38227, b, MPFR_RNDN);
        ;
        mpfr_set_si(r38229, mpfr_cmp(r38227, r38228) <= 0, MPFR_RNDN);
        mpfr_set_d(r38230, c, MPFR_RNDN);
        mpfr_div(r38231, r38230, r38227, MPFR_RNDN);
        mpfr_set_d(r38232, a, MPFR_RNDN);
        mpfr_div(r38233, r38227, r38232, MPFR_RNDN);
        mpfr_sub(r38234, r38231, r38233, MPFR_RNDN);
        ;
        mpfr_set_si(r38236, mpfr_cmp(r38227, r38235) <= 0, MPFR_RNDN);
        mpfr_mul(r38237, r38227, r38227, MPFR_RNDN);
        ;
        mpfr_mul(r38239, r38238, r38230, MPFR_RNDN);
        mpfr_mul(r38240, r38239, r38232, MPFR_RNDN);
        mpfr_sub(r38241, r38237, r38240, MPFR_RNDN);
        mpfr_sqrt(r38242, r38241, MPFR_RNDN);
        mpfr_neg(r38243, r38242, MPFR_RNDN);
        mpfr_add(r38244, r38227, r38243, MPFR_RNDN);
        ;
        mpfr_mul(r38246, r38245, r38232, MPFR_RNDN);
        mpfr_neg(r38247, r38246, MPFR_RNDN);
        mpfr_div(r38248, r38244, r38247, MPFR_RNDN);
        ;
        mpfr_div(r38250, r38249, r38245, MPFR_RNDN);
        mpfr_mul(r38251, r38231, r38250, MPFR_RNDN);
        if (mpfr_get_si(r38236, MPFR_RNDN)) { mpfr_set(r38252, r38248, MPFR_RNDN); } else { mpfr_set(r38252, r38251, MPFR_RNDN); };
        if (mpfr_get_si(r38229, MPFR_RNDN)) { mpfr_set(r38253, r38234, MPFR_RNDN); } else { mpfr_set(r38253, r38252, MPFR_RNDN); };
        return mpfr_get_d(r38253, MPFR_RNDN);
}

static mpfr_t r38254, r38255, r38256, r38257, r38258, r38259, r38260, r38261, r38262, r38263, r38264, r38265, r38266, r38267, r38268, r38269, r38270, r38271, r38272, r38273, r38274, r38275, r38276, r38277, r38278, r38279, r38280;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r38254);
        mpfr_init_set_str(r38255, "-2.788370916558726e+153", 10, MPFR_RNDN);
        mpfr_init(r38256);
        mpfr_init(r38257);
        mpfr_init(r38258);
        mpfr_init(r38259);
        mpfr_init(r38260);
        mpfr_init(r38261);
        mpfr_init_set_str(r38262, "7.580412743766101e-138", 10, MPFR_RNDN);
        mpfr_init(r38263);
        mpfr_init(r38264);
        mpfr_init_set_str(r38265, "4", 10, MPFR_RNDN);
        mpfr_init(r38266);
        mpfr_init(r38267);
        mpfr_init(r38268);
        mpfr_init(r38269);
        mpfr_init(r38270);
        mpfr_init(r38271);
        mpfr_init_set_str(r38272, "2", 10, MPFR_RNDN);
        mpfr_init(r38273);
        mpfr_init(r38274);
        mpfr_init(r38275);
        mpfr_init_set_str(r38276, "-2", 10, MPFR_RNDN);
        mpfr_init(r38277);
        mpfr_init(r38278);
        mpfr_init(r38279);
        mpfr_init(r38280);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r38254, b, MPFR_RNDN);
        ;
        mpfr_set_si(r38256, mpfr_cmp(r38254, r38255) <= 0, MPFR_RNDN);
        mpfr_set_d(r38257, c, MPFR_RNDN);
        mpfr_div(r38258, r38257, r38254, MPFR_RNDN);
        mpfr_set_d(r38259, a, MPFR_RNDN);
        mpfr_div(r38260, r38254, r38259, MPFR_RNDN);
        mpfr_sub(r38261, r38258, r38260, MPFR_RNDN);
        ;
        mpfr_set_si(r38263, mpfr_cmp(r38254, r38262) <= 0, MPFR_RNDN);
        mpfr_mul(r38264, r38254, r38254, MPFR_RNDN);
        ;
        mpfr_mul(r38266, r38265, r38257, MPFR_RNDN);
        mpfr_mul(r38267, r38266, r38259, MPFR_RNDN);
        mpfr_sub(r38268, r38264, r38267, MPFR_RNDN);
        mpfr_sqrt(r38269, r38268, MPFR_RNDN);
        mpfr_neg(r38270, r38269, MPFR_RNDN);
        mpfr_add(r38271, r38254, r38270, MPFR_RNDN);
        ;
        mpfr_mul(r38273, r38272, r38259, MPFR_RNDN);
        mpfr_neg(r38274, r38273, MPFR_RNDN);
        mpfr_div(r38275, r38271, r38274, MPFR_RNDN);
        ;
        mpfr_div(r38277, r38276, r38272, MPFR_RNDN);
        mpfr_mul(r38278, r38258, r38277, MPFR_RNDN);
        if (mpfr_get_si(r38263, MPFR_RNDN)) { mpfr_set(r38279, r38275, MPFR_RNDN); } else { mpfr_set(r38279, r38278, MPFR_RNDN); };
        if (mpfr_get_si(r38256, MPFR_RNDN)) { mpfr_set(r38280, r38261, MPFR_RNDN); } else { mpfr_set(r38280, r38279, MPFR_RNDN); };
        return mpfr_get_d(r38280, MPFR_RNDN);
}

