#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 r12003 = b;
        float r12004 = -r12003;
        float r12005 = r12003 * r12003;
        float r12006 = 4;
        float r12007 = a;
        float r12008 = r12006 * r12007;
        float r12009 = c;
        float r12010 = r12008 * r12009;
        float r12011 = r12005 - r12010;
        float r12012 = sqrt(r12011);
        float r12013 = r12004 + r12012;
        float r12014 = 2;
        float r12015 = r12014 * r12007;
        float r12016 = r12013 / r12015;
        return r12016;
}

double f_id(double a, double b, double c) {
        double r12017 = b;
        double r12018 = -r12017;
        double r12019 = r12017 * r12017;
        double r12020 = 4;
        double r12021 = a;
        double r12022 = r12020 * r12021;
        double r12023 = c;
        double r12024 = r12022 * r12023;
        double r12025 = r12019 - r12024;
        double r12026 = sqrt(r12025);
        double r12027 = r12018 + r12026;
        double r12028 = 2;
        double r12029 = r12028 * r12021;
        double r12030 = r12027 / r12029;
        return r12030;
}


double f_of(float a, float b, float c) {
        float r12031 = b;
        float r12032 = -1.3375417917952782e+154;
        bool r12033 = r12031 <= r12032;
        float r12034 = 2;
        float r12035 = c;
        float r12036 = a;
        float r12037 = r12035 * r12036;
        float r12038 = r12031 / r12037;
        float r12039 = r12034 * r12038;
        float r12040 = 1;
        float r12041 = r12040 / r12031;
        float r12042 = r12034 * r12041;
        float r12043 = r12039 - r12042;
        float r12044 = -r12035;
        float r12045 = r12044 / r12034;
        float r12046 = r12043 * r12045;
        float r12047 = -4.586451634118627e-185;
        bool r12048 = r12031 <= r12047;
        float r12049 = r12036 * r12034;
        float r12050 = 4;
        float r12051 = r12050 * r12036;
        float r12052 = r12031 * r12031;
        float r12053 = fma(r12051, r12044, r12052);
        float r12054 = sqrt(r12053);
        float r12055 = r12054 - r12031;
        float r12056 = r12049 / r12055;
        float r12057 = r12040 / r12056;
        float r12058 = 3.6247124144787303e+143;
        bool r12059 = r12031 <= r12058;
        float r12060 = fma(r12044, r12051, r12052);
        float r12061 = sqrt(r12060);
        float r12062 = r12061 + r12031;
        float r12063 = r12050 / r12062;
        float r12064 = r12045 * r12063;
        float r12065 = r12031 + r12031;
        float r12066 = r12065 / r12050;
        float r12067 = r12045 / r12066;
        float r12068 = r12059 ? r12064 : r12067;
        float r12069 = r12048 ? r12057 : r12068;
        float r12070 = r12033 ? r12046 : r12069;
        return r12070;
}

