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

char *name = "jeff quadratic root 2";

double f_if(float a, float b, float c) {
        float r20777 = b;
        float r20778 = 0;
        bool r20779 = r20777 >= r20778;
        float r20780 = 2;
        float r20781 = c;
        float r20782 = r20780 * r20781;
        float r20783 = -r20777;
        float r20784 = r20777 * r20777;
        float r20785 = 4;
        float r20786 = a;
        float r20787 = r20785 * r20786;
        float r20788 = r20787 * r20781;
        float r20789 = r20784 - r20788;
        float r20790 = sqrt(r20789);
        float r20791 = r20783 - r20790;
        float r20792 = r20782 / r20791;
        float r20793 = r20783 + r20790;
        float r20794 = r20780 * r20786;
        float r20795 = r20793 / r20794;
        float r20796 = r20779 ? r20792 : r20795;
        return r20796;
}

double f_id(double a, double b, double c) {
        double r20797 = b;
        double r20798 = 0;
        bool r20799 = r20797 >= r20798;
        double r20800 = 2;
        double r20801 = c;
        double r20802 = r20800 * r20801;
        double r20803 = -r20797;
        double r20804 = r20797 * r20797;
        double r20805 = 4;
        double r20806 = a;
        double r20807 = r20805 * r20806;
        double r20808 = r20807 * r20801;
        double r20809 = r20804 - r20808;
        double r20810 = sqrt(r20809);
        double r20811 = r20803 - r20810;
        double r20812 = r20802 / r20811;
        double r20813 = r20803 + r20810;
        double r20814 = r20800 * r20806;
        double r20815 = r20813 / r20814;
        double r20816 = r20799 ? r20812 : r20815;
        return r20816;
}


double f_of(float a, float b, float c) {
        float r20817 = b;
        float r20818 = -5.5447279144112476e+110;
        bool r20819 = r20817 <= r20818;
        float r20820 = 0;
        bool r20821 = r20817 >= r20820;
        float r20822 = c;
        float r20823 = r20822 + r20822;
        float r20824 = -r20817;
        float r20825 = r20817 * r20817;
        float r20826 = a;
        float r20827 = r20826 * r20822;
        float r20828 = 4;
        float r20829 = r20827 * r20828;
        float r20830 = r20825 - r20829;
        float r20831 = sqrt(r20830);
        float r20832 = r20824 - r20831;
        float r20833 = r20823 / r20832;
        float r20834 = r20822 / r20817;
        float r20835 = 1;
        float r20836 = r20834 / r20835;
        float r20837 = r20817 - r20824;
        float r20838 = r20826 + r20826;
        float r20839 = r20837 / r20838;
        float r20840 = r20836 - r20839;
        float r20841 = r20821 ? r20833 : r20840;
        float r20842 = 4.954733339081879e+78;
        bool r20843 = r20817 <= r20842;
        float r20844 = 2;
        float r20845 = r20844 * r20822;
        float r20846 = r20828 * r20826;
        float r20847 = r20846 * r20822;
        float r20848 = r20825 - r20847;
        float r20849 = sqrt(r20848);
        float r20850 = r20824 - r20849;
        float r20851 = r20845 / r20850;
        float r20852 = r20824 + r20849;
        float r20853 = log(r20852);
        float r20854 = exp(r20853);
        float r20855 = r20844 * r20826;
        float r20856 = r20854 / r20855;
        float r20857 = r20821 ? r20851 : r20856;
        float r20858 = r20826 / r20817;
        float r20859 = r20822 * r20858;
        float r20860 = cbrt(r20859);
        float r20861 = r20860 * r20860;
        float r20862 = cbrt(r20860);
        float r20863 = r20862 * r20862;
        float r20864 = r20863 * r20862;
        float r20865 = r20861 * r20864;
        float r20866 = r20865 - r20817;
        float r20867 = r20822 / r20866;
        float r20868 = r20852 / r20838;
        float r20869 = r20821 ? r20867 : r20868;
        float r20870 = r20843 ? r20857 : r20869;
        float r20871 = r20819 ? r20841 : r20870;
        return r20871;
}

