#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 r8944 = b;
        float r8945 = -r8944;
        float r8946 = r8944 * r8944;
        float r8947 = 4.0f;
        float r8948 = a;
        float r8949 = r8947 * r8948;
        float r8950 = c;
        float r8951 = r8949 * r8950;
        float r8952 = r8946 - r8951;
        float r8953 = sqrt(r8952);
        float r8954 = r8945 + r8953;
        float r8955 = 2.0f;
        float r8956 = r8955 * r8948;
        float r8957 = r8954 / r8956;
        return r8957;
}

double f_id(double a, double b, double c) {
        double r8958 = b;
        double r8959 = -r8958;
        double r8960 = r8958 * r8958;
        double r8961 = 4.0;
        double r8962 = a;
        double r8963 = r8961 * r8962;
        double r8964 = c;
        double r8965 = r8963 * r8964;
        double r8966 = r8960 - r8965;
        double r8967 = sqrt(r8966);
        double r8968 = r8959 + r8967;
        double r8969 = 2.0;
        double r8970 = r8969 * r8962;
        double r8971 = r8968 / r8970;
        return r8971;
}


double f_of(float a, float b, float c) {
        float r8972 = b;
        float r8973 = -1.3338600865169524e+85f;
        bool r8974 = r8972 <= r8973;
        float r8975 = a;
        float r8976 = r8972 / r8975;
        float r8977 = -r8976;
        float r8978 = 1.5616348041811878e-106f;
        bool r8979 = r8972 <= r8978;
        float r8980 = r8972 * r8972;
        float r8981 = c;
        float r8982 = r8975 * r8981;
        float r8983 = 4.0f;
        float r8984 = r8982 * r8983;
        float r8985 = r8980 - r8984;
        float r8986 = sqrt(r8985);
        float r8987 = r8986 - r8972;
        float r8988 = 1.0f;
        float r8989 = 2.0f;
        float r8990 = r8975 * r8989;
        float r8991 = r8988 / r8990;
        float r8992 = r8987 * r8991;
        float r8993 = 2.9849414744995752e+82f;
        bool r8994 = r8972 <= r8993;
        float r8995 = -r8983;
        float r8996 = r8982 * r8995;
        float r8997 = r8996 / r8990;
        float r8998 = r8986 + r8972;
        float r8999 = r8997 / r8998;
        float r9000 = -r8981;
        float r9001 = r9000 / r8972;
        float r9002 = r8994 ? r8999 : r9001;
        float r9003 = r8979 ? r8992 : r9002;
        float r9004 = r8974 ? r8977 : r9003;
        return r9004;
}

double f_od(double a, double b, double c) {
        double r9005 = b;
        double r9006 = -1.3338600865169524e+85;
        bool r9007 = r9005 <= r9006;
        double r9008 = a;
        double r9009 = r9005 / r9008;
        double r9010 = -r9009;
        double r9011 = 1.5616348041811878e-106;
        bool r9012 = r9005 <= r9011;
        double r9013 = r9005 * r9005;
        double r9014 = c;
        double r9015 = r9008 * r9014;
        double r9016 = 4.0;
        double r9017 = r9015 * r9016;
        double r9018 = r9013 - r9017;
        double r9019 = sqrt(r9018);
        double r9020 = r9019 - r9005;
        double r9021 = 1.0;
        double r9022 = 2.0;
        double r9023 = r9008 * r9022;
        double r9024 = r9021 / r9023;
        double r9025 = r9020 * r9024;
        double r9026 = 2.9849414744995752e+82;
        bool r9027 = r9005 <= r9026;
        double r9028 = -r9016;
        double r9029 = r9015 * r9028;
        double r9030 = r9029 / r9023;
        double r9031 = r9019 + r9005;
        double r9032 = r9030 / r9031;
        double r9033 = -r9014;
        double r9034 = r9033 / r9005;
        double r9035 = r9027 ? r9032 : r9034;
        double r9036 = r9012 ? r9025 : r9035;
        double r9037 = r9007 ? r9010 : r9036;
        return r9037;
}

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 r9038, r9039, r9040, r9041, r9042, r9043, r9044, r9045, r9046, r9047, r9048, r9049, r9050, r9051;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9038);
        mpfr_init(r9039);
        mpfr_init(r9040);
        mpfr_init_set_str(r9041, "4", 10, MPFR_RNDN);
        mpfr_init(r9042);
        mpfr_init(r9043);
        mpfr_init(r9044);
        mpfr_init(r9045);
        mpfr_init(r9046);
        mpfr_init(r9047);
        mpfr_init(r9048);
        mpfr_init_set_str(r9049, "2", 10, MPFR_RNDN);
        mpfr_init(r9050);
        mpfr_init(r9051);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r9038, b, MPFR_RNDN);
        mpfr_neg(r9039, r9038, MPFR_RNDN);
        mpfr_mul(r9040, r9038, r9038, MPFR_RNDN);
        ;
        mpfr_set_d(r9042, a, MPFR_RNDN);
        mpfr_mul(r9043, r9041, r9042, MPFR_RNDN);
        mpfr_set_d(r9044, c, MPFR_RNDN);
        mpfr_mul(r9045, r9043, r9044, MPFR_RNDN);
        mpfr_sub(r9046, r9040, r9045, MPFR_RNDN);
        mpfr_sqrt(r9047, r9046, MPFR_RNDN);
        mpfr_add(r9048, r9039, r9047, MPFR_RNDN);
        ;
        mpfr_mul(r9050, r9049, r9042, MPFR_RNDN);
        mpfr_div(r9051, r9048, r9050, MPFR_RNDN);
        return mpfr_get_d(r9051, MPFR_RNDN);
}

