#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 r10180 = beta;
        float r10181 = alpha;
        float r10182 = r10180 - r10181;
        float r10183 = r10181 + r10180;
        float r10184 = 2.0;
        float r10185 = r10183 + r10184;
        float r10186 = r10182 / r10185;
        float r10187 = 1.0;
        float r10188 = r10186 + r10187;
        float r10189 = r10188 / r10184;
        return r10189;
}

double f_id(double alpha, double beta) {
        double r10190 = beta;
        double r10191 = alpha;
        double r10192 = r10190 - r10191;
        double r10193 = r10191 + r10190;
        double r10194 = 2.0;
        double r10195 = r10193 + r10194;
        double r10196 = r10192 / r10195;
        double r10197 = 1.0;
        double r10198 = r10196 + r10197;
        double r10199 = r10198 / r10194;
        return r10199;
}


double f_of(float alpha, float beta) {
        float r10200 = beta;
        float r10201 = alpha;
        float r10202 = r10200 - r10201;
        float r10203 = r10201 + r10200;
        float r10204 = 2.0;
        float r10205 = r10203 + r10204;
        float r10206 = r10202 / r10205;
        float r10207 = 1.0;
        float r10208 = r10206 + r10207;
        float r10209 = r10208 / r10204;
        float r10210 = 9.646253901511176e-15;
        bool r10211 = r10209 <= r10210;
        float r10212 = r10200 / r10205;
        float r10213 = 4.0;
        float r10214 = 1;
        float r10215 = 2;
        float r10216 = pow(r10201, r10215);
        float r10217 = r10214 / r10216;
        float r10218 = r10213 * r10217;
        float r10219 = r10214 / r10201;
        float r10220 = r10204 * r10219;
        float r10221 = 8.0;
        float r10222 = 3;
        float r10223 = pow(r10201, r10222);
        float r10224 = r10214 / r10223;
        float r10225 = r10221 * r10224;
        float r10226 = r10220 + r10225;
        float r10227 = r10218 - r10226;
        float r10228 = r10212 - r10227;
        float r10229 = r10228 / r10204;
        float r10230 = r10201 / r10205;
        float r10231 = r10230 - r10207;
        float r10232 = r10212 - r10231;
        float r10233 = log(r10232);
        float r10234 = exp(r10233);
        float r10235 = r10234 / r10204;
        float r10236 = r10211 ? r10229 : r10235;
        return r10236;
}

double f_od(double alpha, double beta) {
        double r10237 = beta;
        double r10238 = alpha;
        double r10239 = r10237 - r10238;
        double r10240 = r10238 + r10237;
        double r10241 = 2.0;
        double r10242 = r10240 + r10241;
        double r10243 = r10239 / r10242;
        double r10244 = 1.0;
        double r10245 = r10243 + r10244;
        double r10246 = r10245 / r10241;
        double r10247 = 9.646253901511176e-15;
        bool r10248 = r10246 <= r10247;
        double r10249 = r10237 / r10242;
        double r10250 = 4.0;
        double r10251 = 1;
        double r10252 = 2;
        double r10253 = pow(r10238, r10252);
        double r10254 = r10251 / r10253;
        double r10255 = r10250 * r10254;
        double r10256 = r10251 / r10238;
        double r10257 = r10241 * r10256;
        double r10258 = 8.0;
        double r10259 = 3;
        double r10260 = pow(r10238, r10259);
        double r10261 = r10251 / r10260;
        double r10262 = r10258 * r10261;
        double r10263 = r10257 + r10262;
        double r10264 = r10255 - r10263;
        double r10265 = r10249 - r10264;
        double r10266 = r10265 / r10241;
        double r10267 = r10238 / r10242;
        double r10268 = r10267 - r10244;
        double r10269 = r10249 - r10268;
        double r10270 = log(r10269);
        double r10271 = exp(r10270);
        double r10272 = r10271 / r10241;
        double r10273 = r10248 ? r10266 : r10272;
        return r10273;
}

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 r10274, r10275, r10276, r10277, r10278, r10279, r10280, r10281, r10282, r10283;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r10274);
        mpfr_init(r10275);
        mpfr_init(r10276);
        mpfr_init(r10277);
        mpfr_init_set_str(r10278, "2.0", 10, MPFR_RNDN);
        mpfr_init(r10279);
        mpfr_init(r10280);
        mpfr_init_set_str(r10281, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10282);
        mpfr_init(r10283);
}

