#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 r7991 = b;
        float r7992 = 0.0f;
        bool r7993 = r7991 >= r7992;
        float r7994 = -r7991;
        float r7995 = r7991 * r7991;
        float r7996 = 4.0f;
        float r7997 = a;
        float r7998 = r7996 * r7997;
        float r7999 = c;
        float r8000 = r7998 * r7999;
        float r8001 = r7995 - r8000;
        float r8002 = sqrt(r8001);
        float r8003 = r7994 - r8002;
        float r8004 = 2.0f;
        float r8005 = r8004 * r7997;
        float r8006 = r8003 / r8005;
        float r8007 = r8004 * r7999;
        float r8008 = r7994 + r8002;
        float r8009 = r8007 / r8008;
        float r8010 = r7993 ? r8006 : r8009;
        return r8010;
}

double f_id(double a, double b, double c) {
        double r8011 = b;
        double r8012 = 0.0;
        bool r8013 = r8011 >= r8012;
        double r8014 = -r8011;
        double r8015 = r8011 * r8011;
        double r8016 = 4.0;
        double r8017 = a;
        double r8018 = r8016 * r8017;
        double r8019 = c;
        double r8020 = r8018 * r8019;
        double r8021 = r8015 - r8020;
        double r8022 = sqrt(r8021);
        double r8023 = r8014 - r8022;
        double r8024 = 2.0;
        double r8025 = r8024 * r8017;
        double r8026 = r8023 / r8025;
        double r8027 = r8024 * r8019;
        double r8028 = r8014 + r8022;
        double r8029 = r8027 / r8028;
        double r8030 = r8013 ? r8026 : r8029;
        return r8030;
}


double f_of(float a, float b, float c) {
        float r8031 = b;
        float r8032 = 0.0f;
        bool r8033 = r8031 >= r8032;
        float r8034 = -r8031;
        float r8035 = 4.0f;
        float r8036 = a;
        float r8037 = r8035 * r8036;
        float r8038 = c;
        float r8039 = -r8038;
        float r8040 = r8031 * r8031;
        float r8041 = fma(r8037, r8039, r8040);
        float r8042 = sqrt(r8041);
        float r8043 = r8034 - r8042;
        float r8044 = 2.0f;
        float r8045 = r8036 * r8044;
        float r8046 = r8043 / r8045;
        float r8047 = r8038 * r8044;
        float r8048 = r8031 - r8031;
        float r8049 = r8047 / r8048;
        float r8050 = r8033 ? r8046 : r8049;
        float r8051 = -4.2578024127431834e+287f;
        bool r8052 = r8050 <= r8051;
        float r8053 = r8036 / r8031;
        float r8054 = fma(r8053, r8038, r8034);
        float r8055 = r8054 * r8044;
        float r8056 = r8055 / r8045;
        float r8057 = r8042 - r8031;
        float r8058 = r8047 / r8057;
        float r8059 = r8033 ? r8056 : r8058;
        float r8060 = 2.4350214317344988e+256f;
        bool r8061 = r8050 <= r8060;
        float r8062 = r8061 ? r8050 : r8059;
        float r8063 = r8052 ? r8059 : r8062;
        return r8063;
}

double f_od(double a, double b, double c) {
        double r8064 = b;
        double r8065 = 0.0;
        bool r8066 = r8064 >= r8065;
        double r8067 = -r8064;
        double r8068 = 4.0;
        double r8069 = a;
        double r8070 = r8068 * r8069;
        double r8071 = c;
        double r8072 = -r8071;
        double r8073 = r8064 * r8064;
        double r8074 = fma(r8070, r8072, r8073);
        double r8075 = sqrt(r8074);
        double r8076 = r8067 - r8075;
        double r8077 = 2.0;
        double r8078 = r8069 * r8077;
        double r8079 = r8076 / r8078;
        double r8080 = r8071 * r8077;
        double r8081 = r8064 - r8064;
        double r8082 = r8080 / r8081;
        double r8083 = r8066 ? r8079 : r8082;
        double r8084 = -4.2578024127431834e+287;
        bool r8085 = r8083 <= r8084;
        double r8086 = r8069 / r8064;
        double r8087 = fma(r8086, r8071, r8067);
        double r8088 = r8087 * r8077;
        double r8089 = r8088 / r8078;
        double r8090 = r8075 - r8064;
        double r8091 = r8080 / r8090;
        double r8092 = r8066 ? r8089 : r8091;
        double r8093 = 2.4350214317344988e+256;
        bool r8094 = r8083 <= r8093;
        double r8095 = r8094 ? r8083 : r8092;
        double r8096 = r8085 ? r8092 : r8095;
        return r8096;
}

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

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

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

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

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r8117);
        mpfr_init_set_str(r8118, "0", 10, MPFR_RNDN);
        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(r8129);
        mpfr_init_set_str(r8130, "2", 10, MPFR_RNDN);
        mpfr_init(r8131);
        mpfr_init(r8132);
        mpfr_init(r8133);
        mpfr_init(r8134);
        mpfr_init(r8135);
        mpfr_init(r8136);
        mpfr_init_set_str(r8137, "-4.2578024127431834e+287", 10, MPFR_RNDN);
        mpfr_init(r8138);
        mpfr_init(r8139);
        mpfr_init(r8140);
        mpfr_init(r8141);
        mpfr_init(r8142);
        mpfr_init(r8143);
        mpfr_init(r8144);
        mpfr_init(r8145);
        mpfr_init_set_str(r8146, "2.4350214317344988e+256", 10, MPFR_RNDN);
        mpfr_init(r8147);
        mpfr_init(r8148);
        mpfr_init(r8149);
}

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

