#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 r9858 = b;
        float r9859 = -r9858;
        float r9860 = r9858 * r9858;
        float r9861 = 4;
        float r9862 = a;
        float r9863 = c;
        float r9864 = r9862 * r9863;
        float r9865 = r9861 * r9864;
        float r9866 = r9860 - r9865;
        float r9867 = sqrt(r9866);
        float r9868 = r9859 + r9867;
        float r9869 = 2;
        float r9870 = r9869 * r9862;
        float r9871 = r9868 / r9870;
        return r9871;
}

double f_id(double a, double b, double c) {
        double r9872 = b;
        double r9873 = -r9872;
        double r9874 = r9872 * r9872;
        double r9875 = 4;
        double r9876 = a;
        double r9877 = c;
        double r9878 = r9876 * r9877;
        double r9879 = r9875 * r9878;
        double r9880 = r9874 - r9879;
        double r9881 = sqrt(r9880);
        double r9882 = r9873 + r9881;
        double r9883 = 2;
        double r9884 = r9883 * r9876;
        double r9885 = r9882 / r9884;
        return r9885;
}


double f_of(float a, float b, float c) {
        float r9886 = b;
        float r9887 = -r9886;
        float r9888 = -3.8652237028142594e+119;
        bool r9889 = r9887 <= r9888;
        float r9890 = c;
        float r9891 = r9890 / r9886;
        float r9892 = -r9891;
        float r9893 = -1.9516615171416054e-122;
        bool r9894 = r9887 <= r9893;
        float r9895 = 4;
        float r9896 = a;
        float r9897 = r9896 * r9890;
        float r9898 = r9895 * r9897;
        float r9899 = r9886 * r9886;
        float r9900 = r9899 - r9898;
        float r9901 = sqrt(r9900);
        float r9902 = r9887 - r9901;
        float r9903 = r9898 / r9902;
        float r9904 = 2;
        float r9905 = r9904 * r9896;
        float r9906 = r9903 / r9905;
        float r9907 = 3.092591079713731e+103;
        bool r9908 = r9887 <= r9907;
        float r9909 = r9901 + r9887;
        float r9910 = r9909 / r9905;
        float r9911 = r9886 / r9896;
        float r9912 = r9891 - r9911;
        float r9913 = r9908 ? r9910 : r9912;
        float r9914 = r9894 ? r9906 : r9913;
        float r9915 = r9889 ? r9892 : r9914;
        return r9915;
}

double f_od(double a, double b, double c) {
        double r9916 = b;
        double r9917 = -r9916;
        double r9918 = -3.8652237028142594e+119;
        bool r9919 = r9917 <= r9918;
        double r9920 = c;
        double r9921 = r9920 / r9916;
        double r9922 = -r9921;
        double r9923 = -1.9516615171416054e-122;
        bool r9924 = r9917 <= r9923;
        double r9925 = 4;
        double r9926 = a;
        double r9927 = r9926 * r9920;
        double r9928 = r9925 * r9927;
        double r9929 = r9916 * r9916;
        double r9930 = r9929 - r9928;
        double r9931 = sqrt(r9930);
        double r9932 = r9917 - r9931;
        double r9933 = r9928 / r9932;
        double r9934 = 2;
        double r9935 = r9934 * r9926;
        double r9936 = r9933 / r9935;
        double r9937 = 3.092591079713731e+103;
        bool r9938 = r9917 <= r9937;
        double r9939 = r9931 + r9917;
        double r9940 = r9939 / r9935;
        double r9941 = r9916 / r9926;
        double r9942 = r9921 - r9941;
        double r9943 = r9938 ? r9940 : r9942;
        double r9944 = r9924 ? r9936 : r9943;
        double r9945 = r9919 ? r9922 : r9944;
        return r9945;
}

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 r9946, r9947, r9948, r9949, r9950, r9951, r9952, r9953, r9954, r9955, r9956, r9957, r9958, r9959;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9946);
        mpfr_init(r9947);
        mpfr_init(r9948);
        mpfr_init_set_str(r9949, "4", 10, MPFR_RNDN);
        mpfr_init(r9950);
        mpfr_init(r9951);
        mpfr_init(r9952);
        mpfr_init(r9953);
        mpfr_init(r9954);
        mpfr_init(r9955);
        mpfr_init(r9956);
        mpfr_init_set_str(r9957, "2", 10, MPFR_RNDN);
        mpfr_init(r9958);
        mpfr_init(r9959);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r9946, b, MPFR_RNDN);
        mpfr_neg(r9947, r9946, MPFR_RNDN);
        mpfr_mul(r9948, r9946, r9946, MPFR_RNDN);
        ;
        mpfr_set_d(r9950, a, MPFR_RNDN);
        mpfr_set_d(r9951, c, MPFR_RNDN);
        mpfr_mul(r9952, r9950, r9951, MPFR_RNDN);
        mpfr_mul(r9953, r9949, r9952, MPFR_RNDN);
        mpfr_sub(r9954, r9948, r9953, MPFR_RNDN);
        mpfr_sqrt(r9955, r9954, MPFR_RNDN);
        mpfr_add(r9956, r9947, r9955, MPFR_RNDN);
        ;
        mpfr_mul(r9958, r9957, r9950, MPFR_RNDN);
        mpfr_div(r9959, r9956, r9958, MPFR_RNDN);
        return mpfr_get_d(r9959, MPFR_RNDN);
}

