#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 r25524 = b;
        float r25525 = -r25524;
        float r25526 = r25524 * r25524;
        float r25527 = 4;
        float r25528 = a;
        float r25529 = r25527 * r25528;
        float r25530 = c;
        float r25531 = r25529 * r25530;
        float r25532 = r25526 - r25531;
        float r25533 = sqrt(r25532);
        float r25534 = r25525 + r25533;
        float r25535 = 2;
        float r25536 = r25535 * r25528;
        float r25537 = r25534 / r25536;
        return r25537;
}

double f_id(double a, double b, double c) {
        double r25538 = b;
        double r25539 = -r25538;
        double r25540 = r25538 * r25538;
        double r25541 = 4;
        double r25542 = a;
        double r25543 = r25541 * r25542;
        double r25544 = c;
        double r25545 = r25543 * r25544;
        double r25546 = r25540 - r25545;
        double r25547 = sqrt(r25546);
        double r25548 = r25539 + r25547;
        double r25549 = 2;
        double r25550 = r25549 * r25542;
        double r25551 = r25548 / r25550;
        return r25551;
}


double f_of(float a, float b, float c) {
        float r25552 = b;
        float r25553 = -r25552;
        float r25554 = -2.986941235400599e+16;
        bool r25555 = r25553 <= r25554;
        float r25556 = c;
        float r25557 = r25556 / r25552;
        float r25558 = -r25557;
        float r25559 = -9.59521241579565e-64;
        bool r25560 = r25553 <= r25559;
        float r25561 = a;
        float r25562 = 4;
        float r25563 = r25561 * r25562;
        float r25564 = r25563 * r25556;
        float r25565 = r25552 * r25552;
        float r25566 = r25565 - r25564;
        float r25567 = sqrt(r25566);
        float r25568 = r25553 - r25567;
        float r25569 = r25564 / r25568;
        float r25570 = 2;
        float r25571 = r25561 * r25570;
        float r25572 = r25569 / r25571;
        float r25573 = 1.403904134629837e+65;
        bool r25574 = r25553 <= r25573;
        float r25575 = 1;
        float r25576 = r25575 / r25571;
        float r25577 = r25553 + r25567;
        float r25578 = r25576 * r25577;
        float r25579 = r25553 / r25561;
        float r25580 = r25574 ? r25578 : r25579;
        float r25581 = r25560 ? r25572 : r25580;
        float r25582 = r25555 ? r25558 : r25581;
        return r25582;
}

double f_od(double a, double b, double c) {
        double r25583 = b;
        double r25584 = -r25583;
        double r25585 = -2.986941235400599e+16;
        bool r25586 = r25584 <= r25585;
        double r25587 = c;
        double r25588 = r25587 / r25583;
        double r25589 = -r25588;
        double r25590 = -9.59521241579565e-64;
        bool r25591 = r25584 <= r25590;
        double r25592 = a;
        double r25593 = 4;
        double r25594 = r25592 * r25593;
        double r25595 = r25594 * r25587;
        double r25596 = r25583 * r25583;
        double r25597 = r25596 - r25595;
        double r25598 = sqrt(r25597);
        double r25599 = r25584 - r25598;
        double r25600 = r25595 / r25599;
        double r25601 = 2;
        double r25602 = r25592 * r25601;
        double r25603 = r25600 / r25602;
        double r25604 = 1.403904134629837e+65;
        bool r25605 = r25584 <= r25604;
        double r25606 = 1;
        double r25607 = r25606 / r25602;
        double r25608 = r25584 + r25598;
        double r25609 = r25607 * r25608;
        double r25610 = r25584 / r25592;
        double r25611 = r25605 ? r25609 : r25610;
        double r25612 = r25591 ? r25603 : r25611;
        double r25613 = r25586 ? r25589 : r25612;
        return r25613;
}

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 r25614, r25615, r25616, r25617, r25618, r25619, r25620, r25621, r25622, r25623, r25624, r25625, r25626, r25627;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25614);
        mpfr_init(r25615);
        mpfr_init(r25616);
        mpfr_init_set_str(r25617, "4", 10, MPFR_RNDN);
        mpfr_init(r25618);
        mpfr_init(r25619);
        mpfr_init(r25620);
        mpfr_init(r25621);
        mpfr_init(r25622);
        mpfr_init(r25623);
        mpfr_init(r25624);
        mpfr_init_set_str(r25625, "2", 10, MPFR_RNDN);
        mpfr_init(r25626);
        mpfr_init(r25627);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r25614, b, MPFR_RNDN);
        mpfr_neg(r25615, r25614, MPFR_RNDN);
        mpfr_mul(r25616, r25614, r25614, MPFR_RNDN);
        ;
        mpfr_set_d(r25618, a, MPFR_RNDN);
        mpfr_mul(r25619, r25617, r25618, MPFR_RNDN);
        mpfr_set_d(r25620, c, MPFR_RNDN);
        mpfr_mul(r25621, r25619, r25620, MPFR_RNDN);
        mpfr_sub(r25622, r25616, r25621, MPFR_RNDN);
        mpfr_sqrt(r25623, r25622, MPFR_RNDN);
        mpfr_add(r25624, r25615, r25623, MPFR_RNDN);
        ;
        mpfr_mul(r25626, r25625, r25618, MPFR_RNDN);
        mpfr_div(r25627, r25624, r25626, MPFR_RNDN);
        return mpfr_get_d(r25627, MPFR_RNDN);
}

