#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 r9755 = b;
        float r9756 = -r9755;
        float r9757 = r9755 * r9755;
        float r9758 = 4.0f;
        float r9759 = a;
        float r9760 = c;
        float r9761 = r9759 * r9760;
        float r9762 = r9758 * r9761;
        float r9763 = r9757 - r9762;
        float r9764 = sqrt(r9763);
        float r9765 = r9756 - r9764;
        float r9766 = 2.0f;
        float r9767 = r9766 * r9759;
        float r9768 = r9765 / r9767;
        return r9768;
}

double f_id(double a, double b, double c) {
        double r9769 = b;
        double r9770 = -r9769;
        double r9771 = r9769 * r9769;
        double r9772 = 4.0;
        double r9773 = a;
        double r9774 = c;
        double r9775 = r9773 * r9774;
        double r9776 = r9772 * r9775;
        double r9777 = r9771 - r9776;
        double r9778 = sqrt(r9777);
        double r9779 = r9770 - r9778;
        double r9780 = 2.0;
        double r9781 = r9780 * r9773;
        double r9782 = r9779 / r9781;
        return r9782;
}


double f_of(float a, float b, float c) {
        float r9783 = b;
        float r9784 = -r9783;
        float r9785 = -1.5226383508946404e+119f;
        bool r9786 = r9784 <= r9785;
        float r9787 = a;
        float r9788 = r9784 / r9787;
        float r9789 = 1.8160081293285892e+30f;
        bool r9790 = r9784 <= r9789;
        float r9791 = 1.0f;
        float r9792 = 2.0f;
        float r9793 = r9787 * r9792;
        float r9794 = r9783 * r9783;
        float r9795 = 4.0f;
        float r9796 = c;
        float r9797 = r9787 * r9796;
        float r9798 = r9795 * r9797;
        float r9799 = r9794 - r9798;
        float r9800 = sqrt(r9799);
        float r9801 = r9784 - r9800;
        float r9802 = r9793 / r9801;
        float r9803 = r9791 / r9802;
        float r9804 = -2.0f;
        float r9805 = r9797 / r9783;
        float r9806 = r9804 * r9805;
        float r9807 = r9806 / r9793;
        float r9808 = r9790 ? r9803 : r9807;
        float r9809 = r9786 ? r9788 : r9808;
        return r9809;
}

double f_od(double a, double b, double c) {
        double r9810 = b;
        double r9811 = -r9810;
        double r9812 = -1.5226383508946404e+119;
        bool r9813 = r9811 <= r9812;
        double r9814 = a;
        double r9815 = r9811 / r9814;
        double r9816 = 1.8160081293285892e+30;
        bool r9817 = r9811 <= r9816;
        double r9818 = 1.0;
        double r9819 = 2.0;
        double r9820 = r9814 * r9819;
        double r9821 = r9810 * r9810;
        double r9822 = 4.0;
        double r9823 = c;
        double r9824 = r9814 * r9823;
        double r9825 = r9822 * r9824;
        double r9826 = r9821 - r9825;
        double r9827 = sqrt(r9826);
        double r9828 = r9811 - r9827;
        double r9829 = r9820 / r9828;
        double r9830 = r9818 / r9829;
        double r9831 = -2.0;
        double r9832 = r9824 / r9810;
        double r9833 = r9831 * r9832;
        double r9834 = r9833 / r9820;
        double r9835 = r9817 ? r9830 : r9834;
        double r9836 = r9813 ? r9815 : r9835;
        return r9836;
}

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 r9837, r9838, r9839, r9840, r9841, r9842, r9843, r9844, r9845, r9846, r9847, r9848, r9849, r9850;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9837);
        mpfr_init(r9838);
        mpfr_init(r9839);
        mpfr_init_set_str(r9840, "4", 10, MPFR_RNDN);
        mpfr_init(r9841);
        mpfr_init(r9842);
        mpfr_init(r9843);
        mpfr_init(r9844);
        mpfr_init(r9845);
        mpfr_init(r9846);
        mpfr_init(r9847);
        mpfr_init_set_str(r9848, "2", 10, MPFR_RNDN);
        mpfr_init(r9849);
        mpfr_init(r9850);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r9837, b, MPFR_RNDN);
        mpfr_neg(r9838, r9837, MPFR_RNDN);
        mpfr_mul(r9839, r9837, r9837, MPFR_RNDN);
        ;
        mpfr_set_d(r9841, a, MPFR_RNDN);
        mpfr_set_d(r9842, c, MPFR_RNDN);
        mpfr_mul(r9843, r9841, r9842, MPFR_RNDN);
        mpfr_mul(r9844, r9840, r9843, MPFR_RNDN);
        mpfr_sub(r9845, r9839, r9844, MPFR_RNDN);
        mpfr_sqrt(r9846, r9845, MPFR_RNDN);
        mpfr_sub(r9847, r9838, r9846, MPFR_RNDN);
        ;
        mpfr_mul(r9849, r9848, r9841, MPFR_RNDN);
        mpfr_div(r9850, r9847, r9849, MPFR_RNDN);
        return mpfr_get_d(r9850, MPFR_RNDN);
}

