#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "The quadratic formula (r2)";

double f_if(float a, float b, float c) {
        float r20948 = b;
        float r20949 = -r20948;
        float r20950 = r20948 * r20948;
        float r20951 = 4;
        float r20952 = a;
        float r20953 = c;
        float r20954 = r20952 * r20953;
        float r20955 = r20951 * r20954;
        float r20956 = r20950 - r20955;
        float r20957 = sqrt(r20956);
        float r20958 = r20949 - r20957;
        float r20959 = 2;
        float r20960 = r20959 * r20952;
        float r20961 = r20958 / r20960;
        return r20961;
}

double f_id(double a, double b, double c) {
        double r20962 = b;
        double r20963 = -r20962;
        double r20964 = r20962 * r20962;
        double r20965 = 4;
        double r20966 = a;
        double r20967 = c;
        double r20968 = r20966 * r20967;
        double r20969 = r20965 * r20968;
        double r20970 = r20964 - r20969;
        double r20971 = sqrt(r20970);
        double r20972 = r20963 - r20971;
        double r20973 = 2;
        double r20974 = r20973 * r20966;
        double r20975 = r20972 / r20974;
        return r20975;
}


double f_of(float a, float b, float c) {
        float r20976 = b;
        float r20977 = -1.2837720874309055e-105;
        bool r20978 = r20976 <= r20977;
        float r20979 = 4;
        float r20980 = c;
        float r20981 = r20979 * r20980;
        float r20982 = -r20976;
        float r20983 = r20982 - r20976;
        float r20984 = a;
        float r20985 = r20984 / r20976;
        float r20986 = r20980 + r20980;
        float r20987 = r20985 * r20986;
        float r20988 = r20983 + r20987;
        float r20989 = r20981 / r20988;
        float r20990 = 2;
        float r20991 = r20989 / r20990;
        float r20992 = 1.1498155483847317e+81;
        bool r20993 = r20976 <= r20992;
        float r20994 = r20976 * r20976;
        float r20995 = r20984 * r20980;
        float r20996 = r20979 * r20995;
        float r20997 = r20994 - r20996;
        float r20998 = sqrt(r20997);
        float r20999 = r20982 - r20998;
        float r21000 = 1;
        float r21001 = r20990 * r20984;
        float r21002 = r21000 / r21001;
        float r21003 = r20999 * r21002;
        float r21004 = r20982 / r20984;
        float r21005 = r20993 ? r21003 : r21004;
        float r21006 = r20978 ? r20991 : r21005;
        return r21006;
}

double f_od(double a, double b, double c) {
        double r21007 = b;
        double r21008 = -1.2837720874309055e-105;
        bool r21009 = r21007 <= r21008;
        double r21010 = 4;
        double r21011 = c;
        double r21012 = r21010 * r21011;
        double r21013 = -r21007;
        double r21014 = r21013 - r21007;
        double r21015 = a;
        double r21016 = r21015 / r21007;
        double r21017 = r21011 + r21011;
        double r21018 = r21016 * r21017;
        double r21019 = r21014 + r21018;
        double r21020 = r21012 / r21019;
        double r21021 = 2;
        double r21022 = r21020 / r21021;
        double r21023 = 1.1498155483847317e+81;
        bool r21024 = r21007 <= r21023;
        double r21025 = r21007 * r21007;
        double r21026 = r21015 * r21011;
        double r21027 = r21010 * r21026;
        double r21028 = r21025 - r21027;
        double r21029 = sqrt(r21028);
        double r21030 = r21013 - r21029;
        double r21031 = 1;
        double r21032 = r21021 * r21015;
        double r21033 = r21031 / r21032;
        double r21034 = r21030 * r21033;
        double r21035 = r21013 / r21015;
        double r21036 = r21024 ? r21034 : r21035;
        double r21037 = r21009 ? r21022 : r21036;
        return r21037;
}

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 r21038, r21039, r21040, r21041, r21042, r21043, r21044, r21045, r21046, r21047, r21048, r21049, r21050, r21051;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r21038);
        mpfr_init(r21039);
        mpfr_init(r21040);
        mpfr_init_set_str(r21041, "4", 10, MPFR_RNDN);
        mpfr_init(r21042);
        mpfr_init(r21043);
        mpfr_init(r21044);
        mpfr_init(r21045);
        mpfr_init(r21046);
        mpfr_init(r21047);
        mpfr_init(r21048);
        mpfr_init_set_str(r21049, "2", 10, MPFR_RNDN);
        mpfr_init(r21050);
        mpfr_init(r21051);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r21038, b, MPFR_RNDN);
        mpfr_neg(r21039, r21038, MPFR_RNDN);
        mpfr_mul(r21040, r21038, r21038, MPFR_RNDN);
        ;
        mpfr_set_d(r21042, a, MPFR_RNDN);
        mpfr_set_d(r21043, c, MPFR_RNDN);
        mpfr_mul(r21044, r21042, r21043, MPFR_RNDN);
        mpfr_mul(r21045, r21041, r21044, MPFR_RNDN);
        mpfr_sub(r21046, r21040, r21045, MPFR_RNDN);
        mpfr_sqrt(r21047, r21046, MPFR_RNDN);
        mpfr_sub(r21048, r21039, r21047, MPFR_RNDN);
        ;
        mpfr_mul(r21050, r21049, r21042, MPFR_RNDN);
        mpfr_div(r21051, r21048, r21050, MPFR_RNDN);
        return mpfr_get_d(r21051, MPFR_RNDN);
}

