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

char *name = "quadp (p42, positive)";

double f_if(float a, float b, float c) {
        float r9730 = b;
        float r9731 = -r9730;
        float r9732 = r9730 * r9730;
        float r9733 = 4;
        float r9734 = a;
        float r9735 = c;
        float r9736 = r9734 * r9735;
        float r9737 = r9733 * r9736;
        float r9738 = r9732 - r9737;
        float r9739 = sqrt(r9738);
        float r9740 = r9731 + r9739;
        float r9741 = 2;
        float r9742 = r9741 * r9734;
        float r9743 = r9740 / r9742;
        return r9743;
}

double f_id(double a, double b, double c) {
        double r9744 = b;
        double r9745 = -r9744;
        double r9746 = r9744 * r9744;
        double r9747 = 4;
        double r9748 = a;
        double r9749 = c;
        double r9750 = r9748 * r9749;
        double r9751 = r9747 * r9750;
        double r9752 = r9746 - r9751;
        double r9753 = sqrt(r9752);
        double r9754 = r9745 + r9753;
        double r9755 = 2;
        double r9756 = r9755 * r9748;
        double r9757 = r9754 / r9756;
        return r9757;
}


double f_of(float a, float b, float c) {
        float r9758 = b;
        float r9759 = -1.1514098544621335e+149;
        bool r9760 = r9758 <= r9759;
        float r9761 = c;
        float r9762 = r9761 / r9758;
        float r9763 = a;
        float r9764 = r9758 / r9763;
        float r9765 = r9762 - r9764;
        float r9766 = 7.62296366921463e-119;
        bool r9767 = r9758 <= r9766;
        float r9768 = r9758 * r9758;
        float r9769 = r9761 * r9763;
        float r9770 = 4;
        float r9771 = r9769 * r9770;
        float r9772 = r9768 - r9771;
        float r9773 = sqrt(r9772);
        float r9774 = -r9758;
        float r9775 = r9773 + r9774;
        float r9776 = 2;
        float r9777 = r9776 * r9763;
        float r9778 = r9775 / r9777;
        float r9779 = 3.128421125733265e+92;
        bool r9780 = r9758 <= r9779;
        float r9781 = r9770 * r9761;
        float r9782 = r9781 * r9763;
        float r9783 = r9774 - r9773;
        float r9784 = r9782 / r9783;
        float r9785 = r9784 / r9777;
        float r9786 = -r9762;
        float r9787 = r9780 ? r9785 : r9786;
        float r9788 = r9767 ? r9778 : r9787;
        float r9789 = r9760 ? r9765 : r9788;
        return r9789;
}

double f_od(double a, double b, double c) {
        double r9790 = b;
        double r9791 = -1.1514098544621335e+149;
        bool r9792 = r9790 <= r9791;
        double r9793 = c;
        double r9794 = r9793 / r9790;
        double r9795 = a;
        double r9796 = r9790 / r9795;
        double r9797 = r9794 - r9796;
        double r9798 = 7.62296366921463e-119;
        bool r9799 = r9790 <= r9798;
        double r9800 = r9790 * r9790;
        double r9801 = r9793 * r9795;
        double r9802 = 4;
        double r9803 = r9801 * r9802;
        double r9804 = r9800 - r9803;
        double r9805 = sqrt(r9804);
        double r9806 = -r9790;
        double r9807 = r9805 + r9806;
        double r9808 = 2;
        double r9809 = r9808 * r9795;
        double r9810 = r9807 / r9809;
        double r9811 = 3.128421125733265e+92;
        bool r9812 = r9790 <= r9811;
        double r9813 = r9802 * r9793;
        double r9814 = r9813 * r9795;
        double r9815 = r9806 - r9805;
        double r9816 = r9814 / r9815;
        double r9817 = r9816 / r9809;
        double r9818 = -r9794;
        double r9819 = r9812 ? r9817 : r9818;
        double r9820 = r9799 ? r9810 : r9819;
        double r9821 = r9792 ? r9797 : r9820;
        return r9821;
}

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 r9822, r9823, r9824, r9825, r9826, r9827, r9828, r9829, r9830, r9831, r9832, r9833, r9834, r9835;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9822);
        mpfr_init(r9823);
        mpfr_init(r9824);
        mpfr_init_set_str(r9825, "4", 10, MPFR_RNDN);
        mpfr_init(r9826);
        mpfr_init(r9827);
        mpfr_init(r9828);
        mpfr_init(r9829);
        mpfr_init(r9830);
        mpfr_init(r9831);
        mpfr_init(r9832);
        mpfr_init_set_str(r9833, "2", 10, MPFR_RNDN);
        mpfr_init(r9834);
        mpfr_init(r9835);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r9822, b, MPFR_RNDN);
        mpfr_neg(r9823, r9822, MPFR_RNDN);
        mpfr_mul(r9824, r9822, r9822, MPFR_RNDN);
        ;
        mpfr_set_d(r9826, a, MPFR_RNDN);
        mpfr_set_d(r9827, c, MPFR_RNDN);
        mpfr_mul(r9828, r9826, r9827, MPFR_RNDN);
        mpfr_mul(r9829, r9825, r9828, MPFR_RNDN);
        mpfr_sub(r9830, r9824, r9829, MPFR_RNDN);
        mpfr_sqrt(r9831, r9830, MPFR_RNDN);
        mpfr_add(r9832, r9823, r9831, MPFR_RNDN);
        ;
        mpfr_mul(r9834, r9833, r9826, MPFR_RNDN);
        mpfr_div(r9835, r9832, r9834, MPFR_RNDN);
        return mpfr_get_d(r9835, MPFR_RNDN);
}