static mpfr_t r9851, r9852, r9853, r9854, r9855, r9856, r9857, r9858, r9859, r9860, r9861, r9862, r9863, r9864, r9865, r9866, r9867, r9868, r9869, r9870, r9871, r9872, r9873, r9874, r9875, r9876, r9877;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9851);
        mpfr_init(r9852);
        mpfr_init_set_str(r9853, "-1.5226383508946404e+119", 10, MPFR_RNDN);
        mpfr_init(r9854);
        mpfr_init(r9855);
        mpfr_init(r9856);
        mpfr_init_set_str(r9857, "1.8160081293285892e+30", 10, MPFR_RNDN);
        mpfr_init(r9858);
        mpfr_init_set_str(r9859, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r9860, "2", 10, MPFR_RNDN);
        mpfr_init(r9861);
        mpfr_init(r9862);
        mpfr_init_set_str(r9863, "4", 10, MPFR_RNDN);
        mpfr_init(r9864);
        mpfr_init(r9865);
        mpfr_init(r9866);
        mpfr_init(r9867);
        mpfr_init(r9868);
        mpfr_init(r9869);
        mpfr_init(r9870);
        mpfr_init(r9871);
        mpfr_init_set_str(r9872, "-2", 10, MPFR_RNDN);
        mpfr_init(r9873);
        mpfr_init(r9874);
        mpfr_init(r9875);
        mpfr_init(r9876);
        mpfr_init(r9877);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r9851, b, MPFR_RNDN);
        mpfr_neg(r9852, r9851, MPFR_RNDN);
        ;
        mpfr_set_si(r9854, mpfr_cmp(r9852, r9853) <= 0, MPFR_RNDN);
        mpfr_set_d(r9855, a, MPFR_RNDN);
        mpfr_div(r9856, r9852, r9855, MPFR_RNDN);
        ;
        mpfr_set_si(r9858, mpfr_cmp(r9852, r9857) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r9861, r9855, r9860, MPFR_RNDN);
        mpfr_mul(r9862, r9851, r9851, MPFR_RNDN);
        ;
        mpfr_set_d(r9864, c, MPFR_RNDN);
        mpfr_mul(r9865, r9855, r9864, MPFR_RNDN);
        mpfr_mul(r9866, r9863, r9865, MPFR_RNDN);
        mpfr_sub(r9867, r9862, r9866, MPFR_RNDN);
        mpfr_sqrt(r9868, r9867, MPFR_RNDN);
        mpfr_sub(r9869, r9852, r9868, MPFR_RNDN);
        mpfr_div(r9870, r9861, r9869, MPFR_RNDN);
        mpfr_div(r9871, r9859, r9870, MPFR_RNDN);
        ;
        mpfr_div(r9873, r9865, r9851, MPFR_RNDN);
        mpfr_mul(r9874, r9872, r9873, MPFR_RNDN);
        mpfr_div(r9875, r9874, r9861, MPFR_RNDN);
        if (mpfr_get_si(r9858, MPFR_RNDN)) { mpfr_set(r9876, r9871, MPFR_RNDN); } else { mpfr_set(r9876, r9875, MPFR_RNDN); };
        if (mpfr_get_si(r9854, MPFR_RNDN)) { mpfr_set(r9877, r9856, MPFR_RNDN); } else { mpfr_set(r9877, r9876, MPFR_RNDN); };
        return mpfr_get_d(r9877, MPFR_RNDN);
}

