#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 r7752 = b;
        float r7753 = 0.0f;
        bool r7754 = r7752 >= r7753;
        float r7755 = 2.0f;
        float r7756 = c;
        float r7757 = r7755 * r7756;
        float r7758 = -r7752;
        float r7759 = r7752 * r7752;
        float r7760 = 4.0f;
        float r7761 = a;
        float r7762 = r7760 * r7761;
        float r7763 = r7762 * r7756;
        float r7764 = r7759 - r7763;
        float r7765 = sqrt(r7764);
        float r7766 = r7758 - r7765;
        float r7767 = r7757 / r7766;
        float r7768 = r7758 + r7765;
        float r7769 = r7755 * r7761;
        float r7770 = r7768 / r7769;
        float r7771 = r7754 ? r7767 : r7770;
        return r7771;
}

double f_id(double a, double b, double c) {
        double r7772 = b;
        double r7773 = 0.0;
        bool r7774 = r7772 >= r7773;
        double r7775 = 2.0;
        double r7776 = c;
        double r7777 = r7775 * r7776;
        double r7778 = -r7772;
        double r7779 = r7772 * r7772;
        double r7780 = 4.0;
        double r7781 = a;
        double r7782 = r7780 * r7781;
        double r7783 = r7782 * r7776;
        double r7784 = r7779 - r7783;
        double r7785 = sqrt(r7784);
        double r7786 = r7778 - r7785;
        double r7787 = r7777 / r7786;
        double r7788 = r7778 + r7785;
        double r7789 = r7775 * r7781;
        double r7790 = r7788 / r7789;
        double r7791 = r7774 ? r7787 : r7790;
        return r7791;
}


double f_of(float a, float b, float c) {
        float r7792 = b;
        float r7793 = -2.7261971550086115e+82f;
        bool r7794 = r7792 <= r7793;
        float r7795 = 0.0f;
        bool r7796 = r7792 >= r7795;
        float r7797 = 2.0f;
        float r7798 = -r7792;
        float r7799 = r7792 * r7792;
        float r7800 = a;
        float r7801 = 4.0f;
        float r7802 = r7800 * r7801;
        float r7803 = c;
        float r7804 = r7802 * r7803;
        float r7805 = r7799 - r7804;
        float r7806 = sqrt(r7805);
        float r7807 = r7798 - r7806;
        float r7808 = cbrt(r7807);
        float r7809 = r7808 * r7808;
        float r7810 = r7797 / r7809;
        float r7811 = r7803 / r7808;
        float r7812 = r7810 * r7811;
        float r7813 = r7803 / r7792;
        float r7814 = r7792 / r7800;
        float r7815 = r7813 - r7814;
        float r7816 = r7796 ? r7812 : r7815;
        float r7817 = 1.170080853887373e+54f;
        bool r7818 = r7792 <= r7817;
        float r7819 = r7797 * r7803;
        float r7820 = r7819 / r7807;
        float r7821 = sqrt(r7806);
        float r7822 = r7821 * r7821;
        float r7823 = r7822 + r7798;
        float r7824 = r7800 * r7797;
        float r7825 = r7823 / r7824;
        float r7826 = r7796 ? r7820 : r7825;
        float r7827 = r7800 / r7792;
        float r7828 = fma(r7827, r7803, r7798);
        float r7829 = r7828 * r7797;
        float r7830 = r7819 / r7829;
        float r7831 = r7798 + r7806;
        float r7832 = r7831 / r7824;
        float r7833 = r7796 ? r7830 : r7832;
        float r7834 = r7818 ? r7826 : r7833;
        float r7835 = r7794 ? r7816 : r7834;
        return r7835;
}

