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

char *name = "quadm (p42, negative)";

double f_if(float a, float b, float c) {
        float r20793 = b;
        float r20794 = -r20793;
        float r20795 = r20793 * r20793;
        float r20796 = 4;
        float r20797 = a;
        float r20798 = c;
        float r20799 = r20797 * r20798;
        float r20800 = r20796 * r20799;
        float r20801 = r20795 - r20800;
        float r20802 = sqrt(r20801);
        float r20803 = r20794 - r20802;
        float r20804 = 2;
        float r20805 = r20804 * r20797;
        float r20806 = r20803 / r20805;
        return r20806;
}

double f_id(double a, double b, double c) {
        double r20807 = b;
        double r20808 = -r20807;
        double r20809 = r20807 * r20807;
        double r20810 = 4;
        double r20811 = a;
        double r20812 = c;
        double r20813 = r20811 * r20812;
        double r20814 = r20810 * r20813;
        double r20815 = r20809 - r20814;
        double r20816 = sqrt(r20815);
        double r20817 = r20808 - r20816;
        double r20818 = 2;
        double r20819 = r20818 * r20811;
        double r20820 = r20817 / r20819;
        return r20820;
}


double f_of(float a, float b, float c) {
        float r20821 = b;
        float r20822 = -5.018034098196628e+28;
        bool r20823 = r20821 <= r20822;
        float r20824 = -r20821;
        float r20825 = r20824 + r20821;
        float r20826 = a;
        float r20827 = r20826 + r20826;
        float r20828 = r20825 / r20827;
        float r20829 = c;
        float r20830 = r20829 / r20821;
        float r20831 = r20828 - r20830;
        float r20832 = -1.992853954034314e-66;
        bool r20833 = r20821 <= r20832;
        float r20834 = r20829 * r20826;
        float r20835 = 4;
        float r20836 = r20834 * r20835;
        float r20837 = r20821 * r20821;
        float r20838 = r20826 * r20829;
        float r20839 = r20835 * r20838;
        float r20840 = r20837 - r20839;
        float r20841 = sqrt(r20840);
        float r20842 = r20824 + r20841;
        float r20843 = r20836 / r20842;
        float r20844 = 2;
        float r20845 = r20844 * r20826;
        float r20846 = r20843 / r20845;
        float r20847 = -5.3589749776329416e-108;
        bool r20848 = r20821 <= r20847;
        float r20849 = 1.7007616628281973e+81;
        bool r20850 = r20821 <= r20849;
        float r20851 = r20824 - r20841;
        float r20852 = r20851 / r20845;
        float r20853 = r20824 / r20826;
        float r20854 = r20850 ? r20852 : r20853;
        float r20855 = r20848 ? r20831 : r20854;
        float r20856 = r20833 ? r20846 : r20855;
        float r20857 = r20823 ? r20831 : r20856;
        return r20857;
}

