#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 r10058 = b;
        float r10059 = -r10058;
        float r10060 = r10058 * r10058;
        float r10061 = 4;
        float r10062 = a;
        float r10063 = c;
        float r10064 = r10062 * r10063;
        float r10065 = r10061 * r10064;
        float r10066 = r10060 - r10065;
        float r10067 = sqrt(r10066);
        float r10068 = r10059 + r10067;
        float r10069 = 2;
        float r10070 = r10069 * r10062;
        float r10071 = r10068 / r10070;
        return r10071;
}

double f_id(double a, double b, double c) {
        double r10072 = b;
        double r10073 = -r10072;
        double r10074 = r10072 * r10072;
        double r10075 = 4;
        double r10076 = a;
        double r10077 = c;
        double r10078 = r10076 * r10077;
        double r10079 = r10075 * r10078;
        double r10080 = r10074 - r10079;
        double r10081 = sqrt(r10080);
        double r10082 = r10073 + r10081;
        double r10083 = 2;
        double r10084 = r10083 * r10076;
        double r10085 = r10082 / r10084;
        return r10085;
}


double f_of(float a, float b, float c) {
        float r10086 = b;
        float r10087 = -1.9979183584340477e+120;
        bool r10088 = r10086 <= r10087;
        float r10089 = a;
        float r10090 = r10086 / r10089;
        float r10091 = -r10090;
        float r10092 = 1.021266047469986e-281;
        bool r10093 = r10086 <= r10092;
        float r10094 = 1;
        float r10095 = 2;
        float r10096 = r10095 * r10089;
        float r10097 = r10094 / r10096;
        float r10098 = r10086 * r10086;
        float r10099 = c;
        float r10100 = r10089 * r10099;
        float r10101 = 4;
        float r10102 = r10100 * r10101;
        float r10103 = r10098 - r10102;
        float r10104 = sqrt(r10103);
        float r10105 = -r10086;
        float r10106 = r10104 + r10105;
        float r10107 = r10097 * r10106;
        float r10108 = 3.7208207919097225e+36;
        bool r10109 = r10086 <= r10108;
        float r10110 = r10101 * r10089;
        float r10111 = r10110 * r10099;
        float r10112 = r10105 - r10104;
        float r10113 = r10111 / r10112;
        float r10114 = r10113 / r10096;
        float r10115 = r10099 / r10086;
        float r10116 = -r10115;
        float r10117 = r10109 ? r10114 : r10116;
        float r10118 = r10093 ? r10107 : r10117;
        float r10119 = r10088 ? r10091 : r10118;
        return r10119;
}

double f_od(double a, double b, double c) {
        double r10120 = b;
        double r10121 = -1.9979183584340477e+120;
        bool r10122 = r10120 <= r10121;
        double r10123 = a;
        double r10124 = r10120 / r10123;
        double r10125 = -r10124;
        double r10126 = 1.021266047469986e-281;
        bool r10127 = r10120 <= r10126;
        double r10128 = 1;
        double r10129 = 2;
        double r10130 = r10129 * r10123;
        double r10131 = r10128 / r10130;
        double r10132 = r10120 * r10120;
        double r10133 = c;
        double r10134 = r10123 * r10133;
        double r10135 = 4;
        double r10136 = r10134 * r10135;
        double r10137 = r10132 - r10136;
        double r10138 = sqrt(r10137);
        double r10139 = -r10120;
        double r10140 = r10138 + r10139;
        double r10141 = r10131 * r10140;
        double r10142 = 3.7208207919097225e+36;
        bool r10143 = r10120 <= r10142;
        double r10144 = r10135 * r10123;
        double r10145 = r10144 * r10133;
        double r10146 = r10139 - r10138;
        double r10147 = r10145 / r10146;
        double r10148 = r10147 / r10130;
        double r10149 = r10133 / r10120;
        double r10150 = -r10149;
        double r10151 = r10143 ? r10148 : r10150;
        double r10152 = r10127 ? r10141 : r10151;
        double r10153 = r10122 ? r10125 : r10152;
        return r10153;
}

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 r10154, r10155, r10156, r10157, r10158, r10159, r10160, r10161, r10162, r10163, r10164, r10165, r10166, r10167;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3152);
        mpfr_init(r10154);
        mpfr_init(r10155);
        mpfr_init(r10156);
        mpfr_init_set_str(r10157, "4", 10, MPFR_RNDN);
        mpfr_init(r10158);
        mpfr_init(r10159);
        mpfr_init(r10160);
        mpfr_init(r10161);
        mpfr_init(r10162);
        mpfr_init(r10163);
        mpfr_init(r10164);
        mpfr_init_set_str(r10165, "2", 10, MPFR_RNDN);
        mpfr_init(r10166);
        mpfr_init(r10167);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r10154, b, MPFR_RNDN);
        mpfr_neg(r10155, r10154, MPFR_RNDN);
        mpfr_mul(r10156, r10154, r10154, MPFR_RNDN);
        ;
        mpfr_set_d(r10158, a, MPFR_RNDN);
        mpfr_set_d(r10159, c, MPFR_RNDN);
        mpfr_mul(r10160, r10158, r10159, MPFR_RNDN);
        mpfr_mul(r10161, r10157, r10160, MPFR_RNDN);
        mpfr_sub(r10162, r10156, r10161, MPFR_RNDN);
        mpfr_sqrt(r10163, r10162, MPFR_RNDN);
        mpfr_add(r10164, r10155, r10163, MPFR_RNDN);
        ;
        mpfr_mul(r10166, r10165, r10158, MPFR_RNDN);
        mpfr_div(r10167, r10164, r10166, MPFR_RNDN);
        return mpfr_get_d(r10167, MPFR_RNDN);
}

