#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 r18451 = b;
        float r18452 = -r18451;
        float r18453 = r18451 * r18451;
        float r18454 = 4.0f;
        float r18455 = a;
        float r18456 = r18454 * r18455;
        float r18457 = c;
        float r18458 = r18456 * r18457;
        float r18459 = r18453 - r18458;
        float r18460 = sqrt(r18459);
        float r18461 = r18452 + r18460;
        float r18462 = 2.0f;
        float r18463 = r18462 * r18455;
        float r18464 = r18461 / r18463;
        return r18464;
}

double f_id(double a, double b, double c) {
        double r18465 = b;
        double r18466 = -r18465;
        double r18467 = r18465 * r18465;
        double r18468 = 4.0;
        double r18469 = a;
        double r18470 = r18468 * r18469;
        double r18471 = c;
        double r18472 = r18470 * r18471;
        double r18473 = r18467 - r18472;
        double r18474 = sqrt(r18473);
        double r18475 = r18466 + r18474;
        double r18476 = 2.0;
        double r18477 = r18476 * r18469;
        double r18478 = r18475 / r18477;
        return r18478;
}


double f_of(float a, float b, float c) {
        float r18479 = b;
        float r18480 = -1.4548518266586696e-17f;
        bool r18481 = r18479 <= r18480;
        float r18482 = -r18479;
        float r18483 = a;
        float r18484 = r18482 / r18483;
        float r18485 = 1.0428439038139104e-180f;
        bool r18486 = r18479 <= r18485;
        float r18487 = 1.0f;
        float r18488 = 2.0f;
        float r18489 = r18488 * r18483;
        float r18490 = r18479 * r18479;
        float r18491 = 4.0f;
        float r18492 = r18491 * r18483;
        float r18493 = c;
        float r18494 = r18492 * r18493;
        float r18495 = r18490 - r18494;
        float r18496 = sqrt(r18495);
        float r18497 = r18482 + r18496;
        float r18498 = r18489 / r18497;
        float r18499 = r18487 / r18498;
        float r18500 = 3.234382095771044e+66f;
        bool r18501 = r18479 <= r18500;
        float r18502 = r18487 / r18488;
        float r18503 = r18491 * r18493;
        float r18504 = r18493 * r18483;
        float r18505 = r18504 * r18491;
        float r18506 = r18490 - r18505;
        float r18507 = sqrt(r18506);
        float r18508 = r18482 - r18507;
        float r18509 = r18503 / r18508;
        float r18510 = r18502 * r18509;
        float r18511 = r18493 / r18479;
        float r18512 = -2.0f;
        float r18513 = r18512 / r18488;
        float r18514 = r18511 * r18513;
        float r18515 = r18501 ? r18510 : r18514;
        float r18516 = r18486 ? r18499 : r18515;
        float r18517 = r18481 ? r18484 : r18516;
        return r18517;
}