static mpfr_t r21052, r21053, r21054, r21055, r21056, r21057, r21058, r21059, r21060, r21061, r21062, r21063, r21064, r21065, r21066, r21067, r21068, r21069, r21070, r21071, r21072, r21073, r21074, r21075, r21076, r21077, r21078, r21079, r21080, r21081, r21082;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r21052);
        mpfr_init_set_str(r21053, "-1.2837720874309055e-105", 10, MPFR_RNDN);
        mpfr_init(r21054);
        mpfr_init_set_str(r21055, "4", 10, MPFR_RNDN);
        mpfr_init(r21056);
        mpfr_init(r21057);
        mpfr_init(r21058);
        mpfr_init(r21059);
        mpfr_init(r21060);
        mpfr_init(r21061);
        mpfr_init(r21062);
        mpfr_init(r21063);
        mpfr_init(r21064);
        mpfr_init(r21065);
        mpfr_init_set_str(r21066, "2", 10, MPFR_RNDN);
        mpfr_init(r21067);
        mpfr_init_set_str(r21068, "1.1498155483847317e+81", 10, MPFR_RNDN);
        mpfr_init(r21069);
        mpfr_init(r21070);
        mpfr_init(r21071);
        mpfr_init(r21072);
        mpfr_init(r21073);
        mpfr_init(r21074);
        mpfr_init(r21075);
        mpfr_init_set_str(r21076, "1", 10, MPFR_RNDN);
        mpfr_init(r21077);
        mpfr_init(r21078);
        mpfr_init(r21079);
        mpfr_init(r21080);
        mpfr_init(r21081);
        mpfr_init(r21082);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r21052, b, MPFR_RNDN);
        ;
        mpfr_set_si(r21054, mpfr_cmp(r21052, r21053) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r21056, c, MPFR_RNDN);
        mpfr_mul(r21057, r21055, r21056, MPFR_RNDN);
        mpfr_neg(r21058, r21052, MPFR_RNDN);
        mpfr_sub(r21059, r21058, r21052, MPFR_RNDN);
        mpfr_set_d(r21060, a, MPFR_RNDN);
        mpfr_div(r21061, r21060, r21052, MPFR_RNDN);
        mpfr_add(r21062, r21056, r21056, MPFR_RNDN);
        mpfr_mul(r21063, r21061, r21062, MPFR_RNDN);
        mpfr_add(r21064, r21059, r21063, MPFR_RNDN);
        mpfr_div(r21065, r21057, r21064, MPFR_RNDN);
        ;
        mpfr_div(r21067, r21065, r21066, MPFR_RNDN);
        ;
        mpfr_set_si(r21069, mpfr_cmp(r21052, r21068) <= 0, MPFR_RNDN);
        mpfr_mul(r21070, r21052, r21052, MPFR_RNDN);
        mpfr_mul(r21071, r21060, r21056, MPFR_RNDN);
        mpfr_mul(r21072, r21055, r21071, MPFR_RNDN);
        mpfr_sub(r21073, r21070, r21072, MPFR_RNDN);
        mpfr_sqrt(r21074, r21073, MPFR_RNDN);
        mpfr_sub(r21075, r21058, r21074, MPFR_RNDN);
        ;
        mpfr_mul(r21077, r21066, r21060, MPFR_RNDN);
        mpfr_div(r21078, r21076, r21077, MPFR_RNDN);
        mpfr_mul(r21079, r21075, r21078, MPFR_RNDN);
        mpfr_div(r21080, r21058, r21060, MPFR_RNDN);
        if (mpfr_get_si(r21069, MPFR_RNDN)) { mpfr_set(r21081, r21079, MPFR_RNDN); } else { mpfr_set(r21081, r21080, MPFR_RNDN); };
        if (mpfr_get_si(r21054, MPFR_RNDN)) { mpfr_set(r21082, r21067, MPFR_RNDN); } else { mpfr_set(r21082, r21081, MPFR_RNDN); };
        return mpfr_get_d(r21082, MPFR_RNDN);
}

