#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 r18504 = b;
        float r18505 = -r18504;
        float r18506 = r18504 * r18504;
        float r18507 = 4.0f;
        float r18508 = a;
        float r18509 = r18507 * r18508;
        float r18510 = c;
        float r18511 = r18509 * r18510;
        float r18512 = r18506 - r18511;
        float r18513 = sqrt(r18512);
        float r18514 = r18505 + r18513;
        float r18515 = 2.0f;
        float r18516 = r18515 * r18508;
        float r18517 = r18514 / r18516;
        return r18517;
}

double f_id(double a, double b, double c) {
        double r18518 = b;
        double r18519 = -r18518;
        double r18520 = r18518 * r18518;
        double r18521 = 4.0;
        double r18522 = a;
        double r18523 = r18521 * r18522;
        double r18524 = c;
        double r18525 = r18523 * r18524;
        double r18526 = r18520 - r18525;
        double r18527 = sqrt(r18526);
        double r18528 = r18519 + r18527;
        double r18529 = 2.0;
        double r18530 = r18529 * r18522;
        double r18531 = r18528 / r18530;
        return r18531;
}


double f_of(float a, float b, float c) {
        float r18532 = b;
        float r18533 = -1.2339538201069979e+148f;
        bool r18534 = r18532 <= r18533;
        float r18535 = -r18532;
        float r18536 = a;
        float r18537 = r18535 / r18536;
        float r18538 = 4.6117267249984834e-185f;
        bool r18539 = r18532 <= r18538;
        float r18540 = r18532 * r18532;
        float r18541 = 4.0f;
        float r18542 = r18541 * r18536;
        float r18543 = c;
        float r18544 = r18542 * r18543;
        float r18545 = r18540 - r18544;
        float r18546 = sqrt(r18545);
        float r18547 = r18535 + r18546;
        float r18548 = 2.0f;
        float r18549 = r18548 * r18536;
        float r18550 = r18547 / r18549;
        float r18551 = 2.4608343160951844e+34f;
        bool r18552 = r18532 <= r18551;
        float r18553 = 1.0f;
        float r18554 = r18543 / r18553;
        float r18555 = r18541 / r18548;
        float r18556 = r18554 * r18555;
        float r18557 = r18535 - r18546;
        float r18558 = r18556 / r18557;
        float r18559 = r18543 / r18532;
        float r18560 = -2.0f;
        float r18561 = r18560 / r18548;
        float r18562 = r18559 * r18561;
        float r18563 = r18552 ? r18558 : r18562;
        float r18564 = r18539 ? r18550 : r18563;
        float r18565 = r18534 ? r18537 : r18564;
        return r18565;
}

double f_od(double a, double b, double c) {
        double r18566 = b;
        double r18567 = -1.2339538201069979e+148;
        bool r18568 = r18566 <= r18567;
        double r18569 = -r18566;
        double r18570 = a;
        double r18571 = r18569 / r18570;
        double r18572 = 4.6117267249984834e-185;
        bool r18573 = r18566 <= r18572;
        double r18574 = r18566 * r18566;
        double r18575 = 4.0;
        double r18576 = r18575 * r18570;
        double r18577 = c;
        double r18578 = r18576 * r18577;
        double r18579 = r18574 - r18578;
        double r18580 = sqrt(r18579);
        double r18581 = r18569 + r18580;
        double r18582 = 2.0;
        double r18583 = r18582 * r18570;
        double r18584 = r18581 / r18583;
        double r18585 = 2.4608343160951844e+34;
        bool r18586 = r18566 <= r18585;
        double r18587 = 1.0;
        double r18588 = r18577 / r18587;
        double r18589 = r18575 / r18582;
        double r18590 = r18588 * r18589;
        double r18591 = r18569 - r18580;
        double r18592 = r18590 / r18591;
        double r18593 = r18577 / r18566;
        double r18594 = -2.0;
        double r18595 = r18594 / r18582;
        double r18596 = r18593 * r18595;
        double r18597 = r18586 ? r18592 : r18596;
        double r18598 = r18573 ? r18584 : r18597;
        double r18599 = r18568 ? r18571 : r18598;
        return r18599;
}

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 r18600, r18601, r18602, r18603, r18604, r18605, r18606, r18607, r18608, r18609, r18610, r18611, r18612, r18613;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r18600);
        mpfr_init(r18601);
        mpfr_init(r18602);
        mpfr_init_set_str(r18603, "4", 10, MPFR_RNDN);
        mpfr_init(r18604);
        mpfr_init(r18605);
        mpfr_init(r18606);
        mpfr_init(r18607);
        mpfr_init(r18608);
        mpfr_init(r18609);
        mpfr_init(r18610);
        mpfr_init_set_str(r18611, "2", 10, MPFR_RNDN);
        mpfr_init(r18612);
        mpfr_init(r18613);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r18600, b, MPFR_RNDN);
        mpfr_neg(r18601, r18600, MPFR_RNDN);
        mpfr_sqr(r18602, r18600, MPFR_RNDN);
        ;
        mpfr_set_d(r18604, a, MPFR_RNDN);
        mpfr_mul(r18605, r18603, r18604, MPFR_RNDN);
        mpfr_set_d(r18606, c, MPFR_RNDN);
        mpfr_mul(r18607, r18605, r18606, MPFR_RNDN);
        mpfr_sub(r18608, r18602, r18607, MPFR_RNDN);
        mpfr_sqrt(r18609, r18608, MPFR_RNDN);
        mpfr_add(r18610, r18601, r18609, MPFR_RNDN);
        ;
        mpfr_mul(r18612, r18611, r18604, MPFR_RNDN);
        mpfr_div(r18613, r18610, r18612, MPFR_RNDN);
        return mpfr_get_d(r18613, MPFR_RNDN);
}