double f_od(double a, double b, double c) {
        double r12071 = b;
        double r12072 = -1.3375417917952782e+154;
        bool r12073 = r12071 <= r12072;
        double r12074 = 2;
        double r12075 = c;
        double r12076 = a;
        double r12077 = r12075 * r12076;
        double r12078 = r12071 / r12077;
        double r12079 = r12074 * r12078;
        double r12080 = 1;
        double r12081 = r12080 / r12071;
        double r12082 = r12074 * r12081;
        double r12083 = r12079 - r12082;
        double r12084 = -r12075;
        double r12085 = r12084 / r12074;
        double r12086 = r12083 * r12085;
        double r12087 = -4.586451634118627e-185;
        bool r12088 = r12071 <= r12087;
        double r12089 = r12076 * r12074;
        double r12090 = 4;
        double r12091 = r12090 * r12076;
        double r12092 = r12071 * r12071;
        double r12093 = fma(r12091, r12084, r12092);
        double r12094 = sqrt(r12093);
        double r12095 = r12094 - r12071;
        double r12096 = r12089 / r12095;
        double r12097 = r12080 / r12096;
        double r12098 = 3.6247124144787303e+143;
        bool r12099 = r12071 <= r12098;
        double r12100 = fma(r12084, r12091, r12092);
        double r12101 = sqrt(r12100);
        double r12102 = r12101 + r12071;
        double r12103 = r12090 / r12102;
        double r12104 = r12085 * r12103;
        double r12105 = r12071 + r12071;
        double r12106 = r12105 / r12090;
        double r12107 = r12085 / r12106;
        double r12108 = r12099 ? r12104 : r12107;
        double r12109 = r12088 ? r12097 : r12108;
        double r12110 = r12073 ? r12086 : r12109;
        return r12110;
}

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 r12111, r12112, r12113, r12114, r12115, r12116, r12117, r12118, r12119, r12120, r12121, r12122, r12123, r12124;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r12111);
        mpfr_init(r12112);
        mpfr_init(r12113);
        mpfr_init_set_str(r12114, "4", 10, MPFR_RNDN);
        mpfr_init(r12115);
        mpfr_init(r12116);
        mpfr_init(r12117);
        mpfr_init(r12118);
        mpfr_init(r12119);
        mpfr_init(r12120);
        mpfr_init(r12121);
        mpfr_init_set_str(r12122, "2", 10, MPFR_RNDN);
        mpfr_init(r12123);
        mpfr_init(r12124);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r12111, b, MPFR_RNDN);
        mpfr_neg(r12112, r12111, MPFR_RNDN);
        mpfr_mul(r12113, r12111, r12111, MPFR_RNDN);
        ;
        mpfr_set_d(r12115, a, MPFR_RNDN);
        mpfr_mul(r12116, r12114, r12115, MPFR_RNDN);
        mpfr_set_d(r12117, c, MPFR_RNDN);
        mpfr_mul(r12118, r12116, r12117, MPFR_RNDN);
        mpfr_sub(r12119, r12113, r12118, MPFR_RNDN);
        mpfr_sqrt(r12120, r12119, MPFR_RNDN);
        mpfr_add(r12121, r12112, r12120, MPFR_RNDN);
        ;
        mpfr_mul(r12123, r12122, r12115, MPFR_RNDN);
        mpfr_div(r12124, r12121, r12123, MPFR_RNDN);
        return mpfr_get_d(r12124, MPFR_RNDN);
}

