#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 r25493 = b;
        float r25494 = -r25493;
        float r25495 = r25493 * r25493;
        float r25496 = 4;
        float r25497 = a;
        float r25498 = r25496 * r25497;
        float r25499 = c;
        float r25500 = r25498 * r25499;
        float r25501 = r25495 - r25500;
        float r25502 = sqrt(r25501);
        float r25503 = r25494 + r25502;
        float r25504 = 2;
        float r25505 = r25504 * r25497;
        float r25506 = r25503 / r25505;
        return r25506;
}

double f_id(double a, double b, double c) {
        double r25507 = b;
        double r25508 = -r25507;
        double r25509 = r25507 * r25507;
        double r25510 = 4;
        double r25511 = a;
        double r25512 = r25510 * r25511;
        double r25513 = c;
        double r25514 = r25512 * r25513;
        double r25515 = r25509 - r25514;
        double r25516 = sqrt(r25515);
        double r25517 = r25508 + r25516;
        double r25518 = 2;
        double r25519 = r25518 * r25511;
        double r25520 = r25517 / r25519;
        return r25520;
}


double f_of(float a, float b, float c) {
        float r25521 = b;
        float r25522 = -1.335093396160859e+154;
        bool r25523 = r25521 <= r25522;
        float r25524 = -1/2;
        float r25525 = a;
        float r25526 = r25521 / r25525;
        float r25527 = r25524 * r25526;
        float r25528 = 1.6229091177296145e-140;
        bool r25529 = r25521 <= r25528;
        float r25530 = 4;
        float r25531 = r25530 * r25525;
        float r25532 = c;
        float r25533 = -r25532;
        float r25534 = r25521 * r25521;
        float r25535 = fma(r25531, r25533, r25534);
        float r25536 = sqrt(r25535);
        float r25537 = 2;
        float r25538 = r25537 * r25525;
        float r25539 = r25536 / r25538;
        float r25540 = r25521 / r25538;
        float r25541 = r25539 - r25540;
        float r25542 = 3741376019305.5195;
        bool r25543 = r25521 <= r25542;
        float r25544 = r25530 * r25533;
        float r25545 = 1;
        float r25546 = r25545 / r25537;
        float r25547 = r25544 * r25546;
        float r25548 = fma(r25533, r25531, r25534);
        float r25549 = sqrt(r25548);
        float r25550 = r25549 + r25521;
        float r25551 = r25547 / r25550;
        float r25552 = expm1(r25551);
        float r25553 = log1p(r25552);
        float r25554 = -r25530;
        float r25555 = r25554 / r25537;
        float r25556 = r25521 + r25521;
        float r25557 = r25532 / r25556;
        float r25558 = r25555 * r25557;
        float r25559 = r25543 ? r25553 : r25558;
        float r25560 = r25529 ? r25541 : r25559;
        float r25561 = r25523 ? r25527 : r25560;
        return r25561;
}