static mpfr_t r10168, r10169, r10170, r10171, r10172, r10173, r10174, r10175, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r10168);
        mpfr_init_set_str(r10169, "-1.9979183584340477e+120", 10, MPFR_RNDN);
        mpfr_init(r10170);
        mpfr_init(r10171);
        mpfr_init(r10172);
        mpfr_init(r10173);
        mpfr_init_set_str(r10174, "1.021266047469986e-281", 10, MPFR_RNDN);
        mpfr_init(r10175);
        mpfr_init_set_str(r10176, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10177, "2", 10, MPFR_RNDN);
        mpfr_init(r10178);
        mpfr_init(r10179);
        mpfr_init(r10180);
        mpfr_init(r10181);
        mpfr_init(r10182);
        mpfr_init_set_str(r10183, "4", 10, MPFR_RNDN);
        mpfr_init(r10184);
        mpfr_init(r10185);
        mpfr_init(r10186);
        mpfr_init(r10187);
        mpfr_init(r10188);
        mpfr_init(r10189);
        mpfr_init_set_str(r10190, "3.7208207919097225e+36", 10, MPFR_RNDN);
        mpfr_init(r10191);
        mpfr_init(r10192);
        mpfr_init(r10193);
        mpfr_init(r10194);
        mpfr_init(r10195);
        mpfr_init(r10196);
        mpfr_init(r10197);
        mpfr_init(r10198);
        mpfr_init(r10199);
        mpfr_init(r10200);
        mpfr_init(r10201);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r10168, b, MPFR_RNDN);
        ;
        mpfr_set_si(r10170, mpfr_cmp(r10168, r10169) <= 0, MPFR_RNDN);
        mpfr_set_d(r10171, a, MPFR_RNDN);
        mpfr_div(r10172, r10168, r10171, MPFR_RNDN);
        mpfr_neg(r10173, r10172, MPFR_RNDN);
        ;
        mpfr_set_si(r10175, mpfr_cmp(r10168, r10174) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r10178, r10177, r10171, MPFR_RNDN);
        mpfr_div(r10179, r10176, r10178, MPFR_RNDN);
        mpfr_mul(r10180, r10168, r10168, MPFR_RNDN);
        mpfr_set_d(r10181, c, MPFR_RNDN);
        mpfr_mul(r10182, r10171, r10181, MPFR_RNDN);
        ;
        mpfr_mul(r10184, r10182, r10183, MPFR_RNDN);
        mpfr_sub(r10185, r10180, r10184, MPFR_RNDN);
        mpfr_sqrt(r10186, r10185, MPFR_RNDN);
        mpfr_neg(r10187, r10168, MPFR_RNDN);
        mpfr_add(r10188, r10186, r10187, MPFR_RNDN);
        mpfr_mul(r10189, r10179, r10188, MPFR_RNDN);
        ;
        mpfr_set_si(r10191, mpfr_cmp(r10168, r10190) <= 0, MPFR_RNDN);
        mpfr_mul(r10192, r10183, r10171, MPFR_RNDN);
        mpfr_mul(r10193, r10192, r10181, MPFR_RNDN);
        mpfr_sub(r10194, r10187, r10186, MPFR_RNDN);
        mpfr_div(r10195, r10193, r10194, MPFR_RNDN);
        mpfr_div(r10196, r10195, r10178, MPFR_RNDN);
        mpfr_div(r10197, r10181, r10168, MPFR_RNDN);
        mpfr_neg(r10198, r10197, MPFR_RNDN);
        if (mpfr_get_si(r10191, MPFR_RNDN)) { mpfr_set(r10199, r10196, MPFR_RNDN); } else { mpfr_set(r10199, r10198, MPFR_RNDN); };
        if (mpfr_get_si(r10175, MPFR_RNDN)) { mpfr_set(r10200, r10189, MPFR_RNDN); } else { mpfr_set(r10200, r10199, MPFR_RNDN); };
        if (mpfr_get_si(r10170, MPFR_RNDN)) { mpfr_set(r10201, r10173, MPFR_RNDN); } else { mpfr_set(r10201, r10200, MPFR_RNDN); };
        return mpfr_get_d(r10201, MPFR_RNDN);
}

