#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 r25461 = b;
        float r25462 = -r25461;
        float r25463 = r25461 * r25461;
        float r25464 = 4;
        float r25465 = a;
        float r25466 = r25464 * r25465;
        float r25467 = c;
        float r25468 = r25466 * r25467;
        float r25469 = r25463 - r25468;
        float r25470 = sqrt(r25469);
        float r25471 = r25462 + r25470;
        float r25472 = 2;
        float r25473 = r25472 * r25465;
        float r25474 = r25471 / r25473;
        return r25474;
}

double f_id(double a, double b, double c) {
        double r25475 = b;
        double r25476 = -r25475;
        double r25477 = r25475 * r25475;
        double r25478 = 4;
        double r25479 = a;
        double r25480 = r25478 * r25479;
        double r25481 = c;
        double r25482 = r25480 * r25481;
        double r25483 = r25477 - r25482;
        double r25484 = sqrt(r25483);
        double r25485 = r25476 + r25484;
        double r25486 = 2;
        double r25487 = r25486 * r25479;
        double r25488 = r25485 / r25487;
        return r25488;
}


double f_of(float a, float b, float c) {
        float r25489 = b;
        float r25490 = 2.3108589368107177e-254;
        bool r25491 = r25489 <= r25490;
        float r25492 = 4;
        float r25493 = a;
        float r25494 = r25492 * r25493;
        float r25495 = c;
        float r25496 = -r25495;
        float r25497 = r25489 * r25489;
        float r25498 = fma(r25494, r25496, r25497);
        float r25499 = sqrt(r25498);
        float r25500 = sqrt(r25499);
        float r25501 = -r25489;
        float r25502 = fma(r25500, r25500, r25501);
        float r25503 = 2;
        float r25504 = r25503 * r25493;
        float r25505 = r25502 / r25504;
        float r25506 = 1.3348763628291561e+154;
        bool r25507 = r25489 <= r25506;
        float r25508 = r25492 * r25496;
        float r25509 = 1;
        float r25510 = r25509 / r25503;
        float r25511 = r25508 * r25510;
        float r25512 = fma(r25496, r25494, r25497);
        float r25513 = sqrt(r25512);
        float r25514 = r25513 + r25489;
        float r25515 = r25511 / r25514;
        float r25516 = cbrt(r25515);
        float r25517 = r25516 * r25516;
        float r25518 = sqrt(r25514);
        float r25519 = r25518 * r25518;
        float r25520 = r25511 / r25519;
        float r25521 = cbrt(r25520);
        float r25522 = r25517 * r25521;
        float r25523 = r25495 * r25493;
        float r25524 = -r25492;
        float r25525 = r25523 * r25524;
        float r25526 = r25489 + r25489;
        float r25527 = r25525 / r25526;
        float r25528 = r25527 / r25504;
        float r25529 = r25507 ? r25522 : r25528;
        float r25530 = r25491 ? r25505 : r25529;
        return r25530;
}

