#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 r26820 = beta;
        float r26821 = alpha;
        float r26822 = r26820 - r26821;
        float r26823 = r26821 + r26820;
        float r26824 = 2.0;
        float r26825 = r26823 + r26824;
        float r26826 = r26822 / r26825;
        float r26827 = 1.0;
        float r26828 = r26826 + r26827;
        float r26829 = r26828 / r26824;
        return r26829;
}

double f_id(double alpha, double beta) {
        double r26830 = beta;
        double r26831 = alpha;
        double r26832 = r26830 - r26831;
        double r26833 = r26831 + r26830;
        double r26834 = 2.0;
        double r26835 = r26833 + r26834;
        double r26836 = r26832 / r26835;
        double r26837 = 1.0;
        double r26838 = r26836 + r26837;
        double r26839 = r26838 / r26834;
        return r26839;
}


double f_of(float alpha, float beta) {
        float r26840 = beta;
        float r26841 = alpha;
        float r26842 = r26840 - r26841;
        float r26843 = r26841 + r26840;
        float r26844 = 2.0;
        float r26845 = r26843 + r26844;
        float r26846 = r26842 / r26845;
        float r26847 = -0.9999999999996291;
        bool r26848 = r26846 <= r26847;
        float r26849 = r26840 / r26844;
        float r26850 = r26844 + r26841;
        float r26851 = r26840 + r26850;
        float r26852 = r26849 / r26851;
        float r26853 = 4.0;
        float r26854 = 8.0;
        float r26855 = r26854 / r26841;
        float r26856 = r26853 - r26855;
        float r26857 = r26841 * r26844;
        float r26858 = r26857 * r26841;
        float r26859 = r26856 / r26858;
        float r26860 = 1;
        float r26861 = r26860 / r26841;
        float r26862 = r26859 - r26861;
        float r26863 = r26852 - r26862;
        float r26864 = r26840 / r26845;
        float r26865 = r26841 / r26845;
        float r26866 = 1.0;
        float r26867 = r26865 - r26866;
        float r26868 = exp(r26867);
        float r26869 = log(r26868);
        float r26870 = r26864 - r26869;
        float r26871 = r26870 / r26844;
        float r26872 = r26848 ? r26863 : r26871;
        return r26872;
}

double f_od(double alpha, double beta) {
        double r26873 = beta;
        double r26874 = alpha;
        double r26875 = r26873 - r26874;
        double r26876 = r26874 + r26873;
        double r26877 = 2.0;
        double r26878 = r26876 + r26877;
        double r26879 = r26875 / r26878;
        double r26880 = -0.9999999999996291;
        bool r26881 = r26879 <= r26880;
        double r26882 = r26873 / r26877;
        double r26883 = r26877 + r26874;
        double r26884 = r26873 + r26883;
        double r26885 = r26882 / r26884;
        double r26886 = 4.0;
        double r26887 = 8.0;
        double r26888 = r26887 / r26874;
        double r26889 = r26886 - r26888;
        double r26890 = r26874 * r26877;
        double r26891 = r26890 * r26874;
        double r26892 = r26889 / r26891;
        double r26893 = 1;
        double r26894 = r26893 / r26874;
        double r26895 = r26892 - r26894;
        double r26896 = r26885 - r26895;
        double r26897 = r26873 / r26878;
        double r26898 = r26874 / r26878;
        double r26899 = 1.0;
        double r26900 = r26898 - r26899;
        double r26901 = exp(r26900);
        double r26902 = log(r26901);
        double r26903 = r26897 - r26902;
        double r26904 = r26903 / r26877;
        double r26905 = r26881 ? r26896 : r26904;
        return r26905;
}

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 r26906, r26907, r26908, r26909, r26910, r26911, r26912, r26913, r26914, r26915;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r26906);
        mpfr_init(r26907);
        mpfr_init(r26908);
        mpfr_init(r26909);
        mpfr_init_set_str(r26910, "2.0", 10, MPFR_RNDN);
        mpfr_init(r26911);
        mpfr_init(r26912);
        mpfr_init_set_str(r26913, "1.0", 10, MPFR_RNDN);
        mpfr_init(r26914);
        mpfr_init(r26915);
}

