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

char *name = "quadp (p42, positive)";

double f_if(float a, float b, float c) {
        float r9886 = b;
        float r9887 = -r9886;
        float r9888 = r9886 * r9886;
        float r9889 = 4;
        float r9890 = a;
        float r9891 = c;
        float r9892 = r9890 * r9891;
        float r9893 = r9889 * r9892;
        float r9894 = r9888 - r9893;
        float r9895 = sqrt(r9894);
        float r9896 = r9887 + r9895;
        float r9897 = 2;
        float r9898 = r9897 * r9890;
        float r9899 = r9896 / r9898;
        return r9899;
}

double f_id(double a, double b, double c) {
        double r9900 = b;
        double r9901 = -r9900;
        double r9902 = r9900 * r9900;
        double r9903 = 4;
        double r9904 = a;
        double r9905 = c;
        double r9906 = r9904 * r9905;
        double r9907 = r9903 * r9906;
        double r9908 = r9902 - r9907;
        double r9909 = sqrt(r9908);
        double r9910 = r9901 + r9909;
        double r9911 = 2;
        double r9912 = r9911 * r9904;
        double r9913 = r9910 / r9912;
        return r9913;
}


double f_of(float a, float b, float c) {
        float r9914 = -2;
        float r9915 = 2;
        float r9916 = r9914 / r9915;
        float r9917 = b;
        float r9918 = r9916 / r9917;
        float r9919 = -5.50549836563957e+33;
        bool r9920 = r9918 <= r9919;
        float r9921 = 4;
        float r9922 = -r9921;
        float r9923 = a;
        float r9924 = c;
        float r9925 = r9923 * r9924;
        float r9926 = r9917 * r9917;
        float r9927 = fma(r9922, r9925, r9926);
        float r9928 = sqrt(r9927);
        float r9929 = r9928 - r9917;
        float r9930 = r9929 / r9923;
        float r9931 = 1;
        float r9932 = r9931 / r9915;
        float r9933 = r9930 * r9932;
        float r9934 = 4.791871306651053e-308;
        bool r9935 = r9918 <= r9934;
        float r9936 = -r9924;
        float r9937 = r9936 / r9917;
        float r9938 = 8.869900708151351e-156;
        bool r9939 = r9918 <= r9938;
        float r9940 = r9917 / r9923;
        float r9941 = -r9940;
        float r9942 = r9939 ? r9941 : r9933;
        float r9943 = r9935 ? r9937 : r9942;
        float r9944 = r9920 ? r9933 : r9943;
        return r9944;
}

double f_od(double a, double b, double c) {
        double r9945 = -2;
        double r9946 = 2;
        double r9947 = r9945 / r9946;
        double r9948 = b;
        double r9949 = r9947 / r9948;
        double r9950 = -5.50549836563957e+33;
        bool r9951 = r9949 <= r9950;
        double r9952 = 4;
        double r9953 = -r9952;
        double r9954 = a;
        double r9955 = c;
        double r9956 = r9954 * r9955;
        double r9957 = r9948 * r9948;
        double r9958 = fma(r9953, r9956, r9957);
        double r9959 = sqrt(r9958);
        double r9960 = r9959 - r9948;
        double r9961 = r9960 / r9954;
        double r9962 = 1;
        double r9963 = r9962 / r9946;
        double r9964 = r9961 * r9963;
        double r9965 = 4.791871306651053e-308;
        bool r9966 = r9949 <= r9965;
        double r9967 = -r9955;
        double r9968 = r9967 / r9948;
        double r9969 = 8.869900708151351e-156;
        bool r9970 = r9949 <= r9969;
        double r9971 = r9948 / r9954;
        double r9972 = -r9971;
        double r9973 = r9970 ? r9972 : r9964;
        double r9974 = r9966 ? r9968 : r9973;
        double r9975 = r9951 ? r9964 : r9974;
        return r9975;
}

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 r9976, r9977, r9978, r9979, r9980, r9981, r9982, r9983, r9984, r9985, r9986, r9987, r9988, r9989;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9976);
        mpfr_init(r9977);
        mpfr_init(r9978);
        mpfr_init_set_str(r9979, "4", 10, MPFR_RNDN);
        mpfr_init(r9980);
        mpfr_init(r9981);
        mpfr_init(r9982);
        mpfr_init(r9983);
        mpfr_init(r9984);
        mpfr_init(r9985);
        mpfr_init(r9986);
        mpfr_init_set_str(r9987, "2", 10, MPFR_RNDN);
        mpfr_init(r9988);
        mpfr_init(r9989);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r9976, b, MPFR_RNDN);
        mpfr_neg(r9977, r9976, MPFR_RNDN);
        mpfr_mul(r9978, r9976, r9976, MPFR_RNDN);
        ;
        mpfr_set_d(r9980, a, MPFR_RNDN);
        mpfr_set_d(r9981, c, MPFR_RNDN);
        mpfr_mul(r9982, r9980, r9981, MPFR_RNDN);
        mpfr_mul(r9983, r9979, r9982, MPFR_RNDN);
        mpfr_sub(r9984, r9978, r9983, MPFR_RNDN);
        mpfr_sqrt(r9985, r9984, MPFR_RNDN);
        mpfr_add(r9986, r9977, r9985, MPFR_RNDN);
        ;
        mpfr_mul(r9988, r9987, r9980, MPFR_RNDN);
        mpfr_div(r9989, r9986, r9988, MPFR_RNDN);
        return mpfr_get_d(r9989, MPFR_RNDN);
}