static mpfr_t r9878, r9879, r9880, r9881, r9882, r9883, r9884, r9885, r9886, r9887, r9888, r9889, r9890, r9891, r9892, r9893, r9894, r9895, r9896, r9897, r9898, r9899, r9900, r9901, r9902, r9903, r9904;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9878);
        mpfr_init(r9879);
        mpfr_init_set_str(r9880, "-1.5226383508946404e+119", 10, MPFR_RNDN);
        mpfr_init(r9881);
        mpfr_init(r9882);
        mpfr_init(r9883);
        mpfr_init_set_str(r9884, "1.8160081293285892e+30", 10, MPFR_RNDN);
        mpfr_init(r9885);
        mpfr_init_set_str(r9886, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r9887, "2", 10, MPFR_RNDN);
        mpfr_init(r9888);
        mpfr_init(r9889);
        mpfr_init_set_str(r9890, "4", 10, MPFR_RNDN);
        mpfr_init(r9891);
        mpfr_init(r9892);
        mpfr_init(r9893);
        mpfr_init(r9894);
        mpfr_init(r9895);
        mpfr_init(r9896);
        mpfr_init(r9897);
        mpfr_init(r9898);
        mpfr_init_set_str(r9899, "-2", 10, MPFR_RNDN);
        mpfr_init(r9900);
        mpfr_init(r9901);
        mpfr_init(r9902);
        mpfr_init(r9903);
        mpfr_init(r9904);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r9878, b, MPFR_RNDN);
        mpfr_neg(r9879, r9878, MPFR_RNDN);
        ;
        mpfr_set_si(r9881, mpfr_cmp(r9879, r9880) <= 0, MPFR_RNDN);
        mpfr_set_d(r9882, a, MPFR_RNDN);
        mpfr_div(r9883, r9879, r9882, MPFR_RNDN);
        ;
        mpfr_set_si(r9885, mpfr_cmp(r9879, r9884) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r9888, r9882, r9887, MPFR_RNDN);
        mpfr_mul(r9889, r9878, r9878, MPFR_RNDN);
        ;
        mpfr_set_d(r9891, c, MPFR_RNDN);
        mpfr_mul(r9892, r9882, r9891, MPFR_RNDN);
        mpfr_mul(r9893, r9890, r9892, MPFR_RNDN);
        mpfr_sub(r9894, r9889, r9893, MPFR_RNDN);
        mpfr_sqrt(r9895, r9894, MPFR_RNDN);
        mpfr_sub(r9896, r9879, r9895, MPFR_RNDN);
        mpfr_div(r9897, r9888, r9896, MPFR_RNDN);
        mpfr_div(r9898, r9886, r9897, MPFR_RNDN);
        ;
        mpfr_div(r9900, r9892, r9878, MPFR_RNDN);
        mpfr_mul(r9901, r9899, r9900, MPFR_RNDN);
        mpfr_div(r9902, r9901, r9888, MPFR_RNDN);
        if (mpfr_get_si(r9885, MPFR_RNDN)) { mpfr_set(r9903, r9898, MPFR_RNDN); } else { mpfr_set(r9903, r9902, MPFR_RNDN); };
        if (mpfr_get_si(r9881, MPFR_RNDN)) { mpfr_set(r9904, r9883, MPFR_RNDN); } else { mpfr_set(r9904, r9903, MPFR_RNDN); };
        return mpfr_get_d(r9904, MPFR_RNDN);
}

