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

char *name = "quad2p (problem 3.2.1, positive)";

double f_if(float a, float b_2F2, float c) {
        float r6236859 = b_2F2;
        float r6236860 = -r6236859;
        float r6236861 = r6236859 * r6236859;
        float r6236862 = a;
        float r6236863 = c;
        float r6236864 = r6236862 * r6236863;
        float r6236865 = r6236861 - r6236864;
        float r6236866 = sqrt(r6236865);
        float r6236867 = r6236860 + r6236866;
        float r6236868 = r6236867 / r6236862;
        return r6236868;
}

double f_id(double a, double b_2F2, double c) {
        double r6236869 = b_2F2;
        double r6236870 = -r6236869;
        double r6236871 = r6236869 * r6236869;
        double r6236872 = a;
        double r6236873 = c;
        double r6236874 = r6236872 * r6236873;
        double r6236875 = r6236871 - r6236874;
        double r6236876 = sqrt(r6236875);
        double r6236877 = r6236870 + r6236876;
        double r6236878 = r6236877 / r6236872;
        return r6236878;
}


double f_of(float a, float b_2F2, float c) {
        float r6236879 = b_2F2;
        float r6236880 = -7.4879848656982e+67;
        bool r6236881 = r6236879 <= r6236880;
        float r6236882 = c;
        float r6236883 = 1/2;
        float r6236884 = r6236883 / r6236879;
        float r6236885 = r6236882 * r6236884;
        float r6236886 = r6236879 + r6236879;
        float r6236887 = a;
        float r6236888 = r6236886 / r6236887;
        float r6236889 = r6236885 - r6236888;
        float r6236890 = 5.273929256393366e-124;
        bool r6236891 = r6236879 <= r6236890;
        float r6236892 = -r6236879;
        float r6236893 = r6236879 * r6236879;
        float r6236894 = r6236887 * r6236882;
        float r6236895 = r6236893 - r6236894;
        float r6236896 = sqrt(r6236895);
        float r6236897 = r6236892 + r6236896;
        float r6236898 = r6236897 / r6236887;
        float r6236899 = 6.888041708131047e+46;
        bool r6236900 = r6236879 <= r6236899;
        float r6236901 = r6236892 - r6236896;
        float r6236902 = r6236882 / r6236901;
        float r6236903 = r6236892 + r6236879;
        float r6236904 = r6236903 / r6236887;
        float r6236905 = r6236904 - r6236885;
        float r6236906 = r6236900 ? r6236902 : r6236905;
        float r6236907 = r6236891 ? r6236898 : r6236906;
        float r6236908 = r6236881 ? r6236889 : r6236907;
        return r6236908;
}

double f_od(double a, double b_2F2, double c) {
        double r6236909 = b_2F2;
        double r6236910 = -7.4879848656982e+67;
        bool r6236911 = r6236909 <= r6236910;
        double r6236912 = c;
        double r6236913 = 1/2;
        double r6236914 = r6236913 / r6236909;
        double r6236915 = r6236912 * r6236914;
        double r6236916 = r6236909 + r6236909;
        double r6236917 = a;
        double r6236918 = r6236916 / r6236917;
        double r6236919 = r6236915 - r6236918;
        double r6236920 = 5.273929256393366e-124;
        bool r6236921 = r6236909 <= r6236920;
        double r6236922 = -r6236909;
        double r6236923 = r6236909 * r6236909;
        double r6236924 = r6236917 * r6236912;
        double r6236925 = r6236923 - r6236924;
        double r6236926 = sqrt(r6236925);
        double r6236927 = r6236922 + r6236926;
        double r6236928 = r6236927 / r6236917;
        double r6236929 = 6.888041708131047e+46;
        bool r6236930 = r6236909 <= r6236929;
        double r6236931 = r6236922 - r6236926;
        double r6236932 = r6236912 / r6236931;
        double r6236933 = r6236922 + r6236909;
        double r6236934 = r6236933 / r6236917;
        double r6236935 = r6236934 - r6236915;
        double r6236936 = r6236930 ? r6236932 : r6236935;
        double r6236937 = r6236921 ? r6236928 : r6236936;
        double r6236938 = r6236911 ? r6236919 : r6236937;
        return r6236938;
}

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 r6236939, r6236940, r6236941, r6236942, r6236943, r6236944, r6236945, r6236946, r6236947, r6236948;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r6236939);
        mpfr_init(r6236940);
        mpfr_init(r6236941);
        mpfr_init(r6236942);
        mpfr_init(r6236943);
        mpfr_init(r6236944);
        mpfr_init(r6236945);
        mpfr_init(r6236946);
        mpfr_init(r6236947);
        mpfr_init(r6236948);
}