double f_od(double a, double b, double c) {
        double r25531 = b;
        double r25532 = 2.3108589368107177e-254;
        bool r25533 = r25531 <= r25532;
        double r25534 = 4;
        double r25535 = a;
        double r25536 = r25534 * r25535;
        double r25537 = c;
        double r25538 = -r25537;
        double r25539 = r25531 * r25531;
        double r25540 = fma(r25536, r25538, r25539);
        double r25541 = sqrt(r25540);
        double r25542 = sqrt(r25541);
        double r25543 = -r25531;
        double r25544 = fma(r25542, r25542, r25543);
        double r25545 = 2;
        double r25546 = r25545 * r25535;
        double r25547 = r25544 / r25546;
        double r25548 = 1.3348763628291561e+154;
        bool r25549 = r25531 <= r25548;
        double r25550 = r25534 * r25538;
        double r25551 = 1;
        double r25552 = r25551 / r25545;
        double r25553 = r25550 * r25552;
        double r25554 = fma(r25538, r25536, r25539);
        double r25555 = sqrt(r25554);
        double r25556 = r25555 + r25531;
        double r25557 = r25553 / r25556;
        double r25558 = cbrt(r25557);
        double r25559 = r25558 * r25558;
        double r25560 = sqrt(r25556);
        double r25561 = r25560 * r25560;
        double r25562 = r25553 / r25561;
        double r25563 = cbrt(r25562);
        double r25564 = r25559 * r25563;
        double r25565 = r25537 * r25535;
        double r25566 = -r25534;
        double r25567 = r25565 * r25566;
        double r25568 = r25531 + r25531;
        double r25569 = r25567 / r25568;
        double r25570 = r25569 / r25546;
        double r25571 = r25549 ? r25564 : r25570;
        double r25572 = r25533 ? r25547 : r25571;
        return r25572;
}

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 r25573, r25574, r25575, r25576, r25577, r25578, r25579, r25580, r25581, r25582, r25583, r25584, r25585, r25586;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25573);
        mpfr_init(r25574);
        mpfr_init(r25575);
        mpfr_init_set_str(r25576, "4", 10, MPFR_RNDN);
        mpfr_init(r25577);
        mpfr_init(r25578);
        mpfr_init(r25579);
        mpfr_init(r25580);
        mpfr_init(r25581);
        mpfr_init(r25582);
        mpfr_init(r25583);
        mpfr_init_set_str(r25584, "2", 10, MPFR_RNDN);
        mpfr_init(r25585);
        mpfr_init(r25586);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r25573, b, MPFR_RNDN);
        mpfr_neg(r25574, r25573, MPFR_RNDN);
        mpfr_mul(r25575, r25573, r25573, MPFR_RNDN);
        ;
        mpfr_set_d(r25577, a, MPFR_RNDN);
        mpfr_mul(r25578, r25576, r25577, MPFR_RNDN);
        mpfr_set_d(r25579, c, MPFR_RNDN);
        mpfr_mul(r25580, r25578, r25579, MPFR_RNDN);
        mpfr_sub(r25581, r25575, r25580, MPFR_RNDN);
        mpfr_sqrt(r25582, r25581, MPFR_RNDN);
        mpfr_add(r25583, r25574, r25582, MPFR_RNDN);
        ;
        mpfr_mul(r25585, r25584, r25577, MPFR_RNDN);
        mpfr_div(r25586, r25583, r25585, MPFR_RNDN);
        return mpfr_get_d(r25586, MPFR_RNDN);
}

