#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 r27113 = beta;
        float r27114 = alpha;
        float r27115 = r27113 - r27114;
        float r27116 = r27114 + r27113;
        float r27117 = 2.0;
        float r27118 = r27116 + r27117;
        float r27119 = r27115 / r27118;
        float r27120 = 1.0;
        float r27121 = r27119 + r27120;
        float r27122 = r27121 / r27117;
        return r27122;
}

double f_id(double alpha, double beta) {
        double r27123 = beta;
        double r27124 = alpha;
        double r27125 = r27123 - r27124;
        double r27126 = r27124 + r27123;
        double r27127 = 2.0;
        double r27128 = r27126 + r27127;
        double r27129 = r27125 / r27128;
        double r27130 = 1.0;
        double r27131 = r27129 + r27130;
        double r27132 = r27131 / r27127;
        return r27132;
}


double f_of(float alpha, float beta) {
        float r27133 = beta;
        float r27134 = alpha;
        float r27135 = r27133 - r27134;
        float r27136 = r27134 + r27133;
        float r27137 = 2.0;
        float r27138 = r27136 + r27137;
        float r27139 = r27135 / r27138;
        float r27140 = -0.9999924829237754;
        bool r27141 = r27139 <= r27140;
        float r27142 = r27133 / r27137;
        float r27143 = r27137 + r27134;
        float r27144 = r27133 + r27143;
        float r27145 = r27142 / r27144;
        float r27146 = 4.0;
        float r27147 = 8.0;
        float r27148 = r27147 / r27134;
        float r27149 = r27146 - r27148;
        float r27150 = r27134 * r27137;
        float r27151 = r27150 * r27134;
        float r27152 = r27149 / r27151;
        float r27153 = 1;
        float r27154 = r27153 / r27134;
        float r27155 = r27152 - r27154;
        float r27156 = r27145 - r27155;
        float r27157 = r27133 / r27138;
        float r27158 = cbrt(r27157);
        float r27159 = r27158 * r27158;
        float r27160 = exp(r27158);
        float r27161 = log(r27160);
        float r27162 = r27159 * r27161;
        float r27163 = r27134 / r27138;
        float r27164 = 1.0;
        float r27165 = r27163 - r27164;
        float r27166 = r27162 - r27165;
        float r27167 = r27166 / r27137;
        float r27168 = r27141 ? r27156 : r27167;
        return r27168;
}

double f_od(double alpha, double beta) {
        double r27169 = beta;
        double r27170 = alpha;
        double r27171 = r27169 - r27170;
        double r27172 = r27170 + r27169;
        double r27173 = 2.0;
        double r27174 = r27172 + r27173;
        double r27175 = r27171 / r27174;
        double r27176 = -0.9999924829237754;
        bool r27177 = r27175 <= r27176;
        double r27178 = r27169 / r27173;
        double r27179 = r27173 + r27170;
        double r27180 = r27169 + r27179;
        double r27181 = r27178 / r27180;
        double r27182 = 4.0;
        double r27183 = 8.0;
        double r27184 = r27183 / r27170;
        double r27185 = r27182 - r27184;
        double r27186 = r27170 * r27173;
        double r27187 = r27186 * r27170;
        double r27188 = r27185 / r27187;
        double r27189 = 1;
        double r27190 = r27189 / r27170;
        double r27191 = r27188 - r27190;
        double r27192 = r27181 - r27191;
        double r27193 = r27169 / r27174;
        double r27194 = cbrt(r27193);
        double r27195 = r27194 * r27194;
        double r27196 = exp(r27194);
        double r27197 = log(r27196);
        double r27198 = r27195 * r27197;
        double r27199 = r27170 / r27174;
        double r27200 = 1.0;
        double r27201 = r27199 - r27200;
        double r27202 = r27198 - r27201;
        double r27203 = r27202 / r27173;
        double r27204 = r27177 ? r27192 : r27203;
        return r27204;
}

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 r27205, r27206, r27207, r27208, r27209, r27210, r27211, r27212, r27213, r27214;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r27205);
        mpfr_init(r27206);
        mpfr_init(r27207);
        mpfr_init(r27208);
        mpfr_init_set_str(r27209, "2.0", 10, MPFR_RNDN);
        mpfr_init(r27210);
        mpfr_init(r27211);
        mpfr_init_set_str(r27212, "1.0", 10, MPFR_RNDN);
        mpfr_init(r27213);
        mpfr_init(r27214);
}