static mpfr_t r8150, r8151, r8152, r8153, r8154, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r8150);
        mpfr_init_set_str(r8151, "0", 10, MPFR_RNDN);
        mpfr_init(r8152);
        mpfr_init(r8153);
        mpfr_init_set_str(r8154, "4", 10, MPFR_RNDN);
        mpfr_init(r8155);
        mpfr_init(r8156);
        mpfr_init(r8157);
        mpfr_init(r8158);
        mpfr_init(r8159);
        mpfr_init(r8160);
        mpfr_init(r8161);
        mpfr_init(r8162);
        mpfr_init_set_str(r8163, "2", 10, MPFR_RNDN);
        mpfr_init(r8164);
        mpfr_init(r8165);
        mpfr_init(r8166);
        mpfr_init(r8167);
        mpfr_init(r8168);
        mpfr_init(r8169);
        mpfr_init_set_str(r8170, "-4.2578024127431834e+287", 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_set_str(r8179, "2.4350214317344988e+256", 10, MPFR_RNDN);
        mpfr_init(r8180);
        mpfr_init(r8181);
        mpfr_init(r8182);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r8150, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8152, mpfr_cmp(r8150, r8151) >= 0, MPFR_RNDN);
        mpfr_neg(r8153, r8150, MPFR_RNDN);
        ;
        mpfr_set_d(r8155, a, MPFR_RNDN);
        mpfr_mul(r8156, r8154, r8155, MPFR_RNDN);
        mpfr_set_d(r8157, c, MPFR_RNDN);
        mpfr_neg(r8158, r8157, MPFR_RNDN);
        mpfr_mul(r8159, r8150, r8150, MPFR_RNDN);
        mpfr_fma(r8160, r8156, r8158, r8159, MPFR_RNDN);
        mpfr_sqrt(r8161, r8160, MPFR_RNDN);
        mpfr_sub(r8162, r8153, r8161, MPFR_RNDN);
        ;
        mpfr_mul(r8164, r8155, r8163, MPFR_RNDN);
        mpfr_div(r8165, r8162, r8164, MPFR_RNDN);
        mpfr_mul(r8166, r8157, r8163, MPFR_RNDN);
        mpfr_sub(r8167, r8150, r8150, MPFR_RNDN);
        mpfr_div(r8168, r8166, r8167, MPFR_RNDN);
        if (mpfr_get_si(r8152, MPFR_RNDN)) { mpfr_set(r8169, r8165, MPFR_RNDN); } else { mpfr_set(r8169, r8168, MPFR_RNDN); };
        ;
        mpfr_set_si(r8171, mpfr_cmp(r8169, r8170) <= 0, MPFR_RNDN);
        mpfr_div(r8172, r8155, r8150, MPFR_RNDN);
        mpfr_fma(r8173, r8172, r8157, r8153, MPFR_RNDN);
        mpfr_mul(r8174, r8173, r8163, MPFR_RNDN);
        mpfr_div(r8175, r8174, r8164, MPFR_RNDN);
        mpfr_sub(r8176, r8161, r8150, MPFR_RNDN);
        mpfr_div(r8177, r8166, r8176, MPFR_RNDN);
        if (mpfr_get_si(r8152, MPFR_RNDN)) { mpfr_set(r8178, r8175, MPFR_RNDN); } else { mpfr_set(r8178, r8177, MPFR_RNDN); };
        ;
        mpfr_set_si(r8180, mpfr_cmp(r8169, r8179) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r8180, MPFR_RNDN)) { mpfr_set(r8181, r8169, MPFR_RNDN); } else { mpfr_set(r8181, r8178, MPFR_RNDN); };
        if (mpfr_get_si(r8171, MPFR_RNDN)) { mpfr_set(r8182, r8178, MPFR_RNDN); } else { mpfr_set(r8182, r8181, MPFR_RNDN); };
        return mpfr_get_d(r8182, MPFR_RNDN);
}