static mpfr_t r9052, r9053, r9054, r9055, r9056, r9057, r9058, r9059, r9060, r9061, r9062, r9063, r9064, r9065, r9066, r9067, r9068, r9069, r9070, r9071, r9072, r9073, r9074, r9075, r9076, r9077, r9078, r9079, r9080, r9081, r9082, r9083, r9084;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9052);
        mpfr_init_set_str(r9053, "-1.3338600865169524e+85", 10, MPFR_RNDN);
        mpfr_init(r9054);
        mpfr_init(r9055);
        mpfr_init(r9056);
        mpfr_init(r9057);
        mpfr_init_set_str(r9058, "1.5616348041811878e-106", 10, MPFR_RNDN);
        mpfr_init(r9059);
        mpfr_init(r9060);
        mpfr_init(r9061);
        mpfr_init(r9062);
        mpfr_init_set_str(r9063, "4", 10, MPFR_RNDN);
        mpfr_init(r9064);
        mpfr_init(r9065);
        mpfr_init(r9066);
        mpfr_init(r9067);
        mpfr_init_set_str(r9068, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r9069, "2", 10, MPFR_RNDN);
        mpfr_init(r9070);
        mpfr_init(r9071);
        mpfr_init(r9072);
        mpfr_init_set_str(r9073, "2.9849414744995752e+82", 10, MPFR_RNDN);
        mpfr_init(r9074);
        mpfr_init(r9075);
        mpfr_init(r9076);
        mpfr_init(r9077);
        mpfr_init(r9078);
        mpfr_init(r9079);
        mpfr_init(r9080);
        mpfr_init(r9081);
        mpfr_init(r9082);
        mpfr_init(r9083);
        mpfr_init(r9084);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r9052, b, MPFR_RNDN);
        ;
        mpfr_set_si(r9054, mpfr_cmp(r9052, r9053) <= 0, MPFR_RNDN);
        mpfr_set_d(r9055, a, MPFR_RNDN);
        mpfr_div(r9056, r9052, r9055, MPFR_RNDN);
        mpfr_neg(r9057, r9056, MPFR_RNDN);
        ;
        mpfr_set_si(r9059, mpfr_cmp(r9052, r9058) <= 0, MPFR_RNDN);
        mpfr_mul(r9060, r9052, r9052, MPFR_RNDN);
        mpfr_set_d(r9061, c, MPFR_RNDN);
        mpfr_mul(r9062, r9055, r9061, MPFR_RNDN);
        ;
        mpfr_mul(r9064, r9062, r9063, MPFR_RNDN);
        mpfr_sub(r9065, r9060, r9064, MPFR_RNDN);
        mpfr_sqrt(r9066, r9065, MPFR_RNDN);
        mpfr_sub(r9067, r9066, r9052, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r9070, r9055, r9069, MPFR_RNDN);
        mpfr_div(r9071, r9068, r9070, MPFR_RNDN);
        mpfr_mul(r9072, r9067, r9071, MPFR_RNDN);
        ;
        mpfr_set_si(r9074, mpfr_cmp(r9052, r9073) <= 0, MPFR_RNDN);
        mpfr_neg(r9075, r9063, MPFR_RNDN);
        mpfr_mul(r9076, r9062, r9075, MPFR_RNDN);
        mpfr_div(r9077, r9076, r9070, MPFR_RNDN);
        mpfr_add(r9078, r9066, r9052, MPFR_RNDN);
        mpfr_div(r9079, r9077, r9078, MPFR_RNDN);
        mpfr_neg(r9080, r9061, MPFR_RNDN);
        mpfr_div(r9081, r9080, r9052, MPFR_RNDN);
        if (mpfr_get_si(r9074, MPFR_RNDN)) { mpfr_set(r9082, r9079, MPFR_RNDN); } else { mpfr_set(r9082, r9081, MPFR_RNDN); };
        if (mpfr_get_si(r9059, MPFR_RNDN)) { mpfr_set(r9083, r9072, MPFR_RNDN); } else { mpfr_set(r9083, r9082, MPFR_RNDN); };
        if (mpfr_get_si(r9054, MPFR_RNDN)) { mpfr_set(r9084, r9057, MPFR_RNDN); } else { mpfr_set(r9084, r9083, MPFR_RNDN); };
        return mpfr_get_d(r9084, MPFR_RNDN);
}