static mpfr_t r18614, r18615, r18616, r18617, r18618, r18619, r18620, r18621, r18622, r18623, r18624, r18625, r18626, r18627, r18628, r18629, r18630, r18631, r18632, r18633, r18634, r18635, r18636, r18637, r18638, r18639, r18640, r18641, r18642, r18643, r18644, r18645, r18646, r18647;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r18614);
        mpfr_init_set_str(r18615, "-1.2339538201069979e+148", 10, MPFR_RNDN);
        mpfr_init(r18616);
        mpfr_init(r18617);
        mpfr_init(r18618);
        mpfr_init(r18619);
        mpfr_init_set_str(r18620, "4.6117267249984834e-185", 10, MPFR_RNDN);
        mpfr_init(r18621);
        mpfr_init(r18622);
        mpfr_init_set_str(r18623, "4", 10, MPFR_RNDN);
        mpfr_init(r18624);
        mpfr_init(r18625);
        mpfr_init(r18626);
        mpfr_init(r18627);
        mpfr_init(r18628);
        mpfr_init(r18629);
        mpfr_init_set_str(r18630, "2", 10, MPFR_RNDN);
        mpfr_init(r18631);
        mpfr_init(r18632);
        mpfr_init_set_str(r18633, "2.4608343160951844e+34", 10, MPFR_RNDN);
        mpfr_init(r18634);
        mpfr_init_set_str(r18635, "1", 10, MPFR_RNDN);
        mpfr_init(r18636);
        mpfr_init(r18637);
        mpfr_init(r18638);
        mpfr_init(r18639);
        mpfr_init(r18640);
        mpfr_init(r18641);
        mpfr_init_set_str(r18642, "-2", 10, MPFR_RNDN);
        mpfr_init(r18643);
        mpfr_init(r18644);
        mpfr_init(r18645);
        mpfr_init(r18646);
        mpfr_init(r18647);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r18614, b, MPFR_RNDN);
        ;
        mpfr_set_si(r18616, mpfr_cmp(r18614, r18615) <= 0, MPFR_RNDN);
        mpfr_neg(r18617, r18614, MPFR_RNDN);
        mpfr_set_d(r18618, a, MPFR_RNDN);
        mpfr_div(r18619, r18617, r18618, MPFR_RNDN);
        ;
        mpfr_set_si(r18621, mpfr_cmp(r18614, r18620) <= 0, MPFR_RNDN);
        mpfr_sqr(r18622, r18614, MPFR_RNDN);
        ;
        mpfr_mul(r18624, r18623, r18618, MPFR_RNDN);
        mpfr_set_d(r18625, c, MPFR_RNDN);
        mpfr_mul(r18626, r18624, r18625, MPFR_RNDN);
        mpfr_sub(r18627, r18622, r18626, MPFR_RNDN);
        mpfr_sqrt(r18628, r18627, MPFR_RNDN);
        mpfr_add(r18629, r18617, r18628, MPFR_RNDN);
        ;
        mpfr_mul(r18631, r18630, r18618, MPFR_RNDN);
        mpfr_div(r18632, r18629, r18631, MPFR_RNDN);
        ;
        mpfr_set_si(r18634, mpfr_cmp(r18614, r18633) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r18636, r18625, r18635, MPFR_RNDN);
        mpfr_div(r18637, r18623, r18630, MPFR_RNDN);
        mpfr_mul(r18638, r18636, r18637, MPFR_RNDN);
        mpfr_sub(r18639, r18617, r18628, MPFR_RNDN);
        mpfr_div(r18640, r18638, r18639, MPFR_RNDN);
        mpfr_div(r18641, r18625, r18614, MPFR_RNDN);
        ;
        mpfr_div(r18643, r18642, r18630, MPFR_RNDN);
        mpfr_mul(r18644, r18641, r18643, MPFR_RNDN);
        if (mpfr_get_si(r18634, MPFR_RNDN)) { mpfr_set(r18645, r18640, MPFR_RNDN); } else { mpfr_set(r18645, r18644, MPFR_RNDN); };
        if (mpfr_get_si(r18621, MPFR_RNDN)) { mpfr_set(r18646, r18632, MPFR_RNDN); } else { mpfr_set(r18646, r18645, MPFR_RNDN); };
        if (mpfr_get_si(r18616, MPFR_RNDN)) { mpfr_set(r18647, r18619, MPFR_RNDN); } else { mpfr_set(r18647, r18646, MPFR_RNDN); };
        return mpfr_get_d(r18647, MPFR_RNDN);
}