double f_od(double a, double b, double c) {
        double r20858 = b;
        double r20859 = -5.018034098196628e+28;
        bool r20860 = r20858 <= r20859;
        double r20861 = -r20858;
        double r20862 = r20861 + r20858;
        double r20863 = a;
        double r20864 = r20863 + r20863;
        double r20865 = r20862 / r20864;
        double r20866 = c;
        double r20867 = r20866 / r20858;
        double r20868 = r20865 - r20867;
        double r20869 = -1.992853954034314e-66;
        bool r20870 = r20858 <= r20869;
        double r20871 = r20866 * r20863;
        double r20872 = 4;
        double r20873 = r20871 * r20872;
        double r20874 = r20858 * r20858;
        double r20875 = r20863 * r20866;
        double r20876 = r20872 * r20875;
        double r20877 = r20874 - r20876;
        double r20878 = sqrt(r20877);
        double r20879 = r20861 + r20878;
        double r20880 = r20873 / r20879;
        double r20881 = 2;
        double r20882 = r20881 * r20863;
        double r20883 = r20880 / r20882;
        double r20884 = -5.3589749776329416e-108;
        bool r20885 = r20858 <= r20884;
        double r20886 = 1.7007616628281973e+81;
        bool r20887 = r20858 <= r20886;
        double r20888 = r20861 - r20878;
        double r20889 = r20888 / r20882;
        double r20890 = r20861 / r20863;
        double r20891 = r20887 ? r20889 : r20890;
        double r20892 = r20885 ? r20868 : r20891;
        double r20893 = r20870 ? r20883 : r20892;
        double r20894 = r20860 ? r20868 : r20893;
        return r20894;
}

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 r20895, r20896, r20897, r20898, r20899, r20900, r20901, r20902, r20903, r20904, r20905, r20906, r20907, r20908;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2704);
        mpfr_init(r20895);
        mpfr_init(r20896);
        mpfr_init(r20897);
        mpfr_init_set_str(r20898, "4", 10, MPFR_RNDN);
        mpfr_init(r20899);
        mpfr_init(r20900);
        mpfr_init(r20901);
        mpfr_init(r20902);
        mpfr_init(r20903);
        mpfr_init(r20904);
        mpfr_init(r20905);
        mpfr_init_set_str(r20906, "2", 10, MPFR_RNDN);
        mpfr_init(r20907);
        mpfr_init(r20908);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r20895, b, MPFR_RNDN);
        mpfr_neg(r20896, r20895, MPFR_RNDN);
        mpfr_mul(r20897, r20895, r20895, MPFR_RNDN);
        ;
        mpfr_set_d(r20899, a, MPFR_RNDN);
        mpfr_set_d(r20900, c, MPFR_RNDN);
        mpfr_mul(r20901, r20899, r20900, MPFR_RNDN);
        mpfr_mul(r20902, r20898, r20901, MPFR_RNDN);
        mpfr_sub(r20903, r20897, r20902, MPFR_RNDN);
        mpfr_sqrt(r20904, r20903, MPFR_RNDN);
        mpfr_sub(r20905, r20896, r20904, MPFR_RNDN);
        ;
        mpfr_mul(r20907, r20906, r20899, MPFR_RNDN);
        mpfr_div(r20908, r20905, r20907, MPFR_RNDN);
        return mpfr_get_d(r20908, MPFR_RNDN);
}