static mpfr_t r9085, r9086, r9087, r9088, r9089, r9090, r9091, r9092, r9093, r9094, r9095, r9096, r9097, r9098, r9099, r9100, r9101, r9102, r9103, r9104, r9105, r9106, r9107, r9108, r9109, r9110, r9111, r9112, r9113, r9114, r9115, r9116, r9117;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9085);
        mpfr_init_set_str(r9086, "-1.3338600865169524e+85", 10, MPFR_RNDN);
        mpfr_init(r9087);
        mpfr_init(r9088);
        mpfr_init(r9089);
        mpfr_init(r9090);
        mpfr_init_set_str(r9091, "1.5616348041811878e-106", 10, MPFR_RNDN);
        mpfr_init(r9092);
        mpfr_init(r9093);
        mpfr_init(r9094);
        mpfr_init(r9095);
        mpfr_init_set_str(r9096, "4", 10, MPFR_RNDN);
        mpfr_init(r9097);
        mpfr_init(r9098);
        mpfr_init(r9099);
        mpfr_init(r9100);
        mpfr_init_set_str(r9101, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r9102, "2", 10, MPFR_RNDN);
        mpfr_init(r9103);
        mpfr_init(r9104);
        mpfr_init(r9105);
        mpfr_init_set_str(r9106, "2.9849414744995752e+82", 10, MPFR_RNDN);
        mpfr_init(r9107);
        mpfr_init(r9108);
        mpfr_init(r9109);
        mpfr_init(r9110);
        mpfr_init(r9111);
        mpfr_init(r9112);
        mpfr_init(r9113);
        mpfr_init(r9114);
        mpfr_init(r9115);
        mpfr_init(r9116);
        mpfr_init(r9117);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r9085, b, MPFR_RNDN);
        ;
        mpfr_set_si(r9087, mpfr_cmp(r9085, r9086) <= 0, MPFR_RNDN);
        mpfr_set_d(r9088, a, MPFR_RNDN);
        mpfr_div(r9089, r9085, r9088, MPFR_RNDN);
        mpfr_neg(r9090, r9089, MPFR_RNDN);
        ;
        mpfr_set_si(r9092, mpfr_cmp(r9085, r9091) <= 0, MPFR_RNDN);
        mpfr_mul(r9093, r9085, r9085, MPFR_RNDN);
        mpfr_set_d(r9094, c, MPFR_RNDN);
        mpfr_mul(r9095, r9088, r9094, MPFR_RNDN);
        ;
        mpfr_mul(r9097, r9095, r9096, MPFR_RNDN);
        mpfr_sub(r9098, r9093, r9097, MPFR_RNDN);
        mpfr_sqrt(r9099, r9098, MPFR_RNDN);
        mpfr_sub(r9100, r9099, r9085, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r9103, r9088, r9102, MPFR_RNDN);
        mpfr_div(r9104, r9101, r9103, MPFR_RNDN);
        mpfr_mul(r9105, r9100, r9104, MPFR_RNDN);
        ;
        mpfr_set_si(r9107, mpfr_cmp(r9085, r9106) <= 0, MPFR_RNDN);
        mpfr_neg(r9108, r9096, MPFR_RNDN);
        mpfr_mul(r9109, r9095, r9108, MPFR_RNDN);
        mpfr_div(r9110, r9109, r9103, MPFR_RNDN);
        mpfr_add(r9111, r9099, r9085, MPFR_RNDN);
        mpfr_div(r9112, r9110, r9111, MPFR_RNDN);
        mpfr_neg(r9113, r9094, MPFR_RNDN);
        mpfr_div(r9114, r9113, r9085, MPFR_RNDN);
        if (mpfr_get_si(r9107, MPFR_RNDN)) { mpfr_set(r9115, r9112, MPFR_RNDN); } else { mpfr_set(r9115, r9114, MPFR_RNDN); };
        if (mpfr_get_si(r9092, MPFR_RNDN)) { mpfr_set(r9116, r9105, MPFR_RNDN); } else { mpfr_set(r9116, r9115, MPFR_RNDN); };
        if (mpfr_get_si(r9087, MPFR_RNDN)) { mpfr_set(r9117, r9090, MPFR_RNDN); } else { mpfr_set(r9117, r9116, MPFR_RNDN); };
        return mpfr_get_d(r9117, MPFR_RNDN);
}

