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

char *name = "jeff quadratic root 1";

double f_if(float a, float b, float c) {
        float r7972 = b;
        float r7973 = 0.0f;
        bool r7974 = r7972 >= r7973;
        float r7975 = -r7972;
        float r7976 = r7972 * r7972;
        float r7977 = 4.0f;
        float r7978 = a;
        float r7979 = r7977 * r7978;
        float r7980 = c;
        float r7981 = r7979 * r7980;
        float r7982 = r7976 - r7981;
        float r7983 = sqrt(r7982);
        float r7984 = r7975 - r7983;
        float r7985 = 2.0f;
        float r7986 = r7985 * r7978;
        float r7987 = r7984 / r7986;
        float r7988 = r7985 * r7980;
        float r7989 = r7975 + r7983;
        float r7990 = r7988 / r7989;
        float r7991 = r7974 ? r7987 : r7990;
        return r7991;
}

double f_id(double a, double b, double c) {
        double r7992 = b;
        double r7993 = 0.0;
        bool r7994 = r7992 >= r7993;
        double r7995 = -r7992;
        double r7996 = r7992 * r7992;
        double r7997 = 4.0;
        double r7998 = a;
        double r7999 = r7997 * r7998;
        double r8000 = c;
        double r8001 = r7999 * r8000;
        double r8002 = r7996 - r8001;
        double r8003 = sqrt(r8002);
        double r8004 = r7995 - r8003;
        double r8005 = 2.0;
        double r8006 = r8005 * r7998;
        double r8007 = r8004 / r8006;
        double r8008 = r8005 * r8000;
        double r8009 = r7995 + r8003;
        double r8010 = r8008 / r8009;
        double r8011 = r7994 ? r8007 : r8010;
        return r8011;
}


double f_of(float a, float b, float c) {
        float r8012 = b;
        float r8013 = -1.338815475246526e+154f;
        bool r8014 = r8012 <= r8013;
        float r8015 = 0.0f;
        bool r8016 = r8012 >= r8015;
        float r8017 = -r8012;
        float r8018 = r8012 * r8012;
        float r8019 = 4.0f;
        float r8020 = a;
        float r8021 = r8019 * r8020;
        float r8022 = c;
        float r8023 = r8021 * r8022;
        float r8024 = r8018 - r8023;
        float r8025 = sqrt(r8024);
        float r8026 = r8017 - r8025;
        float r8027 = 2.0f;
        float r8028 = r8027 * r8020;
        float r8029 = r8026 / r8028;
        float r8030 = r8022 * r8027;
        float r8031 = r8020 * r8022;
        float r8032 = r8031 / r8012;
        float r8033 = r8027 * r8032;
        float r8034 = r8033 - r8012;
        float r8035 = r8017 + r8034;
        float r8036 = r8030 / r8035;
        float r8037 = r8016 ? r8029 : r8036;
        float r8038 = 1.1785481745657876e+130f;
        bool r8039 = r8012 <= r8038;
        float r8040 = sqrt(r8025);
        float r8041 = r8040 * r8040;
        float r8042 = r8017 - r8041;
        float r8043 = r8042 / r8028;
        float r8044 = r8025 + r8017;
        float r8045 = r8030 / r8044;
        float r8046 = r8016 ? r8043 : r8045;
        float r8047 = r8012 - r8033;
        float r8048 = r8017 - r8047;
        float r8049 = r8048 / r8028;
        float r8050 = r8016 ? r8049 : r8045;
        float r8051 = r8039 ? r8046 : r8050;
        float r8052 = r8014 ? r8037 : r8051;
        return r8052;
}