static mpfr_t r20909, r20910, r20911, r20912, r20913, r20914, r20915, r20916, r20917, r20918, r20919, r20920, r20921, r20922, r20923, r20924, r20925, r20926, r20927, r20928, r20929, r20930, r20931, r20932, r20933, r20934, r20935, r20936, r20937, r20938, r20939, r20940, r20941, r20942, r20943, r20944, r20945;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2704);
        mpfr_init(r20909);
        mpfr_init_set_str(r20910, "-5.018034098196628e+28", 10, MPFR_RNDN);
        mpfr_init(r20911);
        mpfr_init(r20912);
        mpfr_init(r20913);
        mpfr_init(r20914);
        mpfr_init(r20915);
        mpfr_init(r20916);
        mpfr_init(r20917);
        mpfr_init(r20918);
        mpfr_init(r20919);
        mpfr_init_set_str(r20920, "-1.992853954034314e-66", 10, MPFR_RNDN);
        mpfr_init(r20921);
        mpfr_init(r20922);
        mpfr_init_set_str(r20923, "4", 10, MPFR_RNDN);
        mpfr_init(r20924);
        mpfr_init(r20925);
        mpfr_init(r20926);
        mpfr_init(r20927);
        mpfr_init(r20928);
        mpfr_init(r20929);
        mpfr_init(r20930);
        mpfr_init(r20931);
        mpfr_init_set_str(r20932, "2", 10, MPFR_RNDN);
        mpfr_init(r20933);
        mpfr_init(r20934);
        mpfr_init_set_str(r20935, "-5.3589749776329416e-108", 10, MPFR_RNDN);
        mpfr_init(r20936);
        mpfr_init_set_str(r20937, "1.7007616628281973e+81", 10, MPFR_RNDN);
        mpfr_init(r20938);
        mpfr_init(r20939);
        mpfr_init(r20940);
        mpfr_init(r20941);
        mpfr_init(r20942);
        mpfr_init(r20943);
        mpfr_init(r20944);
        mpfr_init(r20945);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r20909, b, MPFR_RNDN);
        ;
        mpfr_set_si(r20911, mpfr_cmp(r20909, r20910) <= 0, MPFR_RNDN);
        mpfr_neg(r20912, r20909, MPFR_RNDN);
        mpfr_add(r20913, r20912, r20909, MPFR_RNDN);
        mpfr_set_d(r20914, a, MPFR_RNDN);
        mpfr_add(r20915, r20914, r20914, MPFR_RNDN);
        mpfr_div(r20916, r20913, r20915, MPFR_RNDN);
        mpfr_set_d(r20917, c, MPFR_RNDN);
        mpfr_div(r20918, r20917, r20909, MPFR_RNDN);
        mpfr_sub(r20919, r20916, r20918, MPFR_RNDN);
        ;
        mpfr_set_si(r20921, mpfr_cmp(r20909, r20920) <= 0, MPFR_RNDN);
        mpfr_mul(r20922, r20917, r20914, MPFR_RNDN);
        ;
        mpfr_mul(r20924, r20922, r20923, MPFR_RNDN);
        mpfr_mul(r20925, r20909, r20909, MPFR_RNDN);
        mpfr_mul(r20926, r20914, r20917, MPFR_RNDN);
        mpfr_mul(r20927, r20923, r20926, MPFR_RNDN);
        mpfr_sub(r20928, r20925, r20927, MPFR_RNDN);
        mpfr_sqrt(r20929, r20928, MPFR_RNDN);
        mpfr_add(r20930, r20912, r20929, MPFR_RNDN);
        mpfr_div(r20931, r20924, r20930, MPFR_RNDN);
        ;
        mpfr_mul(r20933, r20932, r20914, MPFR_RNDN);
        mpfr_div(r20934, r20931, r20933, MPFR_RNDN);
        ;
        mpfr_set_si(r20936, mpfr_cmp(r20909, r20935) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r20938, mpfr_cmp(r20909, r20937) <= 0, MPFR_RNDN);
        mpfr_sub(r20939, r20912, r20929, MPFR_RNDN);
        mpfr_div(r20940, r20939, r20933, MPFR_RNDN);
        mpfr_div(r20941, r20912, r20914, MPFR_RNDN);
        if (mpfr_get_si(r20938, MPFR_RNDN)) { mpfr_set(r20942, r20940, MPFR_RNDN); } else { mpfr_set(r20942, r20941, MPFR_RNDN); };
        if (mpfr_get_si(r20936, MPFR_RNDN)) { mpfr_set(r20943, r20919, MPFR_RNDN); } else { mpfr_set(r20943, r20942, MPFR_RNDN); };
        if (mpfr_get_si(r20921, MPFR_RNDN)) { mpfr_set(r20944, r20934, MPFR_RNDN); } else { mpfr_set(r20944, r20943, MPFR_RNDN); };
        if (mpfr_get_si(r20911, MPFR_RNDN)) { mpfr_set(r20945, r20919, MPFR_RNDN); } else { mpfr_set(r20945, r20944, MPFR_RNDN); };
        return mpfr_get_d(r20945, MPFR_RNDN);
}