double f_od(double a, double b, double c) {
        double r18518 = b;
        double r18519 = -1.4548518266586696e-17;
        bool r18520 = r18518 <= r18519;
        double r18521 = -r18518;
        double r18522 = a;
        double r18523 = r18521 / r18522;
        double r18524 = 1.0428439038139104e-180;
        bool r18525 = r18518 <= r18524;
        double r18526 = 1.0;
        double r18527 = 2.0;
        double r18528 = r18527 * r18522;
        double r18529 = r18518 * r18518;
        double r18530 = 4.0;
        double r18531 = r18530 * r18522;
        double r18532 = c;
        double r18533 = r18531 * r18532;
        double r18534 = r18529 - r18533;
        double r18535 = sqrt(r18534);
        double r18536 = r18521 + r18535;
        double r18537 = r18528 / r18536;
        double r18538 = r18526 / r18537;
        double r18539 = 3.234382095771044e+66;
        bool r18540 = r18518 <= r18539;
        double r18541 = r18526 / r18527;
        double r18542 = r18530 * r18532;
        double r18543 = r18532 * r18522;
        double r18544 = r18543 * r18530;
        double r18545 = r18529 - r18544;
        double r18546 = sqrt(r18545);
        double r18547 = r18521 - r18546;
        double r18548 = r18542 / r18547;
        double r18549 = r18541 * r18548;
        double r18550 = r18532 / r18518;
        double r18551 = -2.0;
        double r18552 = r18551 / r18527;
        double r18553 = r18550 * r18552;
        double r18554 = r18540 ? r18549 : r18553;
        double r18555 = r18525 ? r18538 : r18554;
        double r18556 = r18520 ? r18523 : r18555;
        return r18556;
}

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 r18557, r18558, r18559, r18560, r18561, r18562, r18563, r18564, r18565, r18566, r18567, r18568, r18569, r18570;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r18557);
        mpfr_init(r18558);
        mpfr_init(r18559);
        mpfr_init_set_str(r18560, "4", 10, MPFR_RNDN);
        mpfr_init(r18561);
        mpfr_init(r18562);
        mpfr_init(r18563);
        mpfr_init(r18564);
        mpfr_init(r18565);
        mpfr_init(r18566);
        mpfr_init(r18567);
        mpfr_init_set_str(r18568, "2", 10, MPFR_RNDN);
        mpfr_init(r18569);
        mpfr_init(r18570);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r18557, b, MPFR_RNDN);
        mpfr_neg(r18558, r18557, MPFR_RNDN);
        mpfr_sqr(r18559, r18557, MPFR_RNDN);
        ;
        mpfr_set_d(r18561, a, MPFR_RNDN);
        mpfr_mul(r18562, r18560, r18561, MPFR_RNDN);
        mpfr_set_d(r18563, c, MPFR_RNDN);
        mpfr_mul(r18564, r18562, r18563, MPFR_RNDN);
        mpfr_sub(r18565, r18559, r18564, MPFR_RNDN);
        mpfr_sqrt(r18566, r18565, MPFR_RNDN);
        mpfr_add(r18567, r18558, r18566, MPFR_RNDN);
        ;
        mpfr_mul(r18569, r18568, r18561, MPFR_RNDN);
        mpfr_div(r18570, r18567, r18569, MPFR_RNDN);
        return mpfr_get_d(r18570, MPFR_RNDN);
}