static mpfr_t r9990, r9991, r9992, r9993, r9994, r9995, r9996, r9997, r9998, r9999, r10000, r10001, r10002, r10003, r10004, r10005, r10006, r10007, r10008, r10009, r10010, r10011, r10012, r10013, r10014, r10015, r10016, r10017, r10018, r10019, r10020;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r9990, "-2", 10, MPFR_RNDN);
        mpfr_init_set_str(r9991, "2", 10, MPFR_RNDN);
        mpfr_init(r9992);
        mpfr_init(r9993);
        mpfr_init(r9994);
        mpfr_init_set_str(r9995, "-5.50549836563957e+33", 10, MPFR_RNDN);
        mpfr_init(r9996);
        mpfr_init_set_str(r9997, "4", 10, MPFR_RNDN);
        mpfr_init(r9998);
        mpfr_init(r9999);
        mpfr_init(r10000);
        mpfr_init(r10001);
        mpfr_init(r10002);
        mpfr_init(r10003);
        mpfr_init(r10004);
        mpfr_init(r10005);
        mpfr_init(r10006);
        mpfr_init_set_str(r10007, "1", 10, MPFR_RNDN);
        mpfr_init(r10008);
        mpfr_init(r10009);
        mpfr_init_set_str(r10010, "4.791871306651053e-308", 10, MPFR_RNDN);
        mpfr_init(r10011);
        mpfr_init(r10012);
        mpfr_init(r10013);
        mpfr_init_set_str(r10014, "8.869900708151351e-156", 10, MPFR_RNDN);
        mpfr_init(r10015);
        mpfr_init(r10016);
        mpfr_init(r10017);
        mpfr_init(r10018);
        mpfr_init(r10019);
        mpfr_init(r10020);
}

double f_fm(double a, double b, double c) {
        ;
        ;
        mpfr_div(r9992, r9990, r9991, MPFR_RNDN);
        mpfr_set_d(r9993, b, MPFR_RNDN);
        mpfr_div(r9994, r9992, r9993, MPFR_RNDN);
        ;
        mpfr_set_si(r9996, mpfr_cmp(r9994, r9995) <= 0, MPFR_RNDN);
        ;
        mpfr_neg(r9998, r9997, MPFR_RNDN);
        mpfr_set_d(r9999, a, MPFR_RNDN);
        mpfr_set_d(r10000, c, MPFR_RNDN);
        mpfr_mul(r10001, r9999, r10000, MPFR_RNDN);
        mpfr_mul(r10002, r9993, r9993, MPFR_RNDN);
        mpfr_fma(r10003, r9998, r10001, r10002, MPFR_RNDN);
        mpfr_sqrt(r10004, r10003, MPFR_RNDN);
        mpfr_sub(r10005, r10004, r9993, MPFR_RNDN);
        mpfr_div(r10006, r10005, r9999, MPFR_RNDN);
        ;
        mpfr_div(r10008, r10007, r9991, MPFR_RNDN);
        mpfr_mul(r10009, r10006, r10008, MPFR_RNDN);
        ;
        mpfr_set_si(r10011, mpfr_cmp(r9994, r10010) <= 0, MPFR_RNDN);
        mpfr_neg(r10012, r10000, MPFR_RNDN);
        mpfr_div(r10013, r10012, r9993, MPFR_RNDN);
        ;
        mpfr_set_si(r10015, mpfr_cmp(r9994, r10014) <= 0, MPFR_RNDN);
        mpfr_div(r10016, r9993, r9999, MPFR_RNDN);
        mpfr_neg(r10017, r10016, MPFR_RNDN);
        if (mpfr_get_si(r10015, MPFR_RNDN)) { mpfr_set(r10018, r10017, MPFR_RNDN); } else { mpfr_set(r10018, r10009, MPFR_RNDN); };
        if (mpfr_get_si(r10011, MPFR_RNDN)) { mpfr_set(r10019, r10013, MPFR_RNDN); } else { mpfr_set(r10019, r10018, MPFR_RNDN); };
        if (mpfr_get_si(r9996, MPFR_RNDN)) { mpfr_set(r10020, r10009, MPFR_RNDN); } else { mpfr_set(r10020, r10019, MPFR_RNDN); };
        return mpfr_get_d(r10020, MPFR_RNDN);
}

