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

char *name = "Statistics.Math.RootFinding:ridders from math-functions-0.1.5.2";

double f_if(float x, float y, float z, float t, float a) {
        float r36708 = x;
        float r36709 = y;
        float r36710 = r36708 * r36709;
        float r36711 = z;
        float r36712 = r36710 * r36711;
        float r36713 = r36711 * r36711;
        float r36714 = t;
        float r36715 = a;
        float r36716 = r36714 * r36715;
        float r36717 = r36713 - r36716;
        float r36718 = sqrt(r36717);
        float r36719 = r36712 / r36718;
        return r36719;
}

double f_id(double x, double y, double z, double t, double a) {
        double r36720 = x;
        double r36721 = y;
        double r36722 = r36720 * r36721;
        double r36723 = z;
        double r36724 = r36722 * r36723;
        double r36725 = r36723 * r36723;
        double r36726 = t;
        double r36727 = a;
        double r36728 = r36726 * r36727;
        double r36729 = r36725 - r36728;
        double r36730 = sqrt(r36729);
        double r36731 = r36724 / r36730;
        return r36731;
}


double f_of(float x, float y, float z, float t, float a) {
        float r36732 = z;
        float r36733 = -3.2246321692628075e+96f;
        bool r36734 = r36732 <= r36733;
        float r36735 = y;
        float r36736 = -r36735;
        float r36737 = x;
        float r36738 = r36736 * r36737;
        float r36739 = 4.1304744243716236e+108f;
        bool r36740 = r36732 <= r36739;
        float r36741 = 1.0f;
        float r36742 = r36737 / r36741;
        float r36743 = sqrt(r36741);
        float r36744 = r36735 / r36743;
        float r36745 = r36732 * r36732;
        float r36746 = t;
        float r36747 = a;
        float r36748 = r36746 * r36747;
        float r36749 = r36745 - r36748;
        float r36750 = sqrt(r36749);
        float r36751 = r36732 / r36750;
        float r36752 = r36744 * r36751;
        float r36753 = r36742 * r36752;
        float r36754 = r36735 * r36737;
        float r36755 = r36740 ? r36753 : r36754;
        float r36756 = r36734 ? r36738 : r36755;
        return r36756;
}

double f_od(double x, double y, double z, double t, double a) {
        double r36757 = z;
        double r36758 = -3.2246321692628075e+96;
        bool r36759 = r36757 <= r36758;
        double r36760 = y;
        double r36761 = -r36760;
        double r36762 = x;
        double r36763 = r36761 * r36762;
        double r36764 = 4.1304744243716236e+108;
        bool r36765 = r36757 <= r36764;
        double r36766 = 1.0;
        double r36767 = r36762 / r36766;
        double r36768 = sqrt(r36766);
        double r36769 = r36760 / r36768;
        double r36770 = r36757 * r36757;
        double r36771 = t;
        double r36772 = a;
        double r36773 = r36771 * r36772;
        double r36774 = r36770 - r36773;
        double r36775 = sqrt(r36774);
        double r36776 = r36757 / r36775;
        double r36777 = r36769 * r36776;
        double r36778 = r36767 * r36777;
        double r36779 = r36760 * r36762;
        double r36780 = r36765 ? r36778 : r36779;
        double r36781 = r36759 ? r36763 : r36780;
        return r36781;
}

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 r36782, r36783, r36784, r36785, r36786, r36787, r36788, r36789, r36790, r36791, r36792, r36793;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r36782);
        mpfr_init(r36783);
        mpfr_init(r36784);
        mpfr_init(r36785);
        mpfr_init(r36786);
        mpfr_init(r36787);
        mpfr_init(r36788);
        mpfr_init(r36789);
        mpfr_init(r36790);
        mpfr_init(r36791);
        mpfr_init(r36792);
        mpfr_init(r36793);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r36782, x, MPFR_RNDN);
        mpfr_set_d(r36783, y, MPFR_RNDN);
        mpfr_mul(r36784, r36782, r36783, MPFR_RNDN);
        mpfr_set_d(r36785, z, MPFR_RNDN);
        mpfr_mul(r36786, r36784, r36785, MPFR_RNDN);
        mpfr_mul(r36787, r36785, r36785, MPFR_RNDN);
        mpfr_set_d(r36788, t, MPFR_RNDN);
        mpfr_set_d(r36789, a, MPFR_RNDN);
        mpfr_mul(r36790, r36788, r36789, MPFR_RNDN);
        mpfr_sub(r36791, r36787, r36790, MPFR_RNDN);
        mpfr_sqrt(r36792, r36791, MPFR_RNDN);
        mpfr_div(r36793, r36786, r36792, MPFR_RNDN);
        return mpfr_get_d(r36793, MPFR_RNDN);
}

