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

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

double f_if(float alpha, float beta, float i) {
        float r10160 = i;
        float r10161 = alpha;
        float r10162 = beta;
        float r10163 = r10161 + r10162;
        float r10164 = r10163 + r10160;
        float r10165 = r10160 * r10164;
        float r10166 = r10162 * r10161;
        float r10167 = r10166 + r10165;
        float r10168 = r10165 * r10167;
        float r10169 = 2;
        float r10170 = r10169 * r10160;
        float r10171 = r10163 + r10170;
        float r10172 = r10171 * r10171;
        float r10173 = r10168 / r10172;
        float r10174 = 1.0;
        float r10175 = r10172 - r10174;
        float r10176 = r10173 / r10175;
        return r10176;
}

double f_id(double alpha, double beta, double i) {
        double r10177 = i;
        double r10178 = alpha;
        double r10179 = beta;
        double r10180 = r10178 + r10179;
        double r10181 = r10180 + r10177;
        double r10182 = r10177 * r10181;
        double r10183 = r10179 * r10178;
        double r10184 = r10183 + r10182;
        double r10185 = r10182 * r10184;
        double r10186 = 2;
        double r10187 = r10186 * r10177;
        double r10188 = r10180 + r10187;
        double r10189 = r10188 * r10188;
        double r10190 = r10185 / r10189;
        double r10191 = 1.0;
        double r10192 = r10189 - r10191;
        double r10193 = r10190 / r10192;
        return r10193;
}


double f_of(float alpha, float beta, float i) {
        float r10194 = 1.0;
        float r10195 = -r10194;
        float r10196 = i;
        float r10197 = alpha;
        float r10198 = beta;
        float r10199 = r10197 + r10198;
        float r10200 = r10197 * r10198;
        float r10201 = fma(r10196, r10199, r10200);
        float r10202 = r10195 * r10201;
        float r10203 = 2;
        float r10204 = fma(r10203, r10196, r10199);
        float r10205 = r10196 / r10204;
        float r10206 = r10202 * r10205;
        float r10207 = r10199 + r10196;
        float r10208 = r10204 / r10207;
        float r10209 = r10206 / r10208;
        float r10210 = -3.8443177687147436e+296;
        bool r10211 = r10209 <= r10210;
        float r10212 = 0;
        float r10213 = fma(r10196, r10203, r10198);
        float r10214 = r10213 + r10197;
        float r10215 = r10196 / r10214;
        float r10216 = r10198 + r10197;
        float r10217 = r10216 + r10196;
        float r10218 = r10217 / r10214;
        float r10219 = r10215 * r10218;
        float r10220 = r10198 * r10197;
        float r10221 = fma(r10217, r10196, r10220);
        float r10222 = fma(r10214, r10214, r10195);
        float r10223 = r10221 / r10222;
        float r10224 = sqrt(r10223);
        float r10225 = r10224 * r10224;
        float r10226 = r10219 * r10225;
        float r10227 = r10211 ? r10212 : r10226;
        return r10227;
}

double f_od(double alpha, double beta, double i) {
        double r10228 = 1.0;
        double r10229 = -r10228;
        double r10230 = i;
        double r10231 = alpha;
        double r10232 = beta;
        double r10233 = r10231 + r10232;
        double r10234 = r10231 * r10232;
        double r10235 = fma(r10230, r10233, r10234);
        double r10236 = r10229 * r10235;
        double r10237 = 2;
        double r10238 = fma(r10237, r10230, r10233);
        double r10239 = r10230 / r10238;
        double r10240 = r10236 * r10239;
        double r10241 = r10233 + r10230;
        double r10242 = r10238 / r10241;
        double r10243 = r10240 / r10242;
        double r10244 = -3.8443177687147436e+296;
        bool r10245 = r10243 <= r10244;
        double r10246 = 0;
        double r10247 = fma(r10230, r10237, r10232);
        double r10248 = r10247 + r10231;
        double r10249 = r10230 / r10248;
        double r10250 = r10232 + r10231;
        double r10251 = r10250 + r10230;
        double r10252 = r10251 / r10248;
        double r10253 = r10249 * r10252;
        double r10254 = r10232 * r10231;
        double r10255 = fma(r10251, r10230, r10254);
        double r10256 = fma(r10248, r10248, r10229);
        double r10257 = r10255 / r10256;
        double r10258 = sqrt(r10257);
        double r10259 = r10258 * r10258;
        double r10260 = r10253 * r10259;
        double r10261 = r10245 ? r10246 : r10260;
        return r10261;
}

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 r10262, r10263, r10264, r10265, r10266, r10267, r10268, r10269, r10270, r10271, r10272, r10273, r10274, r10275, r10276, r10277, r10278;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r10262);
        mpfr_init(r10263);
        mpfr_init(r10264);
        mpfr_init(r10265);
        mpfr_init(r10266);
        mpfr_init(r10267);
        mpfr_init(r10268);
        mpfr_init(r10269);
        mpfr_init(r10270);
        mpfr_init_set_str(r10271, "2", 10, MPFR_RNDN);
        mpfr_init(r10272);
        mpfr_init(r10273);
        mpfr_init(r10274);
        mpfr_init(r10275);
        mpfr_init_set_str(r10276, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10277);
        mpfr_init(r10278);
}