double f_od(double a, double b, double c) {
        double r25562 = b;
        double r25563 = -1.335093396160859e+154;
        bool r25564 = r25562 <= r25563;
        double r25565 = -1/2;
        double r25566 = a;
        double r25567 = r25562 / r25566;
        double r25568 = r25565 * r25567;
        double r25569 = 1.6229091177296145e-140;
        bool r25570 = r25562 <= r25569;
        double r25571 = 4;
        double r25572 = r25571 * r25566;
        double r25573 = c;
        double r25574 = -r25573;
        double r25575 = r25562 * r25562;
        double r25576 = fma(r25572, r25574, r25575);
        double r25577 = sqrt(r25576);
        double r25578 = 2;
        double r25579 = r25578 * r25566;
        double r25580 = r25577 / r25579;
        double r25581 = r25562 / r25579;
        double r25582 = r25580 - r25581;
        double r25583 = 3741376019305.5195;
        bool r25584 = r25562 <= r25583;
        double r25585 = r25571 * r25574;
        double r25586 = 1;
        double r25587 = r25586 / r25578;
        double r25588 = r25585 * r25587;
        double r25589 = fma(r25574, r25572, r25575);
        double r25590 = sqrt(r25589);
        double r25591 = r25590 + r25562;
        double r25592 = r25588 / r25591;
        double r25593 = expm1(r25592);
        double r25594 = log1p(r25593);
        double r25595 = -r25571;
        double r25596 = r25595 / r25578;
        double r25597 = r25562 + r25562;
        double r25598 = r25573 / r25597;
        double r25599 = r25596 * r25598;
        double r25600 = r25584 ? r25594 : r25599;
        double r25601 = r25570 ? r25582 : r25600;
        double r25602 = r25564 ? r25568 : r25601;
        return r25602;
}

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 r25603, r25604, r25605, r25606, r25607, r25608, r25609, r25610, r25611, r25612, r25613, r25614, r25615, r25616;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25603);
        mpfr_init(r25604);
        mpfr_init(r25605);
        mpfr_init_set_str(r25606, "4", 10, MPFR_RNDN);
        mpfr_init(r25607);
        mpfr_init(r25608);
        mpfr_init(r25609);
        mpfr_init(r25610);
        mpfr_init(r25611);
        mpfr_init(r25612);
        mpfr_init(r25613);
        mpfr_init_set_str(r25614, "2", 10, MPFR_RNDN);
        mpfr_init(r25615);
        mpfr_init(r25616);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r25603, b, MPFR_RNDN);
        mpfr_neg(r25604, r25603, MPFR_RNDN);
        mpfr_mul(r25605, r25603, r25603, MPFR_RNDN);
        ;
        mpfr_set_d(r25607, a, MPFR_RNDN);
        mpfr_mul(r25608, r25606, r25607, MPFR_RNDN);
        mpfr_set_d(r25609, c, MPFR_RNDN);
        mpfr_mul(r25610, r25608, r25609, MPFR_RNDN);
        mpfr_sub(r25611, r25605, r25610, MPFR_RNDN);
        mpfr_sqrt(r25612, r25611, MPFR_RNDN);
        mpfr_add(r25613, r25604, r25612, MPFR_RNDN);
        ;
        mpfr_mul(r25615, r25614, r25607, MPFR_RNDN);
        mpfr_div(r25616, r25613, r25615, MPFR_RNDN);
        return mpfr_get_d(r25616, MPFR_RNDN);
}