static mpfr_t r20946, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2704);
        mpfr_init(r20946);
        mpfr_init_set_str(r20947, "-5.018034098196628e+28", 10, MPFR_RNDN);
        mpfr_init(r20948);
        mpfr_init(r20949);
        mpfr_init(r20950);
        mpfr_init(r20951);
        mpfr_init(r20952);
        mpfr_init(r20953);
        mpfr_init(r20954);
        mpfr_init(r20955);
        mpfr_init(r20956);
        mpfr_init_set_str(r20957, "-1.992853954034314e-66", 10, MPFR_RNDN);
        mpfr_init(r20958);
        mpfr_init(r20959);
        mpfr_init_set_str(r20960, "4", 10, MPFR_RNDN);
        mpfr_init(r20961);
        mpfr_init(r20962);
        mpfr_init(r20963);
        mpfr_init(r20964);
        mpfr_init(r20965);
        mpfr_init(r20966);
        mpfr_init(r20967);
        mpfr_init(r20968);
        mpfr_init_set_str(r20969, "2", 10, MPFR_RNDN);
        mpfr_init(r20970);
        mpfr_init(r20971);
        mpfr_init_set_str(r20972, "-5.3589749776329416e-108", 10, MPFR_RNDN);
        mpfr_init(r20973);
        mpfr_init_set_str(r20974, "1.7007616628281973e+81", 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);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r20946, b, MPFR_RNDN);
        ;
        mpfr_set_si(r20948, mpfr_cmp(r20946, r20947) <= 0, MPFR_RNDN);
        mpfr_neg(r20949, r20946, MPFR_RNDN);
        mpfr_add(r20950, r20949, r20946, MPFR_RNDN);
        mpfr_set_d(r20951, a, MPFR_RNDN);
        mpfr_add(r20952, r20951, r20951, MPFR_RNDN);
        mpfr_div(r20953, r20950, r20952, MPFR_RNDN);
        mpfr_set_d(r20954, c, MPFR_RNDN);
        mpfr_div(r20955, r20954, r20946, MPFR_RNDN);
        mpfr_sub(r20956, r20953, r20955, MPFR_RNDN);
        ;
        mpfr_set_si(r20958, mpfr_cmp(r20946, r20957) <= 0, MPFR_RNDN);
        mpfr_mul(r20959, r20954, r20951, MPFR_RNDN);
        ;
        mpfr_mul(r20961, r20959, r20960, MPFR_RNDN);
        mpfr_mul(r20962, r20946, r20946, MPFR_RNDN);
        mpfr_mul(r20963, r20951, r20954, MPFR_RNDN);
        mpfr_mul(r20964, r20960, r20963, MPFR_RNDN);
        mpfr_sub(r20965, r20962, r20964, MPFR_RNDN);
        mpfr_sqrt(r20966, r20965, MPFR_RNDN);
        mpfr_add(r20967, r20949, r20966, MPFR_RNDN);
        mpfr_div(r20968, r20961, r20967, MPFR_RNDN);
        ;
        mpfr_mul(r20970, r20969, r20951, MPFR_RNDN);
        mpfr_div(r20971, r20968, r20970, MPFR_RNDN);
        ;
        mpfr_set_si(r20973, mpfr_cmp(r20946, r20972) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r20975, mpfr_cmp(r20946, r20974) <= 0, MPFR_RNDN);
        mpfr_sub(r20976, r20949, r20966, MPFR_RNDN);
        mpfr_div(r20977, r20976, r20970, MPFR_RNDN);
        mpfr_div(r20978, r20949, r20951, MPFR_RNDN);
        if (mpfr_get_si(r20975, MPFR_RNDN)) { mpfr_set(r20979, r20977, MPFR_RNDN); } else { mpfr_set(r20979, r20978, MPFR_RNDN); };
        if (mpfr_get_si(r20973, MPFR_RNDN)) { mpfr_set(r20980, r20956, MPFR_RNDN); } else { mpfr_set(r20980, r20979, MPFR_RNDN); };
        if (mpfr_get_si(r20958, MPFR_RNDN)) { mpfr_set(r20981, r20971, MPFR_RNDN); } else { mpfr_set(r20981, r20980, MPFR_RNDN); };
        if (mpfr_get_si(r20948, MPFR_RNDN)) { mpfr_set(r20982, r20956, MPFR_RNDN); } else { mpfr_set(r20982, r20981, MPFR_RNDN); };
        return mpfr_get_d(r20982, MPFR_RNDN);
}

