#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 r10082 = b;
        float r10083 = -r10082;
        float r10084 = r10082 * r10082;
        float r10085 = 4;
        float r10086 = a;
        float r10087 = c;
        float r10088 = r10086 * r10087;
        float r10089 = r10085 * r10088;
        float r10090 = r10084 - r10089;
        float r10091 = sqrt(r10090);
        float r10092 = r10083 + r10091;
        float r10093 = 2;
        float r10094 = r10093 * r10086;
        float r10095 = r10092 / r10094;
        return r10095;
}

double f_id(double a, double b, double c) {
        double r10096 = b;
        double r10097 = -r10096;
        double r10098 = r10096 * r10096;
        double r10099 = 4;
        double r10100 = a;
        double r10101 = c;
        double r10102 = r10100 * r10101;
        double r10103 = r10099 * r10102;
        double r10104 = r10098 - r10103;
        double r10105 = sqrt(r10104);
        double r10106 = r10097 + r10105;
        double r10107 = 2;
        double r10108 = r10107 * r10100;
        double r10109 = r10106 / r10108;
        return r10109;
}


double f_of(float a, float b, float c) {
        float r10110 = b;
        float r10111 = -6.3284880384768394e+119;
        bool r10112 = r10110 <= r10111;
        float r10113 = c;
        float r10114 = -r10113;
        float r10115 = a;
        float r10116 = r10115 / r10110;
        float r10117 = -r10110;
        float r10118 = fma(r10114, r10116, r10117);
        float r10119 = r10118 / r10115;
        float r10120 = 8.31926581131786e-309;
        bool r10121 = r10110 <= r10120;
        float r10122 = r10110 * r10110;
        float r10123 = 4;
        float r10124 = r10115 * r10113;
        float r10125 = r10123 * r10124;
        float r10126 = r10122 - r10125;
        float r10127 = sqrt(r10126);
        float r10128 = r10117 + r10127;
        float r10129 = 1;
        float r10130 = 2;
        float r10131 = r10130 * r10115;
        float r10132 = r10129 / r10131;
        float r10133 = r10128 * r10132;
        float r10134 = 1.4399774592443239e+37;
        bool r10135 = r10110 <= r10134;
        float r10136 = r10129 / r10130;
        float r10137 = r10129 / r10123;
        float r10138 = r10113 / r10137;
        float r10139 = r10123 * r10115;
        float r10140 = fma(r10114, r10139, r10122);
        float r10141 = sqrt(r10140);
        float r10142 = r10117 - r10141;
        float r10143 = r10138 / r10142;
        float r10144 = r10136 * r10143;
        float r10145 = r10123 * r10113;
        float r10146 = r10130 * r10130;
        float r10147 = r10145 / r10146;
        float r10148 = fma(r10116, r10113, r10117);
        float r10149 = r10147 / r10148;
        float r10150 = r10135 ? r10144 : r10149;
        float r10151 = r10121 ? r10133 : r10150;
        float r10152 = r10112 ? r10119 : r10151;
        return r10152;
}