static mpfr_t r9960, r9961, r9962, r9963, r9964, r9965, r9966, r9967, r9968, r9969, r9970, r9971, r9972, r9973, r9974, r9975, r9976, r9977, r9978, r9979, r9980, r9981, r9982, r9983, r9984, r9985, r9986, r9987, r9988, r9989;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9960);
        mpfr_init(r9961);
        mpfr_init_set_str(r9962, "-3.8652237028142594e+119", 10, MPFR_RNDN);
        mpfr_init(r9963);
        mpfr_init(r9964);
        mpfr_init(r9965);
        mpfr_init(r9966);
        mpfr_init_set_str(r9967, "-1.9516615171416054e-122", 10, MPFR_RNDN);
        mpfr_init(r9968);
        mpfr_init_set_str(r9969, "4", 10, MPFR_RNDN);
        mpfr_init(r9970);
        mpfr_init(r9971);
        mpfr_init(r9972);
        mpfr_init(r9973);
        mpfr_init(r9974);
        mpfr_init(r9975);
        mpfr_init(r9976);
        mpfr_init(r9977);
        mpfr_init_set_str(r9978, "2", 10, MPFR_RNDN);
        mpfr_init(r9979);
        mpfr_init(r9980);
        mpfr_init_set_str(r9981, "3.092591079713731e+103", 10, MPFR_RNDN);
        mpfr_init(r9982);
        mpfr_init(r9983);
        mpfr_init(r9984);
        mpfr_init(r9985);
        mpfr_init(r9986);
        mpfr_init(r9987);
        mpfr_init(r9988);
        mpfr_init(r9989);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r9960, b, MPFR_RNDN);
        mpfr_neg(r9961, r9960, MPFR_RNDN);
        ;
        mpfr_set_si(r9963, mpfr_cmp(r9961, r9962) <= 0, MPFR_RNDN);
        mpfr_set_d(r9964, c, MPFR_RNDN);
        mpfr_div(r9965, r9964, r9960, MPFR_RNDN);
        mpfr_neg(r9966, r9965, MPFR_RNDN);
        ;
        mpfr_set_si(r9968, mpfr_cmp(r9961, r9967) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r9970, a, MPFR_RNDN);
        mpfr_mul(r9971, r9970, r9964, MPFR_RNDN);
        mpfr_mul(r9972, r9969, r9971, MPFR_RNDN);
        mpfr_mul(r9973, r9960, r9960, MPFR_RNDN);
        mpfr_sub(r9974, r9973, r9972, MPFR_RNDN);
        mpfr_sqrt(r9975, r9974, MPFR_RNDN);
        mpfr_sub(r9976, r9961, r9975, MPFR_RNDN);
        mpfr_div(r9977, r9972, r9976, MPFR_RNDN);
        ;
        mpfr_mul(r9979, r9978, r9970, MPFR_RNDN);
        mpfr_div(r9980, r9977, r9979, MPFR_RNDN);
        ;
        mpfr_set_si(r9982, mpfr_cmp(r9961, r9981) <= 0, MPFR_RNDN);
        mpfr_add(r9983, r9975, r9961, MPFR_RNDN);
        mpfr_div(r9984, r9983, r9979, MPFR_RNDN);
        mpfr_div(r9985, r9960, r9970, MPFR_RNDN);
        mpfr_sub(r9986, r9965, r9985, MPFR_RNDN);
        if (mpfr_get_si(r9982, MPFR_RNDN)) { mpfr_set(r9987, r9984, MPFR_RNDN); } else { mpfr_set(r9987, r9986, MPFR_RNDN); };
        if (mpfr_get_si(r9968, MPFR_RNDN)) { mpfr_set(r9988, r9980, MPFR_RNDN); } else { mpfr_set(r9988, r9987, MPFR_RNDN); };
        if (mpfr_get_si(r9963, MPFR_RNDN)) { mpfr_set(r9989, r9966, MPFR_RNDN); } else { mpfr_set(r9989, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9990);
        mpfr_init(r9991);
        mpfr_init_set_str(r9992, "-3.8652237028142594e+119", 10, MPFR_RNDN);
        mpfr_init(r9993);
        mpfr_init(r9994);
        mpfr_init(r9995);
        mpfr_init(r9996);
        mpfr_init_set_str(r9997, "-1.9516615171416054e-122", 10, MPFR_RNDN);
        mpfr_init(r9998);
        mpfr_init_set_str(r9999, "4", 10, MPFR_RNDN);
        mpfr_init(r10000);
        mpfr_init(r10001);
        mpfr_init(r10002);
        mpfr_init(r10003);
        mpfr_init(r10004);
        mpfr_init(r10005);
        mpfr_init(r10006);
        mpfr_init(r10007);
        mpfr_init_set_str(r10008, "2", 10, MPFR_RNDN);
        mpfr_init(r10009);
        mpfr_init(r10010);
        mpfr_init_set_str(r10011, "3.092591079713731e+103", 10, MPFR_RNDN);
        mpfr_init(r10012);
        mpfr_init(r10013);
        mpfr_init(r10014);
        mpfr_init(r10015);
        mpfr_init(r10016);
        mpfr_init(r10017);
        mpfr_init(r10018);
        mpfr_init(r10019);
}

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