double f_im(double alpha, double beta, double i) {
        mpfr_set_d(r10262, i, MPFR_RNDN);
        mpfr_set_d(r10263, alpha, MPFR_RNDN);
        mpfr_set_d(r10264, beta, MPFR_RNDN);
        mpfr_add(r10265, r10263, r10264, MPFR_RNDN);
        mpfr_add(r10266, r10265, r10262, MPFR_RNDN);
        mpfr_mul(r10267, r10262, r10266, MPFR_RNDN);
        mpfr_mul(r10268, r10264, r10263, MPFR_RNDN);
        mpfr_add(r10269, r10268, r10267, MPFR_RNDN);
        mpfr_mul(r10270, r10267, r10269, MPFR_RNDN);
        ;
        mpfr_mul(r10272, r10271, r10262, MPFR_RNDN);
        mpfr_add(r10273, r10265, r10272, MPFR_RNDN);
        mpfr_mul(r10274, r10273, r10273, MPFR_RNDN);
        mpfr_div(r10275, r10270, r10274, MPFR_RNDN);
        ;
        mpfr_sub(r10277, r10274, r10276, MPFR_RNDN);
        mpfr_div(r10278, r10275, r10277, MPFR_RNDN);
        return mpfr_get_d(r10278, MPFR_RNDN);
}

static mpfr_t r10279, r10280, r10281, r10282, r10283, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r10279, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10280);
        mpfr_init(r10281);
        mpfr_init(r10282);
        mpfr_init(r10283);
        mpfr_init(r10284);
        mpfr_init(r10285);
        mpfr_init(r10286);
        mpfr_init(r10287);
        mpfr_init_set_str(r10288, "2", 10, MPFR_RNDN);
        mpfr_init(r10289);
        mpfr_init(r10290);
        mpfr_init(r10291);
        mpfr_init(r10292);
        mpfr_init(r10293);
        mpfr_init(r10294);
        mpfr_init_set_str(r10295, "-3.8443177687147436e+296", 10, MPFR_RNDN);
        mpfr_init(r10296);
        mpfr_init_set_str(r10297, "0", 10, MPFR_RNDN);
        mpfr_init(r10298);
        mpfr_init(r10299);
        mpfr_init(r10300);
        mpfr_init(r10301);
        mpfr_init(r10302);
        mpfr_init(r10303);
        mpfr_init(r10304);
        mpfr_init(r10305);
        mpfr_init(r10306);
        mpfr_init(r10307);
        mpfr_init(r10308);
        mpfr_init(r10309);
        mpfr_init(r10310);
        mpfr_init(r10311);
        mpfr_init(r10312);
}

double f_fm(double alpha, double beta, double i) {
        ;
        mpfr_neg(r10280, r10279, MPFR_RNDN);
        mpfr_set_d(r10281, i, MPFR_RNDN);
        mpfr_set_d(r10282, alpha, MPFR_RNDN);
        mpfr_set_d(r10283, beta, MPFR_RNDN);
        mpfr_add(r10284, r10282, r10283, MPFR_RNDN);
        mpfr_mul(r10285, r10282, r10283, MPFR_RNDN);
        mpfr_fma(r10286, r10281, r10284, r10285, MPFR_RNDN);
        mpfr_mul(r10287, r10280, r10286, MPFR_RNDN);
        ;
        mpfr_fma(r10289, r10288, r10281, r10284, MPFR_RNDN);
        mpfr_div(r10290, r10281, r10289, MPFR_RNDN);
        mpfr_mul(r10291, r10287, r10290, MPFR_RNDN);
        mpfr_add(r10292, r10284, r10281, MPFR_RNDN);
        mpfr_div(r10293, r10289, r10292, MPFR_RNDN);
        mpfr_div(r10294, r10291, r10293, MPFR_RNDN);
        ;
        mpfr_set_si(r10296, mpfr_cmp(r10294, r10295) <= 0, MPFR_RNDN);
        ;
        mpfr_fma(r10298, r10281, r10288, r10283, MPFR_RNDN);
        mpfr_add(r10299, r10298, r10282, MPFR_RNDN);
        mpfr_div(r10300, r10281, r10299, MPFR_RNDN);
        mpfr_add(r10301, r10283, r10282, MPFR_RNDN);
        mpfr_add(r10302, r10301, r10281, MPFR_RNDN);
        mpfr_div(r10303, r10302, r10299, MPFR_RNDN);
        mpfr_mul(r10304, r10300, r10303, MPFR_RNDN);
        mpfr_mul(r10305, r10283, r10282, MPFR_RNDN);
        mpfr_fma(r10306, r10302, r10281, r10305, MPFR_RNDN);
        mpfr_fma(r10307, r10299, r10299, r10280, MPFR_RNDN);
        mpfr_div(r10308, r10306, r10307, MPFR_RNDN);
        mpfr_sqrt(r10309, r10308, MPFR_RNDN);
        mpfr_mul(r10310, r10309, r10309, MPFR_RNDN);
        mpfr_mul(r10311, r10304, r10310, MPFR_RNDN);
        if (mpfr_get_si(r10296, MPFR_RNDN)) { mpfr_set(r10312, r10297, MPFR_RNDN); } else { mpfr_set(r10312, r10311, MPFR_RNDN); };
        return mpfr_get_d(r10312, MPFR_RNDN);
}

