#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 r10936 = b;
        float r10937 = -r10936;
        float r10938 = r10936 * r10936;
        float r10939 = 4;
        float r10940 = a;
        float r10941 = r10939 * r10940;
        float r10942 = c;
        float r10943 = r10941 * r10942;
        float r10944 = r10938 - r10943;
        float r10945 = sqrt(r10944);
        float r10946 = r10937 + r10945;
        float r10947 = 2;
        float r10948 = r10947 * r10940;
        float r10949 = r10946 / r10948;
        return r10949;
}

double f_id(double a, double b, double c) {
        double r10950 = b;
        double r10951 = -r10950;
        double r10952 = r10950 * r10950;
        double r10953 = 4;
        double r10954 = a;
        double r10955 = r10953 * r10954;
        double r10956 = c;
        double r10957 = r10955 * r10956;
        double r10958 = r10952 - r10957;
        double r10959 = sqrt(r10958);
        double r10960 = r10951 + r10959;
        double r10961 = 2;
        double r10962 = r10961 * r10954;
        double r10963 = r10960 / r10962;
        return r10963;
}


double f_of(float a, float b, float c) {
        float r10964 = b;
        float r10965 = -1.1514098544621335e+149;
        bool r10966 = r10964 <= r10965;
        float r10967 = c;
        float r10968 = r10967 / r10964;
        float r10969 = a;
        float r10970 = r10964 / r10969;
        float r10971 = r10968 - r10970;
        float r10972 = 7.62296366921463e-119;
        bool r10973 = r10964 <= r10972;
        float r10974 = r10964 * r10964;
        float r10975 = 4;
        float r10976 = r10975 * r10969;
        float r10977 = r10976 * r10967;
        float r10978 = r10974 - r10977;
        float r10979 = sqrt(r10978);
        float r10980 = -r10964;
        float r10981 = r10979 + r10980;
        float r10982 = 2;
        float r10983 = r10982 * r10969;
        float r10984 = r10981 / r10983;
        float r10985 = 3.128421125733265e+92;
        bool r10986 = r10964 <= r10985;
        float r10987 = -r10967;
        float r10988 = r10976 * r10987;
        float r10989 = fma(r10976, r10987, r10974);
        float r10990 = sqrt(r10989);
        float r10991 = r10964 + r10990;
        float r10992 = r10988 / r10991;
        float r10993 = r10992 / r10983;
        float r10994 = -r10968;
        float r10995 = r10986 ? r10993 : r10994;
        float r10996 = r10973 ? r10984 : r10995;
        float r10997 = r10966 ? r10971 : r10996;
        return r10997;
}

double f_od(double a, double b, double c) {
        double r10998 = b;
        double r10999 = -1.1514098544621335e+149;
        bool r11000 = r10998 <= r10999;
        double r11001 = c;
        double r11002 = r11001 / r10998;
        double r11003 = a;
        double r11004 = r10998 / r11003;
        double r11005 = r11002 - r11004;
        double r11006 = 7.62296366921463e-119;
        bool r11007 = r10998 <= r11006;
        double r11008 = r10998 * r10998;
        double r11009 = 4;
        double r11010 = r11009 * r11003;
        double r11011 = r11010 * r11001;
        double r11012 = r11008 - r11011;
        double r11013 = sqrt(r11012);
        double r11014 = -r10998;
        double r11015 = r11013 + r11014;
        double r11016 = 2;
        double r11017 = r11016 * r11003;
        double r11018 = r11015 / r11017;
        double r11019 = 3.128421125733265e+92;
        bool r11020 = r10998 <= r11019;
        double r11021 = -r11001;
        double r11022 = r11010 * r11021;
        double r11023 = fma(r11010, r11021, r11008);
        double r11024 = sqrt(r11023);
        double r11025 = r10998 + r11024;
        double r11026 = r11022 / r11025;
        double r11027 = r11026 / r11017;
        double r11028 = -r11002;
        double r11029 = r11020 ? r11027 : r11028;
        double r11030 = r11007 ? r11018 : r11029;
        double r11031 = r11000 ? r11005 : r11030;
        return r11031;
}

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 r11032, r11033, r11034, r11035, r11036, r11037, r11038, r11039, r11040, r11041, r11042, r11043, r11044, r11045;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r11032);
        mpfr_init(r11033);
        mpfr_init(r11034);
        mpfr_init_set_str(r11035, "4", 10, MPFR_RNDN);
        mpfr_init(r11036);
        mpfr_init(r11037);
        mpfr_init(r11038);
        mpfr_init(r11039);
        mpfr_init(r11040);
        mpfr_init(r11041);
        mpfr_init(r11042);
        mpfr_init_set_str(r11043, "2", 10, MPFR_RNDN);
        mpfr_init(r11044);
        mpfr_init(r11045);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r11032, b, MPFR_RNDN);
        mpfr_neg(r11033, r11032, MPFR_RNDN);
        mpfr_mul(r11034, r11032, r11032, MPFR_RNDN);
        ;
        mpfr_set_d(r11036, a, MPFR_RNDN);
        mpfr_mul(r11037, r11035, r11036, MPFR_RNDN);
        mpfr_set_d(r11038, c, MPFR_RNDN);
        mpfr_mul(r11039, r11037, r11038, MPFR_RNDN);
        mpfr_sub(r11040, r11034, r11039, MPFR_RNDN);
        mpfr_sqrt(r11041, r11040, MPFR_RNDN);
        mpfr_add(r11042, r11033, r11041, MPFR_RNDN);
        ;
        mpfr_mul(r11044, r11043, r11036, MPFR_RNDN);
        mpfr_div(r11045, r11042, r11044, MPFR_RNDN);
        return mpfr_get_d(r11045, MPFR_RNDN);
}

