#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 r25990 = b;
        float r25991 = -r25990;
        float r25992 = r25990 * r25990;
        float r25993 = 4;
        float r25994 = a;
        float r25995 = c;
        float r25996 = r25994 * r25995;
        float r25997 = r25993 * r25996;
        float r25998 = r25992 - r25997;
        float r25999 = sqrt(r25998);
        float r26000 = r25991 + r25999;
        float r26001 = 2;
        float r26002 = r26001 * r25994;
        float r26003 = r26000 / r26002;
        return r26003;
}

double f_id(double a, double b, double c) {
        double r26004 = b;
        double r26005 = -r26004;
        double r26006 = r26004 * r26004;
        double r26007 = 4;
        double r26008 = a;
        double r26009 = c;
        double r26010 = r26008 * r26009;
        double r26011 = r26007 * r26010;
        double r26012 = r26006 - r26011;
        double r26013 = sqrt(r26012);
        double r26014 = r26005 + r26013;
        double r26015 = 2;
        double r26016 = r26015 * r26008;
        double r26017 = r26014 / r26016;
        return r26017;
}


double f_of(float a, float b, float c) {
        float r26018 = b;
        float r26019 = -2.663483308794079e+98;
        bool r26020 = r26018 <= r26019;
        float r26021 = c;
        float r26022 = r26021 / r26018;
        float r26023 = r26018 + r26018;
        float r26024 = 2;
        float r26025 = a;
        float r26026 = r26024 * r26025;
        float r26027 = r26023 / r26026;
        float r26028 = r26022 - r26027;
        float r26029 = 1.6168433953466018e-55;
        bool r26030 = r26018 <= r26029;
        float r26031 = -r26018;
        float r26032 = r26018 * r26018;
        float r26033 = 4;
        float r26034 = r26025 * r26021;
        float r26035 = r26033 * r26034;
        float r26036 = r26032 - r26035;
        float r26037 = sqrt(r26036);
        float r26038 = r26031 + r26037;
        float r26039 = r26038 / r26026;
        float r26040 = r26021 * r26033;
        float r26041 = r26024 * r26024;
        float r26042 = r26040 / r26041;
        float r26043 = r26018 / r26025;
        float r26044 = r26021 / r26043;
        float r26045 = r26044 - r26018;
        float r26046 = r26042 / r26045;
        float r26047 = r26030 ? r26039 : r26046;
        float r26048 = r26020 ? r26028 : r26047;
        return r26048;
}

double f_od(double a, double b, double c) {
        double r26049 = b;
        double r26050 = -2.663483308794079e+98;
        bool r26051 = r26049 <= r26050;
        double r26052 = c;
        double r26053 = r26052 / r26049;
        double r26054 = r26049 + r26049;
        double r26055 = 2;
        double r26056 = a;
        double r26057 = r26055 * r26056;
        double r26058 = r26054 / r26057;
        double r26059 = r26053 - r26058;
        double r26060 = 1.6168433953466018e-55;
        bool r26061 = r26049 <= r26060;
        double r26062 = -r26049;
        double r26063 = r26049 * r26049;
        double r26064 = 4;
        double r26065 = r26056 * r26052;
        double r26066 = r26064 * r26065;
        double r26067 = r26063 - r26066;
        double r26068 = sqrt(r26067);
        double r26069 = r26062 + r26068;
        double r26070 = r26069 / r26057;
        double r26071 = r26052 * r26064;
        double r26072 = r26055 * r26055;
        double r26073 = r26071 / r26072;
        double r26074 = r26049 / r26056;
        double r26075 = r26052 / r26074;
        double r26076 = r26075 - r26049;
        double r26077 = r26073 / r26076;
        double r26078 = r26061 ? r26070 : r26077;
        double r26079 = r26051 ? r26059 : r26078;
        return r26079;
}

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 r26080, r26081, r26082, r26083, r26084, r26085, r26086, r26087, r26088, r26089, r26090, r26091, r26092, r26093;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26080);
        mpfr_init(r26081);
        mpfr_init(r26082);
        mpfr_init_set_str(r26083, "4", 10, MPFR_RNDN);
        mpfr_init(r26084);
        mpfr_init(r26085);
        mpfr_init(r26086);
        mpfr_init(r26087);
        mpfr_init(r26088);
        mpfr_init(r26089);
        mpfr_init(r26090);
        mpfr_init_set_str(r26091, "2", 10, MPFR_RNDN);
        mpfr_init(r26092);
        mpfr_init(r26093);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r26080, b, MPFR_RNDN);
        mpfr_neg(r26081, r26080, MPFR_RNDN);
        mpfr_mul(r26082, r26080, r26080, MPFR_RNDN);
        ;
        mpfr_set_d(r26084, a, MPFR_RNDN);
        mpfr_set_d(r26085, c, MPFR_RNDN);
        mpfr_mul(r26086, r26084, r26085, MPFR_RNDN);
        mpfr_mul(r26087, r26083, r26086, MPFR_RNDN);
        mpfr_sub(r26088, r26082, r26087, MPFR_RNDN);
        mpfr_sqrt(r26089, r26088, MPFR_RNDN);
        mpfr_add(r26090, r26081, r26089, MPFR_RNDN);
        ;
        mpfr_mul(r26092, r26091, r26084, MPFR_RNDN);
        mpfr_div(r26093, r26090, r26092, MPFR_RNDN);
        return mpfr_get_d(r26093, MPFR_RNDN);
}

