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

char *name = "Octave 3.8, jcobi/1";

double f_if(float alpha, float beta) {
        float r17705 = beta;
        float r17706 = alpha;
        float r17707 = r17705 - r17706;
        float r17708 = r17706 + r17705;
        float r17709 = 2.0f;
        float r17710 = r17708 + r17709;
        float r17711 = r17707 / r17710;
        float r17712 = 1.0f;
        float r17713 = r17711 + r17712;
        float r17714 = r17713 / r17709;
        return r17714;
}

double f_id(double alpha, double beta) {
        double r17715 = beta;
        double r17716 = alpha;
        double r17717 = r17715 - r17716;
        double r17718 = r17716 + r17715;
        double r17719 = 2.0;
        double r17720 = r17718 + r17719;
        double r17721 = r17717 / r17720;
        double r17722 = 1.0;
        double r17723 = r17721 + r17722;
        double r17724 = r17723 / r17719;
        return r17724;
}


double f_of(float alpha, float beta) {
        float r17725 = beta;
        float r17726 = alpha;
        float r17727 = r17725 - r17726;
        float r17728 = r17726 + r17725;
        float r17729 = 2.0f;
        float r17730 = r17728 + r17729;
        float r17731 = r17727 / r17730;
        float r17732 = -0.7971908424412208f;
        bool r17733 = r17731 <= r17732;
        float r17734 = 8.0f;
        float r17735 = r17734 / r17726;
        float r17736 = r17735 / r17726;
        float r17737 = r17729 + r17736;
        float r17738 = r17729 * r17726;
        float r17739 = r17737 / r17738;
        float r17740 = r17725 / r17729;
        float r17741 = r17729 + r17725;
        float r17742 = r17726 + r17741;
        float r17743 = r17740 / r17742;
        float r17744 = 4.0f;
        float r17745 = r17726 * r17726;
        float r17746 = r17744 / r17745;
        float r17747 = r17746 / r17729;
        float r17748 = r17743 - r17747;
        float r17749 = r17739 + r17748;
        float r17750 = 1.0f;
        float r17751 = r17731 + r17750;
        float r17752 = log(r17751);
        float r17753 = exp(r17752);
        float r17754 = r17753 / r17729;
        float r17755 = r17733 ? r17749 : r17754;
        return r17755;
}

double f_od(double alpha, double beta) {
        double r17756 = beta;
        double r17757 = alpha;
        double r17758 = r17756 - r17757;
        double r17759 = r17757 + r17756;
        double r17760 = 2.0;
        double r17761 = r17759 + r17760;
        double r17762 = r17758 / r17761;
        double r17763 = -0.7971908424412208;
        bool r17764 = r17762 <= r17763;
        double r17765 = 8.0;
        double r17766 = r17765 / r17757;
        double r17767 = r17766 / r17757;
        double r17768 = r17760 + r17767;
        double r17769 = r17760 * r17757;
        double r17770 = r17768 / r17769;
        double r17771 = r17756 / r17760;
        double r17772 = r17760 + r17756;
        double r17773 = r17757 + r17772;
        double r17774 = r17771 / r17773;
        double r17775 = 4.0;
        double r17776 = r17757 * r17757;
        double r17777 = r17775 / r17776;
        double r17778 = r17777 / r17760;
        double r17779 = r17774 - r17778;
        double r17780 = r17770 + r17779;
        double r17781 = 1.0;
        double r17782 = r17762 + r17781;
        double r17783 = log(r17782);
        double r17784 = exp(r17783);
        double r17785 = r17784 / r17760;
        double r17786 = r17764 ? r17780 : r17785;
        return r17786;
}

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 r17787, r17788, r17789, r17790, r17791, r17792, r17793, r17794, r17795, r17796;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r17787);
        mpfr_init(r17788);
        mpfr_init(r17789);
        mpfr_init(r17790);
        mpfr_init_set_str(r17791, "2.0", 10, MPFR_RNDN);
        mpfr_init(r17792);
        mpfr_init(r17793);
        mpfr_init_set_str(r17794, "1.0", 10, MPFR_RNDN);
        mpfr_init(r17795);
        mpfr_init(r17796);
}