double f_od(double a, double b, double c) {
        double r20872 = b;
        double r20873 = -5.5447279144112476e+110;
        bool r20874 = r20872 <= r20873;
        double r20875 = 0;
        bool r20876 = r20872 >= r20875;
        double r20877 = c;
        double r20878 = r20877 + r20877;
        double r20879 = -r20872;
        double r20880 = r20872 * r20872;
        double r20881 = a;
        double r20882 = r20881 * r20877;
        double r20883 = 4;
        double r20884 = r20882 * r20883;
        double r20885 = r20880 - r20884;
        double r20886 = sqrt(r20885);
        double r20887 = r20879 - r20886;
        double r20888 = r20878 / r20887;
        double r20889 = r20877 / r20872;
        double r20890 = 1;
        double r20891 = r20889 / r20890;
        double r20892 = r20872 - r20879;
        double r20893 = r20881 + r20881;
        double r20894 = r20892 / r20893;
        double r20895 = r20891 - r20894;
        double r20896 = r20876 ? r20888 : r20895;
        double r20897 = 4.954733339081879e+78;
        bool r20898 = r20872 <= r20897;
        double r20899 = 2;
        double r20900 = r20899 * r20877;
        double r20901 = r20883 * r20881;
        double r20902 = r20901 * r20877;
        double r20903 = r20880 - r20902;
        double r20904 = sqrt(r20903);
        double r20905 = r20879 - r20904;
        double r20906 = r20900 / r20905;
        double r20907 = r20879 + r20904;
        double r20908 = log(r20907);
        double r20909 = exp(r20908);
        double r20910 = r20899 * r20881;
        double r20911 = r20909 / r20910;
        double r20912 = r20876 ? r20906 : r20911;
        double r20913 = r20881 / r20872;
        double r20914 = r20877 * r20913;
        double r20915 = cbrt(r20914);
        double r20916 = r20915 * r20915;
        double r20917 = cbrt(r20915);
        double r20918 = r20917 * r20917;
        double r20919 = r20918 * r20917;
        double r20920 = r20916 * r20919;
        double r20921 = r20920 - r20872;
        double r20922 = r20877 / r20921;
        double r20923 = r20907 / r20893;
        double r20924 = r20876 ? r20922 : r20923;
        double r20925 = r20898 ? r20912 : r20924;
        double r20926 = r20874 ? r20896 : r20925;
        return r20926;
}

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 r20927, r20928, r20929, r20930, r20931, r20932, r20933, r20934, r20935, r20936, r20937, r20938, r20939, r20940, r20941, r20942, r20943, r20944, r20945, r20946;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r20927);
        mpfr_init_set_str(r20928, "0", 10, MPFR_RNDN);
        mpfr_init(r20929);
        mpfr_init_set_str(r20930, "2", 10, MPFR_RNDN);
        mpfr_init(r20931);
        mpfr_init(r20932);
        mpfr_init(r20933);
        mpfr_init(r20934);
        mpfr_init_set_str(r20935, "4", 10, MPFR_RNDN);
        mpfr_init(r20936);
        mpfr_init(r20937);
        mpfr_init(r20938);
        mpfr_init(r20939);
        mpfr_init(r20940);
        mpfr_init(r20941);
        mpfr_init(r20942);
        mpfr_init(r20943);
        mpfr_init(r20944);
        mpfr_init(r20945);
        mpfr_init(r20946);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r20927, b, MPFR_RNDN);
        ;
        mpfr_set_si(r20929, mpfr_cmp(r20927, r20928) >= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r20931, c, MPFR_RNDN);
        mpfr_mul(r20932, r20930, r20931, MPFR_RNDN);
        mpfr_neg(r20933, r20927, MPFR_RNDN);
        mpfr_mul(r20934, r20927, r20927, MPFR_RNDN);
        ;
        mpfr_set_d(r20936, a, MPFR_RNDN);
        mpfr_mul(r20937, r20935, r20936, MPFR_RNDN);
        mpfr_mul(r20938, r20937, r20931, MPFR_RNDN);
        mpfr_sub(r20939, r20934, r20938, MPFR_RNDN);
        mpfr_sqrt(r20940, r20939, MPFR_RNDN);
        mpfr_sub(r20941, r20933, r20940, MPFR_RNDN);
        mpfr_div(r20942, r20932, r20941, MPFR_RNDN);
        mpfr_add(r20943, r20933, r20940, MPFR_RNDN);
        mpfr_mul(r20944, r20930, r20936, MPFR_RNDN);
        mpfr_div(r20945, r20943, r20944, MPFR_RNDN);
        if (mpfr_get_si(r20929, MPFR_RNDN)) { mpfr_set(r20946, r20942, MPFR_RNDN); } else { mpfr_set(r20946, r20945, MPFR_RNDN); };
        return mpfr_get_d(r20946, MPFR_RNDN);
}

