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

char *name = "The quadratic formula (r1)";

double f_if(float a, float b, float c) {
        float r6042 = b;
        float r6043 = -r6042;
        float r6044 = r6042 * r6042;
        float r6045 = 4;
        float r6046 = a;
        float r6047 = r6045 * r6046;
        float r6048 = c;
        float r6049 = r6047 * r6048;
        float r6050 = r6044 - r6049;
        float r6051 = sqrt(r6050);
        float r6052 = r6043 + r6051;
        float r6053 = 2;
        float r6054 = r6053 * r6046;
        float r6055 = r6052 / r6054;
        return r6055;
}

double f_id(double a, double b, double c) {
        double r6056 = b;
        double r6057 = -r6056;
        double r6058 = r6056 * r6056;
        double r6059 = 4;
        double r6060 = a;
        double r6061 = r6059 * r6060;
        double r6062 = c;
        double r6063 = r6061 * r6062;
        double r6064 = r6058 - r6063;
        double r6065 = sqrt(r6064);
        double r6066 = r6057 + r6065;
        double r6067 = 2;
        double r6068 = r6067 * r6060;
        double r6069 = r6066 / r6068;
        return r6069;
}


double f_of(float a, float b, float c) {
        float r6070 = b;
        float r6071 = -3.450673941298755e+137;
        bool r6072 = r6070 <= r6071;
        float r6073 = c;
        float r6074 = a;
        float r6075 = r6070 / r6074;
        float r6076 = r6073 / r6075;
        float r6077 = r6076 / r6074;
        float r6078 = r6077 - r6075;
        float r6079 = 4.6083221305510133e-76;
        bool r6080 = r6070 <= r6079;
        float r6081 = 1;
        float r6082 = 2;
        float r6083 = r6074 * r6082;
        float r6084 = r6081 / r6083;
        float r6085 = r6070 * r6070;
        float r6086 = 4;
        float r6087 = r6074 * r6086;
        float r6088 = r6073 * r6087;
        float r6089 = r6085 - r6088;
        float r6090 = sqrt(r6089);
        float r6091 = -r6070;
        float r6092 = r6090 + r6091;
        float r6093 = r6084 * r6092;
        float r6094 = r6073 / r6070;
        float r6095 = -r6094;
        float r6096 = r6080 ? r6093 : r6095;
        float r6097 = r6072 ? r6078 : r6096;
        return r6097;
}

double f_od(double a, double b, double c) {
        double r6098 = b;
        double r6099 = -3.450673941298755e+137;
        bool r6100 = r6098 <= r6099;
        double r6101 = c;
        double r6102 = a;
        double r6103 = r6098 / r6102;
        double r6104 = r6101 / r6103;
        double r6105 = r6104 / r6102;
        double r6106 = r6105 - r6103;
        double r6107 = 4.6083221305510133e-76;
        bool r6108 = r6098 <= r6107;
        double r6109 = 1;
        double r6110 = 2;
        double r6111 = r6102 * r6110;
        double r6112 = r6109 / r6111;
        double r6113 = r6098 * r6098;
        double r6114 = 4;
        double r6115 = r6102 * r6114;
        double r6116 = r6101 * r6115;
        double r6117 = r6113 - r6116;
        double r6118 = sqrt(r6117);
        double r6119 = -r6098;
        double r6120 = r6118 + r6119;
        double r6121 = r6112 * r6120;
        double r6122 = r6101 / r6098;
        double r6123 = -r6122;
        double r6124 = r6108 ? r6121 : r6123;
        double r6125 = r6100 ? r6106 : r6124;
        return r6125;
}

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 r6126, r6127, r6128, r6129, r6130, r6131, r6132, r6133, r6134, r6135, r6136, r6137, r6138, r6139;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r6126);
        mpfr_init(r6127);
        mpfr_init(r6128);
        mpfr_init_set_str(r6129, "4", 10, MPFR_RNDN);
        mpfr_init(r6130);
        mpfr_init(r6131);
        mpfr_init(r6132);
        mpfr_init(r6133);
        mpfr_init(r6134);
        mpfr_init(r6135);
        mpfr_init(r6136);
        mpfr_init_set_str(r6137, "2", 10, MPFR_RNDN);
        mpfr_init(r6138);
        mpfr_init(r6139);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r6126, b, MPFR_RNDN);
        mpfr_neg(r6127, r6126, MPFR_RNDN);
        mpfr_mul(r6128, r6126, r6126, MPFR_RNDN);
        ;
        mpfr_set_d(r6130, a, MPFR_RNDN);
        mpfr_mul(r6131, r6129, r6130, MPFR_RNDN);
        mpfr_set_d(r6132, c, MPFR_RNDN);
        mpfr_mul(r6133, r6131, r6132, MPFR_RNDN);
        mpfr_sub(r6134, r6128, r6133, MPFR_RNDN);
        mpfr_sqrt(r6135, r6134, MPFR_RNDN);
        mpfr_add(r6136, r6127, r6135, MPFR_RNDN);
        ;
        mpfr_mul(r6138, r6137, r6130, MPFR_RNDN);
        mpfr_div(r6139, r6136, r6138, MPFR_RNDN);
        return mpfr_get_d(r6139, MPFR_RNDN);
}