double f_od(double a, double b, double c) {
        double r7836 = b;
        double r7837 = -2.7261971550086115e+82;
        bool r7838 = r7836 <= r7837;
        double r7839 = 0.0;
        bool r7840 = r7836 >= r7839;
        double r7841 = 2.0;
        double r7842 = -r7836;
        double r7843 = r7836 * r7836;
        double r7844 = a;
        double r7845 = 4.0;
        double r7846 = r7844 * r7845;
        double r7847 = c;
        double r7848 = r7846 * r7847;
        double r7849 = r7843 - r7848;
        double r7850 = sqrt(r7849);
        double r7851 = r7842 - r7850;
        double r7852 = cbrt(r7851);
        double r7853 = r7852 * r7852;
        double r7854 = r7841 / r7853;
        double r7855 = r7847 / r7852;
        double r7856 = r7854 * r7855;
        double r7857 = r7847 / r7836;
        double r7858 = r7836 / r7844;
        double r7859 = r7857 - r7858;
        double r7860 = r7840 ? r7856 : r7859;
        double r7861 = 1.170080853887373e+54;
        bool r7862 = r7836 <= r7861;
        double r7863 = r7841 * r7847;
        double r7864 = r7863 / r7851;
        double r7865 = sqrt(r7850);
        double r7866 = r7865 * r7865;
        double r7867 = r7866 + r7842;
        double r7868 = r7844 * r7841;
        double r7869 = r7867 / r7868;
        double r7870 = r7840 ? r7864 : r7869;
        double r7871 = r7844 / r7836;
        double r7872 = fma(r7871, r7847, r7842);
        double r7873 = r7872 * r7841;
        double r7874 = r7863 / r7873;
        double r7875 = r7842 + r7850;
        double r7876 = r7875 / r7868;
        double r7877 = r7840 ? r7874 : r7876;
        double r7878 = r7862 ? r7870 : r7877;
        double r7879 = r7838 ? r7860 : r7878;
        return r7879;
}

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 r7880, r7881, r7882, r7883, r7884, r7885, r7886, r7887, r7888, r7889, r7890, r7891, r7892, r7893, r7894, r7895, r7896, r7897, r7898, r7899;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r7880);
        mpfr_init_set_str(r7881, "0", 10, MPFR_RNDN);
        mpfr_init(r7882);
        mpfr_init_set_str(r7883, "2", 10, MPFR_RNDN);
        mpfr_init(r7884);
        mpfr_init(r7885);
        mpfr_init(r7886);
        mpfr_init(r7887);
        mpfr_init_set_str(r7888, "4", 10, MPFR_RNDN);
        mpfr_init(r7889);
        mpfr_init(r7890);
        mpfr_init(r7891);
        mpfr_init(r7892);
        mpfr_init(r7893);
        mpfr_init(r7894);
        mpfr_init(r7895);
        mpfr_init(r7896);
        mpfr_init(r7897);
        mpfr_init(r7898);
        mpfr_init(r7899);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r7880, b, MPFR_RNDN);
        ;
        mpfr_set_si(r7882, mpfr_cmp(r7880, r7881) >= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r7884, c, MPFR_RNDN);
        mpfr_mul(r7885, r7883, r7884, MPFR_RNDN);
        mpfr_neg(r7886, r7880, MPFR_RNDN);
        mpfr_mul(r7887, r7880, r7880, MPFR_RNDN);
        ;
        mpfr_set_d(r7889, a, MPFR_RNDN);
        mpfr_mul(r7890, r7888, r7889, MPFR_RNDN);
        mpfr_mul(r7891, r7890, r7884, MPFR_RNDN);
        mpfr_sub(r7892, r7887, r7891, MPFR_RNDN);
        mpfr_sqrt(r7893, r7892, MPFR_RNDN);
        mpfr_sub(r7894, r7886, r7893, MPFR_RNDN);
        mpfr_div(r7895, r7885, r7894, MPFR_RNDN);
        mpfr_add(r7896, r7886, r7893, MPFR_RNDN);
        mpfr_mul(r7897, r7883, r7889, MPFR_RNDN);
        mpfr_div(r7898, r7896, r7897, MPFR_RNDN);
        if (mpfr_get_si(r7882, MPFR_RNDN)) { mpfr_set(r7899, r7895, MPFR_RNDN); } else { mpfr_set(r7899, r7898, MPFR_RNDN); };
        return mpfr_get_d(r7899, MPFR_RNDN);
}