static mpfr_t r20947, r20948, r20949, r20950, r20951, r20952, r20953, r20954, r20955, r20956, r20957, r20958, r20959, r20960, r20961, r20962, r20963, r20964, r20965, r20966, r20967, r20968, r20969, r20970, r20971, r20972, r20973, r20974, r20975, r20976, r20977, r20978, r20979, r20980, r20981, r20982, r20983, r20984, r20985, r20986, r20987, r20988, r20989, r20990, r20991, r20992, r20993, r20994, r20995, r20996, r20997, r20998, r20999, r21000, r21001;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r20947);
        mpfr_init_set_str(r20948, "-5.5447279144112476e+110", 10, MPFR_RNDN);
        mpfr_init(r20949);
        mpfr_init_set_str(r20950, "0", 10, MPFR_RNDN);
        mpfr_init(r20951);
        mpfr_init(r20952);
        mpfr_init(r20953);
        mpfr_init(r20954);
        mpfr_init(r20955);
        mpfr_init(r20956);
        mpfr_init(r20957);
        mpfr_init_set_str(r20958, "4", 10, MPFR_RNDN);
        mpfr_init(r20959);
        mpfr_init(r20960);
        mpfr_init(r20961);
        mpfr_init(r20962);
        mpfr_init(r20963);
        mpfr_init(r20964);
        mpfr_init_set_str(r20965, "1", 10, MPFR_RNDN);
        mpfr_init(r20966);
        mpfr_init(r20967);
        mpfr_init(r20968);
        mpfr_init(r20969);
        mpfr_init(r20970);
        mpfr_init(r20971);
        mpfr_init_set_str(r20972, "4.954733339081879e+78", 10, MPFR_RNDN);
        mpfr_init(r20973);
        mpfr_init_set_str(r20974, "2", 10, MPFR_RNDN);
        mpfr_init(r20975);
        mpfr_init(r20976);
        mpfr_init(r20977);
        mpfr_init(r20978);
        mpfr_init(r20979);
        mpfr_init(r20980);
        mpfr_init(r20981);
        mpfr_init(r20982);
        mpfr_init(r20983);
        mpfr_init(r20984);
        mpfr_init(r20985);
        mpfr_init(r20986);
        mpfr_init(r20987);
        mpfr_init(r20988);
        mpfr_init(r20989);
        mpfr_init(r20990);
        mpfr_init(r20991);
        mpfr_init(r20992);
        mpfr_init(r20993);
        mpfr_init(r20994);
        mpfr_init(r20995);
        mpfr_init(r20996);
        mpfr_init(r20997);
        mpfr_init(r20998);
        mpfr_init(r20999);
        mpfr_init(r21000);
        mpfr_init(r21001);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r20947, b, MPFR_RNDN);
        ;
        mpfr_set_si(r20949, mpfr_cmp(r20947, r20948) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r20951, mpfr_cmp(r20947, r20950) >= 0, MPFR_RNDN);
        mpfr_set_d(r20952, c, MPFR_RNDN);
        mpfr_add(r20953, r20952, r20952, MPFR_RNDN);
        mpfr_neg(r20954, r20947, MPFR_RNDN);
        mpfr_mul(r20955, r20947, r20947, MPFR_RNDN);
        mpfr_set_d(r20956, a, MPFR_RNDN);
        mpfr_mul(r20957, r20956, r20952, MPFR_RNDN);
        ;
        mpfr_mul(r20959, r20957, r20958, MPFR_RNDN);
        mpfr_sub(r20960, r20955, r20959, MPFR_RNDN);
        mpfr_sqrt(r20961, r20960, MPFR_RNDN);
        mpfr_sub(r20962, r20954, r20961, MPFR_RNDN);
        mpfr_div(r20963, r20953, r20962, MPFR_RNDN);
        mpfr_div(r20964, r20952, r20947, MPFR_RNDN);
        ;
        mpfr_div(r20966, r20964, r20965, MPFR_RNDN);
        mpfr_sub(r20967, r20947, r20954, MPFR_RNDN);
        mpfr_add(r20968, r20956, r20956, MPFR_RNDN);
        mpfr_div(r20969, r20967, r20968, MPFR_RNDN);
        mpfr_sub(r20970, r20966, r20969, MPFR_RNDN);
        if (mpfr_get_si(r20951, MPFR_RNDN)) { mpfr_set(r20971, r20963, MPFR_RNDN); } else { mpfr_set(r20971, r20970, MPFR_RNDN); };
        ;
        mpfr_set_si(r20973, mpfr_cmp(r20947, r20972) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r20975, r20974, r20952, MPFR_RNDN);
        mpfr_mul(r20976, r20958, r20956, MPFR_RNDN);
        mpfr_mul(r20977, r20976, r20952, MPFR_RNDN);
        mpfr_sub(r20978, r20955, r20977, MPFR_RNDN);
        mpfr_sqrt(r20979, r20978, MPFR_RNDN);
        mpfr_sub(r20980, r20954, r20979, MPFR_RNDN);
        mpfr_div(r20981, r20975, r20980, MPFR_RNDN);
        mpfr_add(r20982, r20954, r20979, MPFR_RNDN);
        mpfr_log(r20983, r20982, MPFR_RNDN);
        mpfr_exp(r20984, r20983, MPFR_RNDN);
        mpfr_mul(r20985, r20974, r20956, MPFR_RNDN);
        mpfr_div(r20986, r20984, r20985, MPFR_RNDN);
        if (mpfr_get_si(r20951, MPFR_RNDN)) { mpfr_set(r20987, r20981, MPFR_RNDN); } else { mpfr_set(r20987, r20986, MPFR_RNDN); };
        mpfr_div(r20988, r20956, r20947, MPFR_RNDN);
        mpfr_mul(r20989, r20952, r20988, MPFR_RNDN);
        mpfr_cbrt(r20990, r20989, MPFR_RNDN);
        mpfr_mul(r20991, r20990, r20990, MPFR_RNDN);
        mpfr_cbrt(r20992, r20990, MPFR_RNDN);
        mpfr_mul(r20993, r20992, r20992, MPFR_RNDN);
        mpfr_mul(r20994, r20993, r20992, MPFR_RNDN);
        mpfr_mul(r20995, r20991, r20994, MPFR_RNDN);
        mpfr_sub(r20996, r20995, r20947, MPFR_RNDN);
        mpfr_div(r20997, r20952, r20996, MPFR_RNDN);
        mpfr_div(r20998, r20982, r20968, MPFR_RNDN);
        if (mpfr_get_si(r20951, MPFR_RNDN)) { mpfr_set(r20999, r20997, MPFR_RNDN); } else { mpfr_set(r20999, r20998, MPFR_RNDN); };
        if (mpfr_get_si(r20973, MPFR_RNDN)) { mpfr_set(r21000, r20987, MPFR_RNDN); } else { mpfr_set(r21000, r20999, MPFR_RNDN); };
        if (mpfr_get_si(r20949, MPFR_RNDN)) { mpfr_set(r21001, r20971, MPFR_RNDN); } else { mpfr_set(r21001, r21000, MPFR_RNDN); };
        return mpfr_get_d(r21001, MPFR_RNDN);
}