double f_im(double alpha, double beta) {
        mpfr_set_d(r26906, beta, MPFR_RNDN);
        mpfr_set_d(r26907, alpha, MPFR_RNDN);
        mpfr_sub(r26908, r26906, r26907, MPFR_RNDN);
        mpfr_add(r26909, r26907, r26906, MPFR_RNDN);
        ;
        mpfr_add(r26911, r26909, r26910, MPFR_RNDN);
        mpfr_div(r26912, r26908, r26911, MPFR_RNDN);
        ;
        mpfr_add(r26914, r26912, r26913, MPFR_RNDN);
        mpfr_div(r26915, r26914, r26910, MPFR_RNDN);
        return mpfr_get_d(r26915, MPFR_RNDN);
}

static mpfr_t r26916, r26917, r26918, r26919, r26920, r26921, r26922, r26923, r26924, r26925, r26926, r26927, r26928, r26929, r26930, r26931, r26932, r26933, r26934, r26935, r26936, r26937, r26938, r26939, r26940, r26941, r26942, r26943, r26944, r26945, r26946, r26947, r26948;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r26916);
        mpfr_init(r26917);
        mpfr_init(r26918);
        mpfr_init(r26919);
        mpfr_init_set_str(r26920, "2.0", 10, MPFR_RNDN);
        mpfr_init(r26921);
        mpfr_init(r26922);
        mpfr_init_set_str(r26923, "-0.9999999999996291", 10, MPFR_RNDN);
        mpfr_init(r26924);
        mpfr_init(r26925);
        mpfr_init(r26926);
        mpfr_init(r26927);
        mpfr_init(r26928);
        mpfr_init_set_str(r26929, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r26930, "8.0", 10, MPFR_RNDN);
        mpfr_init(r26931);
        mpfr_init(r26932);
        mpfr_init(r26933);
        mpfr_init(r26934);
        mpfr_init(r26935);
        mpfr_init_set_str(r26936, "1", 10, MPFR_RNDN);
        mpfr_init(r26937);
        mpfr_init(r26938);
        mpfr_init(r26939);
        mpfr_init(r26940);
        mpfr_init(r26941);
        mpfr_init_set_str(r26942, "1.0", 10, MPFR_RNDN);
        mpfr_init(r26943);
        mpfr_init(r26944);
        mpfr_init(r26945);
        mpfr_init(r26946);
        mpfr_init(r26947);
        mpfr_init(r26948);
}

double f_fm(double alpha, double beta) {
        mpfr_set_d(r26916, beta, MPFR_RNDN);
        mpfr_set_d(r26917, alpha, MPFR_RNDN);
        mpfr_sub(r26918, r26916, r26917, MPFR_RNDN);
        mpfr_add(r26919, r26917, r26916, MPFR_RNDN);
        ;
        mpfr_add(r26921, r26919, r26920, MPFR_RNDN);
        mpfr_div(r26922, r26918, r26921, MPFR_RNDN);
        ;
        mpfr_set_si(r26924, mpfr_cmp(r26922, r26923) <= 0, MPFR_RNDN);
        mpfr_div(r26925, r26916, r26920, MPFR_RNDN);
        mpfr_add(r26926, r26920, r26917, MPFR_RNDN);
        mpfr_add(r26927, r26916, r26926, MPFR_RNDN);
        mpfr_div(r26928, r26925, r26927, MPFR_RNDN);
        ;
        ;
        mpfr_div(r26931, r26930, r26917, MPFR_RNDN);
        mpfr_sub(r26932, r26929, r26931, MPFR_RNDN);
        mpfr_mul(r26933, r26917, r26920, MPFR_RNDN);
        mpfr_mul(r26934, r26933, r26917, MPFR_RNDN);
        mpfr_div(r26935, r26932, r26934, MPFR_RNDN);
        ;
        mpfr_div(r26937, r26936, r26917, MPFR_RNDN);
        mpfr_sub(r26938, r26935, r26937, MPFR_RNDN);
        mpfr_sub(r26939, r26928, r26938, MPFR_RNDN);
        mpfr_div(r26940, r26916, r26921, MPFR_RNDN);
        mpfr_div(r26941, r26917, r26921, MPFR_RNDN);
        ;
        mpfr_sub(r26943, r26941, r26942, MPFR_RNDN);
        mpfr_exp(r26944, r26943, MPFR_RNDN);
        mpfr_log(r26945, r26944, MPFR_RNDN);
        mpfr_sub(r26946, r26940, r26945, MPFR_RNDN);
        mpfr_div(r26947, r26946, r26920, MPFR_RNDN);
        if (mpfr_get_si(r26924, MPFR_RNDN)) { mpfr_set(r26948, r26939, MPFR_RNDN); } else { mpfr_set(r26948, r26947, MPFR_RNDN); };
        return mpfr_get_d(r26948, MPFR_RNDN);
}

