#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 r40035 = b;
        float r40036 = -r40035;
        float r40037 = r40035 * r40035;
        float r40038 = 4;
        float r40039 = a;
        float r40040 = r40038 * r40039;
        float r40041 = c;
        float r40042 = r40040 * r40041;
        float r40043 = r40037 - r40042;
        float r40044 = sqrt(r40043);
        float r40045 = r40036 + r40044;
        float r40046 = 2;
        float r40047 = r40046 * r40039;
        float r40048 = r40045 / r40047;
        return r40048;
}

double f_id(double a, double b, double c) {
        double r40049 = b;
        double r40050 = -r40049;
        double r40051 = r40049 * r40049;
        double r40052 = 4;
        double r40053 = a;
        double r40054 = r40052 * r40053;
        double r40055 = c;
        double r40056 = r40054 * r40055;
        double r40057 = r40051 - r40056;
        double r40058 = sqrt(r40057);
        double r40059 = r40050 + r40058;
        double r40060 = 2;
        double r40061 = r40060 * r40053;
        double r40062 = r40059 / r40061;
        return r40062;
}


double f_of(float a, float b, float c) {
        float r40063 = b;
        float r40064 = -7.833327672762858e+152;
        bool r40065 = r40063 <= r40064;
        float r40066 = -r40063;
        float r40067 = a;
        float r40068 = r40066 / r40067;
        float r40069 = 7.698366662298276e-138;
        bool r40070 = r40063 <= r40069;
        float r40071 = r40063 * r40063;
        float r40072 = 4;
        float r40073 = r40072 * r40067;
        float r40074 = c;
        float r40075 = r40073 * r40074;
        float r40076 = r40071 - r40075;
        float r40077 = sqrt(r40076);
        float r40078 = r40066 + r40077;
        float r40079 = 2;
        float r40080 = r40079 * r40067;
        float r40081 = r40078 / r40080;
        float r40082 = r40074 / r40063;
        float r40083 = -2;
        float r40084 = r40083 / r40079;
        float r40085 = r40082 * r40084;
        float r40086 = r40070 ? r40081 : r40085;
        float r40087 = r40065 ? r40068 : r40086;
        return r40087;
}

double f_od(double a, double b, double c) {
        double r40088 = b;
        double r40089 = -7.833327672762858e+152;
        bool r40090 = r40088 <= r40089;
        double r40091 = -r40088;
        double r40092 = a;
        double r40093 = r40091 / r40092;
        double r40094 = 7.698366662298276e-138;
        bool r40095 = r40088 <= r40094;
        double r40096 = r40088 * r40088;
        double r40097 = 4;
        double r40098 = r40097 * r40092;
        double r40099 = c;
        double r40100 = r40098 * r40099;
        double r40101 = r40096 - r40100;
        double r40102 = sqrt(r40101);
        double r40103 = r40091 + r40102;
        double r40104 = 2;
        double r40105 = r40104 * r40092;
        double r40106 = r40103 / r40105;
        double r40107 = r40099 / r40088;
        double r40108 = -2;
        double r40109 = r40108 / r40104;
        double r40110 = r40107 * r40109;
        double r40111 = r40095 ? r40106 : r40110;
        double r40112 = r40090 ? r40093 : r40111;
        return r40112;
}

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 r40113, r40114, r40115, r40116, r40117, r40118, r40119, r40120, r40121, r40122, r40123, r40124, r40125, r40126;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2960);
        mpfr_init(r40113);
        mpfr_init(r40114);
        mpfr_init(r40115);
        mpfr_init_set_str(r40116, "4", 10, MPFR_RNDN);
        mpfr_init(r40117);
        mpfr_init(r40118);
        mpfr_init(r40119);
        mpfr_init(r40120);
        mpfr_init(r40121);
        mpfr_init(r40122);
        mpfr_init(r40123);
        mpfr_init_set_str(r40124, "2", 10, MPFR_RNDN);
        mpfr_init(r40125);
        mpfr_init(r40126);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r40113, b, MPFR_RNDN);
        mpfr_neg(r40114, r40113, MPFR_RNDN);
        mpfr_mul(r40115, r40113, r40113, MPFR_RNDN);
        ;
        mpfr_set_d(r40117, a, MPFR_RNDN);
        mpfr_mul(r40118, r40116, r40117, MPFR_RNDN);
        mpfr_set_d(r40119, c, MPFR_RNDN);
        mpfr_mul(r40120, r40118, r40119, MPFR_RNDN);
        mpfr_sub(r40121, r40115, r40120, MPFR_RNDN);
        mpfr_sqrt(r40122, r40121, MPFR_RNDN);
        mpfr_add(r40123, r40114, r40122, MPFR_RNDN);
        ;
        mpfr_mul(r40125, r40124, r40117, MPFR_RNDN);
        mpfr_div(r40126, r40123, r40125, MPFR_RNDN);
        return mpfr_get_d(r40126, MPFR_RNDN);
}