static mpfr_t r25617, r25618, r25619, r25620, r25621, r25622, r25623, r25624, r25625, r25626, r25627, r25628, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25617);
        mpfr_init_set_str(r25618, "-1.335093396160859e+154", 10, MPFR_RNDN);
        mpfr_init(r25619);
        mpfr_init_set_str(r25620, "-1/2", 10, MPFR_RNDN);
        mpfr_init(r25621);
        mpfr_init(r25622);
        mpfr_init(r25623);
        mpfr_init_set_str(r25624, "1.6229091177296145e-140", 10, MPFR_RNDN);
        mpfr_init(r25625);
        mpfr_init_set_str(r25626, "4", 10, MPFR_RNDN);
        mpfr_init(r25627);
        mpfr_init(r25628);
        mpfr_init(r25629);
        mpfr_init(r25630);
        mpfr_init(r25631);
        mpfr_init(r25632);
        mpfr_init_set_str(r25633, "2", 10, MPFR_RNDN);
        mpfr_init(r25634);
        mpfr_init(r25635);
        mpfr_init(r25636);
        mpfr_init(r25637);
        mpfr_init_set_str(r25638, "3741376019305.5195", 10, MPFR_RNDN);
        mpfr_init(r25639);
        mpfr_init(r25640);
        mpfr_init_set_str(r25641, "1", 10, MPFR_RNDN);
        mpfr_init(r25642);
        mpfr_init(r25643);
        mpfr_init(r25644);
        mpfr_init(r25645);
        mpfr_init(r25646);
        mpfr_init(r25647);
        mpfr_init(r25648);
        mpfr_init(r25649);
        mpfr_init(r25650);
        mpfr_init(r25651);
        mpfr_init(r25652);
        mpfr_init(r25653);
        mpfr_init(r25654);
        mpfr_init(r25655);
        mpfr_init(r25656);
        mpfr_init(r25657);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r25617, b, MPFR_RNDN);
        ;
        mpfr_set_si(r25619, mpfr_cmp(r25617, r25618) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r25621, a, MPFR_RNDN);
        mpfr_div(r25622, r25617, r25621, MPFR_RNDN);
        mpfr_mul(r25623, r25620, r25622, MPFR_RNDN);
        ;
        mpfr_set_si(r25625, mpfr_cmp(r25617, r25624) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r25627, r25626, r25621, MPFR_RNDN);
        mpfr_set_d(r25628, c, MPFR_RNDN);
        mpfr_neg(r25629, r25628, MPFR_RNDN);
        mpfr_mul(r25630, r25617, r25617, MPFR_RNDN);
        mpfr_fma(r25631, r25627, r25629, r25630, MPFR_RNDN);
        mpfr_sqrt(r25632, r25631, MPFR_RNDN);
        ;
        mpfr_mul(r25634, r25633, r25621, MPFR_RNDN);
        mpfr_div(r25635, r25632, r25634, MPFR_RNDN);
        mpfr_div(r25636, r25617, r25634, MPFR_RNDN);
        mpfr_sub(r25637, r25635, r25636, MPFR_RNDN);
        ;
        mpfr_set_si(r25639, mpfr_cmp(r25617, r25638) <= 0, MPFR_RNDN);
        mpfr_mul(r25640, r25626, r25629, MPFR_RNDN);
        ;
        mpfr_div(r25642, r25641, r25633, MPFR_RNDN);
        mpfr_mul(r25643, r25640, r25642, MPFR_RNDN);
        mpfr_fma(r25644, r25629, r25627, r25630, MPFR_RNDN);
        mpfr_sqrt(r25645, r25644, MPFR_RNDN);
        mpfr_add(r25646, r25645, r25617, MPFR_RNDN);
        mpfr_div(r25647, r25643, r25646, MPFR_RNDN);
        mpfr_expm1(r25648, r25647, MPFR_RNDN);
        mpfr_log1p(r25649, r25648, MPFR_RNDN);
        mpfr_neg(r25650, r25626, MPFR_RNDN);
        mpfr_div(r25651, r25650, r25633, MPFR_RNDN);
        mpfr_add(r25652, r25617, r25617, MPFR_RNDN);
        mpfr_div(r25653, r25628, r25652, MPFR_RNDN);
        mpfr_mul(r25654, r25651, r25653, MPFR_RNDN);
        if (mpfr_get_si(r25639, MPFR_RNDN)) { mpfr_set(r25655, r25649, MPFR_RNDN); } else { mpfr_set(r25655, r25654, MPFR_RNDN); };
        if (mpfr_get_si(r25625, MPFR_RNDN)) { mpfr_set(r25656, r25637, MPFR_RNDN); } else { mpfr_set(r25656, r25655, MPFR_RNDN); };
        if (mpfr_get_si(r25619, MPFR_RNDN)) { mpfr_set(r25657, r25623, MPFR_RNDN); } else { mpfr_set(r25657, r25656, MPFR_RNDN); };
        return mpfr_get_d(r25657, MPFR_RNDN);
}