static mpfr_t r26094, r26095, r26096, r26097, r26098, r26099, r26100, r26101, r26102, r26103, r26104, r26105, r26106, r26107, r26108, r26109, r26110, r26111, r26112, r26113, r26114, r26115, r26116, r26117, r26118, r26119, r26120, r26121, r26122, r26123, r26124;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26094);
        mpfr_init_set_str(r26095, "-2.663483308794079e+98", 10, MPFR_RNDN);
        mpfr_init(r26096);
        mpfr_init(r26097);
        mpfr_init(r26098);
        mpfr_init(r26099);
        mpfr_init_set_str(r26100, "2", 10, MPFR_RNDN);
        mpfr_init(r26101);
        mpfr_init(r26102);
        mpfr_init(r26103);
        mpfr_init(r26104);
        mpfr_init_set_str(r26105, "1.6168433953466018e-55", 10, MPFR_RNDN);
        mpfr_init(r26106);
        mpfr_init(r26107);
        mpfr_init(r26108);
        mpfr_init_set_str(r26109, "4", 10, MPFR_RNDN);
        mpfr_init(r26110);
        mpfr_init(r26111);
        mpfr_init(r26112);
        mpfr_init(r26113);
        mpfr_init(r26114);
        mpfr_init(r26115);
        mpfr_init(r26116);
        mpfr_init(r26117);
        mpfr_init(r26118);
        mpfr_init(r26119);
        mpfr_init(r26120);
        mpfr_init(r26121);
        mpfr_init(r26122);
        mpfr_init(r26123);
        mpfr_init(r26124);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r26094, b, MPFR_RNDN);
        ;
        mpfr_set_si(r26096, mpfr_cmp(r26094, r26095) <= 0, MPFR_RNDN);
        mpfr_set_d(r26097, c, MPFR_RNDN);
        mpfr_div(r26098, r26097, r26094, MPFR_RNDN);
        mpfr_add(r26099, r26094, r26094, MPFR_RNDN);
        ;
        mpfr_set_d(r26101, a, MPFR_RNDN);
        mpfr_mul(r26102, r26100, r26101, MPFR_RNDN);
        mpfr_div(r26103, r26099, r26102, MPFR_RNDN);
        mpfr_sub(r26104, r26098, r26103, MPFR_RNDN);
        ;
        mpfr_set_si(r26106, mpfr_cmp(r26094, r26105) <= 0, MPFR_RNDN);
        mpfr_neg(r26107, r26094, MPFR_RNDN);
        mpfr_mul(r26108, r26094, r26094, MPFR_RNDN);
        ;
        mpfr_mul(r26110, r26101, r26097, MPFR_RNDN);
        mpfr_mul(r26111, r26109, r26110, MPFR_RNDN);
        mpfr_sub(r26112, r26108, r26111, MPFR_RNDN);
        mpfr_sqrt(r26113, r26112, MPFR_RNDN);
        mpfr_add(r26114, r26107, r26113, MPFR_RNDN);
        mpfr_div(r26115, r26114, r26102, MPFR_RNDN);
        mpfr_mul(r26116, r26097, r26109, MPFR_RNDN);
        mpfr_mul(r26117, r26100, r26100, MPFR_RNDN);
        mpfr_div(r26118, r26116, r26117, MPFR_RNDN);
        mpfr_div(r26119, r26094, r26101, MPFR_RNDN);
        mpfr_div(r26120, r26097, r26119, MPFR_RNDN);
        mpfr_sub(r26121, r26120, r26094, MPFR_RNDN);
        mpfr_div(r26122, r26118, r26121, MPFR_RNDN);
        if (mpfr_get_si(r26106, MPFR_RNDN)) { mpfr_set(r26123, r26115, MPFR_RNDN); } else { mpfr_set(r26123, r26122, MPFR_RNDN); };
        if (mpfr_get_si(r26096, MPFR_RNDN)) { mpfr_set(r26124, r26104, MPFR_RNDN); } else { mpfr_set(r26124, r26123, MPFR_RNDN); };
        return mpfr_get_d(r26124, MPFR_RNDN);
}