static mpfr_t r40127, r40128, r40129, r40130, r40131, r40132, r40133, r40134, r40135, r40136, r40137, r40138, r40139, r40140, r40141, r40142, r40143, r40144, r40145, r40146, r40147, r40148, r40149, r40150, r40151;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r40127);
        mpfr_init_set_str(r40128, "-7.833327672762858e+152", 10, MPFR_RNDN);
        mpfr_init(r40129);
        mpfr_init(r40130);
        mpfr_init(r40131);
        mpfr_init(r40132);
        mpfr_init_set_str(r40133, "7.698366662298276e-138", 10, MPFR_RNDN);
        mpfr_init(r40134);
        mpfr_init(r40135);
        mpfr_init_set_str(r40136, "4", 10, MPFR_RNDN);
        mpfr_init(r40137);
        mpfr_init(r40138);
        mpfr_init(r40139);
        mpfr_init(r40140);
        mpfr_init(r40141);
        mpfr_init(r40142);
        mpfr_init_set_str(r40143, "2", 10, MPFR_RNDN);
        mpfr_init(r40144);
        mpfr_init(r40145);
        mpfr_init(r40146);
        mpfr_init_set_str(r40147, "-2", 10, MPFR_RNDN);
        mpfr_init(r40148);
        mpfr_init(r40149);
        mpfr_init(r40150);
        mpfr_init(r40151);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r40127, b, MPFR_RNDN);
        ;
        mpfr_set_si(r40129, mpfr_cmp(r40127, r40128) <= 0, MPFR_RNDN);
        mpfr_neg(r40130, r40127, MPFR_RNDN);
        mpfr_set_d(r40131, a, MPFR_RNDN);
        mpfr_div(r40132, r40130, r40131, MPFR_RNDN);
        ;
        mpfr_set_si(r40134, mpfr_cmp(r40127, r40133) <= 0, MPFR_RNDN);
        mpfr_mul(r40135, r40127, r40127, MPFR_RNDN);
        ;
        mpfr_mul(r40137, r40136, r40131, MPFR_RNDN);
        mpfr_set_d(r40138, c, MPFR_RNDN);
        mpfr_mul(r40139, r40137, r40138, MPFR_RNDN);
        mpfr_sub(r40140, r40135, r40139, MPFR_RNDN);
        mpfr_sqrt(r40141, r40140, MPFR_RNDN);
        mpfr_add(r40142, r40130, r40141, MPFR_RNDN);
        ;
        mpfr_mul(r40144, r40143, r40131, MPFR_RNDN);
        mpfr_div(r40145, r40142, r40144, MPFR_RNDN);
        mpfr_div(r40146, r40138, r40127, MPFR_RNDN);
        ;
        mpfr_div(r40148, r40147, r40143, MPFR_RNDN);
        mpfr_mul(r40149, r40146, r40148, MPFR_RNDN);
        if (mpfr_get_si(r40134, MPFR_RNDN)) { mpfr_set(r40150, r40145, MPFR_RNDN); } else { mpfr_set(r40150, r40149, MPFR_RNDN); };
        if (mpfr_get_si(r40129, MPFR_RNDN)) { mpfr_set(r40151, r40132, MPFR_RNDN); } else { mpfr_set(r40151, r40150, MPFR_RNDN); };
        return mpfr_get_d(r40151, MPFR_RNDN);
}