double f_od(double a, double b, double c) {
        double r10153 = b;
        double r10154 = -6.3284880384768394e+119;
        bool r10155 = r10153 <= r10154;
        double r10156 = c;
        double r10157 = -r10156;
        double r10158 = a;
        double r10159 = r10158 / r10153;
        double r10160 = -r10153;
        double r10161 = fma(r10157, r10159, r10160);
        double r10162 = r10161 / r10158;
        double r10163 = 8.31926581131786e-309;
        bool r10164 = r10153 <= r10163;
        double r10165 = r10153 * r10153;
        double r10166 = 4;
        double r10167 = r10158 * r10156;
        double r10168 = r10166 * r10167;
        double r10169 = r10165 - r10168;
        double r10170 = sqrt(r10169);
        double r10171 = r10160 + r10170;
        double r10172 = 1;
        double r10173 = 2;
        double r10174 = r10173 * r10158;
        double r10175 = r10172 / r10174;
        double r10176 = r10171 * r10175;
        double r10177 = 1.4399774592443239e+37;
        bool r10178 = r10153 <= r10177;
        double r10179 = r10172 / r10173;
        double r10180 = r10172 / r10166;
        double r10181 = r10156 / r10180;
        double r10182 = r10166 * r10158;
        double r10183 = fma(r10157, r10182, r10165);
        double r10184 = sqrt(r10183);
        double r10185 = r10160 - r10184;
        double r10186 = r10181 / r10185;
        double r10187 = r10179 * r10186;
        double r10188 = r10166 * r10156;
        double r10189 = r10173 * r10173;
        double r10190 = r10188 / r10189;
        double r10191 = fma(r10159, r10156, r10160);
        double r10192 = r10190 / r10191;
        double r10193 = r10178 ? r10187 : r10192;
        double r10194 = r10164 ? r10176 : r10193;
        double r10195 = r10155 ? r10162 : r10194;
        return r10195;
}

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 r10196, r10197, r10198, r10199, r10200, r10201, r10202, r10203, r10204, r10205, r10206, r10207, r10208, r10209;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3152);
        mpfr_init(r10196);
        mpfr_init(r10197);
        mpfr_init(r10198);
        mpfr_init_set_str(r10199, "4", 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_set_str(r10207, "2", 10, MPFR_RNDN);
        mpfr_init(r10208);
        mpfr_init(r10209);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r10196, b, MPFR_RNDN);
        mpfr_neg(r10197, r10196, MPFR_RNDN);
        mpfr_mul(r10198, r10196, r10196, MPFR_RNDN);
        ;
        mpfr_set_d(r10200, a, MPFR_RNDN);
        mpfr_set_d(r10201, c, MPFR_RNDN);
        mpfr_mul(r10202, r10200, r10201, MPFR_RNDN);
        mpfr_mul(r10203, r10199, r10202, MPFR_RNDN);
        mpfr_sub(r10204, r10198, r10203, MPFR_RNDN);
        mpfr_sqrt(r10205, r10204, MPFR_RNDN);
        mpfr_add(r10206, r10197, r10205, MPFR_RNDN);
        ;
        mpfr_mul(r10208, r10207, r10200, MPFR_RNDN);
        mpfr_div(r10209, r10206, r10208, MPFR_RNDN);
        return mpfr_get_d(r10209, MPFR_RNDN);
}

static mpfr_t r10210, r10211, r10212, r10213, r10214, r10215, r10216, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r10210);
        mpfr_init_set_str(r10211, "-6.3284880384768394e+119", 10, MPFR_RNDN);
        mpfr_init(r10212);
        mpfr_init(r10213);
        mpfr_init(r10214);
        mpfr_init(r10215);
        mpfr_init(r10216);
        mpfr_init(r10217);
        mpfr_init(r10218);
        mpfr_init(r10219);
        mpfr_init_set_str(r10220, "8.31926581131786e-309", 10, MPFR_RNDN);
        mpfr_init(r10221);
        mpfr_init(r10222);
        mpfr_init_set_str(r10223, "4", 10, MPFR_RNDN);
        mpfr_init(r10224);
        mpfr_init(r10225);
        mpfr_init(r10226);
        mpfr_init(r10227);
        mpfr_init(r10228);
        mpfr_init_set_str(r10229, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10230, "2", 10, MPFR_RNDN);
        mpfr_init(r10231);
        mpfr_init(r10232);
        mpfr_init(r10233);
        mpfr_init_set_str(r10234, "1.4399774592443239e+37", 10, MPFR_RNDN);
        mpfr_init(r10235);
        mpfr_init(r10236);
        mpfr_init(r10237);
        mpfr_init(r10238);
        mpfr_init(r10239);
        mpfr_init(r10240);
        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);
}

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