static mpfr_t r10202, r10203, r10204, r10205, r10206, r10207, r10208, r10209, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r10202);
        mpfr_init_set_str(r10203, "-1.9979183584340477e+120", 10, MPFR_RNDN);
        mpfr_init(r10204);
        mpfr_init(r10205);
        mpfr_init(r10206);
        mpfr_init(r10207);
        mpfr_init_set_str(r10208, "1.021266047469986e-281", 10, MPFR_RNDN);
        mpfr_init(r10209);
        mpfr_init_set_str(r10210, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10211, "2", 10, MPFR_RNDN);
        mpfr_init(r10212);
        mpfr_init(r10213);
        mpfr_init(r10214);
        mpfr_init(r10215);
        mpfr_init(r10216);
        mpfr_init_set_str(r10217, "4", 10, MPFR_RNDN);
        mpfr_init(r10218);
        mpfr_init(r10219);
        mpfr_init(r10220);
        mpfr_init(r10221);
        mpfr_init(r10222);
        mpfr_init(r10223);
        mpfr_init_set_str(r10224, "3.7208207919097225e+36", 10, MPFR_RNDN);
        mpfr_init(r10225);
        mpfr_init(r10226);
        mpfr_init(r10227);
        mpfr_init(r10228);
        mpfr_init(r10229);
        mpfr_init(r10230);
        mpfr_init(r10231);
        mpfr_init(r10232);
        mpfr_init(r10233);
        mpfr_init(r10234);
        mpfr_init(r10235);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r10202, b, MPFR_RNDN);
        ;
        mpfr_set_si(r10204, mpfr_cmp(r10202, r10203) <= 0, MPFR_RNDN);
        mpfr_set_d(r10205, a, MPFR_RNDN);
        mpfr_div(r10206, r10202, r10205, MPFR_RNDN);
        mpfr_neg(r10207, r10206, MPFR_RNDN);
        ;
        mpfr_set_si(r10209, mpfr_cmp(r10202, r10208) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r10212, r10211, r10205, MPFR_RNDN);
        mpfr_div(r10213, r10210, r10212, MPFR_RNDN);
        mpfr_mul(r10214, r10202, r10202, MPFR_RNDN);
        mpfr_set_d(r10215, c, MPFR_RNDN);
        mpfr_mul(r10216, r10205, r10215, MPFR_RNDN);
        ;
        mpfr_mul(r10218, r10216, r10217, MPFR_RNDN);
        mpfr_sub(r10219, r10214, r10218, MPFR_RNDN);
        mpfr_sqrt(r10220, r10219, MPFR_RNDN);
        mpfr_neg(r10221, r10202, MPFR_RNDN);
        mpfr_add(r10222, r10220, r10221, MPFR_RNDN);
        mpfr_mul(r10223, r10213, r10222, MPFR_RNDN);
        ;
        mpfr_set_si(r10225, mpfr_cmp(r10202, r10224) <= 0, MPFR_RNDN);
        mpfr_mul(r10226, r10217, r10205, MPFR_RNDN);
        mpfr_mul(r10227, r10226, r10215, MPFR_RNDN);
        mpfr_sub(r10228, r10221, r10220, MPFR_RNDN);
        mpfr_div(r10229, r10227, r10228, MPFR_RNDN);
        mpfr_div(r10230, r10229, r10212, MPFR_RNDN);
        mpfr_div(r10231, r10215, r10202, MPFR_RNDN);
        mpfr_neg(r10232, r10231, MPFR_RNDN);
        if (mpfr_get_si(r10225, MPFR_RNDN)) { mpfr_set(r10233, r10230, MPFR_RNDN); } else { mpfr_set(r10233, r10232, MPFR_RNDN); };
        if (mpfr_get_si(r10209, MPFR_RNDN)) { mpfr_set(r10234, r10223, MPFR_RNDN); } else { mpfr_set(r10234, r10233, MPFR_RNDN); };
        if (mpfr_get_si(r10204, MPFR_RNDN)) { mpfr_set(r10235, r10207, MPFR_RNDN); } else { mpfr_set(r10235, r10234, MPFR_RNDN); };
        return mpfr_get_d(r10235, MPFR_RNDN);
}

