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

char *name = "The quadratic formula (r1)";

double f_if(float a, float b, float c) {
        float r39819 = b;
        float r39820 = -r39819;
        float r39821 = r39819 * r39819;
        float r39822 = 4;
        float r39823 = a;
        float r39824 = r39822 * r39823;
        float r39825 = c;
        float r39826 = r39824 * r39825;
        float r39827 = r39821 - r39826;
        float r39828 = sqrt(r39827);
        float r39829 = r39820 + r39828;
        float r39830 = 2;
        float r39831 = r39830 * r39823;
        float r39832 = r39829 / r39831;
        return r39832;
}

double f_id(double a, double b, double c) {
        double r39833 = b;
        double r39834 = -r39833;
        double r39835 = r39833 * r39833;
        double r39836 = 4;
        double r39837 = a;
        double r39838 = r39836 * r39837;
        double r39839 = c;
        double r39840 = r39838 * r39839;
        double r39841 = r39835 - r39840;
        double r39842 = sqrt(r39841);
        double r39843 = r39834 + r39842;
        double r39844 = 2;
        double r39845 = r39844 * r39837;
        double r39846 = r39843 / r39845;
        return r39846;
}


double f_of(float a, float b, float c) {
        float r39847 = b;
        float r39848 = -8.111805193496531e+152;
        bool r39849 = r39847 <= r39848;
        float r39850 = -r39847;
        float r39851 = a;
        float r39852 = r39850 / r39851;
        float r39853 = 7.580412743766101e-138;
        bool r39854 = r39847 <= r39853;
        float r39855 = r39847 * r39847;
        float r39856 = 4;
        float r39857 = r39856 * r39851;
        float r39858 = c;
        float r39859 = r39857 * r39858;
        float r39860 = r39855 - r39859;
        float r39861 = sqrt(r39860);
        float r39862 = r39850 + r39861;
        float r39863 = 2;
        float r39864 = r39863 * r39851;
        float r39865 = r39862 / r39864;
        float r39866 = r39858 / r39847;
        float r39867 = -2;
        float r39868 = r39867 / r39863;
        float r39869 = r39866 * r39868;
        float r39870 = r39854 ? r39865 : r39869;
        float r39871 = r39849 ? r39852 : r39870;
        return r39871;
}

double f_od(double a, double b, double c) {
        double r39872 = b;
        double r39873 = -8.111805193496531e+152;
        bool r39874 = r39872 <= r39873;
        double r39875 = -r39872;
        double r39876 = a;
        double r39877 = r39875 / r39876;
        double r39878 = 7.580412743766101e-138;
        bool r39879 = r39872 <= r39878;
        double r39880 = r39872 * r39872;
        double r39881 = 4;
        double r39882 = r39881 * r39876;
        double r39883 = c;
        double r39884 = r39882 * r39883;
        double r39885 = r39880 - r39884;
        double r39886 = sqrt(r39885);
        double r39887 = r39875 + r39886;
        double r39888 = 2;
        double r39889 = r39888 * r39876;
        double r39890 = r39887 / r39889;
        double r39891 = r39883 / r39872;
        double r39892 = -2;
        double r39893 = r39892 / r39888;
        double r39894 = r39891 * r39893;
        double r39895 = r39879 ? r39890 : r39894;
        double r39896 = r39874 ? r39877 : r39895;
        return r39896;
}

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 r39897, r39898, r39899, r39900, r39901, r39902, r39903, r39904, r39905, r39906, r39907, r39908, r39909, r39910;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39897);
        mpfr_init(r39898);
        mpfr_init(r39899);
        mpfr_init_set_str(r39900, "4", 10, MPFR_RNDN);
        mpfr_init(r39901);
        mpfr_init(r39902);
        mpfr_init(r39903);
        mpfr_init(r39904);
        mpfr_init(r39905);
        mpfr_init(r39906);
        mpfr_init(r39907);
        mpfr_init_set_str(r39908, "2", 10, MPFR_RNDN);
        mpfr_init(r39909);
        mpfr_init(r39910);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r39897, b, MPFR_RNDN);
        mpfr_neg(r39898, r39897, MPFR_RNDN);
        mpfr_mul(r39899, r39897, r39897, MPFR_RNDN);
        ;
        mpfr_set_d(r39901, a, MPFR_RNDN);
        mpfr_mul(r39902, r39900, r39901, MPFR_RNDN);
        mpfr_set_d(r39903, c, MPFR_RNDN);
        mpfr_mul(r39904, r39902, r39903, MPFR_RNDN);
        mpfr_sub(r39905, r39899, r39904, MPFR_RNDN);
        mpfr_sqrt(r39906, r39905, MPFR_RNDN);
        mpfr_add(r39907, r39898, r39906, MPFR_RNDN);
        ;
        mpfr_mul(r39909, r39908, r39901, MPFR_RNDN);
        mpfr_div(r39910, r39907, r39909, MPFR_RNDN);
        return mpfr_get_d(r39910, MPFR_RNDN);
}