static mpfr_t r25587, r25588, r25589, r25590, r25591, r25592, r25593, r25594, r25595, r25596, r25597, r25598, r25599, r25600, r25601, r25602, r25603, r25604, r25605, r25606, r25607, r25608, r25609, r25610, r25611, r25612, r25613, r25614, r25615, r25616, r25617, r25618, r25619, r25620, r25621, r25622, r25623, r25624, r25625, r25626, r25627, r25628;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25587);
        mpfr_init_set_str(r25588, "2.3108589368107177e-254", 10, MPFR_RNDN);
        mpfr_init(r25589);
        mpfr_init_set_str(r25590, "4", 10, MPFR_RNDN);
        mpfr_init(r25591);
        mpfr_init(r25592);
        mpfr_init(r25593);
        mpfr_init(r25594);
        mpfr_init(r25595);
        mpfr_init(r25596);
        mpfr_init(r25597);
        mpfr_init(r25598);
        mpfr_init(r25599);
        mpfr_init(r25600);
        mpfr_init_set_str(r25601, "2", 10, MPFR_RNDN);
        mpfr_init(r25602);
        mpfr_init(r25603);
        mpfr_init_set_str(r25604, "1.3348763628291561e+154", 10, MPFR_RNDN);
        mpfr_init(r25605);
        mpfr_init(r25606);
        mpfr_init_set_str(r25607, "1", 10, MPFR_RNDN);
        mpfr_init(r25608);
        mpfr_init(r25609);
        mpfr_init(r25610);
        mpfr_init(r25611);
        mpfr_init(r25612);
        mpfr_init(r25613);
        mpfr_init(r25614);
        mpfr_init(r25615);
        mpfr_init(r25616);
        mpfr_init(r25617);
        mpfr_init(r25618);
        mpfr_init(r25619);
        mpfr_init(r25620);
        mpfr_init(r25621);
        mpfr_init(r25622);
        mpfr_init(r25623);
        mpfr_init(r25624);
        mpfr_init(r25625);
        mpfr_init(r25626);
        mpfr_init(r25627);
        mpfr_init(r25628);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r25587, b, MPFR_RNDN);
        ;
        mpfr_set_si(r25589, mpfr_cmp(r25587, r25588) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r25591, a, MPFR_RNDN);
        mpfr_mul(r25592, r25590, r25591, MPFR_RNDN);
        mpfr_set_d(r25593, c, MPFR_RNDN);
        mpfr_neg(r25594, r25593, MPFR_RNDN);
        mpfr_mul(r25595, r25587, r25587, MPFR_RNDN);
        mpfr_fma(r25596, r25592, r25594, r25595, MPFR_RNDN);
        mpfr_sqrt(r25597, r25596, MPFR_RNDN);
        mpfr_sqrt(r25598, r25597, MPFR_RNDN);
        mpfr_neg(r25599, r25587, MPFR_RNDN);
        mpfr_fma(r25600, r25598, r25598, r25599, MPFR_RNDN);
        ;
        mpfr_mul(r25602, r25601, r25591, MPFR_RNDN);
        mpfr_div(r25603, r25600, r25602, MPFR_RNDN);
        ;
        mpfr_set_si(r25605, mpfr_cmp(r25587, r25604) <= 0, MPFR_RNDN);
        mpfr_mul(r25606, r25590, r25594, MPFR_RNDN);
        ;
        mpfr_div(r25608, r25607, r25601, MPFR_RNDN);
        mpfr_mul(r25609, r25606, r25608, MPFR_RNDN);
        mpfr_fma(r25610, r25594, r25592, r25595, MPFR_RNDN);
        mpfr_sqrt(r25611, r25610, MPFR_RNDN);
        mpfr_add(r25612, r25611, r25587, MPFR_RNDN);
        mpfr_div(r25613, r25609, r25612, MPFR_RNDN);
        mpfr_cbrt(r25614, r25613, MPFR_RNDN);
        mpfr_mul(r25615, r25614, r25614, MPFR_RNDN);
        mpfr_sqrt(r25616, r25612, MPFR_RNDN);
        mpfr_mul(r25617, r25616, r25616, MPFR_RNDN);
        mpfr_div(r25618, r25609, r25617, MPFR_RNDN);
        mpfr_cbrt(r25619, r25618, MPFR_RNDN);
        mpfr_mul(r25620, r25615, r25619, MPFR_RNDN);
        mpfr_mul(r25621, r25593, r25591, MPFR_RNDN);
        mpfr_neg(r25622, r25590, MPFR_RNDN);
        mpfr_mul(r25623, r25621, r25622, MPFR_RNDN);
        mpfr_add(r25624, r25587, r25587, MPFR_RNDN);
        mpfr_div(r25625, r25623, r25624, MPFR_RNDN);
        mpfr_div(r25626, r25625, r25602, MPFR_RNDN);
        if (mpfr_get_si(r25605, MPFR_RNDN)) { mpfr_set(r25627, r25620, MPFR_RNDN); } else { mpfr_set(r25627, r25626, MPFR_RNDN); };
        if (mpfr_get_si(r25589, MPFR_RNDN)) { mpfr_set(r25628, r25603, MPFR_RNDN); } else { mpfr_set(r25628, r25627, MPFR_RNDN); };
        return mpfr_get_d(r25628, MPFR_RNDN);
}