static mpfr_t r12125, r12126, r12127, r12128, r12129, r12130, r12131, r12132, r12133, r12134, r12135, r12136, r12137, r12138, r12139, r12140, r12141, r12142, r12143, r12144, r12145, r12146, r12147, r12148, r12149, r12150, r12151, r12152, r12153, r12154, r12155, r12156, r12157, r12158, r12159, r12160, r12161, r12162, r12163, r12164;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r12125);
        mpfr_init_set_str(r12126, "-1.3375417917952782e+154", 10, MPFR_RNDN);
        mpfr_init(r12127);
        mpfr_init_set_str(r12128, "2", 10, MPFR_RNDN);
        mpfr_init(r12129);
        mpfr_init(r12130);
        mpfr_init(r12131);
        mpfr_init(r12132);
        mpfr_init(r12133);
        mpfr_init_set_str(r12134, "1", 10, MPFR_RNDN);
        mpfr_init(r12135);
        mpfr_init(r12136);
        mpfr_init(r12137);
        mpfr_init(r12138);
        mpfr_init(r12139);
        mpfr_init(r12140);
        mpfr_init_set_str(r12141, "-4.586451634118627e-185", 10, MPFR_RNDN);
        mpfr_init(r12142);
        mpfr_init(r12143);
        mpfr_init_set_str(r12144, "4", 10, MPFR_RNDN);
        mpfr_init(r12145);
        mpfr_init(r12146);
        mpfr_init(r12147);
        mpfr_init(r12148);
        mpfr_init(r12149);
        mpfr_init(r12150);
        mpfr_init(r12151);
        mpfr_init_set_str(r12152, "3.6247124144787303e+143", 10, MPFR_RNDN);
        mpfr_init(r12153);
        mpfr_init(r12154);
        mpfr_init(r12155);
        mpfr_init(r12156);
        mpfr_init(r12157);
        mpfr_init(r12158);
        mpfr_init(r12159);
        mpfr_init(r12160);
        mpfr_init(r12161);
        mpfr_init(r12162);
        mpfr_init(r12163);
        mpfr_init(r12164);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r12125, b, MPFR_RNDN);
        ;
        mpfr_set_si(r12127, mpfr_cmp(r12125, r12126) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r12129, c, MPFR_RNDN);
        mpfr_set_d(r12130, a, MPFR_RNDN);
        mpfr_mul(r12131, r12129, r12130, MPFR_RNDN);
        mpfr_div(r12132, r12125, r12131, MPFR_RNDN);
        mpfr_mul(r12133, r12128, r12132, MPFR_RNDN);
        ;
        mpfr_div(r12135, r12134, r12125, MPFR_RNDN);
        mpfr_mul(r12136, r12128, r12135, MPFR_RNDN);
        mpfr_sub(r12137, r12133, r12136, MPFR_RNDN);
        mpfr_neg(r12138, r12129, MPFR_RNDN);
        mpfr_div(r12139, r12138, r12128, MPFR_RNDN);
        mpfr_mul(r12140, r12137, r12139, MPFR_RNDN);
        ;
        mpfr_set_si(r12142, mpfr_cmp(r12125, r12141) <= 0, MPFR_RNDN);
        mpfr_mul(r12143, r12130, r12128, MPFR_RNDN);
        ;
        mpfr_mul(r12145, r12144, r12130, MPFR_RNDN);
        mpfr_mul(r12146, r12125, r12125, MPFR_RNDN);
        mpfr_fma(r12147, r12145, r12138, r12146, MPFR_RNDN);
        mpfr_sqrt(r12148, r12147, MPFR_RNDN);
        mpfr_sub(r12149, r12148, r12125, MPFR_RNDN);
        mpfr_div(r12150, r12143, r12149, MPFR_RNDN);
        mpfr_div(r12151, r12134, r12150, MPFR_RNDN);
        ;
        mpfr_set_si(r12153, mpfr_cmp(r12125, r12152) <= 0, MPFR_RNDN);
        mpfr_fma(r12154, r12138, r12145, r12146, MPFR_RNDN);
        mpfr_sqrt(r12155, r12154, MPFR_RNDN);
        mpfr_add(r12156, r12155, r12125, MPFR_RNDN);
        mpfr_div(r12157, r12144, r12156, MPFR_RNDN);
        mpfr_mul(r12158, r12139, r12157, MPFR_RNDN);
        mpfr_add(r12159, r12125, r12125, MPFR_RNDN);
        mpfr_div(r12160, r12159, r12144, MPFR_RNDN);
        mpfr_div(r12161, r12139, r12160, MPFR_RNDN);
        if (mpfr_get_si(r12153, MPFR_RNDN)) { mpfr_set(r12162, r12158, MPFR_RNDN); } else { mpfr_set(r12162, r12161, MPFR_RNDN); };
        if (mpfr_get_si(r12142, MPFR_RNDN)) { mpfr_set(r12163, r12151, MPFR_RNDN); } else { mpfr_set(r12163, r12162, MPFR_RNDN); };
        if (mpfr_get_si(r12127, MPFR_RNDN)) { mpfr_set(r12164, r12140, MPFR_RNDN); } else { mpfr_set(r12164, r12163, MPFR_RNDN); };
        return mpfr_get_d(r12164, MPFR_RNDN);
}