static mpfr_t r10253, r10254, r10255, r10256, r10257, r10258, r10259, r10260, r10261, r10262, r10263, r10264, r10265, r10266, r10267, r10268, r10269, r10270, r10271, r10272, r10273, r10274, r10275, r10276, r10277, r10278, r10279, r10280, r10281, r10282, r10283, r10284, r10285, r10286, r10287, r10288, r10289, r10290, r10291, r10292, r10293, r10294, r10295;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r10253);
        mpfr_init_set_str(r10254, "-6.3284880384768394e+119", 10, MPFR_RNDN);
        mpfr_init(r10255);
        mpfr_init(r10256);
        mpfr_init(r10257);
        mpfr_init(r10258);
        mpfr_init(r10259);
        mpfr_init(r10260);
        mpfr_init(r10261);
        mpfr_init(r10262);
        mpfr_init_set_str(r10263, "8.31926581131786e-309", 10, MPFR_RNDN);
        mpfr_init(r10264);
        mpfr_init(r10265);
        mpfr_init_set_str(r10266, "4", 10, MPFR_RNDN);
        mpfr_init(r10267);
        mpfr_init(r10268);
        mpfr_init(r10269);
        mpfr_init(r10270);
        mpfr_init(r10271);
        mpfr_init_set_str(r10272, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10273, "2", 10, MPFR_RNDN);
        mpfr_init(r10274);
        mpfr_init(r10275);
        mpfr_init(r10276);
        mpfr_init_set_str(r10277, "1.4399774592443239e+37", 10, MPFR_RNDN);
        mpfr_init(r10278);
        mpfr_init(r10279);
        mpfr_init(r10280);
        mpfr_init(r10281);
        mpfr_init(r10282);
        mpfr_init(r10283);
        mpfr_init(r10284);
        mpfr_init(r10285);
        mpfr_init(r10286);
        mpfr_init(r10287);
        mpfr_init(r10288);
        mpfr_init(r10289);
        mpfr_init(r10290);
        mpfr_init(r10291);
        mpfr_init(r10292);
        mpfr_init(r10293);
        mpfr_init(r10294);
        mpfr_init(r10295);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r10253, b, MPFR_RNDN);
        ;
        mpfr_set_si(r10255, mpfr_cmp(r10253, r10254) <= 0, MPFR_RNDN);
        mpfr_set_d(r10256, c, MPFR_RNDN);
        mpfr_neg(r10257, r10256, MPFR_RNDN);
        mpfr_set_d(r10258, a, MPFR_RNDN);
        mpfr_div(r10259, r10258, r10253, MPFR_RNDN);
        mpfr_neg(r10260, r10253, MPFR_RNDN);
        mpfr_fma(r10261, r10257, r10259, r10260, MPFR_RNDN);
        mpfr_div(r10262, r10261, r10258, MPFR_RNDN);
        ;
        mpfr_set_si(r10264, mpfr_cmp(r10253, r10263) <= 0, MPFR_RNDN);
        mpfr_mul(r10265, r10253, r10253, MPFR_RNDN);
        ;
        mpfr_mul(r10267, r10258, r10256, MPFR_RNDN);
        mpfr_mul(r10268, r10266, r10267, MPFR_RNDN);
        mpfr_sub(r10269, r10265, r10268, MPFR_RNDN);
        mpfr_sqrt(r10270, r10269, MPFR_RNDN);
        mpfr_add(r10271, r10260, r10270, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r10274, r10273, r10258, MPFR_RNDN);
        mpfr_div(r10275, r10272, r10274, MPFR_RNDN);
        mpfr_mul(r10276, r10271, r10275, MPFR_RNDN);
        ;
        mpfr_set_si(r10278, mpfr_cmp(r10253, r10277) <= 0, MPFR_RNDN);
        mpfr_div(r10279, r10272, r10273, MPFR_RNDN);
        mpfr_div(r10280, r10272, r10266, MPFR_RNDN);
        mpfr_div(r10281, r10256, r10280, MPFR_RNDN);
        mpfr_mul(r10282, r10266, r10258, MPFR_RNDN);
        mpfr_fma(r10283, r10257, r10282, r10265, MPFR_RNDN);
        mpfr_sqrt(r10284, r10283, MPFR_RNDN);
        mpfr_sub(r10285, r10260, r10284, MPFR_RNDN);
        mpfr_div(r10286, r10281, r10285, MPFR_RNDN);
        mpfr_mul(r10287, r10279, r10286, MPFR_RNDN);
        mpfr_mul(r10288, r10266, r10256, MPFR_RNDN);
        mpfr_mul(r10289, r10273, r10273, MPFR_RNDN);
        mpfr_div(r10290, r10288, r10289, MPFR_RNDN);
        mpfr_fma(r10291, r10259, r10256, r10260, MPFR_RNDN);
        mpfr_div(r10292, r10290, r10291, MPFR_RNDN);
        if (mpfr_get_si(r10278, MPFR_RNDN)) { mpfr_set(r10293, r10287, MPFR_RNDN); } else { mpfr_set(r10293, r10292, MPFR_RNDN); };
        if (mpfr_get_si(r10264, MPFR_RNDN)) { mpfr_set(r10294, r10276, MPFR_RNDN); } else { mpfr_set(r10294, r10293, MPFR_RNDN); };
        if (mpfr_get_si(r10255, MPFR_RNDN)) { mpfr_set(r10295, r10262, MPFR_RNDN); } else { mpfr_set(r10295, r10294, MPFR_RNDN); };
        return mpfr_get_d(r10295, MPFR_RNDN);
}