static mpfr_t r18648, r18649, r18650, r18651, r18652, r18653, r18654, r18655, r18656, r18657, r18658, r18659, r18660, r18661, r18662, r18663, r18664, r18665, r18666, r18667, r18668, r18669, r18670, r18671, r18672, r18673, r18674, r18675, r18676, r18677, r18678, r18679, r18680, r18681;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r18648);
        mpfr_init_set_str(r18649, "-1.2339538201069979e+148", 10, MPFR_RNDN);
        mpfr_init(r18650);
        mpfr_init(r18651);
        mpfr_init(r18652);
        mpfr_init(r18653);
        mpfr_init_set_str(r18654, "4.6117267249984834e-185", 10, MPFR_RNDN);
        mpfr_init(r18655);
        mpfr_init(r18656);
        mpfr_init_set_str(r18657, "4", 10, MPFR_RNDN);
        mpfr_init(r18658);
        mpfr_init(r18659);
        mpfr_init(r18660);
        mpfr_init(r18661);
        mpfr_init(r18662);
        mpfr_init(r18663);
        mpfr_init_set_str(r18664, "2", 10, MPFR_RNDN);
        mpfr_init(r18665);
        mpfr_init(r18666);
        mpfr_init_set_str(r18667, "2.4608343160951844e+34", 10, MPFR_RNDN);
        mpfr_init(r18668);
        mpfr_init_set_str(r18669, "1", 10, MPFR_RNDN);
        mpfr_init(r18670);
        mpfr_init(r18671);
        mpfr_init(r18672);
        mpfr_init(r18673);
        mpfr_init(r18674);
        mpfr_init(r18675);
        mpfr_init_set_str(r18676, "-2", 10, MPFR_RNDN);
        mpfr_init(r18677);
        mpfr_init(r18678);
        mpfr_init(r18679);
        mpfr_init(r18680);
        mpfr_init(r18681);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r18648, b, MPFR_RNDN);
        ;
        mpfr_set_si(r18650, mpfr_cmp(r18648, r18649) <= 0, MPFR_RNDN);
        mpfr_neg(r18651, r18648, MPFR_RNDN);
        mpfr_set_d(r18652, a, MPFR_RNDN);
        mpfr_div(r18653, r18651, r18652, MPFR_RNDN);
        ;
        mpfr_set_si(r18655, mpfr_cmp(r18648, r18654) <= 0, MPFR_RNDN);
        mpfr_sqr(r18656, r18648, MPFR_RNDN);
        ;
        mpfr_mul(r18658, r18657, r18652, MPFR_RNDN);
        mpfr_set_d(r18659, c, MPFR_RNDN);
        mpfr_mul(r18660, r18658, r18659, MPFR_RNDN);
        mpfr_sub(r18661, r18656, r18660, MPFR_RNDN);
        mpfr_sqrt(r18662, r18661, MPFR_RNDN);
        mpfr_add(r18663, r18651, r18662, MPFR_RNDN);
        ;
        mpfr_mul(r18665, r18664, r18652, MPFR_RNDN);
        mpfr_div(r18666, r18663, r18665, MPFR_RNDN);
        ;
        mpfr_set_si(r18668, mpfr_cmp(r18648, r18667) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r18670, r18659, r18669, MPFR_RNDN);
        mpfr_div(r18671, r18657, r18664, MPFR_RNDN);
        mpfr_mul(r18672, r18670, r18671, MPFR_RNDN);
        mpfr_sub(r18673, r18651, r18662, MPFR_RNDN);
        mpfr_div(r18674, r18672, r18673, MPFR_RNDN);
        mpfr_div(r18675, r18659, r18648, MPFR_RNDN);
        ;
        mpfr_div(r18677, r18676, r18664, MPFR_RNDN);
        mpfr_mul(r18678, r18675, r18677, MPFR_RNDN);
        if (mpfr_get_si(r18668, MPFR_RNDN)) { mpfr_set(r18679, r18674, MPFR_RNDN); } else { mpfr_set(r18679, r18678, MPFR_RNDN); };
        if (mpfr_get_si(r18655, MPFR_RNDN)) { mpfr_set(r18680, r18666, MPFR_RNDN); } else { mpfr_set(r18680, r18679, MPFR_RNDN); };
        if (mpfr_get_si(r18650, MPFR_RNDN)) { mpfr_set(r18681, r18653, MPFR_RNDN); } else { mpfr_set(r18681, r18680, MPFR_RNDN); };
        return mpfr_get_d(r18681, MPFR_RNDN);
}