static mpfr_t r40152, r40153, r40154, r40155, r40156, r40157, r40158, r40159, r40160, r40161, r40162, r40163, r40164, r40165, r40166, r40167, r40168, r40169, r40170, r40171, r40172, r40173, r40174, r40175, r40176;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r40152);
        mpfr_init_set_str(r40153, "-7.833327672762858e+152", 10, MPFR_RNDN);
        mpfr_init(r40154);
        mpfr_init(r40155);
        mpfr_init(r40156);
        mpfr_init(r40157);
        mpfr_init_set_str(r40158, "7.698366662298276e-138", 10, MPFR_RNDN);
        mpfr_init(r40159);
        mpfr_init(r40160);
        mpfr_init_set_str(r40161, "4", 10, MPFR_RNDN);
        mpfr_init(r40162);
        mpfr_init(r40163);
        mpfr_init(r40164);
        mpfr_init(r40165);
        mpfr_init(r40166);
        mpfr_init(r40167);
        mpfr_init_set_str(r40168, "2", 10, MPFR_RNDN);
        mpfr_init(r40169);
        mpfr_init(r40170);
        mpfr_init(r40171);
        mpfr_init_set_str(r40172, "-2", 10, MPFR_RNDN);
        mpfr_init(r40173);
        mpfr_init(r40174);
        mpfr_init(r40175);
        mpfr_init(r40176);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r40152, b, MPFR_RNDN);
        ;
        mpfr_set_si(r40154, mpfr_cmp(r40152, r40153) <= 0, MPFR_RNDN);
        mpfr_neg(r40155, r40152, MPFR_RNDN);
        mpfr_set_d(r40156, a, MPFR_RNDN);
        mpfr_div(r40157, r40155, r40156, MPFR_RNDN);
        ;
        mpfr_set_si(r40159, mpfr_cmp(r40152, r40158) <= 0, MPFR_RNDN);
        mpfr_mul(r40160, r40152, r40152, MPFR_RNDN);
        ;
        mpfr_mul(r40162, r40161, r40156, MPFR_RNDN);
        mpfr_set_d(r40163, c, MPFR_RNDN);
        mpfr_mul(r40164, r40162, r40163, MPFR_RNDN);
        mpfr_sub(r40165, r40160, r40164, MPFR_RNDN);
        mpfr_sqrt(r40166, r40165, MPFR_RNDN);
        mpfr_add(r40167, r40155, r40166, MPFR_RNDN);
        ;
        mpfr_mul(r40169, r40168, r40156, MPFR_RNDN);
        mpfr_div(r40170, r40167, r40169, MPFR_RNDN);
        mpfr_div(r40171, r40163, r40152, MPFR_RNDN);
        ;
        mpfr_div(r40173, r40172, r40168, MPFR_RNDN);
        mpfr_mul(r40174, r40171, r40173, MPFR_RNDN);
        if (mpfr_get_si(r40159, MPFR_RNDN)) { mpfr_set(r40175, r40170, MPFR_RNDN); } else { mpfr_set(r40175, r40174, MPFR_RNDN); };
        if (mpfr_get_si(r40154, MPFR_RNDN)) { mpfr_set(r40176, r40157, MPFR_RNDN); } else { mpfr_set(r40176, r40175, MPFR_RNDN); };
        return mpfr_get_d(r40176, MPFR_RNDN);
}