double f_im(double alpha, double beta) {
        mpfr_set_d(r17787, beta, MPFR_RNDN);
        mpfr_set_d(r17788, alpha, MPFR_RNDN);
        mpfr_sub(r17789, r17787, r17788, MPFR_RNDN);
        mpfr_add(r17790, r17788, r17787, MPFR_RNDN);
        ;
        mpfr_add(r17792, r17790, r17791, MPFR_RNDN);
        mpfr_div(r17793, r17789, r17792, MPFR_RNDN);
        ;
        mpfr_add(r17795, r17793, r17794, MPFR_RNDN);
        mpfr_div(r17796, r17795, r17791, MPFR_RNDN);
        return mpfr_get_d(r17796, MPFR_RNDN);
}

static mpfr_t r17797, r17798, r17799, r17800, r17801, r17802, r17803, r17804, r17805, r17806, r17807, r17808, r17809, r17810, r17811, r17812, r17813, r17814, r17815, r17816, r17817, r17818, r17819, r17820, r17821, r17822, r17823, r17824, r17825, r17826, r17827;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17797);
        mpfr_init(r17798);
        mpfr_init(r17799);
        mpfr_init(r17800);
        mpfr_init_set_str(r17801, "2.0", 10, MPFR_RNDN);
        mpfr_init(r17802);
        mpfr_init(r17803);
        mpfr_init_set_str(r17804, "-0.7971908424412208", 10, MPFR_RNDN);
        mpfr_init(r17805);
        mpfr_init_set_str(r17806, "8.0", 10, MPFR_RNDN);
        mpfr_init(r17807);
        mpfr_init(r17808);
        mpfr_init(r17809);
        mpfr_init(r17810);
        mpfr_init(r17811);
        mpfr_init(r17812);
        mpfr_init(r17813);
        mpfr_init(r17814);
        mpfr_init(r17815);
        mpfr_init_set_str(r17816, "4.0", 10, MPFR_RNDN);
        mpfr_init(r17817);
        mpfr_init(r17818);
        mpfr_init(r17819);
        mpfr_init(r17820);
        mpfr_init(r17821);
        mpfr_init_set_str(r17822, "1.0", 10, MPFR_RNDN);
        mpfr_init(r17823);
        mpfr_init(r17824);
        mpfr_init(r17825);
        mpfr_init(r17826);
        mpfr_init(r17827);
}

double f_fm(double alpha, double beta) {
        mpfr_set_d(r17797, beta, MPFR_RNDN);
        mpfr_set_d(r17798, alpha, MPFR_RNDN);
        mpfr_sub(r17799, r17797, r17798, MPFR_RNDN);
        mpfr_add(r17800, r17798, r17797, MPFR_RNDN);
        ;
        mpfr_add(r17802, r17800, r17801, MPFR_RNDN);
        mpfr_div(r17803, r17799, r17802, MPFR_RNDN);
        ;
        mpfr_set_si(r17805, mpfr_cmp(r17803, r17804) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r17807, r17806, r17798, MPFR_RNDN);
        mpfr_div(r17808, r17807, r17798, MPFR_RNDN);
        mpfr_add(r17809, r17801, r17808, MPFR_RNDN);
        mpfr_mul(r17810, r17801, r17798, MPFR_RNDN);
        mpfr_div(r17811, r17809, r17810, MPFR_RNDN);
        mpfr_div(r17812, r17797, r17801, MPFR_RNDN);
        mpfr_add(r17813, r17801, r17797, MPFR_RNDN);
        mpfr_add(r17814, r17798, r17813, MPFR_RNDN);
        mpfr_div(r17815, r17812, r17814, MPFR_RNDN);
        ;
        mpfr_mul(r17817, r17798, r17798, MPFR_RNDN);
        mpfr_div(r17818, r17816, r17817, MPFR_RNDN);
        mpfr_div(r17819, r17818, r17801, MPFR_RNDN);
        mpfr_sub(r17820, r17815, r17819, MPFR_RNDN);
        mpfr_add(r17821, r17811, r17820, MPFR_RNDN);
        ;
        mpfr_add(r17823, r17803, r17822, MPFR_RNDN);
        mpfr_log(r17824, r17823, MPFR_RNDN);
        mpfr_exp(r17825, r17824, MPFR_RNDN);
        mpfr_div(r17826, r17825, r17801, MPFR_RNDN);
        if (mpfr_get_si(r17805, MPFR_RNDN)) { mpfr_set(r17827, r17821, MPFR_RNDN); } else { mpfr_set(r17827, r17826, MPFR_RNDN); };
        return mpfr_get_d(r17827, MPFR_RNDN);
}