static mpfr_t r12165, r12166, r12167, r12168, r12169, r12170, r12171, r12172, r12173, r12174, r12175, r12176, r12177, r12178, r12179, r12180, r12181, r12182, r12183, r12184, r12185, r12186, r12187, r12188, r12189, r12190, r12191, r12192, r12193, r12194, r12195, r12196, r12197, r12198, r12199, r12200, r12201, r12202, r12203, r12204;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r12165);
        mpfr_init_set_str(r12166, "-1.3375417917952782e+154", 10, MPFR_RNDN);
        mpfr_init(r12167);
        mpfr_init_set_str(r12168, "2", 10, MPFR_RNDN);
        mpfr_init(r12169);
        mpfr_init(r12170);
        mpfr_init(r12171);
        mpfr_init(r12172);
        mpfr_init(r12173);
        mpfr_init_set_str(r12174, "1", 10, MPFR_RNDN);
        mpfr_init(r12175);
        mpfr_init(r12176);
        mpfr_init(r12177);
        mpfr_init(r12178);
        mpfr_init(r12179);
        mpfr_init(r12180);
        mpfr_init_set_str(r12181, "-4.586451634118627e-185", 10, MPFR_RNDN);
        mpfr_init(r12182);
        mpfr_init(r12183);
        mpfr_init_set_str(r12184, "4", 10, MPFR_RNDN);
        mpfr_init(r12185);
        mpfr_init(r12186);
        mpfr_init(r12187);
        mpfr_init(r12188);
        mpfr_init(r12189);
        mpfr_init(r12190);
        mpfr_init(r12191);
        mpfr_init_set_str(r12192, "3.6247124144787303e+143", 10, MPFR_RNDN);
        mpfr_init(r12193);
        mpfr_init(r12194);
        mpfr_init(r12195);
        mpfr_init(r12196);
        mpfr_init(r12197);
        mpfr_init(r12198);
        mpfr_init(r12199);
        mpfr_init(r12200);
        mpfr_init(r12201);
        mpfr_init(r12202);
        mpfr_init(r12203);
        mpfr_init(r12204);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r12165, b, MPFR_RNDN);
        ;
        mpfr_set_si(r12167, mpfr_cmp(r12165, r12166) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r12169, c, MPFR_RNDN);
        mpfr_set_d(r12170, a, MPFR_RNDN);
        mpfr_mul(r12171, r12169, r12170, MPFR_RNDN);
        mpfr_div(r12172, r12165, r12171, MPFR_RNDN);
        mpfr_mul(r12173, r12168, r12172, MPFR_RNDN);
        ;
        mpfr_div(r12175, r12174, r12165, MPFR_RNDN);
        mpfr_mul(r12176, r12168, r12175, MPFR_RNDN);
        mpfr_sub(r12177, r12173, r12176, MPFR_RNDN);
        mpfr_neg(r12178, r12169, MPFR_RNDN);
        mpfr_div(r12179, r12178, r12168, MPFR_RNDN);
        mpfr_mul(r12180, r12177, r12179, MPFR_RNDN);
        ;
        mpfr_set_si(r12182, mpfr_cmp(r12165, r12181) <= 0, MPFR_RNDN);
        mpfr_mul(r12183, r12170, r12168, MPFR_RNDN);
        ;
        mpfr_mul(r12185, r12184, r12170, MPFR_RNDN);
        mpfr_mul(r12186, r12165, r12165, MPFR_RNDN);
        mpfr_fma(r12187, r12185, r12178, r12186, MPFR_RNDN);
        mpfr_sqrt(r12188, r12187, MPFR_RNDN);
        mpfr_sub(r12189, r12188, r12165, MPFR_RNDN);
        mpfr_div(r12190, r12183, r12189, MPFR_RNDN);
        mpfr_div(r12191, r12174, r12190, MPFR_RNDN);
        ;
        mpfr_set_si(r12193, mpfr_cmp(r12165, r12192) <= 0, MPFR_RNDN);
        mpfr_fma(r12194, r12178, r12185, r12186, MPFR_RNDN);
        mpfr_sqrt(r12195, r12194, MPFR_RNDN);
        mpfr_add(r12196, r12195, r12165, MPFR_RNDN);
        mpfr_div(r12197, r12184, r12196, MPFR_RNDN);
        mpfr_mul(r12198, r12179, r12197, MPFR_RNDN);
        mpfr_add(r12199, r12165, r12165, MPFR_RNDN);
        mpfr_div(r12200, r12199, r12184, MPFR_RNDN);
        mpfr_div(r12201, r12179, r12200, MPFR_RNDN);
        if (mpfr_get_si(r12193, MPFR_RNDN)) { mpfr_set(r12202, r12198, MPFR_RNDN); } else { mpfr_set(r12202, r12201, MPFR_RNDN); };
        if (mpfr_get_si(r12182, MPFR_RNDN)) { mpfr_set(r12203, r12191, MPFR_RNDN); } else { mpfr_set(r12203, r12202, MPFR_RNDN); };
        if (mpfr_get_si(r12167, MPFR_RNDN)) { mpfr_set(r12204, r12180, MPFR_RNDN); } else { mpfr_set(r12204, r12203, MPFR_RNDN); };
        return mpfr_get_d(r12204, MPFR_RNDN);
}