double f_im(double alpha, double beta) {
        mpfr_set_d(r27205, beta, MPFR_RNDN);
        mpfr_set_d(r27206, alpha, MPFR_RNDN);
        mpfr_sub(r27207, r27205, r27206, MPFR_RNDN);
        mpfr_add(r27208, r27206, r27205, MPFR_RNDN);
        ;
        mpfr_add(r27210, r27208, r27209, MPFR_RNDN);
        mpfr_div(r27211, r27207, r27210, MPFR_RNDN);
        ;
        mpfr_add(r27213, r27211, r27212, MPFR_RNDN);
        mpfr_div(r27214, r27213, r27209, MPFR_RNDN);
        return mpfr_get_d(r27214, MPFR_RNDN);
}

static mpfr_t r27215, r27216, r27217, r27218, r27219, r27220, r27221, r27222, r27223, r27224, r27225, r27226, r27227, r27228, r27229, r27230, r27231, r27232, r27233, r27234, r27235, r27236, r27237, r27238, r27239, r27240, r27241, r27242, r27243, r27244, r27245, r27246, r27247, r27248, r27249, r27250;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r27215);
        mpfr_init(r27216);
        mpfr_init(r27217);
        mpfr_init(r27218);
        mpfr_init_set_str(r27219, "2.0", 10, MPFR_RNDN);
        mpfr_init(r27220);
        mpfr_init(r27221);
        mpfr_init_set_str(r27222, "-0.9999924829237754", 10, MPFR_RNDN);
        mpfr_init(r27223);
        mpfr_init(r27224);
        mpfr_init(r27225);
        mpfr_init(r27226);
        mpfr_init(r27227);
        mpfr_init_set_str(r27228, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r27229, "8.0", 10, MPFR_RNDN);
        mpfr_init(r27230);
        mpfr_init(r27231);
        mpfr_init(r27232);
        mpfr_init(r27233);
        mpfr_init(r27234);
        mpfr_init_set_str(r27235, "1", 10, MPFR_RNDN);
        mpfr_init(r27236);
        mpfr_init(r27237);
        mpfr_init(r27238);
        mpfr_init(r27239);
        mpfr_init(r27240);
        mpfr_init(r27241);
        mpfr_init(r27242);
        mpfr_init(r27243);
        mpfr_init(r27244);
        mpfr_init(r27245);
        mpfr_init_set_str(r27246, "1.0", 10, MPFR_RNDN);
        mpfr_init(r27247);
        mpfr_init(r27248);
        mpfr_init(r27249);
        mpfr_init(r27250);
}

double f_fm(double alpha, double beta) {
        mpfr_set_d(r27215, beta, MPFR_RNDN);
        mpfr_set_d(r27216, alpha, MPFR_RNDN);
        mpfr_sub(r27217, r27215, r27216, MPFR_RNDN);
        mpfr_add(r27218, r27216, r27215, MPFR_RNDN);
        ;
        mpfr_add(r27220, r27218, r27219, MPFR_RNDN);
        mpfr_div(r27221, r27217, r27220, MPFR_RNDN);
        ;
        mpfr_set_si(r27223, mpfr_cmp(r27221, r27222) <= 0, MPFR_RNDN);
        mpfr_div(r27224, r27215, r27219, MPFR_RNDN);
        mpfr_add(r27225, r27219, r27216, MPFR_RNDN);
        mpfr_add(r27226, r27215, r27225, MPFR_RNDN);
        mpfr_div(r27227, r27224, r27226, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27230, r27229, r27216, MPFR_RNDN);
        mpfr_sub(r27231, r27228, r27230, MPFR_RNDN);
        mpfr_mul(r27232, r27216, r27219, MPFR_RNDN);
        mpfr_mul(r27233, r27232, r27216, MPFR_RNDN);
        mpfr_div(r27234, r27231, r27233, MPFR_RNDN);
        ;
        mpfr_div(r27236, r27235, r27216, MPFR_RNDN);
        mpfr_sub(r27237, r27234, r27236, MPFR_RNDN);
        mpfr_sub(r27238, r27227, r27237, MPFR_RNDN);
        mpfr_div(r27239, r27215, r27220, MPFR_RNDN);
        mpfr_cbrt(r27240, r27239, MPFR_RNDN);
        mpfr_mul(r27241, r27240, r27240, MPFR_RNDN);
        mpfr_exp(r27242, r27240, MPFR_RNDN);
        mpfr_log(r27243, r27242, MPFR_RNDN);
        mpfr_mul(r27244, r27241, r27243, MPFR_RNDN);
        mpfr_div(r27245, r27216, r27220, MPFR_RNDN);
        ;
        mpfr_sub(r27247, r27245, r27246, MPFR_RNDN);
        mpfr_sub(r27248, r27244, r27247, MPFR_RNDN);
        mpfr_div(r27249, r27248, r27219, MPFR_RNDN);
        if (mpfr_get_si(r27223, MPFR_RNDN)) { mpfr_set(r27250, r27238, MPFR_RNDN); } else { mpfr_set(r27250, r27249, MPFR_RNDN); };
        return mpfr_get_d(r27250, MPFR_RNDN);
}