static mpfr_t r21083, r21084, r21085, r21086, r21087, r21088, r21089, r21090, r21091, r21092, r21093, r21094, r21095, r21096, r21097, r21098, r21099, r21100, r21101, r21102, r21103, r21104, r21105, r21106, r21107, r21108, r21109, r21110, r21111, r21112, r21113;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r21083);
        mpfr_init_set_str(r21084, "-1.2837720874309055e-105", 10, MPFR_RNDN);
        mpfr_init(r21085);
        mpfr_init_set_str(r21086, "4", 10, MPFR_RNDN);
        mpfr_init(r21087);
        mpfr_init(r21088);
        mpfr_init(r21089);
        mpfr_init(r21090);
        mpfr_init(r21091);
        mpfr_init(r21092);
        mpfr_init(r21093);
        mpfr_init(r21094);
        mpfr_init(r21095);
        mpfr_init(r21096);
        mpfr_init_set_str(r21097, "2", 10, MPFR_RNDN);
        mpfr_init(r21098);
        mpfr_init_set_str(r21099, "1.1498155483847317e+81", 10, MPFR_RNDN);
        mpfr_init(r21100);
        mpfr_init(r21101);
        mpfr_init(r21102);
        mpfr_init(r21103);
        mpfr_init(r21104);
        mpfr_init(r21105);
        mpfr_init(r21106);
        mpfr_init_set_str(r21107, "1", 10, MPFR_RNDN);
        mpfr_init(r21108);
        mpfr_init(r21109);
        mpfr_init(r21110);
        mpfr_init(r21111);
        mpfr_init(r21112);
        mpfr_init(r21113);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r21083, b, MPFR_RNDN);
        ;
        mpfr_set_si(r21085, mpfr_cmp(r21083, r21084) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r21087, c, MPFR_RNDN);
        mpfr_mul(r21088, r21086, r21087, MPFR_RNDN);
        mpfr_neg(r21089, r21083, MPFR_RNDN);
        mpfr_sub(r21090, r21089, r21083, MPFR_RNDN);
        mpfr_set_d(r21091, a, MPFR_RNDN);
        mpfr_div(r21092, r21091, r21083, MPFR_RNDN);
        mpfr_add(r21093, r21087, r21087, MPFR_RNDN);
        mpfr_mul(r21094, r21092, r21093, MPFR_RNDN);
        mpfr_add(r21095, r21090, r21094, MPFR_RNDN);
        mpfr_div(r21096, r21088, r21095, MPFR_RNDN);
        ;
        mpfr_div(r21098, r21096, r21097, MPFR_RNDN);
        ;
        mpfr_set_si(r21100, mpfr_cmp(r21083, r21099) <= 0, MPFR_RNDN);
        mpfr_mul(r21101, r21083, r21083, MPFR_RNDN);
        mpfr_mul(r21102, r21091, r21087, MPFR_RNDN);
        mpfr_mul(r21103, r21086, r21102, MPFR_RNDN);
        mpfr_sub(r21104, r21101, r21103, MPFR_RNDN);
        mpfr_sqrt(r21105, r21104, MPFR_RNDN);
        mpfr_sub(r21106, r21089, r21105, MPFR_RNDN);
        ;
        mpfr_mul(r21108, r21097, r21091, MPFR_RNDN);
        mpfr_div(r21109, r21107, r21108, MPFR_RNDN);
        mpfr_mul(r21110, r21106, r21109, MPFR_RNDN);
        mpfr_div(r21111, r21089, r21091, MPFR_RNDN);
        if (mpfr_get_si(r21100, MPFR_RNDN)) { mpfr_set(r21112, r21110, MPFR_RNDN); } else { mpfr_set(r21112, r21111, MPFR_RNDN); };
        if (mpfr_get_si(r21085, MPFR_RNDN)) { mpfr_set(r21113, r21098, MPFR_RNDN); } else { mpfr_set(r21113, r21112, MPFR_RNDN); };
        return mpfr_get_d(r21113, MPFR_RNDN);
}