static mpfr_t r11046, r11047, r11048, r11049, r11050, r11051, r11052, r11053, r11054, r11055, r11056, r11057, r11058, r11059, r11060, r11061, r11062, r11063, r11064, r11065, r11066, r11067, r11068, r11069, r11070, r11071, r11072, r11073, r11074, r11075, r11076, r11077, r11078, r11079;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r11046);
        mpfr_init_set_str(r11047, "-1.1514098544621335e+149", 10, MPFR_RNDN);
        mpfr_init(r11048);
        mpfr_init(r11049);
        mpfr_init(r11050);
        mpfr_init(r11051);
        mpfr_init(r11052);
        mpfr_init(r11053);
        mpfr_init_set_str(r11054, "7.62296366921463e-119", 10, MPFR_RNDN);
        mpfr_init(r11055);
        mpfr_init(r11056);
        mpfr_init_set_str(r11057, "4", 10, MPFR_RNDN);
        mpfr_init(r11058);
        mpfr_init(r11059);
        mpfr_init(r11060);
        mpfr_init(r11061);
        mpfr_init(r11062);
        mpfr_init(r11063);
        mpfr_init_set_str(r11064, "2", 10, MPFR_RNDN);
        mpfr_init(r11065);
        mpfr_init(r11066);
        mpfr_init_set_str(r11067, "3.128421125733265e+92", 10, MPFR_RNDN);
        mpfr_init(r11068);
        mpfr_init(r11069);
        mpfr_init(r11070);
        mpfr_init(r11071);
        mpfr_init(r11072);
        mpfr_init(r11073);
        mpfr_init(r11074);
        mpfr_init(r11075);
        mpfr_init(r11076);
        mpfr_init(r11077);
        mpfr_init(r11078);
        mpfr_init(r11079);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r11046, b, MPFR_RNDN);
        ;
        mpfr_set_si(r11048, mpfr_cmp(r11046, r11047) <= 0, MPFR_RNDN);
        mpfr_set_d(r11049, c, MPFR_RNDN);
        mpfr_div(r11050, r11049, r11046, MPFR_RNDN);
        mpfr_set_d(r11051, a, MPFR_RNDN);
        mpfr_div(r11052, r11046, r11051, MPFR_RNDN);
        mpfr_sub(r11053, r11050, r11052, MPFR_RNDN);
        ;
        mpfr_set_si(r11055, mpfr_cmp(r11046, r11054) <= 0, MPFR_RNDN);
        mpfr_mul(r11056, r11046, r11046, MPFR_RNDN);
        ;
        mpfr_mul(r11058, r11057, r11051, MPFR_RNDN);
        mpfr_mul(r11059, r11058, r11049, MPFR_RNDN);
        mpfr_sub(r11060, r11056, r11059, MPFR_RNDN);
        mpfr_sqrt(r11061, r11060, MPFR_RNDN);
        mpfr_neg(r11062, r11046, MPFR_RNDN);
        mpfr_add(r11063, r11061, r11062, MPFR_RNDN);
        ;
        mpfr_mul(r11065, r11064, r11051, MPFR_RNDN);
        mpfr_div(r11066, r11063, r11065, MPFR_RNDN);
        ;
        mpfr_set_si(r11068, mpfr_cmp(r11046, r11067) <= 0, MPFR_RNDN);
        mpfr_neg(r11069, r11049, MPFR_RNDN);
        mpfr_mul(r11070, r11058, r11069, MPFR_RNDN);
        mpfr_fma(r11071, r11058, r11069, r11056, MPFR_RNDN);
        mpfr_sqrt(r11072, r11071, MPFR_RNDN);
        mpfr_add(r11073, r11046, r11072, MPFR_RNDN);
        mpfr_div(r11074, r11070, r11073, MPFR_RNDN);
        mpfr_div(r11075, r11074, r11065, MPFR_RNDN);
        mpfr_neg(r11076, r11050, MPFR_RNDN);
        if (mpfr_get_si(r11068, MPFR_RNDN)) { mpfr_set(r11077, r11075, MPFR_RNDN); } else { mpfr_set(r11077, r11076, MPFR_RNDN); };
        if (mpfr_get_si(r11055, MPFR_RNDN)) { mpfr_set(r11078, r11066, MPFR_RNDN); } else { mpfr_set(r11078, r11077, MPFR_RNDN); };
        if (mpfr_get_si(r11048, MPFR_RNDN)) { mpfr_set(r11079, r11053, MPFR_RNDN); } else { mpfr_set(r11079, r11078, MPFR_RNDN); };
        return mpfr_get_d(r11079, MPFR_RNDN);
}