static mpfr_t r27251, r27252, r27253, r27254, r27255, r27256, r27257, r27258, r27259, r27260, r27261, r27262, r27263, r27264, r27265, r27266, r27267, r27268, r27269, r27270, r27271, r27272, r27273, r27274, r27275, r27276, r27277, r27278, r27279, r27280, r27281, r27282, r27283, r27284, r27285, r27286;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r27251);
        mpfr_init(r27252);
        mpfr_init(r27253);
        mpfr_init(r27254);
        mpfr_init_set_str(r27255, "2.0", 10, MPFR_RNDN);
        mpfr_init(r27256);
        mpfr_init(r27257);
        mpfr_init_set_str(r27258, "-0.9999924829237754", 10, MPFR_RNDN);
        mpfr_init(r27259);
        mpfr_init(r27260);
        mpfr_init(r27261);
        mpfr_init(r27262);
        mpfr_init(r27263);
        mpfr_init_set_str(r27264, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r27265, "8.0", 10, MPFR_RNDN);
        mpfr_init(r27266);
        mpfr_init(r27267);
        mpfr_init(r27268);
        mpfr_init(r27269);
        mpfr_init(r27270);
        mpfr_init_set_str(r27271, "1", 10, MPFR_RNDN);
        mpfr_init(r27272);
        mpfr_init(r27273);
        mpfr_init(r27274);
        mpfr_init(r27275);
        mpfr_init(r27276);
        mpfr_init(r27277);
        mpfr_init(r27278);
        mpfr_init(r27279);
        mpfr_init(r27280);
        mpfr_init(r27281);
        mpfr_init_set_str(r27282, "1.0", 10, MPFR_RNDN);
        mpfr_init(r27283);
        mpfr_init(r27284);
        mpfr_init(r27285);
        mpfr_init(r27286);
}

double f_dm(double alpha, double beta) {
        mpfr_set_d(r27251, beta, MPFR_RNDN);
        mpfr_set_d(r27252, alpha, MPFR_RNDN);
        mpfr_sub(r27253, r27251, r27252, MPFR_RNDN);
        mpfr_add(r27254, r27252, r27251, MPFR_RNDN);
        ;
        mpfr_add(r27256, r27254, r27255, MPFR_RNDN);
        mpfr_div(r27257, r27253, r27256, MPFR_RNDN);
        ;
        mpfr_set_si(r27259, mpfr_cmp(r27257, r27258) <= 0, MPFR_RNDN);
        mpfr_div(r27260, r27251, r27255, MPFR_RNDN);
        mpfr_add(r27261, r27255, r27252, MPFR_RNDN);
        mpfr_add(r27262, r27251, r27261, MPFR_RNDN);
        mpfr_div(r27263, r27260, r27262, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27266, r27265, r27252, MPFR_RNDN);
        mpfr_sub(r27267, r27264, r27266, MPFR_RNDN);
        mpfr_mul(r27268, r27252, r27255, MPFR_RNDN);
        mpfr_mul(r27269, r27268, r27252, MPFR_RNDN);
        mpfr_div(r27270, r27267, r27269, MPFR_RNDN);
        ;
        mpfr_div(r27272, r27271, r27252, MPFR_RNDN);
        mpfr_sub(r27273, r27270, r27272, MPFR_RNDN);
        mpfr_sub(r27274, r27263, r27273, MPFR_RNDN);
        mpfr_div(r27275, r27251, r27256, MPFR_RNDN);
        mpfr_cbrt(r27276, r27275, MPFR_RNDN);
        mpfr_mul(r27277, r27276, r27276, MPFR_RNDN);
        mpfr_exp(r27278, r27276, MPFR_RNDN);
        mpfr_log(r27279, r27278, MPFR_RNDN);
        mpfr_mul(r27280, r27277, r27279, MPFR_RNDN);
        mpfr_div(r27281, r27252, r27256, MPFR_RNDN);
        ;
        mpfr_sub(r27283, r27281, r27282, MPFR_RNDN);
        mpfr_sub(r27284, r27280, r27283, MPFR_RNDN);
        mpfr_div(r27285, r27284, r27255, MPFR_RNDN);
        if (mpfr_get_si(r27259, MPFR_RNDN)) { mpfr_set(r27286, r27274, MPFR_RNDN); } else { mpfr_set(r27286, r27285, MPFR_RNDN); };
        return mpfr_get_d(r27286, MPFR_RNDN);
}