static mpfr_t r25658, r25659, r25660, r25661, r25662, r25663, r25664, r25665, r25666, r25667, r25668, r25669, r25670, r25671, r25672, r25673, r25674, r25675, r25676, r25677, r25678, r25679, r25680, r25681, r25682, r25683, r25684, r25685, r25686, r25687, r25688, r25689, r25690, r25691, r25692, r25693, r25694, r25695, r25696, r25697, r25698;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25658);
        mpfr_init_set_str(r25659, "-1.335093396160859e+154", 10, MPFR_RNDN);
        mpfr_init(r25660);
        mpfr_init_set_str(r25661, "-1/2", 10, MPFR_RNDN);
        mpfr_init(r25662);
        mpfr_init(r25663);
        mpfr_init(r25664);
        mpfr_init_set_str(r25665, "1.6229091177296145e-140", 10, MPFR_RNDN);
        mpfr_init(r25666);
        mpfr_init_set_str(r25667, "4", 10, MPFR_RNDN);
        mpfr_init(r25668);
        mpfr_init(r25669);
        mpfr_init(r25670);
        mpfr_init(r25671);
        mpfr_init(r25672);
        mpfr_init(r25673);
        mpfr_init_set_str(r25674, "2", 10, MPFR_RNDN);
        mpfr_init(r25675);
        mpfr_init(r25676);
        mpfr_init(r25677);
        mpfr_init(r25678);
        mpfr_init_set_str(r25679, "3741376019305.5195", 10, MPFR_RNDN);
        mpfr_init(r25680);
        mpfr_init(r25681);
        mpfr_init_set_str(r25682, "1", 10, MPFR_RNDN);
        mpfr_init(r25683);
        mpfr_init(r25684);
        mpfr_init(r25685);
        mpfr_init(r25686);
        mpfr_init(r25687);
        mpfr_init(r25688);
        mpfr_init(r25689);
        mpfr_init(r25690);
        mpfr_init(r25691);
        mpfr_init(r25692);
        mpfr_init(r25693);
        mpfr_init(r25694);
        mpfr_init(r25695);
        mpfr_init(r25696);
        mpfr_init(r25697);
        mpfr_init(r25698);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r25658, b, MPFR_RNDN);
        ;
        mpfr_set_si(r25660, mpfr_cmp(r25658, r25659) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r25662, a, MPFR_RNDN);
        mpfr_div(r25663, r25658, r25662, MPFR_RNDN);
        mpfr_mul(r25664, r25661, r25663, MPFR_RNDN);
        ;
        mpfr_set_si(r25666, mpfr_cmp(r25658, r25665) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r25668, r25667, r25662, MPFR_RNDN);
        mpfr_set_d(r25669, c, MPFR_RNDN);
        mpfr_neg(r25670, r25669, MPFR_RNDN);
        mpfr_mul(r25671, r25658, r25658, MPFR_RNDN);
        mpfr_fma(r25672, r25668, r25670, r25671, MPFR_RNDN);
        mpfr_sqrt(r25673, r25672, MPFR_RNDN);
        ;
        mpfr_mul(r25675, r25674, r25662, MPFR_RNDN);
        mpfr_div(r25676, r25673, r25675, MPFR_RNDN);
        mpfr_div(r25677, r25658, r25675, MPFR_RNDN);
        mpfr_sub(r25678, r25676, r25677, MPFR_RNDN);
        ;
        mpfr_set_si(r25680, mpfr_cmp(r25658, r25679) <= 0, MPFR_RNDN);
        mpfr_mul(r25681, r25667, r25670, MPFR_RNDN);
        ;
        mpfr_div(r25683, r25682, r25674, MPFR_RNDN);
        mpfr_mul(r25684, r25681, r25683, MPFR_RNDN);
        mpfr_fma(r25685, r25670, r25668, r25671, MPFR_RNDN);
        mpfr_sqrt(r25686, r25685, MPFR_RNDN);
        mpfr_add(r25687, r25686, r25658, MPFR_RNDN);
        mpfr_div(r25688, r25684, r25687, MPFR_RNDN);
        mpfr_expm1(r25689, r25688, MPFR_RNDN);
        mpfr_log1p(r25690, r25689, MPFR_RNDN);
        mpfr_neg(r25691, r25667, MPFR_RNDN);
        mpfr_div(r25692, r25691, r25674, MPFR_RNDN);
        mpfr_add(r25693, r25658, r25658, MPFR_RNDN);
        mpfr_div(r25694, r25669, r25693, MPFR_RNDN);
        mpfr_mul(r25695, r25692, r25694, MPFR_RNDN);
        if (mpfr_get_si(r25680, MPFR_RNDN)) { mpfr_set(r25696, r25690, MPFR_RNDN); } else { mpfr_set(r25696, r25695, MPFR_RNDN); };
        if (mpfr_get_si(r25666, MPFR_RNDN)) { mpfr_set(r25697, r25678, MPFR_RNDN); } else { mpfr_set(r25697, r25696, MPFR_RNDN); };
        if (mpfr_get_si(r25660, MPFR_RNDN)) { mpfr_set(r25698, r25664, MPFR_RNDN); } else { mpfr_set(r25698, r25697, MPFR_RNDN); };
        return mpfr_get_d(r25698, MPFR_RNDN);
}