static mpfr_t r10313, r10314, r10315, r10316, r10317, r10318, r10319, r10320, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r10313, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10314);
        mpfr_init(r10315);
        mpfr_init(r10316);
        mpfr_init(r10317);
        mpfr_init(r10318);
        mpfr_init(r10319);
        mpfr_init(r10320);
        mpfr_init(r10321);
        mpfr_init_set_str(r10322, "2", 10, MPFR_RNDN);
        mpfr_init(r10323);
        mpfr_init(r10324);
        mpfr_init(r10325);
        mpfr_init(r10326);
        mpfr_init(r10327);
        mpfr_init(r10328);
        mpfr_init_set_str(r10329, "-3.8443177687147436e+296", 10, MPFR_RNDN);
        mpfr_init(r10330);
        mpfr_init_set_str(r10331, "0", 10, MPFR_RNDN);
        mpfr_init(r10332);
        mpfr_init(r10333);
        mpfr_init(r10334);
        mpfr_init(r10335);
        mpfr_init(r10336);
        mpfr_init(r10337);
        mpfr_init(r10338);
        mpfr_init(r10339);
        mpfr_init(r10340);
        mpfr_init(r10341);
        mpfr_init(r10342);
        mpfr_init(r10343);
        mpfr_init(r10344);
        mpfr_init(r10345);
        mpfr_init(r10346);
}

double f_dm(double alpha, double beta, double i) {
        ;
        mpfr_neg(r10314, r10313, MPFR_RNDN);
        mpfr_set_d(r10315, i, MPFR_RNDN);
        mpfr_set_d(r10316, alpha, MPFR_RNDN);
        mpfr_set_d(r10317, beta, MPFR_RNDN);
        mpfr_add(r10318, r10316, r10317, MPFR_RNDN);
        mpfr_mul(r10319, r10316, r10317, MPFR_RNDN);
        mpfr_fma(r10320, r10315, r10318, r10319, MPFR_RNDN);
        mpfr_mul(r10321, r10314, r10320, MPFR_RNDN);
        ;
        mpfr_fma(r10323, r10322, r10315, r10318, MPFR_RNDN);
        mpfr_div(r10324, r10315, r10323, MPFR_RNDN);
        mpfr_mul(r10325, r10321, r10324, MPFR_RNDN);
        mpfr_add(r10326, r10318, r10315, MPFR_RNDN);
        mpfr_div(r10327, r10323, r10326, MPFR_RNDN);
        mpfr_div(r10328, r10325, r10327, MPFR_RNDN);
        ;
        mpfr_set_si(r10330, mpfr_cmp(r10328, r10329) <= 0, MPFR_RNDN);
        ;
        mpfr_fma(r10332, r10315, r10322, r10317, MPFR_RNDN);
        mpfr_add(r10333, r10332, r10316, MPFR_RNDN);
        mpfr_div(r10334, r10315, r10333, MPFR_RNDN);
        mpfr_add(r10335, r10317, r10316, MPFR_RNDN);
        mpfr_add(r10336, r10335, r10315, MPFR_RNDN);
        mpfr_div(r10337, r10336, r10333, MPFR_RNDN);
        mpfr_mul(r10338, r10334, r10337, MPFR_RNDN);
        mpfr_mul(r10339, r10317, r10316, MPFR_RNDN);
        mpfr_fma(r10340, r10336, r10315, r10339, MPFR_RNDN);
        mpfr_fma(r10341, r10333, r10333, r10314, MPFR_RNDN);
        mpfr_div(r10342, r10340, r10341, MPFR_RNDN);
        mpfr_sqrt(r10343, r10342, MPFR_RNDN);
        mpfr_mul(r10344, r10343, r10343, MPFR_RNDN);
        mpfr_mul(r10345, r10338, r10344, MPFR_RNDN);
        if (mpfr_get_si(r10330, MPFR_RNDN)) { mpfr_set(r10346, r10331, MPFR_RNDN); } else { mpfr_set(r10346, r10345, MPFR_RNDN); };
        return mpfr_get_d(r10346, MPFR_RNDN);
}