static mpfr_t r6140, r6141, r6142, r6143, r6144, r6145, r6146, r6147, r6148, r6149, r6150, r6151, r6152, r6153, r6154, r6155, r6156, r6157, r6158, r6159, r6160, r6161, r6162, r6163, r6164, r6165, r6166, r6167;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r6140);
        mpfr_init_set_str(r6141, "-3.450673941298755e+137", 10, MPFR_RNDN);
        mpfr_init(r6142);
        mpfr_init(r6143);
        mpfr_init(r6144);
        mpfr_init(r6145);
        mpfr_init(r6146);
        mpfr_init(r6147);
        mpfr_init(r6148);
        mpfr_init_set_str(r6149, "4.6083221305510133e-76", 10, MPFR_RNDN);
        mpfr_init(r6150);
        mpfr_init_set_str(r6151, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r6152, "2", 10, MPFR_RNDN);
        mpfr_init(r6153);
        mpfr_init(r6154);
        mpfr_init(r6155);
        mpfr_init_set_str(r6156, "4", 10, MPFR_RNDN);
        mpfr_init(r6157);
        mpfr_init(r6158);
        mpfr_init(r6159);
        mpfr_init(r6160);
        mpfr_init(r6161);
        mpfr_init(r6162);
        mpfr_init(r6163);
        mpfr_init(r6164);
        mpfr_init(r6165);
        mpfr_init(r6166);
        mpfr_init(r6167);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r6140, b, MPFR_RNDN);
        ;
        mpfr_set_si(r6142, mpfr_cmp(r6140, r6141) <= 0, MPFR_RNDN);
        mpfr_set_d(r6143, c, MPFR_RNDN);
        mpfr_set_d(r6144, a, MPFR_RNDN);
        mpfr_div(r6145, r6140, r6144, MPFR_RNDN);
        mpfr_div(r6146, r6143, r6145, MPFR_RNDN);
        mpfr_div(r6147, r6146, r6144, MPFR_RNDN);
        mpfr_sub(r6148, r6147, r6145, MPFR_RNDN);
        ;
        mpfr_set_si(r6150, mpfr_cmp(r6140, r6149) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r6153, r6144, r6152, MPFR_RNDN);
        mpfr_div(r6154, r6151, r6153, MPFR_RNDN);
        mpfr_mul(r6155, r6140, r6140, MPFR_RNDN);
        ;
        mpfr_mul(r6157, r6144, r6156, MPFR_RNDN);
        mpfr_mul(r6158, r6143, r6157, MPFR_RNDN);
        mpfr_sub(r6159, r6155, r6158, MPFR_RNDN);
        mpfr_sqrt(r6160, r6159, MPFR_RNDN);
        mpfr_neg(r6161, r6140, MPFR_RNDN);
        mpfr_add(r6162, r6160, r6161, MPFR_RNDN);
        mpfr_mul(r6163, r6154, r6162, MPFR_RNDN);
        mpfr_div(r6164, r6143, r6140, MPFR_RNDN);
        mpfr_neg(r6165, r6164, MPFR_RNDN);
        if (mpfr_get_si(r6150, MPFR_RNDN)) { mpfr_set(r6166, r6163, MPFR_RNDN); } else { mpfr_set(r6166, r6165, MPFR_RNDN); };
        if (mpfr_get_si(r6142, MPFR_RNDN)) { mpfr_set(r6167, r6148, MPFR_RNDN); } else { mpfr_set(r6167, r6166, MPFR_RNDN); };
        return mpfr_get_d(r6167, MPFR_RNDN);
}