double f_im(double alpha, double beta) {
        mpfr_set_d(r10274, beta, MPFR_RNDN);
        mpfr_set_d(r10275, alpha, MPFR_RNDN);
        mpfr_sub(r10276, r10274, r10275, MPFR_RNDN);
        mpfr_add(r10277, r10275, r10274, MPFR_RNDN);
        ;
        mpfr_add(r10279, r10277, r10278, MPFR_RNDN);
        mpfr_div(r10280, r10276, r10279, MPFR_RNDN);
        ;
        mpfr_add(r10282, r10280, r10281, MPFR_RNDN);
        mpfr_div(r10283, r10282, r10278, MPFR_RNDN);
        return mpfr_get_d(r10283, MPFR_RNDN);
}

static mpfr_t r10284, r10285, r10286, r10287, r10288, r10289, r10290, r10291, r10292, r10293, r10294, r10295, r10296, r10297, r10298, r10299, r10300, r10301, r10302, r10303, r10304, r10305, r10306, r10307, r10308, r10309, r10310, r10311, r10312, r10313, r10314, r10315, r10316, r10317, r10318, r10319, r10320;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r10284);
        mpfr_init(r10285);
        mpfr_init(r10286);
        mpfr_init(r10287);
        mpfr_init_set_str(r10288, "2.0", 10, MPFR_RNDN);
        mpfr_init(r10289);
        mpfr_init(r10290);
        mpfr_init_set_str(r10291, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10292);
        mpfr_init(r10293);
        mpfr_init_set_str(r10294, "9.646253901511176e-15", 10, MPFR_RNDN);
        mpfr_init(r10295);
        mpfr_init(r10296);
        mpfr_init_set_str(r10297, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r10298, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10299, "2", 10, MPFR_RNDN);
        mpfr_init(r10300);
        mpfr_init(r10301);
        mpfr_init(r10302);
        mpfr_init(r10303);
        mpfr_init(r10304);
        mpfr_init_set_str(r10305, "8.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r10306, "3", 10, MPFR_RNDN);
        mpfr_init(r10307);
        mpfr_init(r10308);
        mpfr_init(r10309);
        mpfr_init(r10310);
        mpfr_init(r10311);
        mpfr_init(r10312);
        mpfr_init(r10313);
        mpfr_init(r10314);
        mpfr_init(r10315);
        mpfr_init(r10316);
        mpfr_init(r10317);
        mpfr_init(r10318);
        mpfr_init(r10319);
        mpfr_init(r10320);
}

double f_fm(double alpha, double beta) {
        mpfr_set_d(r10284, beta, MPFR_RNDN);
        mpfr_set_d(r10285, alpha, MPFR_RNDN);
        mpfr_sub(r10286, r10284, r10285, MPFR_RNDN);
        mpfr_add(r10287, r10285, r10284, MPFR_RNDN);
        ;
        mpfr_add(r10289, r10287, r10288, MPFR_RNDN);
        mpfr_div(r10290, r10286, r10289, MPFR_RNDN);
        ;
        mpfr_add(r10292, r10290, r10291, MPFR_RNDN);
        mpfr_div(r10293, r10292, r10288, MPFR_RNDN);
        ;
        mpfr_set_si(r10295, mpfr_cmp(r10293, r10294) <= 0, MPFR_RNDN);
        mpfr_div(r10296, r10284, r10289, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_pow(r10300, r10285, r10299, MPFR_RNDN);
        mpfr_div(r10301, r10298, r10300, MPFR_RNDN);
        mpfr_mul(r10302, r10297, r10301, MPFR_RNDN);
        mpfr_div(r10303, r10298, r10285, MPFR_RNDN);
        mpfr_mul(r10304, r10288, r10303, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r10307, r10285, r10306, MPFR_RNDN);
        mpfr_div(r10308, r10298, r10307, MPFR_RNDN);
        mpfr_mul(r10309, r10305, r10308, MPFR_RNDN);
        mpfr_add(r10310, r10304, r10309, MPFR_RNDN);
        mpfr_sub(r10311, r10302, r10310, MPFR_RNDN);
        mpfr_sub(r10312, r10296, r10311, MPFR_RNDN);
        mpfr_div(r10313, r10312, r10288, MPFR_RNDN);
        mpfr_div(r10314, r10285, r10289, MPFR_RNDN);
        mpfr_sub(r10315, r10314, r10291, MPFR_RNDN);
        mpfr_sub(r10316, r10296, r10315, MPFR_RNDN);
        mpfr_log(r10317, r10316, MPFR_RNDN);
        mpfr_exp(r10318, r10317, MPFR_RNDN);
        mpfr_div(r10319, r10318, r10288, MPFR_RNDN);
        if (mpfr_get_si(r10295, MPFR_RNDN)) { mpfr_set(r10320, r10313, MPFR_RNDN); } else { mpfr_set(r10320, r10319, MPFR_RNDN); };
        return mpfr_get_d(r10320, MPFR_RNDN);
}

static mpfr_t r10321, r10322, r10323, r10324, r10325, r10326, r10327, r10328, r10329, r10330, r10331, r10332, r10333, r10334, r10335, r10336, r10337, r10338, r10339, r10340, r10341, r10342, r10343, r10344, r10345, r10346, r10347, r10348, r10349, r10350, r10351, r10352, r10353, r10354, r10355, r10356, r10357;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r10321);
        mpfr_init(r10322);
        mpfr_init(r10323);
        mpfr_init(r10324);
        mpfr_init_set_str(r10325, "2.0", 10, MPFR_RNDN);
        mpfr_init(r10326);
        mpfr_init(r10327);
        mpfr_init_set_str(r10328, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10329);
        mpfr_init(r10330);
        mpfr_init_set_str(r10331, "9.646253901511176e-15", 10, MPFR_RNDN);
        mpfr_init(r10332);
        mpfr_init(r10333);
        mpfr_init_set_str(r10334, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r10335, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10336, "2", 10, MPFR_RNDN);
        mpfr_init(r10337);
        mpfr_init(r10338);
        mpfr_init(r10339);
        mpfr_init(r10340);
        mpfr_init(r10341);
        mpfr_init_set_str(r10342, "8.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r10343, "3", 10, MPFR_RNDN);
        mpfr_init(r10344);
        mpfr_init(r10345);
        mpfr_init(r10346);
        mpfr_init(r10347);
        mpfr_init(r10348);
        mpfr_init(r10349);
        mpfr_init(r10350);
        mpfr_init(r10351);
        mpfr_init(r10352);
        mpfr_init(r10353);
        mpfr_init(r10354);
        mpfr_init(r10355);
        mpfr_init(r10356);
        mpfr_init(r10357);
}