static mpfr_t 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, r25658;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25628);
        mpfr_init(r25629);
        mpfr_init_set_str(r25630, "-2.986941235400599e+16", 10, MPFR_RNDN);
        mpfr_init(r25631);
        mpfr_init(r25632);
        mpfr_init(r25633);
        mpfr_init(r25634);
        mpfr_init_set_str(r25635, "-9.59521241579565e-64", 10, MPFR_RNDN);
        mpfr_init(r25636);
        mpfr_init(r25637);
        mpfr_init_set_str(r25638, "4", 10, MPFR_RNDN);
        mpfr_init(r25639);
        mpfr_init(r25640);
        mpfr_init(r25641);
        mpfr_init(r25642);
        mpfr_init(r25643);
        mpfr_init(r25644);
        mpfr_init(r25645);
        mpfr_init_set_str(r25646, "2", 10, MPFR_RNDN);
        mpfr_init(r25647);
        mpfr_init(r25648);
        mpfr_init_set_str(r25649, "1.403904134629837e+65", 10, MPFR_RNDN);
        mpfr_init(r25650);
        mpfr_init_set_str(r25651, "1", 10, MPFR_RNDN);
        mpfr_init(r25652);
        mpfr_init(r25653);
        mpfr_init(r25654);
        mpfr_init(r25655);
        mpfr_init(r25656);
        mpfr_init(r25657);
        mpfr_init(r25658);
}

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

static mpfr_t 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25659);
        mpfr_init(r25660);
        mpfr_init_set_str(r25661, "-2.986941235400599e+16", 10, MPFR_RNDN);
        mpfr_init(r25662);
        mpfr_init(r25663);
        mpfr_init(r25664);
        mpfr_init(r25665);
        mpfr_init_set_str(r25666, "-9.59521241579565e-64", 10, MPFR_RNDN);
        mpfr_init(r25667);
        mpfr_init(r25668);
        mpfr_init_set_str(r25669, "4", 10, MPFR_RNDN);
        mpfr_init(r25670);
        mpfr_init(r25671);
        mpfr_init(r25672);
        mpfr_init(r25673);
        mpfr_init(r25674);
        mpfr_init(r25675);
        mpfr_init(r25676);
        mpfr_init_set_str(r25677, "2", 10, MPFR_RNDN);
        mpfr_init(r25678);
        mpfr_init(r25679);
        mpfr_init_set_str(r25680, "1.403904134629837e+65", 10, MPFR_RNDN);
        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);
}

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