static mpfr_t r6168, r6169, r6170, r6171, r6172, r6173, r6174, r6175, r6176, r6177, r6178, r6179, r6180, r6181, r6182, r6183, r6184, r6185, r6186, r6187, r6188, r6189, r6190, r6191, r6192, r6193, r6194, r6195;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r6168);
        mpfr_init_set_str(r6169, "-3.450673941298755e+137", 10, MPFR_RNDN);
        mpfr_init(r6170);
        mpfr_init(r6171);
        mpfr_init(r6172);
        mpfr_init(r6173);
        mpfr_init(r6174);
        mpfr_init(r6175);
        mpfr_init(r6176);
        mpfr_init_set_str(r6177, "4.6083221305510133e-76", 10, MPFR_RNDN);
        mpfr_init(r6178);
        mpfr_init_set_str(r6179, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r6180, "2", 10, MPFR_RNDN);
        mpfr_init(r6181);
        mpfr_init(r6182);
        mpfr_init(r6183);
        mpfr_init_set_str(r6184, "4", 10, MPFR_RNDN);
        mpfr_init(r6185);
        mpfr_init(r6186);
        mpfr_init(r6187);
        mpfr_init(r6188);
        mpfr_init(r6189);
        mpfr_init(r6190);
        mpfr_init(r6191);
        mpfr_init(r6192);
        mpfr_init(r6193);
        mpfr_init(r6194);
        mpfr_init(r6195);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r6168, b, MPFR_RNDN);
        ;
        mpfr_set_si(r6170, mpfr_cmp(r6168, r6169) <= 0, MPFR_RNDN);
        mpfr_set_d(r6171, c, MPFR_RNDN);
        mpfr_set_d(r6172, a, MPFR_RNDN);
        mpfr_div(r6173, r6168, r6172, MPFR_RNDN);
        mpfr_div(r6174, r6171, r6173, MPFR_RNDN);
        mpfr_div(r6175, r6174, r6172, MPFR_RNDN);
        mpfr_sub(r6176, r6175, r6173, MPFR_RNDN);
        ;
        mpfr_set_si(r6178, mpfr_cmp(r6168, r6177) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r6181, r6172, r6180, MPFR_RNDN);
        mpfr_div(r6182, r6179, r6181, MPFR_RNDN);
        mpfr_mul(r6183, r6168, r6168, MPFR_RNDN);
        ;
        mpfr_mul(r6185, r6172, r6184, MPFR_RNDN);
        mpfr_mul(r6186, r6171, r6185, MPFR_RNDN);
        mpfr_sub(r6187, r6183, r6186, MPFR_RNDN);
        mpfr_sqrt(r6188, r6187, MPFR_RNDN);
        mpfr_neg(r6189, r6168, MPFR_RNDN);
        mpfr_add(r6190, r6188, r6189, MPFR_RNDN);
        mpfr_mul(r6191, r6182, r6190, MPFR_RNDN);
        mpfr_div(r6192, r6171, r6168, MPFR_RNDN);
        mpfr_neg(r6193, r6192, MPFR_RNDN);
        if (mpfr_get_si(r6178, MPFR_RNDN)) { mpfr_set(r6194, r6191, MPFR_RNDN); } else { mpfr_set(r6194, r6193, MPFR_RNDN); };
        if (mpfr_get_si(r6170, MPFR_RNDN)) { mpfr_set(r6195, r6176, MPFR_RNDN); } else { mpfr_set(r6195, r6194, MPFR_RNDN); };
        return mpfr_get_d(r6195, MPFR_RNDN);
}