static mpfr_t r7900, r7901, r7902, r7903, r7904, r7905, r7906, r7907, r7908, r7909, r7910, r7911, r7912, r7913, r7914, r7915, r7916, r7917, r7918, r7919, r7920, r7921, r7922, r7923, r7924, r7925, r7926, r7927, r7928, r7929, r7930, r7931, r7932, r7933, r7934, r7935, r7936, r7937, r7938, r7939, r7940, r7941, r7942, r7943;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r7900);
        mpfr_init_set_str(r7901, "-2.7261971550086115e+82", 10, MPFR_RNDN);
        mpfr_init(r7902);
        mpfr_init_set_str(r7903, "0", 10, MPFR_RNDN);
        mpfr_init(r7904);
        mpfr_init_set_str(r7905, "2", 10, MPFR_RNDN);
        mpfr_init(r7906);
        mpfr_init(r7907);
        mpfr_init(r7908);
        mpfr_init_set_str(r7909, "4", 10, MPFR_RNDN);
        mpfr_init(r7910);
        mpfr_init(r7911);
        mpfr_init(r7912);
        mpfr_init(r7913);
        mpfr_init(r7914);
        mpfr_init(r7915);
        mpfr_init(r7916);
        mpfr_init(r7917);
        mpfr_init(r7918);
        mpfr_init(r7919);
        mpfr_init(r7920);
        mpfr_init(r7921);
        mpfr_init(r7922);
        mpfr_init(r7923);
        mpfr_init(r7924);
        mpfr_init_set_str(r7925, "1.170080853887373e+54", 10, MPFR_RNDN);
        mpfr_init(r7926);
        mpfr_init(r7927);
        mpfr_init(r7928);
        mpfr_init(r7929);
        mpfr_init(r7930);
        mpfr_init(r7931);
        mpfr_init(r7932);
        mpfr_init(r7933);
        mpfr_init(r7934);
        mpfr_init(r7935);
        mpfr_init(r7936);
        mpfr_init(r7937);
        mpfr_init(r7938);
        mpfr_init(r7939);
        mpfr_init(r7940);
        mpfr_init(r7941);
        mpfr_init(r7942);
        mpfr_init(r7943);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r7900, b, MPFR_RNDN);
        ;
        mpfr_set_si(r7902, mpfr_cmp(r7900, r7901) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r7904, mpfr_cmp(r7900, r7903) >= 0, MPFR_RNDN);
        ;
        mpfr_neg(r7906, r7900, MPFR_RNDN);
        mpfr_mul(r7907, r7900, r7900, MPFR_RNDN);
        mpfr_set_d(r7908, a, MPFR_RNDN);
        ;
        mpfr_mul(r7910, r7908, r7909, MPFR_RNDN);
        mpfr_set_d(r7911, c, MPFR_RNDN);
        mpfr_mul(r7912, r7910, r7911, MPFR_RNDN);
        mpfr_sub(r7913, r7907, r7912, MPFR_RNDN);
        mpfr_sqrt(r7914, r7913, MPFR_RNDN);
        mpfr_sub(r7915, r7906, r7914, MPFR_RNDN);
        mpfr_cbrt(r7916, r7915, MPFR_RNDN);
        mpfr_mul(r7917, r7916, r7916, MPFR_RNDN);
        mpfr_div(r7918, r7905, r7917, MPFR_RNDN);
        mpfr_div(r7919, r7911, r7916, MPFR_RNDN);
        mpfr_mul(r7920, r7918, r7919, MPFR_RNDN);
        mpfr_div(r7921, r7911, r7900, MPFR_RNDN);
        mpfr_div(r7922, r7900, r7908, MPFR_RNDN);
        mpfr_sub(r7923, r7921, r7922, MPFR_RNDN);
        if (mpfr_get_si(r7904, MPFR_RNDN)) { mpfr_set(r7924, r7920, MPFR_RNDN); } else { mpfr_set(r7924, r7923, MPFR_RNDN); };
        ;
        mpfr_set_si(r7926, mpfr_cmp(r7900, r7925) <= 0, MPFR_RNDN);
        mpfr_mul(r7927, r7905, r7911, MPFR_RNDN);
        mpfr_div(r7928, r7927, r7915, MPFR_RNDN);
        mpfr_sqrt(r7929, r7914, MPFR_RNDN);
        mpfr_mul(r7930, r7929, r7929, MPFR_RNDN);
        mpfr_add(r7931, r7930, r7906, MPFR_RNDN);
        mpfr_mul(r7932, r7908, r7905, MPFR_RNDN);
        mpfr_div(r7933, r7931, r7932, MPFR_RNDN);
        if (mpfr_get_si(r7904, MPFR_RNDN)) { mpfr_set(r7934, r7928, MPFR_RNDN); } else { mpfr_set(r7934, r7933, MPFR_RNDN); };
        mpfr_div(r7935, r7908, r7900, MPFR_RNDN);
        mpfr_fma(r7936, r7935, r7911, r7906, MPFR_RNDN);
        mpfr_mul(r7937, r7936, r7905, MPFR_RNDN);
        mpfr_div(r7938, r7927, r7937, MPFR_RNDN);
        mpfr_add(r7939, r7906, r7914, MPFR_RNDN);
        mpfr_div(r7940, r7939, r7932, MPFR_RNDN);
        if (mpfr_get_si(r7904, MPFR_RNDN)) { mpfr_set(r7941, r7938, MPFR_RNDN); } else { mpfr_set(r7941, r7940, MPFR_RNDN); };
        if (mpfr_get_si(r7926, MPFR_RNDN)) { mpfr_set(r7942, r7934, MPFR_RNDN); } else { mpfr_set(r7942, r7941, MPFR_RNDN); };
        if (mpfr_get_si(r7902, MPFR_RNDN)) { mpfr_set(r7943, r7924, MPFR_RNDN); } else { mpfr_set(r7943, r7942, MPFR_RNDN); };
        return mpfr_get_d(r7943, MPFR_RNDN);
}

