#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 r27145 = beta;
        float r27146 = alpha;
        float r27147 = r27145 - r27146;
        float r27148 = r27146 + r27145;
        float r27149 = 2.0;
        float r27150 = r27148 + r27149;
        float r27151 = r27147 / r27150;
        float r27152 = 1.0;
        float r27153 = r27151 + r27152;
        float r27154 = r27153 / r27149;
        return r27154;
}

double f_id(double alpha, double beta) {
        double r27155 = beta;
        double r27156 = alpha;
        double r27157 = r27155 - r27156;
        double r27158 = r27156 + r27155;
        double r27159 = 2.0;
        double r27160 = r27158 + r27159;
        double r27161 = r27157 / r27160;
        double r27162 = 1.0;
        double r27163 = r27161 + r27162;
        double r27164 = r27163 / r27159;
        return r27164;
}


double f_of(float alpha, float beta) {
        float r27165 = beta;
        float r27166 = alpha;
        float r27167 = r27165 - r27166;
        float r27168 = r27166 + r27165;
        float r27169 = 2.0;
        float r27170 = r27168 + r27169;
        float r27171 = r27167 / r27170;
        float r27172 = -0.9999999999996291;
        bool r27173 = r27171 <= r27172;
        float r27174 = r27165 / r27169;
        float r27175 = r27169 + r27166;
        float r27176 = r27165 + r27175;
        float r27177 = r27174 / r27176;
        float r27178 = 4.0;
        float r27179 = 8.0;
        float r27180 = r27179 / r27166;
        float r27181 = r27178 - r27180;
        float r27182 = r27166 * r27169;
        float r27183 = r27182 * r27166;
        float r27184 = r27181 / r27183;
        float r27185 = 1;
        float r27186 = r27185 / r27166;
        float r27187 = r27184 - r27186;
        float r27188 = r27177 - r27187;
        float r27189 = r27165 / r27170;
        float r27190 = r27166 / r27170;
        float r27191 = 1.0;
        float r27192 = r27190 - r27191;
        float r27193 = exp(r27192);
        float r27194 = log(r27193);
        float r27195 = r27189 - r27194;
        float r27196 = r27195 / r27169;
        float r27197 = r27173 ? r27188 : r27196;
        return r27197;
}

double f_od(double alpha, double beta) {
        double r27198 = beta;
        double r27199 = alpha;
        double r27200 = r27198 - r27199;
        double r27201 = r27199 + r27198;
        double r27202 = 2.0;
        double r27203 = r27201 + r27202;
        double r27204 = r27200 / r27203;
        double r27205 = -0.9999999999996291;
        bool r27206 = r27204 <= r27205;
        double r27207 = r27198 / r27202;
        double r27208 = r27202 + r27199;
        double r27209 = r27198 + r27208;
        double r27210 = r27207 / r27209;
        double r27211 = 4.0;
        double r27212 = 8.0;
        double r27213 = r27212 / r27199;
        double r27214 = r27211 - r27213;
        double r27215 = r27199 * r27202;
        double r27216 = r27215 * r27199;
        double r27217 = r27214 / r27216;
        double r27218 = 1;
        double r27219 = r27218 / r27199;
        double r27220 = r27217 - r27219;
        double r27221 = r27210 - r27220;
        double r27222 = r27198 / r27203;
        double r27223 = r27199 / r27203;
        double r27224 = 1.0;
        double r27225 = r27223 - r27224;
        double r27226 = exp(r27225);
        double r27227 = log(r27226);
        double r27228 = r27222 - r27227;
        double r27229 = r27228 / r27202;
        double r27230 = r27206 ? r27221 : r27229;
        return r27230;
}

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 r27231, r27232, r27233, r27234, r27235, r27236, r27237, r27238, r27239, r27240;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r27231);
        mpfr_init(r27232);
        mpfr_init(r27233);
        mpfr_init(r27234);
        mpfr_init_set_str(r27235, "2.0", 10, MPFR_RNDN);
        mpfr_init(r27236);
        mpfr_init(r27237);
        mpfr_init_set_str(r27238, "1.0", 10, MPFR_RNDN);
        mpfr_init(r27239);
        mpfr_init(r27240);
}