double f_im(double a, double b_2F2, double c) {
        mpfr_set_d(r6236939, b_2F2, MPFR_RNDN);
        mpfr_neg(r6236940, r6236939, MPFR_RNDN);
        mpfr_mul(r6236941, r6236939, r6236939, MPFR_RNDN);
        mpfr_set_d(r6236942, a, MPFR_RNDN);
        mpfr_set_d(r6236943, c, MPFR_RNDN);
        mpfr_mul(r6236944, r6236942, r6236943, MPFR_RNDN);
        mpfr_sub(r6236945, r6236941, r6236944, MPFR_RNDN);
        mpfr_sqrt(r6236946, r6236945, MPFR_RNDN);
        mpfr_add(r6236947, r6236940, r6236946, MPFR_RNDN);
        mpfr_div(r6236948, r6236947, r6236942, MPFR_RNDN);
        return mpfr_get_d(r6236948, MPFR_RNDN);
}

static mpfr_t r6236949, r6236950, r6236951, r6236952, r6236953, r6236954, r6236955, r6236956, r6236957, r6236958, r6236959, r6236960, r6236961, r6236962, r6236963, r6236964, r6236965, r6236966, r6236967, r6236968, r6236969, r6236970, r6236971, r6236972, r6236973, r6236974, r6236975, r6236976, r6236977, r6236978;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r6236949);
        mpfr_init_set_str(r6236950, "-7.4879848656982e+67", 10, MPFR_RNDN);
        mpfr_init(r6236951);
        mpfr_init(r6236952);
        mpfr_init_set_str(r6236953, "1/2", 10, MPFR_RNDN);
        mpfr_init(r6236954);
        mpfr_init(r6236955);
        mpfr_init(r6236956);
        mpfr_init(r6236957);
        mpfr_init(r6236958);
        mpfr_init(r6236959);
        mpfr_init_set_str(r6236960, "5.273929256393366e-124", 10, MPFR_RNDN);
        mpfr_init(r6236961);
        mpfr_init(r6236962);
        mpfr_init(r6236963);
        mpfr_init(r6236964);
        mpfr_init(r6236965);
        mpfr_init(r6236966);
        mpfr_init(r6236967);
        mpfr_init(r6236968);
        mpfr_init_set_str(r6236969, "6.888041708131047e+46", 10, MPFR_RNDN);
        mpfr_init(r6236970);
        mpfr_init(r6236971);
        mpfr_init(r6236972);
        mpfr_init(r6236973);
        mpfr_init(r6236974);
        mpfr_init(r6236975);
        mpfr_init(r6236976);
        mpfr_init(r6236977);
        mpfr_init(r6236978);
}

double f_fm(double a, double b_2F2, double c) {
        mpfr_set_d(r6236949, b_2F2, MPFR_RNDN);
        ;
        mpfr_set_si(r6236951, mpfr_cmp(r6236949, r6236950) <= 0, MPFR_RNDN);
        mpfr_set_d(r6236952, c, MPFR_RNDN);
        ;
        mpfr_div(r6236954, r6236953, r6236949, MPFR_RNDN);
        mpfr_mul(r6236955, r6236952, r6236954, MPFR_RNDN);
        mpfr_add(r6236956, r6236949, r6236949, MPFR_RNDN);
        mpfr_set_d(r6236957, a, MPFR_RNDN);
        mpfr_div(r6236958, r6236956, r6236957, MPFR_RNDN);
        mpfr_sub(r6236959, r6236955, r6236958, MPFR_RNDN);
        ;
        mpfr_set_si(r6236961, mpfr_cmp(r6236949, r6236960) <= 0, MPFR_RNDN);
        mpfr_neg(r6236962, r6236949, MPFR_RNDN);
        mpfr_mul(r6236963, r6236949, r6236949, MPFR_RNDN);
        mpfr_mul(r6236964, r6236957, r6236952, MPFR_RNDN);
        mpfr_sub(r6236965, r6236963, r6236964, MPFR_RNDN);
        mpfr_sqrt(r6236966, r6236965, MPFR_RNDN);
        mpfr_add(r6236967, r6236962, r6236966, MPFR_RNDN);
        mpfr_div(r6236968, r6236967, r6236957, MPFR_RNDN);
        ;
        mpfr_set_si(r6236970, mpfr_cmp(r6236949, r6236969) <= 0, MPFR_RNDN);
        mpfr_sub(r6236971, r6236962, r6236966, MPFR_RNDN);
        mpfr_div(r6236972, r6236952, r6236971, MPFR_RNDN);
        mpfr_add(r6236973, r6236962, r6236949, MPFR_RNDN);
        mpfr_div(r6236974, r6236973, r6236957, MPFR_RNDN);
        mpfr_sub(r6236975, r6236974, r6236955, MPFR_RNDN);
        if (mpfr_get_si(r6236970, MPFR_RNDN)) { mpfr_set(r6236976, r6236972, MPFR_RNDN); } else { mpfr_set(r6236976, r6236975, MPFR_RNDN); };
        if (mpfr_get_si(r6236961, MPFR_RNDN)) { mpfr_set(r6236977, r6236968, MPFR_RNDN); } else { mpfr_set(r6236977, r6236976, MPFR_RNDN); };
        if (mpfr_get_si(r6236951, MPFR_RNDN)) { mpfr_set(r6236978, r6236959, MPFR_RNDN); } else { mpfr_set(r6236978, r6236977, MPFR_RNDN); };
        return mpfr_get_d(r6236978, MPFR_RNDN);
}