double f_od(double a, double b, double c) {
        double r8053 = b;
        double r8054 = -1.338815475246526e+154;
        bool r8055 = r8053 <= r8054;
        double r8056 = 0.0;
        bool r8057 = r8053 >= r8056;
        double r8058 = -r8053;
        double r8059 = r8053 * r8053;
        double r8060 = 4.0;
        double r8061 = a;
        double r8062 = r8060 * r8061;
        double r8063 = c;
        double r8064 = r8062 * r8063;
        double r8065 = r8059 - r8064;
        double r8066 = sqrt(r8065);
        double r8067 = r8058 - r8066;
        double r8068 = 2.0;
        double r8069 = r8068 * r8061;
        double r8070 = r8067 / r8069;
        double r8071 = r8063 * r8068;
        double r8072 = r8061 * r8063;
        double r8073 = r8072 / r8053;
        double r8074 = r8068 * r8073;
        double r8075 = r8074 - r8053;
        double r8076 = r8058 + r8075;
        double r8077 = r8071 / r8076;
        double r8078 = r8057 ? r8070 : r8077;
        double r8079 = 1.1785481745657876e+130;
        bool r8080 = r8053 <= r8079;
        double r8081 = sqrt(r8066);
        double r8082 = r8081 * r8081;
        double r8083 = r8058 - r8082;
        double r8084 = r8083 / r8069;
        double r8085 = r8066 + r8058;
        double r8086 = r8071 / r8085;
        double r8087 = r8057 ? r8084 : r8086;
        double r8088 = r8053 - r8074;
        double r8089 = r8058 - r8088;
        double r8090 = r8089 / r8069;
        double r8091 = r8057 ? r8090 : r8086;
        double r8092 = r8080 ? r8087 : r8091;
        double r8093 = r8055 ? r8078 : r8092;
        return r8093;
}

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 r8094, r8095, r8096, r8097, r8098, r8099, r8100, r8101, r8102, r8103, r8104, r8105, r8106, r8107, r8108, r8109, r8110, r8111, r8112, r8113;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r8094);
        mpfr_init_set_str(r8095, "0", 10, MPFR_RNDN);
        mpfr_init(r8096);
        mpfr_init(r8097);
        mpfr_init(r8098);
        mpfr_init_set_str(r8099, "4", 10, MPFR_RNDN);
        mpfr_init(r8100);
        mpfr_init(r8101);
        mpfr_init(r8102);
        mpfr_init(r8103);
        mpfr_init(r8104);
        mpfr_init(r8105);
        mpfr_init(r8106);
        mpfr_init_set_str(r8107, "2", 10, MPFR_RNDN);
        mpfr_init(r8108);
        mpfr_init(r8109);
        mpfr_init(r8110);
        mpfr_init(r8111);
        mpfr_init(r8112);
        mpfr_init(r8113);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r8094, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8096, mpfr_cmp(r8094, r8095) >= 0, MPFR_RNDN);
        mpfr_neg(r8097, r8094, MPFR_RNDN);
        mpfr_mul(r8098, r8094, r8094, MPFR_RNDN);
        ;
        mpfr_set_d(r8100, a, MPFR_RNDN);
        mpfr_mul(r8101, r8099, r8100, MPFR_RNDN);
        mpfr_set_d(r8102, c, MPFR_RNDN);
        mpfr_mul(r8103, r8101, r8102, MPFR_RNDN);
        mpfr_sub(r8104, r8098, r8103, MPFR_RNDN);
        mpfr_sqrt(r8105, r8104, MPFR_RNDN);
        mpfr_sub(r8106, r8097, r8105, MPFR_RNDN);
        ;
        mpfr_mul(r8108, r8107, r8100, MPFR_RNDN);
        mpfr_div(r8109, r8106, r8108, MPFR_RNDN);
        mpfr_mul(r8110, r8107, r8102, MPFR_RNDN);
        mpfr_add(r8111, r8097, r8105, MPFR_RNDN);
        mpfr_div(r8112, r8110, r8111, MPFR_RNDN);
        if (mpfr_get_si(r8096, MPFR_RNDN)) { mpfr_set(r8113, r8109, MPFR_RNDN); } else { mpfr_set(r8113, r8112, MPFR_RNDN); };
        return mpfr_get_d(r8113, MPFR_RNDN);
}