static mpfr_t r26949, r26950, r26951, r26952, r26953, r26954, r26955, r26956, r26957, r26958, r26959, r26960, r26961, r26962, r26963, r26964, r26965, r26966, r26967, r26968, r26969, r26970, r26971, r26972, r26973, r26974, r26975, r26976, r26977, r26978, r26979, r26980, r26981;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r26949);
        mpfr_init(r26950);
        mpfr_init(r26951);
        mpfr_init(r26952);
        mpfr_init_set_str(r26953, "2.0", 10, MPFR_RNDN);
        mpfr_init(r26954);
        mpfr_init(r26955);
        mpfr_init_set_str(r26956, "-0.9999999999996291", 10, MPFR_RNDN);
        mpfr_init(r26957);
        mpfr_init(r26958);
        mpfr_init(r26959);
        mpfr_init(r26960);
        mpfr_init(r26961);
        mpfr_init_set_str(r26962, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r26963, "8.0", 10, MPFR_RNDN);
        mpfr_init(r26964);
        mpfr_init(r26965);
        mpfr_init(r26966);
        mpfr_init(r26967);
        mpfr_init(r26968);
        mpfr_init_set_str(r26969, "1", 10, MPFR_RNDN);
        mpfr_init(r26970);
        mpfr_init(r26971);
        mpfr_init(r26972);
        mpfr_init(r26973);
        mpfr_init(r26974);
        mpfr_init_set_str(r26975, "1.0", 10, MPFR_RNDN);
        mpfr_init(r26976);
        mpfr_init(r26977);
        mpfr_init(r26978);
        mpfr_init(r26979);
        mpfr_init(r26980);
        mpfr_init(r26981);
}

double f_dm(double alpha, double beta) {
        mpfr_set_d(r26949, beta, MPFR_RNDN);
        mpfr_set_d(r26950, alpha, MPFR_RNDN);
        mpfr_sub(r26951, r26949, r26950, MPFR_RNDN);
        mpfr_add(r26952, r26950, r26949, MPFR_RNDN);
        ;
        mpfr_add(r26954, r26952, r26953, MPFR_RNDN);
        mpfr_div(r26955, r26951, r26954, MPFR_RNDN);
        ;
        mpfr_set_si(r26957, mpfr_cmp(r26955, r26956) <= 0, MPFR_RNDN);
        mpfr_div(r26958, r26949, r26953, MPFR_RNDN);
        mpfr_add(r26959, r26953, r26950, MPFR_RNDN);
        mpfr_add(r26960, r26949, r26959, MPFR_RNDN);
        mpfr_div(r26961, r26958, r26960, MPFR_RNDN);
        ;
        ;
        mpfr_div(r26964, r26963, r26950, MPFR_RNDN);
        mpfr_sub(r26965, r26962, r26964, MPFR_RNDN);
        mpfr_mul(r26966, r26950, r26953, MPFR_RNDN);
        mpfr_mul(r26967, r26966, r26950, MPFR_RNDN);
        mpfr_div(r26968, r26965, r26967, MPFR_RNDN);
        ;
        mpfr_div(r26970, r26969, r26950, MPFR_RNDN);
        mpfr_sub(r26971, r26968, r26970, MPFR_RNDN);
        mpfr_sub(r26972, r26961, r26971, MPFR_RNDN);
        mpfr_div(r26973, r26949, r26954, MPFR_RNDN);
        mpfr_div(r26974, r26950, r26954, MPFR_RNDN);
        ;
        mpfr_sub(r26976, r26974, r26975, MPFR_RNDN);
        mpfr_exp(r26977, r26976, MPFR_RNDN);
        mpfr_log(r26978, r26977, MPFR_RNDN);
        mpfr_sub(r26979, r26973, r26978, MPFR_RNDN);
        mpfr_div(r26980, r26979, r26953, MPFR_RNDN);
        if (mpfr_get_si(r26957, MPFR_RNDN)) { mpfr_set(r26981, r26972, MPFR_RNDN); } else { mpfr_set(r26981, r26980, MPFR_RNDN); };
        return mpfr_get_d(r26981, MPFR_RNDN);
}