static mpfr_t r21002, r21003, r21004, r21005, r21006, r21007, r21008, r21009, r21010, r21011, r21012, r21013, r21014, r21015, r21016, r21017, r21018, r21019, r21020, r21021, r21022, r21023, r21024, r21025, r21026, r21027, r21028, r21029, r21030, r21031, r21032, r21033, r21034, r21035, r21036, r21037, r21038, r21039, r21040, r21041, r21042, r21043, r21044, r21045, r21046, r21047, r21048, r21049, r21050, r21051, r21052, r21053, r21054, r21055, r21056;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r21002);
        mpfr_init_set_str(r21003, "-5.5447279144112476e+110", 10, MPFR_RNDN);
        mpfr_init(r21004);
        mpfr_init_set_str(r21005, "0", 10, MPFR_RNDN);
        mpfr_init(r21006);
        mpfr_init(r21007);
        mpfr_init(r21008);
        mpfr_init(r21009);
        mpfr_init(r21010);
        mpfr_init(r21011);
        mpfr_init(r21012);
        mpfr_init_set_str(r21013, "4", 10, MPFR_RNDN);
        mpfr_init(r21014);
        mpfr_init(r21015);
        mpfr_init(r21016);
        mpfr_init(r21017);
        mpfr_init(r21018);
        mpfr_init(r21019);
        mpfr_init_set_str(r21020, "1", 10, MPFR_RNDN);
        mpfr_init(r21021);
        mpfr_init(r21022);
        mpfr_init(r21023);
        mpfr_init(r21024);
        mpfr_init(r21025);
        mpfr_init(r21026);
        mpfr_init_set_str(r21027, "4.954733339081879e+78", 10, MPFR_RNDN);
        mpfr_init(r21028);
        mpfr_init_set_str(r21029, "2", 10, MPFR_RNDN);
        mpfr_init(r21030);
        mpfr_init(r21031);
        mpfr_init(r21032);
        mpfr_init(r21033);
        mpfr_init(r21034);
        mpfr_init(r21035);
        mpfr_init(r21036);
        mpfr_init(r21037);
        mpfr_init(r21038);
        mpfr_init(r21039);
        mpfr_init(r21040);
        mpfr_init(r21041);
        mpfr_init(r21042);
        mpfr_init(r21043);
        mpfr_init(r21044);
        mpfr_init(r21045);
        mpfr_init(r21046);
        mpfr_init(r21047);
        mpfr_init(r21048);
        mpfr_init(r21049);
        mpfr_init(r21050);
        mpfr_init(r21051);
        mpfr_init(r21052);
        mpfr_init(r21053);
        mpfr_init(r21054);
        mpfr_init(r21055);
        mpfr_init(r21056);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r21002, b, MPFR_RNDN);
        ;
        mpfr_set_si(r21004, mpfr_cmp(r21002, r21003) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r21006, mpfr_cmp(r21002, r21005) >= 0, MPFR_RNDN);
        mpfr_set_d(r21007, c, MPFR_RNDN);
        mpfr_add(r21008, r21007, r21007, MPFR_RNDN);
        mpfr_neg(r21009, r21002, MPFR_RNDN);
        mpfr_mul(r21010, r21002, r21002, MPFR_RNDN);
        mpfr_set_d(r21011, a, MPFR_RNDN);
        mpfr_mul(r21012, r21011, r21007, MPFR_RNDN);
        ;
        mpfr_mul(r21014, r21012, r21013, MPFR_RNDN);
        mpfr_sub(r21015, r21010, r21014, MPFR_RNDN);
        mpfr_sqrt(r21016, r21015, MPFR_RNDN);
        mpfr_sub(r21017, r21009, r21016, MPFR_RNDN);
        mpfr_div(r21018, r21008, r21017, MPFR_RNDN);
        mpfr_div(r21019, r21007, r21002, MPFR_RNDN);
        ;
        mpfr_div(r21021, r21019, r21020, MPFR_RNDN);
        mpfr_sub(r21022, r21002, r21009, MPFR_RNDN);
        mpfr_add(r21023, r21011, r21011, MPFR_RNDN);
        mpfr_div(r21024, r21022, r21023, MPFR_RNDN);
        mpfr_sub(r21025, r21021, r21024, MPFR_RNDN);
        if (mpfr_get_si(r21006, MPFR_RNDN)) { mpfr_set(r21026, r21018, MPFR_RNDN); } else { mpfr_set(r21026, r21025, MPFR_RNDN); };
        ;
        mpfr_set_si(r21028, mpfr_cmp(r21002, r21027) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r21030, r21029, r21007, MPFR_RNDN);
        mpfr_mul(r21031, r21013, r21011, MPFR_RNDN);
        mpfr_mul(r21032, r21031, r21007, MPFR_RNDN);
        mpfr_sub(r21033, r21010, r21032, MPFR_RNDN);
        mpfr_sqrt(r21034, r21033, MPFR_RNDN);
        mpfr_sub(r21035, r21009, r21034, MPFR_RNDN);
        mpfr_div(r21036, r21030, r21035, MPFR_RNDN);
        mpfr_add(r21037, r21009, r21034, MPFR_RNDN);
        mpfr_log(r21038, r21037, MPFR_RNDN);
        mpfr_exp(r21039, r21038, MPFR_RNDN);
        mpfr_mul(r21040, r21029, r21011, MPFR_RNDN);
        mpfr_div(r21041, r21039, r21040, MPFR_RNDN);
        if (mpfr_get_si(r21006, MPFR_RNDN)) { mpfr_set(r21042, r21036, MPFR_RNDN); } else { mpfr_set(r21042, r21041, MPFR_RNDN); };
        mpfr_div(r21043, r21011, r21002, MPFR_RNDN);
        mpfr_mul(r21044, r21007, r21043, MPFR_RNDN);
        mpfr_cbrt(r21045, r21044, MPFR_RNDN);
        mpfr_mul(r21046, r21045, r21045, MPFR_RNDN);
        mpfr_cbrt(r21047, r21045, MPFR_RNDN);
        mpfr_mul(r21048, r21047, r21047, MPFR_RNDN);
        mpfr_mul(r21049, r21048, r21047, MPFR_RNDN);
        mpfr_mul(r21050, r21046, r21049, MPFR_RNDN);
        mpfr_sub(r21051, r21050, r21002, MPFR_RNDN);
        mpfr_div(r21052, r21007, r21051, MPFR_RNDN);
        mpfr_div(r21053, r21037, r21023, MPFR_RNDN);
        if (mpfr_get_si(r21006, MPFR_RNDN)) { mpfr_set(r21054, r21052, MPFR_RNDN); } else { mpfr_set(r21054, r21053, MPFR_RNDN); };
        if (mpfr_get_si(r21028, MPFR_RNDN)) { mpfr_set(r21055, r21042, MPFR_RNDN); } else { mpfr_set(r21055, r21054, MPFR_RNDN); };
        if (mpfr_get_si(r21004, MPFR_RNDN)) { mpfr_set(r21056, r21026, MPFR_RNDN); } else { mpfr_set(r21056, r21055, MPFR_RNDN); };
        return mpfr_get_d(r21056, MPFR_RNDN);
}