static mpfr_t r8114, r8115, r8116, r8117, r8118, r8119, r8120, r8121, r8122, r8123, r8124, r8125, r8126, r8127, r8128, r8129, r8130, r8131, r8132, r8133, r8134, r8135, r8136, r8137, r8138, r8139, r8140, r8141, r8142, r8143, r8144, r8145, r8146, r8147, r8148, r8149, r8150, r8151, r8152, r8153, r8154;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r8114);
        mpfr_init_set_str(r8115, "-1.338815475246526e+154", 10, MPFR_RNDN);
        mpfr_init(r8116);
        mpfr_init_set_str(r8117, "0", 10, MPFR_RNDN);
        mpfr_init(r8118);
        mpfr_init(r8119);
        mpfr_init(r8120);
        mpfr_init_set_str(r8121, "4", 10, MPFR_RNDN);
        mpfr_init(r8122);
        mpfr_init(r8123);
        mpfr_init(r8124);
        mpfr_init(r8125);
        mpfr_init(r8126);
        mpfr_init(r8127);
        mpfr_init(r8128);
        mpfr_init_set_str(r8129, "2", 10, MPFR_RNDN);
        mpfr_init(r8130);
        mpfr_init(r8131);
        mpfr_init(r8132);
        mpfr_init(r8133);
        mpfr_init(r8134);
        mpfr_init(r8135);
        mpfr_init(r8136);
        mpfr_init(r8137);
        mpfr_init(r8138);
        mpfr_init(r8139);
        mpfr_init_set_str(r8140, "1.1785481745657876e+130", 10, MPFR_RNDN);
        mpfr_init(r8141);
        mpfr_init(r8142);
        mpfr_init(r8143);
        mpfr_init(r8144);
        mpfr_init(r8145);
        mpfr_init(r8146);
        mpfr_init(r8147);
        mpfr_init(r8148);
        mpfr_init(r8149);
        mpfr_init(r8150);
        mpfr_init(r8151);
        mpfr_init(r8152);
        mpfr_init(r8153);
        mpfr_init(r8154);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r8114, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8116, mpfr_cmp(r8114, r8115) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r8118, mpfr_cmp(r8114, r8117) >= 0, MPFR_RNDN);
        mpfr_neg(r8119, r8114, MPFR_RNDN);
        mpfr_mul(r8120, r8114, r8114, MPFR_RNDN);
        ;
        mpfr_set_d(r8122, a, MPFR_RNDN);
        mpfr_mul(r8123, r8121, r8122, MPFR_RNDN);
        mpfr_set_d(r8124, c, MPFR_RNDN);
        mpfr_mul(r8125, r8123, r8124, MPFR_RNDN);
        mpfr_sub(r8126, r8120, r8125, MPFR_RNDN);
        mpfr_sqrt(r8127, r8126, MPFR_RNDN);
        mpfr_sub(r8128, r8119, r8127, MPFR_RNDN);
        ;
        mpfr_mul(r8130, r8129, r8122, MPFR_RNDN);
        mpfr_div(r8131, r8128, r8130, MPFR_RNDN);
        mpfr_mul(r8132, r8124, r8129, MPFR_RNDN);
        mpfr_mul(r8133, r8122, r8124, MPFR_RNDN);
        mpfr_div(r8134, r8133, r8114, MPFR_RNDN);
        mpfr_mul(r8135, r8129, r8134, MPFR_RNDN);
        mpfr_sub(r8136, r8135, r8114, MPFR_RNDN);
        mpfr_add(r8137, r8119, r8136, MPFR_RNDN);
        mpfr_div(r8138, r8132, r8137, MPFR_RNDN);
        if (mpfr_get_si(r8118, MPFR_RNDN)) { mpfr_set(r8139, r8131, MPFR_RNDN); } else { mpfr_set(r8139, r8138, MPFR_RNDN); };
        ;
        mpfr_set_si(r8141, mpfr_cmp(r8114, r8140) <= 0, MPFR_RNDN);
        mpfr_sqrt(r8142, r8127, MPFR_RNDN);
        mpfr_mul(r8143, r8142, r8142, MPFR_RNDN);
        mpfr_sub(r8144, r8119, r8143, MPFR_RNDN);
        mpfr_div(r8145, r8144, r8130, MPFR_RNDN);
        mpfr_add(r8146, r8127, r8119, MPFR_RNDN);
        mpfr_div(r8147, r8132, r8146, MPFR_RNDN);
        if (mpfr_get_si(r8118, MPFR_RNDN)) { mpfr_set(r8148, r8145, MPFR_RNDN); } else { mpfr_set(r8148, r8147, MPFR_RNDN); };
        mpfr_sub(r8149, r8114, r8135, MPFR_RNDN);
        mpfr_sub(r8150, r8119, r8149, MPFR_RNDN);
        mpfr_div(r8151, r8150, r8130, MPFR_RNDN);
        if (mpfr_get_si(r8118, MPFR_RNDN)) { mpfr_set(r8152, r8151, MPFR_RNDN); } else { mpfr_set(r8152, r8147, MPFR_RNDN); };
        if (mpfr_get_si(r8141, MPFR_RNDN)) { mpfr_set(r8153, r8148, MPFR_RNDN); } else { mpfr_set(r8153, r8152, MPFR_RNDN); };
        if (mpfr_get_si(r8116, MPFR_RNDN)) { mpfr_set(r8154, r8139, MPFR_RNDN); } else { mpfr_set(r8154, r8153, MPFR_RNDN); };
        return mpfr_get_d(r8154, MPFR_RNDN);
}