double f_im(double alpha, double beta) {
        mpfr_set_d(r27231, beta, MPFR_RNDN);
        mpfr_set_d(r27232, alpha, MPFR_RNDN);
        mpfr_sub(r27233, r27231, r27232, MPFR_RNDN);
        mpfr_add(r27234, r27232, r27231, MPFR_RNDN);
        ;
        mpfr_add(r27236, r27234, r27235, MPFR_RNDN);
        mpfr_div(r27237, r27233, r27236, MPFR_RNDN);
        ;
        mpfr_add(r27239, r27237, r27238, MPFR_RNDN);
        mpfr_div(r27240, r27239, r27235, MPFR_RNDN);
        return mpfr_get_d(r27240, MPFR_RNDN);
}

static mpfr_t r27241, r27242, r27243, r27244, r27245, r27246, r27247, r27248, r27249, r27250, r27251, r27252, r27253, r27254, r27255, r27256, r27257, r27258, r27259, r27260, r27261, r27262, r27263, r27264, r27265, r27266, r27267, r27268, r27269, r27270, r27271, r27272, r27273;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r27241);
        mpfr_init(r27242);
        mpfr_init(r27243);
        mpfr_init(r27244);
        mpfr_init_set_str(r27245, "2.0", 10, MPFR_RNDN);
        mpfr_init(r27246);
        mpfr_init(r27247);
        mpfr_init_set_str(r27248, "-0.9999999999996291", 10, MPFR_RNDN);
        mpfr_init(r27249);
        mpfr_init(r27250);
        mpfr_init(r27251);
        mpfr_init(r27252);
        mpfr_init(r27253);
        mpfr_init_set_str(r27254, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r27255, "8.0", 10, MPFR_RNDN);
        mpfr_init(r27256);
        mpfr_init(r27257);
        mpfr_init(r27258);
        mpfr_init(r27259);
        mpfr_init(r27260);
        mpfr_init_set_str(r27261, "1", 10, MPFR_RNDN);
        mpfr_init(r27262);
        mpfr_init(r27263);
        mpfr_init(r27264);
        mpfr_init(r27265);
        mpfr_init(r27266);
        mpfr_init_set_str(r27267, "1.0", 10, MPFR_RNDN);
        mpfr_init(r27268);
        mpfr_init(r27269);
        mpfr_init(r27270);
        mpfr_init(r27271);
        mpfr_init(r27272);
        mpfr_init(r27273);
}

double f_fm(double alpha, double beta) {
        mpfr_set_d(r27241, beta, MPFR_RNDN);
        mpfr_set_d(r27242, alpha, MPFR_RNDN);
        mpfr_sub(r27243, r27241, r27242, MPFR_RNDN);
        mpfr_add(r27244, r27242, r27241, MPFR_RNDN);
        ;
        mpfr_add(r27246, r27244, r27245, MPFR_RNDN);
        mpfr_div(r27247, r27243, r27246, MPFR_RNDN);
        ;
        mpfr_set_si(r27249, mpfr_cmp(r27247, r27248) <= 0, MPFR_RNDN);
        mpfr_div(r27250, r27241, r27245, MPFR_RNDN);
        mpfr_add(r27251, r27245, r27242, MPFR_RNDN);
        mpfr_add(r27252, r27241, r27251, MPFR_RNDN);
        mpfr_div(r27253, r27250, r27252, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27256, r27255, r27242, MPFR_RNDN);
        mpfr_sub(r27257, r27254, r27256, MPFR_RNDN);
        mpfr_mul(r27258, r27242, r27245, MPFR_RNDN);
        mpfr_mul(r27259, r27258, r27242, MPFR_RNDN);
        mpfr_div(r27260, r27257, r27259, MPFR_RNDN);
        ;
        mpfr_div(r27262, r27261, r27242, MPFR_RNDN);
        mpfr_sub(r27263, r27260, r27262, MPFR_RNDN);
        mpfr_sub(r27264, r27253, r27263, MPFR_RNDN);
        mpfr_div(r27265, r27241, r27246, MPFR_RNDN);
        mpfr_div(r27266, r27242, r27246, MPFR_RNDN);
        ;
        mpfr_sub(r27268, r27266, r27267, MPFR_RNDN);
        mpfr_exp(r27269, r27268, MPFR_RNDN);
        mpfr_log(r27270, r27269, MPFR_RNDN);
        mpfr_sub(r27271, r27265, r27270, MPFR_RNDN);
        mpfr_div(r27272, r27271, r27245, MPFR_RNDN);
        if (mpfr_get_si(r27249, MPFR_RNDN)) { mpfr_set(r27273, r27264, MPFR_RNDN); } else { mpfr_set(r27273, r27272, MPFR_RNDN); };
        return mpfr_get_d(r27273, MPFR_RNDN);
}