static mpfr_t r25629, r25630, r25631, r25632, r25633, r25634, r25635, r25636, r25637, r25638, r25639, r25640, r25641, r25642, r25643, r25644, r25645, r25646, r25647, r25648, r25649, r25650, r25651, r25652, r25653, r25654, r25655, r25656, r25657, r25658, r25659, r25660, r25661, r25662, r25663, r25664, r25665, r25666, r25667, r25668, r25669, r25670;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25629);
        mpfr_init_set_str(r25630, "2.3108589368107177e-254", 10, MPFR_RNDN);
        mpfr_init(r25631);
        mpfr_init_set_str(r25632, "4", 10, MPFR_RNDN);
        mpfr_init(r25633);
        mpfr_init(r25634);
        mpfr_init(r25635);
        mpfr_init(r25636);
        mpfr_init(r25637);
        mpfr_init(r25638);
        mpfr_init(r25639);
        mpfr_init(r25640);
        mpfr_init(r25641);
        mpfr_init(r25642);
        mpfr_init_set_str(r25643, "2", 10, MPFR_RNDN);
        mpfr_init(r25644);
        mpfr_init(r25645);
        mpfr_init_set_str(r25646, "1.3348763628291561e+154", 10, MPFR_RNDN);
        mpfr_init(r25647);
        mpfr_init(r25648);
        mpfr_init_set_str(r25649, "1", 10, MPFR_RNDN);
        mpfr_init(r25650);
        mpfr_init(r25651);
        mpfr_init(r25652);
        mpfr_init(r25653);
        mpfr_init(r25654);
        mpfr_init(r25655);
        mpfr_init(r25656);
        mpfr_init(r25657);
        mpfr_init(r25658);
        mpfr_init(r25659);
        mpfr_init(r25660);
        mpfr_init(r25661);
        mpfr_init(r25662);
        mpfr_init(r25663);
        mpfr_init(r25664);
        mpfr_init(r25665);
        mpfr_init(r25666);
        mpfr_init(r25667);
        mpfr_init(r25668);
        mpfr_init(r25669);
        mpfr_init(r25670);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r25629, b, MPFR_RNDN);
        ;
        mpfr_set_si(r25631, mpfr_cmp(r25629, r25630) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r25633, a, MPFR_RNDN);
        mpfr_mul(r25634, r25632, r25633, MPFR_RNDN);
        mpfr_set_d(r25635, c, MPFR_RNDN);
        mpfr_neg(r25636, r25635, MPFR_RNDN);
        mpfr_mul(r25637, r25629, r25629, MPFR_RNDN);
        mpfr_fma(r25638, r25634, r25636, r25637, MPFR_RNDN);
        mpfr_sqrt(r25639, r25638, MPFR_RNDN);
        mpfr_sqrt(r25640, r25639, MPFR_RNDN);
        mpfr_neg(r25641, r25629, MPFR_RNDN);
        mpfr_fma(r25642, r25640, r25640, r25641, MPFR_RNDN);
        ;
        mpfr_mul(r25644, r25643, r25633, MPFR_RNDN);
        mpfr_div(r25645, r25642, r25644, MPFR_RNDN);
        ;
        mpfr_set_si(r25647, mpfr_cmp(r25629, r25646) <= 0, MPFR_RNDN);
        mpfr_mul(r25648, r25632, r25636, MPFR_RNDN);
        ;
        mpfr_div(r25650, r25649, r25643, MPFR_RNDN);
        mpfr_mul(r25651, r25648, r25650, MPFR_RNDN);
        mpfr_fma(r25652, r25636, r25634, r25637, MPFR_RNDN);
        mpfr_sqrt(r25653, r25652, MPFR_RNDN);
        mpfr_add(r25654, r25653, r25629, MPFR_RNDN);
        mpfr_div(r25655, r25651, r25654, MPFR_RNDN);
        mpfr_cbrt(r25656, r25655, MPFR_RNDN);
        mpfr_mul(r25657, r25656, r25656, MPFR_RNDN);
        mpfr_sqrt(r25658, r25654, MPFR_RNDN);
        mpfr_mul(r25659, r25658, r25658, MPFR_RNDN);
        mpfr_div(r25660, r25651, r25659, MPFR_RNDN);
        mpfr_cbrt(r25661, r25660, MPFR_RNDN);
        mpfr_mul(r25662, r25657, r25661, MPFR_RNDN);
        mpfr_mul(r25663, r25635, r25633, MPFR_RNDN);
        mpfr_neg(r25664, r25632, MPFR_RNDN);
        mpfr_mul(r25665, r25663, r25664, MPFR_RNDN);
        mpfr_add(r25666, r25629, r25629, MPFR_RNDN);
        mpfr_div(r25667, r25665, r25666, MPFR_RNDN);
        mpfr_div(r25668, r25667, r25644, MPFR_RNDN);
        if (mpfr_get_si(r25647, MPFR_RNDN)) { mpfr_set(r25669, r25662, MPFR_RNDN); } else { mpfr_set(r25669, r25668, MPFR_RNDN); };
        if (mpfr_get_si(r25631, MPFR_RNDN)) { mpfr_set(r25670, r25645, MPFR_RNDN); } else { mpfr_set(r25670, r25669, MPFR_RNDN); };
        return mpfr_get_d(r25670, MPFR_RNDN);
}