static mpfr_t r7944, r7945, r7946, r7947, r7948, r7949, r7950, r7951, r7952, r7953, r7954, r7955, r7956, r7957, r7958, r7959, r7960, r7961, r7962, r7963, r7964, r7965, r7966, r7967, r7968, r7969, r7970, r7971, r7972, r7973, r7974, r7975, r7976, r7977, r7978, r7979, r7980, r7981, r7982, r7983, r7984, r7985, r7986, r7987;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r7944);
        mpfr_init_set_str(r7945, "-2.7261971550086115e+82", 10, MPFR_RNDN);
        mpfr_init(r7946);
        mpfr_init_set_str(r7947, "0", 10, MPFR_RNDN);
        mpfr_init(r7948);
        mpfr_init_set_str(r7949, "2", 10, MPFR_RNDN);
        mpfr_init(r7950);
        mpfr_init(r7951);
        mpfr_init(r7952);
        mpfr_init_set_str(r7953, "4", 10, MPFR_RNDN);
        mpfr_init(r7954);
        mpfr_init(r7955);
        mpfr_init(r7956);
        mpfr_init(r7957);
        mpfr_init(r7958);
        mpfr_init(r7959);
        mpfr_init(r7960);
        mpfr_init(r7961);
        mpfr_init(r7962);
        mpfr_init(r7963);
        mpfr_init(r7964);
        mpfr_init(r7965);
        mpfr_init(r7966);
        mpfr_init(r7967);
        mpfr_init(r7968);
        mpfr_init_set_str(r7969, "1.170080853887373e+54", 10, MPFR_RNDN);
        mpfr_init(r7970);
        mpfr_init(r7971);
        mpfr_init(r7972);
        mpfr_init(r7973);
        mpfr_init(r7974);
        mpfr_init(r7975);
        mpfr_init(r7976);
        mpfr_init(r7977);
        mpfr_init(r7978);
        mpfr_init(r7979);
        mpfr_init(r7980);
        mpfr_init(r7981);
        mpfr_init(r7982);
        mpfr_init(r7983);
        mpfr_init(r7984);
        mpfr_init(r7985);
        mpfr_init(r7986);
        mpfr_init(r7987);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r7944, b, MPFR_RNDN);
        ;
        mpfr_set_si(r7946, mpfr_cmp(r7944, r7945) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r7948, mpfr_cmp(r7944, r7947) >= 0, MPFR_RNDN);
        ;
        mpfr_neg(r7950, r7944, MPFR_RNDN);
        mpfr_mul(r7951, r7944, r7944, MPFR_RNDN);
        mpfr_set_d(r7952, a, MPFR_RNDN);
        ;
        mpfr_mul(r7954, r7952, r7953, MPFR_RNDN);
        mpfr_set_d(r7955, c, MPFR_RNDN);
        mpfr_mul(r7956, r7954, r7955, MPFR_RNDN);
        mpfr_sub(r7957, r7951, r7956, MPFR_RNDN);
        mpfr_sqrt(r7958, r7957, MPFR_RNDN);
        mpfr_sub(r7959, r7950, r7958, MPFR_RNDN);
        mpfr_cbrt(r7960, r7959, MPFR_RNDN);
        mpfr_mul(r7961, r7960, r7960, MPFR_RNDN);
        mpfr_div(r7962, r7949, r7961, MPFR_RNDN);
        mpfr_div(r7963, r7955, r7960, MPFR_RNDN);
        mpfr_mul(r7964, r7962, r7963, MPFR_RNDN);
        mpfr_div(r7965, r7955, r7944, MPFR_RNDN);
        mpfr_div(r7966, r7944, r7952, MPFR_RNDN);
        mpfr_sub(r7967, r7965, r7966, MPFR_RNDN);
        if (mpfr_get_si(r7948, MPFR_RNDN)) { mpfr_set(r7968, r7964, MPFR_RNDN); } else { mpfr_set(r7968, r7967, MPFR_RNDN); };
        ;
        mpfr_set_si(r7970, mpfr_cmp(r7944, r7969) <= 0, MPFR_RNDN);
        mpfr_mul(r7971, r7949, r7955, MPFR_RNDN);
        mpfr_div(r7972, r7971, r7959, MPFR_RNDN);
        mpfr_sqrt(r7973, r7958, MPFR_RNDN);
        mpfr_mul(r7974, r7973, r7973, MPFR_RNDN);
        mpfr_add(r7975, r7974, r7950, MPFR_RNDN);
        mpfr_mul(r7976, r7952, r7949, MPFR_RNDN);
        mpfr_div(r7977, r7975, r7976, MPFR_RNDN);
        if (mpfr_get_si(r7948, MPFR_RNDN)) { mpfr_set(r7978, r7972, MPFR_RNDN); } else { mpfr_set(r7978, r7977, MPFR_RNDN); };
        mpfr_div(r7979, r7952, r7944, MPFR_RNDN);
        mpfr_fma(r7980, r7979, r7955, r7950, MPFR_RNDN);
        mpfr_mul(r7981, r7980, r7949, MPFR_RNDN);
        mpfr_div(r7982, r7971, r7981, MPFR_RNDN);
        mpfr_add(r7983, r7950, r7958, MPFR_RNDN);
        mpfr_div(r7984, r7983, r7976, MPFR_RNDN);
        if (mpfr_get_si(r7948, MPFR_RNDN)) { mpfr_set(r7985, r7982, MPFR_RNDN); } else { mpfr_set(r7985, r7984, MPFR_RNDN); };
        if (mpfr_get_si(r7970, MPFR_RNDN)) { mpfr_set(r7986, r7978, MPFR_RNDN); } else { mpfr_set(r7986, r7985, MPFR_RNDN); };
        if (mpfr_get_si(r7946, MPFR_RNDN)) { mpfr_set(r7987, r7968, MPFR_RNDN); } else { mpfr_set(r7987, r7986, MPFR_RNDN); };
        return mpfr_get_d(r7987, MPFR_RNDN);
}