static mpfr_t r10021, r10022, r10023, r10024, r10025, r10026, r10027, r10028, r10029, r10030, r10031, r10032, r10033, r10034, r10035, r10036, r10037, r10038, r10039, r10040, r10041, r10042, r10043, r10044, r10045, r10046, r10047, r10048, r10049, r10050, r10051;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r10021, "-2", 10, MPFR_RNDN);
        mpfr_init_set_str(r10022, "2", 10, MPFR_RNDN);
        mpfr_init(r10023);
        mpfr_init(r10024);
        mpfr_init(r10025);
        mpfr_init_set_str(r10026, "-5.50549836563957e+33", 10, MPFR_RNDN);
        mpfr_init(r10027);
        mpfr_init_set_str(r10028, "4", 10, MPFR_RNDN);
        mpfr_init(r10029);
        mpfr_init(r10030);
        mpfr_init(r10031);
        mpfr_init(r10032);
        mpfr_init(r10033);
        mpfr_init(r10034);
        mpfr_init(r10035);
        mpfr_init(r10036);
        mpfr_init(r10037);
        mpfr_init_set_str(r10038, "1", 10, MPFR_RNDN);
        mpfr_init(r10039);
        mpfr_init(r10040);
        mpfr_init_set_str(r10041, "4.791871306651053e-308", 10, MPFR_RNDN);
        mpfr_init(r10042);
        mpfr_init(r10043);
        mpfr_init(r10044);
        mpfr_init_set_str(r10045, "8.869900708151351e-156", 10, MPFR_RNDN);
        mpfr_init(r10046);
        mpfr_init(r10047);
        mpfr_init(r10048);
        mpfr_init(r10049);
        mpfr_init(r10050);
        mpfr_init(r10051);
}

double f_dm(double a, double b, double c) {
        ;
        ;
        mpfr_div(r10023, r10021, r10022, MPFR_RNDN);
        mpfr_set_d(r10024, b, MPFR_RNDN);
        mpfr_div(r10025, r10023, r10024, MPFR_RNDN);
        ;
        mpfr_set_si(r10027, mpfr_cmp(r10025, r10026) <= 0, MPFR_RNDN);
        ;
        mpfr_neg(r10029, r10028, MPFR_RNDN);
        mpfr_set_d(r10030, a, MPFR_RNDN);
        mpfr_set_d(r10031, c, MPFR_RNDN);
        mpfr_mul(r10032, r10030, r10031, MPFR_RNDN);
        mpfr_mul(r10033, r10024, r10024, MPFR_RNDN);
        mpfr_fma(r10034, r10029, r10032, r10033, MPFR_RNDN);
        mpfr_sqrt(r10035, r10034, MPFR_RNDN);
        mpfr_sub(r10036, r10035, r10024, MPFR_RNDN);
        mpfr_div(r10037, r10036, r10030, MPFR_RNDN);
        ;
        mpfr_div(r10039, r10038, r10022, MPFR_RNDN);
        mpfr_mul(r10040, r10037, r10039, MPFR_RNDN);
        ;
        mpfr_set_si(r10042, mpfr_cmp(r10025, r10041) <= 0, MPFR_RNDN);
        mpfr_neg(r10043, r10031, MPFR_RNDN);
        mpfr_div(r10044, r10043, r10024, MPFR_RNDN);
        ;
        mpfr_set_si(r10046, mpfr_cmp(r10025, r10045) <= 0, MPFR_RNDN);
        mpfr_div(r10047, r10024, r10030, MPFR_RNDN);
        mpfr_neg(r10048, r10047, MPFR_RNDN);
        if (mpfr_get_si(r10046, MPFR_RNDN)) { mpfr_set(r10049, r10048, MPFR_RNDN); } else { mpfr_set(r10049, r10040, MPFR_RNDN); };
        if (mpfr_get_si(r10042, MPFR_RNDN)) { mpfr_set(r10050, r10044, MPFR_RNDN); } else { mpfr_set(r10050, r10049, MPFR_RNDN); };
        if (mpfr_get_si(r10027, MPFR_RNDN)) { mpfr_set(r10051, r10040, MPFR_RNDN); } else { mpfr_set(r10051, r10050, MPFR_RNDN); };
        return mpfr_get_d(r10051, MPFR_RNDN);
}