static mpfr_t r39911, r39912, r39913, r39914, r39915, r39916, r39917, r39918, r39919, r39920, r39921, r39922, r39923, r39924, r39925, r39926, r39927, r39928, r39929, r39930, r39931, r39932, r39933, r39934, r39935;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39911);
        mpfr_init_set_str(r39912, "-8.111805193496531e+152", 10, MPFR_RNDN);
        mpfr_init(r39913);
        mpfr_init(r39914);
        mpfr_init(r39915);
        mpfr_init(r39916);
        mpfr_init_set_str(r39917, "7.580412743766101e-138", 10, MPFR_RNDN);
        mpfr_init(r39918);
        mpfr_init(r39919);
        mpfr_init_set_str(r39920, "4", 10, MPFR_RNDN);
        mpfr_init(r39921);
        mpfr_init(r39922);
        mpfr_init(r39923);
        mpfr_init(r39924);
        mpfr_init(r39925);
        mpfr_init(r39926);
        mpfr_init_set_str(r39927, "2", 10, MPFR_RNDN);
        mpfr_init(r39928);
        mpfr_init(r39929);
        mpfr_init(r39930);
        mpfr_init_set_str(r39931, "-2", 10, MPFR_RNDN);
        mpfr_init(r39932);
        mpfr_init(r39933);
        mpfr_init(r39934);
        mpfr_init(r39935);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r39911, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39913, mpfr_cmp(r39911, r39912) <= 0, MPFR_RNDN);
        mpfr_neg(r39914, r39911, MPFR_RNDN);
        mpfr_set_d(r39915, a, MPFR_RNDN);
        mpfr_div(r39916, r39914, r39915, MPFR_RNDN);
        ;
        mpfr_set_si(r39918, mpfr_cmp(r39911, r39917) <= 0, MPFR_RNDN);
        mpfr_mul(r39919, r39911, r39911, MPFR_RNDN);
        ;
        mpfr_mul(r39921, r39920, r39915, MPFR_RNDN);
        mpfr_set_d(r39922, c, MPFR_RNDN);
        mpfr_mul(r39923, r39921, r39922, MPFR_RNDN);
        mpfr_sub(r39924, r39919, r39923, MPFR_RNDN);
        mpfr_sqrt(r39925, r39924, MPFR_RNDN);
        mpfr_add(r39926, r39914, r39925, MPFR_RNDN);
        ;
        mpfr_mul(r39928, r39927, r39915, MPFR_RNDN);
        mpfr_div(r39929, r39926, r39928, MPFR_RNDN);
        mpfr_div(r39930, r39922, r39911, MPFR_RNDN);
        ;
        mpfr_div(r39932, r39931, r39927, MPFR_RNDN);
        mpfr_mul(r39933, r39930, r39932, MPFR_RNDN);
        if (mpfr_get_si(r39918, MPFR_RNDN)) { mpfr_set(r39934, r39929, MPFR_RNDN); } else { mpfr_set(r39934, r39933, MPFR_RNDN); };
        if (mpfr_get_si(r39913, MPFR_RNDN)) { mpfr_set(r39935, r39916, MPFR_RNDN); } else { mpfr_set(r39935, r39934, MPFR_RNDN); };
        return mpfr_get_d(r39935, MPFR_RNDN);
}

static mpfr_t r39936, r39937, r39938, r39939, r39940, r39941, r39942, r39943, r39944, r39945, r39946, r39947, r39948, r39949, r39950, r39951, r39952, r39953, r39954, r39955, r39956, r39957, r39958, r39959, r39960;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39936);
        mpfr_init_set_str(r39937, "-8.111805193496531e+152", 10, MPFR_RNDN);
        mpfr_init(r39938);
        mpfr_init(r39939);
        mpfr_init(r39940);
        mpfr_init(r39941);
        mpfr_init_set_str(r39942, "7.580412743766101e-138", 10, MPFR_RNDN);
        mpfr_init(r39943);
        mpfr_init(r39944);
        mpfr_init_set_str(r39945, "4", 10, MPFR_RNDN);
        mpfr_init(r39946);
        mpfr_init(r39947);
        mpfr_init(r39948);
        mpfr_init(r39949);
        mpfr_init(r39950);
        mpfr_init(r39951);
        mpfr_init_set_str(r39952, "2", 10, MPFR_RNDN);
        mpfr_init(r39953);
        mpfr_init(r39954);
        mpfr_init(r39955);
        mpfr_init_set_str(r39956, "-2", 10, MPFR_RNDN);
        mpfr_init(r39957);
        mpfr_init(r39958);
        mpfr_init(r39959);
        mpfr_init(r39960);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r39936, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39938, mpfr_cmp(r39936, r39937) <= 0, MPFR_RNDN);
        mpfr_neg(r39939, r39936, MPFR_RNDN);
        mpfr_set_d(r39940, a, MPFR_RNDN);
        mpfr_div(r39941, r39939, r39940, MPFR_RNDN);
        ;
        mpfr_set_si(r39943, mpfr_cmp(r39936, r39942) <= 0, MPFR_RNDN);
        mpfr_mul(r39944, r39936, r39936, MPFR_RNDN);
        ;
        mpfr_mul(r39946, r39945, r39940, MPFR_RNDN);
        mpfr_set_d(r39947, c, MPFR_RNDN);
        mpfr_mul(r39948, r39946, r39947, MPFR_RNDN);
        mpfr_sub(r39949, r39944, r39948, MPFR_RNDN);
        mpfr_sqrt(r39950, r39949, MPFR_RNDN);
        mpfr_add(r39951, r39939, r39950, MPFR_RNDN);
        ;
        mpfr_mul(r39953, r39952, r39940, MPFR_RNDN);
        mpfr_div(r39954, r39951, r39953, MPFR_RNDN);
        mpfr_div(r39955, r39947, r39936, MPFR_RNDN);
        ;
        mpfr_div(r39957, r39956, r39952, MPFR_RNDN);
        mpfr_mul(r39958, r39955, r39957, MPFR_RNDN);
        if (mpfr_get_si(r39943, MPFR_RNDN)) { mpfr_set(r39959, r39954, MPFR_RNDN); } else { mpfr_set(r39959, r39958, MPFR_RNDN); };
        if (mpfr_get_si(r39938, MPFR_RNDN)) { mpfr_set(r39960, r39941, MPFR_RNDN); } else { mpfr_set(r39960, r39959, MPFR_RNDN); };
        return mpfr_get_d(r39960, MPFR_RNDN);
}