static mpfr_t r9836, r9837, r9838, r9839, r9840, r9841, r9842, r9843, r9844, r9845, r9846, r9847, r9848, r9849, r9850, r9851, r9852, r9853, r9854, r9855, r9856, r9857, r9858, r9859, r9860, r9861, r9862, r9863, r9864, r9865, r9866, r9867;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9836);
        mpfr_init_set_str(r9837, "-1.1514098544621335e+149", 10, MPFR_RNDN);
        mpfr_init(r9838);
        mpfr_init(r9839);
        mpfr_init(r9840);
        mpfr_init(r9841);
        mpfr_init(r9842);
        mpfr_init(r9843);
        mpfr_init_set_str(r9844, "7.62296366921463e-119", 10, MPFR_RNDN);
        mpfr_init(r9845);
        mpfr_init(r9846);
        mpfr_init(r9847);
        mpfr_init_set_str(r9848, "4", 10, MPFR_RNDN);
        mpfr_init(r9849);
        mpfr_init(r9850);
        mpfr_init(r9851);
        mpfr_init(r9852);
        mpfr_init(r9853);
        mpfr_init_set_str(r9854, "2", 10, MPFR_RNDN);
        mpfr_init(r9855);
        mpfr_init(r9856);
        mpfr_init_set_str(r9857, "3.128421125733265e+92", 10, MPFR_RNDN);
        mpfr_init(r9858);
        mpfr_init(r9859);
        mpfr_init(r9860);
        mpfr_init(r9861);
        mpfr_init(r9862);
        mpfr_init(r9863);
        mpfr_init(r9864);
        mpfr_init(r9865);
        mpfr_init(r9866);
        mpfr_init(r9867);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r9836, b, MPFR_RNDN);
        ;
        mpfr_set_si(r9838, mpfr_cmp(r9836, r9837) <= 0, MPFR_RNDN);
        mpfr_set_d(r9839, c, MPFR_RNDN);
        mpfr_div(r9840, r9839, r9836, MPFR_RNDN);
        mpfr_set_d(r9841, a, MPFR_RNDN);
        mpfr_div(r9842, r9836, r9841, MPFR_RNDN);
        mpfr_sub(r9843, r9840, r9842, MPFR_RNDN);
        ;
        mpfr_set_si(r9845, mpfr_cmp(r9836, r9844) <= 0, MPFR_RNDN);
        mpfr_mul(r9846, r9836, r9836, MPFR_RNDN);
        mpfr_mul(r9847, r9839, r9841, MPFR_RNDN);
        ;
        mpfr_mul(r9849, r9847, r9848, MPFR_RNDN);
        mpfr_sub(r9850, r9846, r9849, MPFR_RNDN);
        mpfr_sqrt(r9851, r9850, MPFR_RNDN);
        mpfr_neg(r9852, r9836, MPFR_RNDN);
        mpfr_add(r9853, r9851, r9852, MPFR_RNDN);
        ;
        mpfr_mul(r9855, r9854, r9841, MPFR_RNDN);
        mpfr_div(r9856, r9853, r9855, MPFR_RNDN);
        ;
        mpfr_set_si(r9858, mpfr_cmp(r9836, r9857) <= 0, MPFR_RNDN);
        mpfr_mul(r9859, r9848, r9839, MPFR_RNDN);
        mpfr_mul(r9860, r9859, r9841, MPFR_RNDN);
        mpfr_sub(r9861, r9852, r9851, MPFR_RNDN);
        mpfr_div(r9862, r9860, r9861, MPFR_RNDN);
        mpfr_div(r9863, r9862, r9855, MPFR_RNDN);
        mpfr_neg(r9864, r9840, MPFR_RNDN);
        if (mpfr_get_si(r9858, MPFR_RNDN)) { mpfr_set(r9865, r9863, MPFR_RNDN); } else { mpfr_set(r9865, r9864, MPFR_RNDN); };
        if (mpfr_get_si(r9845, MPFR_RNDN)) { mpfr_set(r9866, r9856, MPFR_RNDN); } else { mpfr_set(r9866, r9865, MPFR_RNDN); };
        if (mpfr_get_si(r9838, MPFR_RNDN)) { mpfr_set(r9867, r9843, MPFR_RNDN); } else { mpfr_set(r9867, r9866, MPFR_RNDN); };
        return mpfr_get_d(r9867, MPFR_RNDN);
}