static mpfr_t r11080, r11081, r11082, r11083, r11084, r11085, r11086, r11087, r11088, r11089, r11090, r11091, r11092, r11093, r11094, r11095, r11096, r11097, r11098, r11099, r11100, r11101, r11102, r11103, r11104, r11105, r11106, r11107, r11108, r11109, r11110, r11111, r11112, r11113;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r11080);
        mpfr_init_set_str(r11081, "-1.1514098544621335e+149", 10, MPFR_RNDN);
        mpfr_init(r11082);
        mpfr_init(r11083);
        mpfr_init(r11084);
        mpfr_init(r11085);
        mpfr_init(r11086);
        mpfr_init(r11087);
        mpfr_init_set_str(r11088, "7.62296366921463e-119", 10, MPFR_RNDN);
        mpfr_init(r11089);
        mpfr_init(r11090);
        mpfr_init_set_str(r11091, "4", 10, MPFR_RNDN);
        mpfr_init(r11092);
        mpfr_init(r11093);
        mpfr_init(r11094);
        mpfr_init(r11095);
        mpfr_init(r11096);
        mpfr_init(r11097);
        mpfr_init_set_str(r11098, "2", 10, MPFR_RNDN);
        mpfr_init(r11099);
        mpfr_init(r11100);
        mpfr_init_set_str(r11101, "3.128421125733265e+92", 10, MPFR_RNDN);
        mpfr_init(r11102);
        mpfr_init(r11103);
        mpfr_init(r11104);
        mpfr_init(r11105);
        mpfr_init(r11106);
        mpfr_init(r11107);
        mpfr_init(r11108);
        mpfr_init(r11109);
        mpfr_init(r11110);
        mpfr_init(r11111);
        mpfr_init(r11112);
        mpfr_init(r11113);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r11080, b, MPFR_RNDN);
        ;
        mpfr_set_si(r11082, mpfr_cmp(r11080, r11081) <= 0, MPFR_RNDN);
        mpfr_set_d(r11083, c, MPFR_RNDN);
        mpfr_div(r11084, r11083, r11080, MPFR_RNDN);
        mpfr_set_d(r11085, a, MPFR_RNDN);
        mpfr_div(r11086, r11080, r11085, MPFR_RNDN);
        mpfr_sub(r11087, r11084, r11086, MPFR_RNDN);
        ;
        mpfr_set_si(r11089, mpfr_cmp(r11080, r11088) <= 0, MPFR_RNDN);
        mpfr_mul(r11090, r11080, r11080, MPFR_RNDN);
        ;
        mpfr_mul(r11092, r11091, r11085, MPFR_RNDN);
        mpfr_mul(r11093, r11092, r11083, MPFR_RNDN);
        mpfr_sub(r11094, r11090, r11093, MPFR_RNDN);
        mpfr_sqrt(r11095, r11094, MPFR_RNDN);
        mpfr_neg(r11096, r11080, MPFR_RNDN);
        mpfr_add(r11097, r11095, r11096, MPFR_RNDN);
        ;
        mpfr_mul(r11099, r11098, r11085, MPFR_RNDN);
        mpfr_div(r11100, r11097, r11099, MPFR_RNDN);
        ;
        mpfr_set_si(r11102, mpfr_cmp(r11080, r11101) <= 0, MPFR_RNDN);
        mpfr_neg(r11103, r11083, MPFR_RNDN);
        mpfr_mul(r11104, r11092, r11103, MPFR_RNDN);
        mpfr_fma(r11105, r11092, r11103, r11090, MPFR_RNDN);
        mpfr_sqrt(r11106, r11105, MPFR_RNDN);
        mpfr_add(r11107, r11080, r11106, MPFR_RNDN);
        mpfr_div(r11108, r11104, r11107, MPFR_RNDN);
        mpfr_div(r11109, r11108, r11099, MPFR_RNDN);
        mpfr_neg(r11110, r11084, MPFR_RNDN);
        if (mpfr_get_si(r11102, MPFR_RNDN)) { mpfr_set(r11111, r11109, MPFR_RNDN); } else { mpfr_set(r11111, r11110, MPFR_RNDN); };
        if (mpfr_get_si(r11089, MPFR_RNDN)) { mpfr_set(r11112, r11100, MPFR_RNDN); } else { mpfr_set(r11112, r11111, MPFR_RNDN); };
        if (mpfr_get_si(r11082, MPFR_RNDN)) { mpfr_set(r11113, r11087, MPFR_RNDN); } else { mpfr_set(r11113, r11112, MPFR_RNDN); };
        return mpfr_get_d(r11113, MPFR_RNDN);
}