static mpfr_t r36794, r36795, r36796, r36797, r36798, r36799, r36800, r36801, r36802, r36803, r36804, r36805, r36806, r36807, r36808, r36809, r36810, r36811, r36812, r36813, r36814, r36815, r36816, r36817, r36818;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r36794);
        mpfr_init_set_str(r36795, "-3.2246321692628075e+96", 10, MPFR_RNDN);
        mpfr_init(r36796);
        mpfr_init(r36797);
        mpfr_init(r36798);
        mpfr_init(r36799);
        mpfr_init(r36800);
        mpfr_init_set_str(r36801, "4.1304744243716236e+108", 10, MPFR_RNDN);
        mpfr_init(r36802);
        mpfr_init_set_str(r36803, "1", 10, MPFR_RNDN);
        mpfr_init(r36804);
        mpfr_init(r36805);
        mpfr_init(r36806);
        mpfr_init(r36807);
        mpfr_init(r36808);
        mpfr_init(r36809);
        mpfr_init(r36810);
        mpfr_init(r36811);
        mpfr_init(r36812);
        mpfr_init(r36813);
        mpfr_init(r36814);
        mpfr_init(r36815);
        mpfr_init(r36816);
        mpfr_init(r36817);
        mpfr_init(r36818);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r36794, z, MPFR_RNDN);
        ;
        mpfr_set_si(r36796, mpfr_cmp(r36794, r36795) <= 0, MPFR_RNDN);
        mpfr_set_d(r36797, y, MPFR_RNDN);
        mpfr_neg(r36798, r36797, MPFR_RNDN);
        mpfr_set_d(r36799, x, MPFR_RNDN);
        mpfr_mul(r36800, r36798, r36799, MPFR_RNDN);
        ;
        mpfr_set_si(r36802, mpfr_cmp(r36794, r36801) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r36804, r36799, r36803, MPFR_RNDN);
        mpfr_sqrt(r36805, r36803, MPFR_RNDN);
        mpfr_div(r36806, r36797, r36805, MPFR_RNDN);
        mpfr_mul(r36807, r36794, r36794, MPFR_RNDN);
        mpfr_set_d(r36808, t, MPFR_RNDN);
        mpfr_set_d(r36809, a, MPFR_RNDN);
        mpfr_mul(r36810, r36808, r36809, MPFR_RNDN);
        mpfr_sub(r36811, r36807, r36810, MPFR_RNDN);
        mpfr_sqrt(r36812, r36811, MPFR_RNDN);
        mpfr_div(r36813, r36794, r36812, MPFR_RNDN);
        mpfr_mul(r36814, r36806, r36813, MPFR_RNDN);
        mpfr_mul(r36815, r36804, r36814, MPFR_RNDN);
        mpfr_mul(r36816, r36797, r36799, MPFR_RNDN);
        if (mpfr_get_si(r36802, MPFR_RNDN)) { mpfr_set(r36817, r36815, MPFR_RNDN); } else { mpfr_set(r36817, r36816, MPFR_RNDN); };
        if (mpfr_get_si(r36796, MPFR_RNDN)) { mpfr_set(r36818, r36800, MPFR_RNDN); } else { mpfr_set(r36818, r36817, MPFR_RNDN); };
        return mpfr_get_d(r36818, MPFR_RNDN);
}

static mpfr_t r36819, r36820, r36821, r36822, r36823, r36824, r36825, r36826, r36827, r36828, r36829, r36830, r36831, r36832, r36833, r36834, r36835, r36836, r36837, r36838, r36839, r36840, r36841, r36842, r36843;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r36819);
        mpfr_init_set_str(r36820, "-3.2246321692628075e+96", 10, MPFR_RNDN);
        mpfr_init(r36821);
        mpfr_init(r36822);
        mpfr_init(r36823);
        mpfr_init(r36824);
        mpfr_init(r36825);
        mpfr_init_set_str(r36826, "4.1304744243716236e+108", 10, MPFR_RNDN);
        mpfr_init(r36827);
        mpfr_init_set_str(r36828, "1", 10, MPFR_RNDN);
        mpfr_init(r36829);
        mpfr_init(r36830);
        mpfr_init(r36831);
        mpfr_init(r36832);
        mpfr_init(r36833);
        mpfr_init(r36834);
        mpfr_init(r36835);
        mpfr_init(r36836);
        mpfr_init(r36837);
        mpfr_init(r36838);
        mpfr_init(r36839);
        mpfr_init(r36840);
        mpfr_init(r36841);
        mpfr_init(r36842);
        mpfr_init(r36843);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r36819, z, MPFR_RNDN);
        ;
        mpfr_set_si(r36821, mpfr_cmp(r36819, r36820) <= 0, MPFR_RNDN);
        mpfr_set_d(r36822, y, MPFR_RNDN);
        mpfr_neg(r36823, r36822, MPFR_RNDN);
        mpfr_set_d(r36824, x, MPFR_RNDN);
        mpfr_mul(r36825, r36823, r36824, MPFR_RNDN);
        ;
        mpfr_set_si(r36827, mpfr_cmp(r36819, r36826) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r36829, r36824, r36828, MPFR_RNDN);
        mpfr_sqrt(r36830, r36828, MPFR_RNDN);
        mpfr_div(r36831, r36822, r36830, MPFR_RNDN);
        mpfr_mul(r36832, r36819, r36819, MPFR_RNDN);
        mpfr_set_d(r36833, t, MPFR_RNDN);
        mpfr_set_d(r36834, a, MPFR_RNDN);
        mpfr_mul(r36835, r36833, r36834, MPFR_RNDN);
        mpfr_sub(r36836, r36832, r36835, MPFR_RNDN);
        mpfr_sqrt(r36837, r36836, MPFR_RNDN);
        mpfr_div(r36838, r36819, r36837, MPFR_RNDN);
        mpfr_mul(r36839, r36831, r36838, MPFR_RNDN);
        mpfr_mul(r36840, r36829, r36839, MPFR_RNDN);
        mpfr_mul(r36841, r36822, r36824, MPFR_RNDN);
        if (mpfr_get_si(r36827, MPFR_RNDN)) { mpfr_set(r36842, r36840, MPFR_RNDN); } else { mpfr_set(r36842, r36841, MPFR_RNDN); };
        if (mpfr_get_si(r36821, MPFR_RNDN)) { mpfr_set(r36843, r36825, MPFR_RNDN); } else { mpfr_set(r36843, r36842, MPFR_RNDN); };
        return mpfr_get_d(r36843, MPFR_RNDN);
}