static mpfr_t r6236979, r6236980, r6236981, r6236982, r6236983, r6236984, r6236985, r6236986, r6236987, r6236988, r6236989, r6236990, r6236991, r6236992, r6236993, r6236994, r6236995, r6236996, r6236997, r6236998, r6236999, r6237000, r6237001, r6237002, r6237003, r6237004, r6237005, r6237006, r6237007, r6237008;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r6236979);
        mpfr_init_set_str(r6236980, "-7.4879848656982e+67", 10, MPFR_RNDN);
        mpfr_init(r6236981);
        mpfr_init(r6236982);
        mpfr_init_set_str(r6236983, "1/2", 10, MPFR_RNDN);
        mpfr_init(r6236984);
        mpfr_init(r6236985);
        mpfr_init(r6236986);
        mpfr_init(r6236987);
        mpfr_init(r6236988);
        mpfr_init(r6236989);
        mpfr_init_set_str(r6236990, "5.273929256393366e-124", 10, MPFR_RNDN);
        mpfr_init(r6236991);
        mpfr_init(r6236992);
        mpfr_init(r6236993);
        mpfr_init(r6236994);
        mpfr_init(r6236995);
        mpfr_init(r6236996);
        mpfr_init(r6236997);
        mpfr_init(r6236998);
        mpfr_init_set_str(r6236999, "6.888041708131047e+46", 10, MPFR_RNDN);
        mpfr_init(r6237000);
        mpfr_init(r6237001);
        mpfr_init(r6237002);
        mpfr_init(r6237003);
        mpfr_init(r6237004);
        mpfr_init(r6237005);
        mpfr_init(r6237006);
        mpfr_init(r6237007);
        mpfr_init(r6237008);
}

double f_dm(double a, double b_2F2, double c) {
        mpfr_set_d(r6236979, b_2F2, MPFR_RNDN);
        ;
        mpfr_set_si(r6236981, mpfr_cmp(r6236979, r6236980) <= 0, MPFR_RNDN);
        mpfr_set_d(r6236982, c, MPFR_RNDN);
        ;
        mpfr_div(r6236984, r6236983, r6236979, MPFR_RNDN);
        mpfr_mul(r6236985, r6236982, r6236984, MPFR_RNDN);
        mpfr_add(r6236986, r6236979, r6236979, MPFR_RNDN);
        mpfr_set_d(r6236987, a, MPFR_RNDN);
        mpfr_div(r6236988, r6236986, r6236987, MPFR_RNDN);
        mpfr_sub(r6236989, r6236985, r6236988, MPFR_RNDN);
        ;
        mpfr_set_si(r6236991, mpfr_cmp(r6236979, r6236990) <= 0, MPFR_RNDN);
        mpfr_neg(r6236992, r6236979, MPFR_RNDN);
        mpfr_mul(r6236993, r6236979, r6236979, MPFR_RNDN);
        mpfr_mul(r6236994, r6236987, r6236982, MPFR_RNDN);
        mpfr_sub(r6236995, r6236993, r6236994, MPFR_RNDN);
        mpfr_sqrt(r6236996, r6236995, MPFR_RNDN);
        mpfr_add(r6236997, r6236992, r6236996, MPFR_RNDN);
        mpfr_div(r6236998, r6236997, r6236987, MPFR_RNDN);
        ;
        mpfr_set_si(r6237000, mpfr_cmp(r6236979, r6236999) <= 0, MPFR_RNDN);
        mpfr_sub(r6237001, r6236992, r6236996, MPFR_RNDN);
        mpfr_div(r6237002, r6236982, r6237001, MPFR_RNDN);
        mpfr_add(r6237003, r6236992, r6236979, MPFR_RNDN);
        mpfr_div(r6237004, r6237003, r6236987, MPFR_RNDN);
        mpfr_sub(r6237005, r6237004, r6236985, MPFR_RNDN);
        if (mpfr_get_si(r6237000, MPFR_RNDN)) { mpfr_set(r6237006, r6237002, MPFR_RNDN); } else { mpfr_set(r6237006, r6237005, MPFR_RNDN); };
        if (mpfr_get_si(r6236991, MPFR_RNDN)) { mpfr_set(r6237007, r6236998, MPFR_RNDN); } else { mpfr_set(r6237007, r6237006, MPFR_RNDN); };
        if (mpfr_get_si(r6236981, MPFR_RNDN)) { mpfr_set(r6237008, r6236989, MPFR_RNDN); } else { mpfr_set(r6237008, r6237007, MPFR_RNDN); };
        return mpfr_get_d(r6237008, MPFR_RNDN);
}