static mpfr_t r9868, r9869, r9870, r9871, r9872, r9873, r9874, r9875, r9876, r9877, r9878, r9879, r9880, r9881, r9882, r9883, r9884, r9885, r9886, r9887, r9888, r9889, r9890, r9891, r9892, r9893, r9894, r9895, r9896, r9897, r9898, r9899;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9868);
        mpfr_init_set_str(r9869, "-1.1514098544621335e+149", 10, MPFR_RNDN);
        mpfr_init(r9870);
        mpfr_init(r9871);
        mpfr_init(r9872);
        mpfr_init(r9873);
        mpfr_init(r9874);
        mpfr_init(r9875);
        mpfr_init_set_str(r9876, "7.62296366921463e-119", 10, MPFR_RNDN);
        mpfr_init(r9877);
        mpfr_init(r9878);
        mpfr_init(r9879);
        mpfr_init_set_str(r9880, "4", 10, MPFR_RNDN);
        mpfr_init(r9881);
        mpfr_init(r9882);
        mpfr_init(r9883);
        mpfr_init(r9884);
        mpfr_init(r9885);
        mpfr_init_set_str(r9886, "2", 10, MPFR_RNDN);
        mpfr_init(r9887);
        mpfr_init(r9888);
        mpfr_init_set_str(r9889, "3.128421125733265e+92", 10, MPFR_RNDN);
        mpfr_init(r9890);
        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(r9899);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r9868, b, MPFR_RNDN);
        ;
        mpfr_set_si(r9870, mpfr_cmp(r9868, r9869) <= 0, MPFR_RNDN);
        mpfr_set_d(r9871, c, MPFR_RNDN);
        mpfr_div(r9872, r9871, r9868, MPFR_RNDN);
        mpfr_set_d(r9873, a, MPFR_RNDN);
        mpfr_div(r9874, r9868, r9873, MPFR_RNDN);
        mpfr_sub(r9875, r9872, r9874, MPFR_RNDN);
        ;
        mpfr_set_si(r9877, mpfr_cmp(r9868, r9876) <= 0, MPFR_RNDN);
        mpfr_mul(r9878, r9868, r9868, MPFR_RNDN);
        mpfr_mul(r9879, r9871, r9873, MPFR_RNDN);
        ;
        mpfr_mul(r9881, r9879, r9880, MPFR_RNDN);
        mpfr_sub(r9882, r9878, r9881, MPFR_RNDN);
        mpfr_sqrt(r9883, r9882, MPFR_RNDN);
        mpfr_neg(r9884, r9868, MPFR_RNDN);
        mpfr_add(r9885, r9883, r9884, MPFR_RNDN);
        ;
        mpfr_mul(r9887, r9886, r9873, MPFR_RNDN);
        mpfr_div(r9888, r9885, r9887, MPFR_RNDN);
        ;
        mpfr_set_si(r9890, mpfr_cmp(r9868, r9889) <= 0, MPFR_RNDN);
        mpfr_mul(r9891, r9880, r9871, MPFR_RNDN);
        mpfr_mul(r9892, r9891, r9873, MPFR_RNDN);
        mpfr_sub(r9893, r9884, r9883, MPFR_RNDN);
        mpfr_div(r9894, r9892, r9893, MPFR_RNDN);
        mpfr_div(r9895, r9894, r9887, MPFR_RNDN);
        mpfr_neg(r9896, r9872, MPFR_RNDN);
        if (mpfr_get_si(r9890, MPFR_RNDN)) { mpfr_set(r9897, r9895, MPFR_RNDN); } else { mpfr_set(r9897, r9896, MPFR_RNDN); };
        if (mpfr_get_si(r9877, MPFR_RNDN)) { mpfr_set(r9898, r9888, MPFR_RNDN); } else { mpfr_set(r9898, r9897, MPFR_RNDN); };
        if (mpfr_get_si(r9870, MPFR_RNDN)) { mpfr_set(r9899, r9875, MPFR_RNDN); } else { mpfr_set(r9899, r9898, MPFR_RNDN); };
        return mpfr_get_d(r9899, MPFR_RNDN);
}