static mpfr_t r26125, r26126, r26127, r26128, r26129, r26130, r26131, r26132, r26133, r26134, r26135, r26136, r26137, r26138, r26139, r26140, r26141, r26142, r26143, r26144, r26145, r26146, r26147, r26148, r26149, r26150, r26151, r26152, r26153, r26154, r26155;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26125);
        mpfr_init_set_str(r26126, "-2.663483308794079e+98", 10, MPFR_RNDN);
        mpfr_init(r26127);
        mpfr_init(r26128);
        mpfr_init(r26129);
        mpfr_init(r26130);
        mpfr_init_set_str(r26131, "2", 10, MPFR_RNDN);
        mpfr_init(r26132);
        mpfr_init(r26133);
        mpfr_init(r26134);
        mpfr_init(r26135);
        mpfr_init_set_str(r26136, "1.6168433953466018e-55", 10, MPFR_RNDN);
        mpfr_init(r26137);
        mpfr_init(r26138);
        mpfr_init(r26139);
        mpfr_init_set_str(r26140, "4", 10, MPFR_RNDN);
        mpfr_init(r26141);
        mpfr_init(r26142);
        mpfr_init(r26143);
        mpfr_init(r26144);
        mpfr_init(r26145);
        mpfr_init(r26146);
        mpfr_init(r26147);
        mpfr_init(r26148);
        mpfr_init(r26149);
        mpfr_init(r26150);
        mpfr_init(r26151);
        mpfr_init(r26152);
        mpfr_init(r26153);
        mpfr_init(r26154);
        mpfr_init(r26155);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r26125, b, MPFR_RNDN);
        ;
        mpfr_set_si(r26127, mpfr_cmp(r26125, r26126) <= 0, MPFR_RNDN);
        mpfr_set_d(r26128, c, MPFR_RNDN);
        mpfr_div(r26129, r26128, r26125, MPFR_RNDN);
        mpfr_add(r26130, r26125, r26125, MPFR_RNDN);
        ;
        mpfr_set_d(r26132, a, MPFR_RNDN);
        mpfr_mul(r26133, r26131, r26132, MPFR_RNDN);
        mpfr_div(r26134, r26130, r26133, MPFR_RNDN);
        mpfr_sub(r26135, r26129, r26134, MPFR_RNDN);
        ;
        mpfr_set_si(r26137, mpfr_cmp(r26125, r26136) <= 0, MPFR_RNDN);
        mpfr_neg(r26138, r26125, MPFR_RNDN);
        mpfr_mul(r26139, r26125, r26125, MPFR_RNDN);
        ;
        mpfr_mul(r26141, r26132, r26128, MPFR_RNDN);
        mpfr_mul(r26142, r26140, r26141, MPFR_RNDN);
        mpfr_sub(r26143, r26139, r26142, MPFR_RNDN);
        mpfr_sqrt(r26144, r26143, MPFR_RNDN);
        mpfr_add(r26145, r26138, r26144, MPFR_RNDN);
        mpfr_div(r26146, r26145, r26133, MPFR_RNDN);
        mpfr_mul(r26147, r26128, r26140, MPFR_RNDN);
        mpfr_mul(r26148, r26131, r26131, MPFR_RNDN);
        mpfr_div(r26149, r26147, r26148, MPFR_RNDN);
        mpfr_div(r26150, r26125, r26132, MPFR_RNDN);
        mpfr_div(r26151, r26128, r26150, MPFR_RNDN);
        mpfr_sub(r26152, r26151, r26125, MPFR_RNDN);
        mpfr_div(r26153, r26149, r26152, MPFR_RNDN);
        if (mpfr_get_si(r26137, MPFR_RNDN)) { mpfr_set(r26154, r26146, MPFR_RNDN); } else { mpfr_set(r26154, r26153, MPFR_RNDN); };
        if (mpfr_get_si(r26127, MPFR_RNDN)) { mpfr_set(r26155, r26135, MPFR_RNDN); } else { mpfr_set(r26155, r26154, MPFR_RNDN); };
        return mpfr_get_d(r26155, MPFR_RNDN);
}