static mpfr_t r27274, r27275, r27276, r27277, r27278, r27279, r27280, r27281, r27282, r27283, r27284, r27285, r27286, r27287, r27288, r27289, r27290, r27291, r27292, r27293, r27294, r27295, r27296, r27297, r27298, r27299, r27300, r27301, r27302, r27303, r27304, r27305, r27306;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r27274);
        mpfr_init(r27275);
        mpfr_init(r27276);
        mpfr_init(r27277);
        mpfr_init_set_str(r27278, "2.0", 10, MPFR_RNDN);
        mpfr_init(r27279);
        mpfr_init(r27280);
        mpfr_init_set_str(r27281, "-0.9999999999996291", 10, MPFR_RNDN);
        mpfr_init(r27282);
        mpfr_init(r27283);
        mpfr_init(r27284);
        mpfr_init(r27285);
        mpfr_init(r27286);
        mpfr_init_set_str(r27287, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r27288, "8.0", 10, MPFR_RNDN);
        mpfr_init(r27289);
        mpfr_init(r27290);
        mpfr_init(r27291);
        mpfr_init(r27292);
        mpfr_init(r27293);
        mpfr_init_set_str(r27294, "1", 10, MPFR_RNDN);
        mpfr_init(r27295);
        mpfr_init(r27296);
        mpfr_init(r27297);
        mpfr_init(r27298);
        mpfr_init(r27299);
        mpfr_init_set_str(r27300, "1.0", 10, MPFR_RNDN);
        mpfr_init(r27301);
        mpfr_init(r27302);
        mpfr_init(r27303);
        mpfr_init(r27304);
        mpfr_init(r27305);
        mpfr_init(r27306);
}

double f_dm(double alpha, double beta) {
        mpfr_set_d(r27274, beta, MPFR_RNDN);
        mpfr_set_d(r27275, alpha, MPFR_RNDN);
        mpfr_sub(r27276, r27274, r27275, MPFR_RNDN);
        mpfr_add(r27277, r27275, r27274, MPFR_RNDN);
        ;
        mpfr_add(r27279, r27277, r27278, MPFR_RNDN);
        mpfr_div(r27280, r27276, r27279, MPFR_RNDN);
        ;
        mpfr_set_si(r27282, mpfr_cmp(r27280, r27281) <= 0, MPFR_RNDN);
        mpfr_div(r27283, r27274, r27278, MPFR_RNDN);
        mpfr_add(r27284, r27278, r27275, MPFR_RNDN);
        mpfr_add(r27285, r27274, r27284, MPFR_RNDN);
        mpfr_div(r27286, r27283, r27285, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27289, r27288, r27275, MPFR_RNDN);
        mpfr_sub(r27290, r27287, r27289, MPFR_RNDN);
        mpfr_mul(r27291, r27275, r27278, MPFR_RNDN);
        mpfr_mul(r27292, r27291, r27275, MPFR_RNDN);
        mpfr_div(r27293, r27290, r27292, MPFR_RNDN);
        ;
        mpfr_div(r27295, r27294, r27275, MPFR_RNDN);
        mpfr_sub(r27296, r27293, r27295, MPFR_RNDN);
        mpfr_sub(r27297, r27286, r27296, MPFR_RNDN);
        mpfr_div(r27298, r27274, r27279, MPFR_RNDN);
        mpfr_div(r27299, r27275, r27279, MPFR_RNDN);
        ;
        mpfr_sub(r27301, r27299, r27300, MPFR_RNDN);
        mpfr_exp(r27302, r27301, MPFR_RNDN);
        mpfr_log(r27303, r27302, MPFR_RNDN);
        mpfr_sub(r27304, r27298, r27303, MPFR_RNDN);
        mpfr_div(r27305, r27304, r27278, MPFR_RNDN);
        if (mpfr_get_si(r27282, MPFR_RNDN)) { mpfr_set(r27306, r27297, MPFR_RNDN); } else { mpfr_set(r27306, r27305, MPFR_RNDN); };
        return mpfr_get_d(r27306, MPFR_RNDN);
}