static mpfr_t r18571, r18572, r18573, r18574, r18575, r18576, r18577, r18578, r18579, r18580, r18581, r18582, r18583, r18584, r18585, r18586, r18587, r18588, r18589, r18590, r18591, r18592, r18593, r18594, r18595, r18596, r18597, r18598, r18599, r18600, r18601, r18602, r18603, r18604, r18605, r18606, r18607, r18608, r18609;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r18571);
        mpfr_init_set_str(r18572, "-1.4548518266586696e-17", 10, MPFR_RNDN);
        mpfr_init(r18573);
        mpfr_init(r18574);
        mpfr_init(r18575);
        mpfr_init(r18576);
        mpfr_init_set_str(r18577, "1.0428439038139104e-180", 10, MPFR_RNDN);
        mpfr_init(r18578);
        mpfr_init_set_str(r18579, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18580, "2", 10, MPFR_RNDN);
        mpfr_init(r18581);
        mpfr_init(r18582);
        mpfr_init_set_str(r18583, "4", 10, MPFR_RNDN);
        mpfr_init(r18584);
        mpfr_init(r18585);
        mpfr_init(r18586);
        mpfr_init(r18587);
        mpfr_init(r18588);
        mpfr_init(r18589);
        mpfr_init(r18590);
        mpfr_init(r18591);
        mpfr_init_set_str(r18592, "3.234382095771044e+66", 10, MPFR_RNDN);
        mpfr_init(r18593);
        mpfr_init(r18594);
        mpfr_init(r18595);
        mpfr_init(r18596);
        mpfr_init(r18597);
        mpfr_init(r18598);
        mpfr_init(r18599);
        mpfr_init(r18600);
        mpfr_init(r18601);
        mpfr_init(r18602);
        mpfr_init(r18603);
        mpfr_init_set_str(r18604, "-2", 10, MPFR_RNDN);
        mpfr_init(r18605);
        mpfr_init(r18606);
        mpfr_init(r18607);
        mpfr_init(r18608);
        mpfr_init(r18609);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r18571, b, MPFR_RNDN);
        ;
        mpfr_set_si(r18573, mpfr_cmp(r18571, r18572) <= 0, MPFR_RNDN);
        mpfr_neg(r18574, r18571, MPFR_RNDN);
        mpfr_set_d(r18575, a, MPFR_RNDN);
        mpfr_div(r18576, r18574, r18575, MPFR_RNDN);
        ;
        mpfr_set_si(r18578, mpfr_cmp(r18571, r18577) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r18581, r18580, r18575, MPFR_RNDN);
        mpfr_sqr(r18582, r18571, MPFR_RNDN);
        ;
        mpfr_mul(r18584, r18583, r18575, MPFR_RNDN);
        mpfr_set_d(r18585, c, MPFR_RNDN);
        mpfr_mul(r18586, r18584, r18585, MPFR_RNDN);
        mpfr_sub(r18587, r18582, r18586, MPFR_RNDN);
        mpfr_sqrt(r18588, r18587, MPFR_RNDN);
        mpfr_add(r18589, r18574, r18588, MPFR_RNDN);
        mpfr_div(r18590, r18581, r18589, MPFR_RNDN);
        mpfr_div(r18591, r18579, r18590, MPFR_RNDN);
        ;
        mpfr_set_si(r18593, mpfr_cmp(r18571, r18592) <= 0, MPFR_RNDN);
        mpfr_div(r18594, r18579, r18580, MPFR_RNDN);
        mpfr_mul(r18595, r18583, r18585, MPFR_RNDN);
        mpfr_mul(r18596, r18585, r18575, MPFR_RNDN);
        mpfr_mul(r18597, r18596, r18583, MPFR_RNDN);
        mpfr_sub(r18598, r18582, r18597, MPFR_RNDN);
        mpfr_sqrt(r18599, r18598, MPFR_RNDN);
        mpfr_sub(r18600, r18574, r18599, MPFR_RNDN);
        mpfr_div(r18601, r18595, r18600, MPFR_RNDN);
        mpfr_mul(r18602, r18594, r18601, MPFR_RNDN);
        mpfr_div(r18603, r18585, r18571, MPFR_RNDN);
        ;
        mpfr_div(r18605, r18604, r18580, MPFR_RNDN);
        mpfr_mul(r18606, r18603, r18605, MPFR_RNDN);
        if (mpfr_get_si(r18593, MPFR_RNDN)) { mpfr_set(r18607, r18602, MPFR_RNDN); } else { mpfr_set(r18607, r18606, MPFR_RNDN); };
        if (mpfr_get_si(r18578, MPFR_RNDN)) { mpfr_set(r18608, r18591, MPFR_RNDN); } else { mpfr_set(r18608, r18607, MPFR_RNDN); };
        if (mpfr_get_si(r18573, MPFR_RNDN)) { mpfr_set(r18609, r18576, MPFR_RNDN); } else { mpfr_set(r18609, r18608, MPFR_RNDN); };
        return mpfr_get_d(r18609, MPFR_RNDN);
}

static mpfr_t r18610, r18611, r18612, r18613, 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, r18648;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r18610);
        mpfr_init_set_str(r18611, "-1.4548518266586696e-17", 10, MPFR_RNDN);
        mpfr_init(r18612);
        mpfr_init(r18613);
        mpfr_init(r18614);
        mpfr_init(r18615);
        mpfr_init_set_str(r18616, "1.0428439038139104e-180", 10, MPFR_RNDN);
        mpfr_init(r18617);
        mpfr_init_set_str(r18618, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18619, "2", 10, MPFR_RNDN);
        mpfr_init(r18620);
        mpfr_init(r18621);
        mpfr_init_set_str(r18622, "4", 10, MPFR_RNDN);
        mpfr_init(r18623);
        mpfr_init(r18624);
        mpfr_init(r18625);
        mpfr_init(r18626);
        mpfr_init(r18627);
        mpfr_init(r18628);
        mpfr_init(r18629);
        mpfr_init(r18630);
        mpfr_init_set_str(r18631, "3.234382095771044e+66", 10, MPFR_RNDN);
        mpfr_init(r18632);
        mpfr_init(r18633);
        mpfr_init(r18634);
        mpfr_init(r18635);
        mpfr_init(r18636);
        mpfr_init(r18637);
        mpfr_init(r18638);
        mpfr_init(r18639);
        mpfr_init(r18640);
        mpfr_init(r18641);
        mpfr_init(r18642);
        mpfr_init_set_str(r18643, "-2", 10, MPFR_RNDN);
        mpfr_init(r18644);
        mpfr_init(r18645);
        mpfr_init(r18646);
        mpfr_init(r18647);
        mpfr_init(r18648);
}

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