static mpfr_t r8155, r8156, r8157, r8158, r8159, r8160, r8161, r8162, r8163, r8164, r8165, r8166, r8167, r8168, r8169, r8170, r8171, r8172, r8173, r8174, r8175, r8176, r8177, r8178, r8179, r8180, r8181, r8182, r8183, r8184, r8185, r8186, r8187, r8188, r8189, r8190, r8191, r8192, r8193, r8194, r8195;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r8155);
        mpfr_init_set_str(r8156, "-1.338815475246526e+154", 10, MPFR_RNDN);
        mpfr_init(r8157);
        mpfr_init_set_str(r8158, "0", 10, MPFR_RNDN);
        mpfr_init(r8159);
        mpfr_init(r8160);
        mpfr_init(r8161);
        mpfr_init_set_str(r8162, "4", 10, MPFR_RNDN);
        mpfr_init(r8163);
        mpfr_init(r8164);
        mpfr_init(r8165);
        mpfr_init(r8166);
        mpfr_init(r8167);
        mpfr_init(r8168);
        mpfr_init(r8169);
        mpfr_init_set_str(r8170, "2", 10, MPFR_RNDN);
        mpfr_init(r8171);
        mpfr_init(r8172);
        mpfr_init(r8173);
        mpfr_init(r8174);
        mpfr_init(r8175);
        mpfr_init(r8176);
        mpfr_init(r8177);
        mpfr_init(r8178);
        mpfr_init(r8179);
        mpfr_init(r8180);
        mpfr_init_set_str(r8181, "1.1785481745657876e+130", 10, MPFR_RNDN);
        mpfr_init(r8182);
        mpfr_init(r8183);
        mpfr_init(r8184);
        mpfr_init(r8185);
        mpfr_init(r8186);
        mpfr_init(r8187);
        mpfr_init(r8188);
        mpfr_init(r8189);
        mpfr_init(r8190);
        mpfr_init(r8191);
        mpfr_init(r8192);
        mpfr_init(r8193);
        mpfr_init(r8194);
        mpfr_init(r8195);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r8155, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8157, mpfr_cmp(r8155, r8156) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r8159, mpfr_cmp(r8155, r8158) >= 0, MPFR_RNDN);
        mpfr_neg(r8160, r8155, MPFR_RNDN);
        mpfr_mul(r8161, r8155, r8155, MPFR_RNDN);
        ;
        mpfr_set_d(r8163, a, MPFR_RNDN);
        mpfr_mul(r8164, r8162, r8163, MPFR_RNDN);
        mpfr_set_d(r8165, c, MPFR_RNDN);
        mpfr_mul(r8166, r8164, r8165, MPFR_RNDN);
        mpfr_sub(r8167, r8161, r8166, MPFR_RNDN);
        mpfr_sqrt(r8168, r8167, MPFR_RNDN);
        mpfr_sub(r8169, r8160, r8168, MPFR_RNDN);
        ;
        mpfr_mul(r8171, r8170, r8163, MPFR_RNDN);
        mpfr_div(r8172, r8169, r8171, MPFR_RNDN);
        mpfr_mul(r8173, r8165, r8170, MPFR_RNDN);
        mpfr_mul(r8174, r8163, r8165, MPFR_RNDN);
        mpfr_div(r8175, r8174, r8155, MPFR_RNDN);
        mpfr_mul(r8176, r8170, r8175, MPFR_RNDN);
        mpfr_sub(r8177, r8176, r8155, MPFR_RNDN);
        mpfr_add(r8178, r8160, r8177, MPFR_RNDN);
        mpfr_div(r8179, r8173, r8178, MPFR_RNDN);
        if (mpfr_get_si(r8159, MPFR_RNDN)) { mpfr_set(r8180, r8172, MPFR_RNDN); } else { mpfr_set(r8180, r8179, MPFR_RNDN); };
        ;
        mpfr_set_si(r8182, mpfr_cmp(r8155, r8181) <= 0, MPFR_RNDN);
        mpfr_sqrt(r8183, r8168, MPFR_RNDN);
        mpfr_mul(r8184, r8183, r8183, MPFR_RNDN);
        mpfr_sub(r8185, r8160, r8184, MPFR_RNDN);
        mpfr_div(r8186, r8185, r8171, MPFR_RNDN);
        mpfr_add(r8187, r8168, r8160, MPFR_RNDN);
        mpfr_div(r8188, r8173, r8187, MPFR_RNDN);
        if (mpfr_get_si(r8159, MPFR_RNDN)) { mpfr_set(r8189, r8186, MPFR_RNDN); } else { mpfr_set(r8189, r8188, MPFR_RNDN); };
        mpfr_sub(r8190, r8155, r8176, MPFR_RNDN);
        mpfr_sub(r8191, r8160, r8190, MPFR_RNDN);
        mpfr_div(r8192, r8191, r8171, MPFR_RNDN);
        if (mpfr_get_si(r8159, MPFR_RNDN)) { mpfr_set(r8193, r8192, MPFR_RNDN); } else { mpfr_set(r8193, r8188, MPFR_RNDN); };
        if (mpfr_get_si(r8182, MPFR_RNDN)) { mpfr_set(r8194, r8189, MPFR_RNDN); } else { mpfr_set(r8194, r8193, MPFR_RNDN); };
        if (mpfr_get_si(r8157, MPFR_RNDN)) { mpfr_set(r8195, r8180, MPFR_RNDN); } else { mpfr_set(r8195, r8194, MPFR_RNDN); };
        return mpfr_get_d(r8195, MPFR_RNDN);
}