static mpfr_t r17828, r17829, r17830, r17831, r17832, r17833, r17834, r17835, r17836, r17837, r17838, r17839, r17840, r17841, r17842, r17843, r17844, r17845, r17846, r17847, r17848, r17849, r17850, r17851, r17852, r17853, r17854, r17855, r17856, r17857, r17858;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17828);
        mpfr_init(r17829);
        mpfr_init(r17830);
        mpfr_init(r17831);
        mpfr_init_set_str(r17832, "2.0", 10, MPFR_RNDN);
        mpfr_init(r17833);
        mpfr_init(r17834);
        mpfr_init_set_str(r17835, "-0.7971908424412208", 10, MPFR_RNDN);
        mpfr_init(r17836);
        mpfr_init_set_str(r17837, "8.0", 10, MPFR_RNDN);
        mpfr_init(r17838);
        mpfr_init(r17839);
        mpfr_init(r17840);
        mpfr_init(r17841);
        mpfr_init(r17842);
        mpfr_init(r17843);
        mpfr_init(r17844);
        mpfr_init(r17845);
        mpfr_init(r17846);
        mpfr_init_set_str(r17847, "4.0", 10, MPFR_RNDN);
        mpfr_init(r17848);
        mpfr_init(r17849);
        mpfr_init(r17850);
        mpfr_init(r17851);
        mpfr_init(r17852);
        mpfr_init_set_str(r17853, "1.0", 10, MPFR_RNDN);
        mpfr_init(r17854);
        mpfr_init(r17855);
        mpfr_init(r17856);
        mpfr_init(r17857);
        mpfr_init(r17858);
}

double f_dm(double alpha, double beta) {
        mpfr_set_d(r17828, beta, MPFR_RNDN);
        mpfr_set_d(r17829, alpha, MPFR_RNDN);
        mpfr_sub(r17830, r17828, r17829, MPFR_RNDN);
        mpfr_add(r17831, r17829, r17828, MPFR_RNDN);
        ;
        mpfr_add(r17833, r17831, r17832, MPFR_RNDN);
        mpfr_div(r17834, r17830, r17833, MPFR_RNDN);
        ;
        mpfr_set_si(r17836, mpfr_cmp(r17834, r17835) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r17838, r17837, r17829, MPFR_RNDN);
        mpfr_div(r17839, r17838, r17829, MPFR_RNDN);
        mpfr_add(r17840, r17832, r17839, MPFR_RNDN);
        mpfr_mul(r17841, r17832, r17829, MPFR_RNDN);
        mpfr_div(r17842, r17840, r17841, MPFR_RNDN);
        mpfr_div(r17843, r17828, r17832, MPFR_RNDN);
        mpfr_add(r17844, r17832, r17828, MPFR_RNDN);
        mpfr_add(r17845, r17829, r17844, MPFR_RNDN);
        mpfr_div(r17846, r17843, r17845, MPFR_RNDN);
        ;
        mpfr_mul(r17848, r17829, r17829, MPFR_RNDN);
        mpfr_div(r17849, r17847, r17848, MPFR_RNDN);
        mpfr_div(r17850, r17849, r17832, MPFR_RNDN);
        mpfr_sub(r17851, r17846, r17850, MPFR_RNDN);
        mpfr_add(r17852, r17842, r17851, MPFR_RNDN);
        ;
        mpfr_add(r17854, r17834, r17853, MPFR_RNDN);
        mpfr_log(r17855, r17854, MPFR_RNDN);
        mpfr_exp(r17856, r17855, MPFR_RNDN);
        mpfr_div(r17857, r17856, r17832, MPFR_RNDN);
        if (mpfr_get_si(r17836, MPFR_RNDN)) { mpfr_set(r17858, r17852, MPFR_RNDN); } else { mpfr_set(r17858, r17857, MPFR_RNDN); };
        return mpfr_get_d(r17858, MPFR_RNDN);
}