double f_dm(double alpha, double beta) {
        mpfr_set_d(r10321, beta, MPFR_RNDN);
        mpfr_set_d(r10322, alpha, MPFR_RNDN);
        mpfr_sub(r10323, r10321, r10322, MPFR_RNDN);
        mpfr_add(r10324, r10322, r10321, MPFR_RNDN);
        ;
        mpfr_add(r10326, r10324, r10325, MPFR_RNDN);
        mpfr_div(r10327, r10323, r10326, MPFR_RNDN);
        ;
        mpfr_add(r10329, r10327, r10328, MPFR_RNDN);
        mpfr_div(r10330, r10329, r10325, MPFR_RNDN);
        ;
        mpfr_set_si(r10332, mpfr_cmp(r10330, r10331) <= 0, MPFR_RNDN);
        mpfr_div(r10333, r10321, r10326, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_pow(r10337, r10322, r10336, MPFR_RNDN);
        mpfr_div(r10338, r10335, r10337, MPFR_RNDN);
        mpfr_mul(r10339, r10334, r10338, MPFR_RNDN);
        mpfr_div(r10340, r10335, r10322, MPFR_RNDN);
        mpfr_mul(r10341, r10325, r10340, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r10344, r10322, r10343, MPFR_RNDN);
        mpfr_div(r10345, r10335, r10344, MPFR_RNDN);
        mpfr_mul(r10346, r10342, r10345, MPFR_RNDN);
        mpfr_add(r10347, r10341, r10346, MPFR_RNDN);
        mpfr_sub(r10348, r10339, r10347, MPFR_RNDN);
        mpfr_sub(r10349, r10333, r10348, MPFR_RNDN);
        mpfr_div(r10350, r10349, r10325, MPFR_RNDN);
        mpfr_div(r10351, r10322, r10326, MPFR_RNDN);
        mpfr_sub(r10352, r10351, r10328, MPFR_RNDN);
        mpfr_sub(r10353, r10333, r10352, MPFR_RNDN);
        mpfr_log(r10354, r10353, MPFR_RNDN);
        mpfr_exp(r10355, r10354, MPFR_RNDN);
        mpfr_div(r10356, r10355, r10325, MPFR_RNDN);
        if (mpfr_get_si(r10332, MPFR_RNDN)) { mpfr_set(r10357, r10350, MPFR_RNDN); } else { mpfr_set(r10357, r10356, MPFR_RNDN); };
        return mpfr_get_d(r10357, MPFR_RNDN);
}

