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

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

double f_if(float i) {
        float r10193 = i;
        float r10194 = r10193 * r10193;
        float r10195 = r10194 * r10194;
        float r10196 = 2;
        float r10197 = r10196 * r10193;
        float r10198 = r10197 * r10197;
        float r10199 = r10195 / r10198;
        float r10200 = 1.0;
        float r10201 = r10198 - r10200;
        float r10202 = r10199 / r10201;
        return r10202;
}

double f_id(double i) {
        double r10203 = i;
        double r10204 = r10203 * r10203;
        double r10205 = r10204 * r10204;
        double r10206 = 2;
        double r10207 = r10206 * r10203;
        double r10208 = r10207 * r10207;
        double r10209 = r10205 / r10208;
        double r10210 = 1.0;
        double r10211 = r10208 - r10210;
        double r10212 = r10209 / r10211;
        return r10212;
}


double f_of(float i) {
        float r10213 = i;
        float r10214 = 223.45674042688236;
        bool r10215 = r10213 <= r10214;
        float r10216 = 2;
        float r10217 = r10213 / r10216;
        float r10218 = r10217 * r10217;
        float r10219 = r10216 * r10213;
        float r10220 = r10219 * r10219;
        float r10221 = 1.0;
        float r10222 = r10220 - r10221;
        float r10223 = r10218 / r10222;
        float r10224 = 0.00390625;
        float r10225 = 4;
        float r10226 = pow(r10213, r10225);
        float r10227 = r10224 / r10226;
        float r10228 = 1/16;
        float r10229 = r10227 + r10228;
        float r10230 = 0.015625;
        float r10231 = r10230 / r10213;
        float r10232 = r10231 / r10213;
        float r10233 = r10229 + r10232;
        float r10234 = r10215 ? r10223 : r10233;
        return r10234;
}

double f_od(double i) {
        double r10235 = i;
        double r10236 = 223.45674042688236;
        bool r10237 = r10235 <= r10236;
        double r10238 = 2;
        double r10239 = r10235 / r10238;
        double r10240 = r10239 * r10239;
        double r10241 = r10238 * r10235;
        double r10242 = r10241 * r10241;
        double r10243 = 1.0;
        double r10244 = r10242 - r10243;
        double r10245 = r10240 / r10244;
        double r10246 = 0.00390625;
        double r10247 = 4;
        double r10248 = pow(r10235, r10247);
        double r10249 = r10246 / r10248;
        double r10250 = 1/16;
        double r10251 = r10249 + r10250;
        double r10252 = 0.015625;
        double r10253 = r10252 / r10235;
        double r10254 = r10253 / r10235;
        double r10255 = r10251 + r10254;
        double r10256 = r10237 ? r10245 : r10255;
        return r10256;
}

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 r10257, r10258, r10259, r10260, r10261, r10262, r10263, r10264, r10265, r10266;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r10257);
        mpfr_init(r10258);
        mpfr_init(r10259);
        mpfr_init_set_str(r10260, "2", 10, MPFR_RNDN);
        mpfr_init(r10261);
        mpfr_init(r10262);
        mpfr_init(r10263);
        mpfr_init_set_str(r10264, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10265);
        mpfr_init(r10266);
}

double f_im(double i) {
        mpfr_set_d(r10257, i, MPFR_RNDN);
        mpfr_mul(r10258, r10257, r10257, MPFR_RNDN);
        mpfr_mul(r10259, r10258, r10258, MPFR_RNDN);
        ;
        mpfr_mul(r10261, r10260, r10257, MPFR_RNDN);
        mpfr_mul(r10262, r10261, r10261, MPFR_RNDN);
        mpfr_div(r10263, r10259, r10262, MPFR_RNDN);
        ;
        mpfr_sub(r10265, r10262, r10264, MPFR_RNDN);
        mpfr_div(r10266, r10263, r10265, MPFR_RNDN);
        return mpfr_get_d(r10266, MPFR_RNDN);
}

static mpfr_t r10267, r10268, r10269, r10270, r10271, r10272, r10273, r10274, r10275, r10276, r10277, r10278, r10279, r10280, r10281, r10282, r10283, r10284, r10285, r10286, r10287, r10288;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r10267);
        mpfr_init_set_str(r10268, "223.45674042688236", 10, MPFR_RNDN);
        mpfr_init(r10269);
        mpfr_init_set_str(r10270, "2", 10, MPFR_RNDN);
        mpfr_init(r10271);
        mpfr_init(r10272);
        mpfr_init(r10273);
        mpfr_init(r10274);
        mpfr_init_set_str(r10275, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10276);
        mpfr_init(r10277);
        mpfr_init_set_str(r10278, "0.00390625", 10, MPFR_RNDN);
        mpfr_init_set_str(r10279, "4", 10, MPFR_RNDN);
        mpfr_init(r10280);
        mpfr_init(r10281);
        mpfr_init_set_str(r10282, "1/16", 10, MPFR_RNDN);
        mpfr_init(r10283);
        mpfr_init_set_str(r10284, "0.015625", 10, MPFR_RNDN);
        mpfr_init(r10285);
        mpfr_init(r10286);
        mpfr_init(r10287);
        mpfr_init(r10288);
}

double f_fm(double i) {
        mpfr_set_d(r10267, i, MPFR_RNDN);
        ;
        mpfr_set_si(r10269, mpfr_cmp(r10267, r10268) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r10271, r10267, r10270, MPFR_RNDN);
        mpfr_mul(r10272, r10271, r10271, MPFR_RNDN);
        mpfr_mul(r10273, r10270, r10267, MPFR_RNDN);
        mpfr_mul(r10274, r10273, r10273, MPFR_RNDN);
        ;
        mpfr_sub(r10276, r10274, r10275, MPFR_RNDN);
        mpfr_div(r10277, r10272, r10276, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r10280, r10267, r10279, MPFR_RNDN);
        mpfr_div(r10281, r10278, r10280, MPFR_RNDN);
        ;
        mpfr_add(r10283, r10281, r10282, MPFR_RNDN);
        ;
        mpfr_div(r10285, r10284, r10267, MPFR_RNDN);
        mpfr_div(r10286, r10285, r10267, MPFR_RNDN);
        mpfr_add(r10287, r10283, r10286, MPFR_RNDN);
        if (mpfr_get_si(r10269, MPFR_RNDN)) { mpfr_set(r10288, r10277, MPFR_RNDN); } else { mpfr_set(r10288, r10287, MPFR_RNDN); };
        return mpfr_get_d(r10288, MPFR_RNDN);
}

static mpfr_t r10289, r10290, r10291, r10292, r10293, r10294, r10295, r10296, r10297, r10298, r10299, r10300, r10301, r10302, r10303, r10304, r10305, r10306, r10307, r10308, r10309, r10310;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r10289);
        mpfr_init_set_str(r10290, "223.45674042688236", 10, MPFR_RNDN);
        mpfr_init(r10291);
        mpfr_init_set_str(r10292, "2", 10, MPFR_RNDN);
        mpfr_init(r10293);
        mpfr_init(r10294);
        mpfr_init(r10295);
        mpfr_init(r10296);
        mpfr_init_set_str(r10297, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10298);
        mpfr_init(r10299);
        mpfr_init_set_str(r10300, "0.00390625", 10, MPFR_RNDN);
        mpfr_init_set_str(r10301, "4", 10, MPFR_RNDN);
        mpfr_init(r10302);
        mpfr_init(r10303);
        mpfr_init_set_str(r10304, "1/16", 10, MPFR_RNDN);
        mpfr_init(r10305);
        mpfr_init_set_str(r10306, "0.015625", 10, MPFR_RNDN);
        mpfr_init(r10307);
        mpfr_init(r10308);
        mpfr_init(r10309);
        mpfr_init(r10310);
}

double f_dm(double i) {
        mpfr_set_d(r10289, i, MPFR_RNDN);
        ;
        mpfr_set_si(r10291, mpfr_cmp(r10289, r10290) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r10293, r10289, r10292, MPFR_RNDN);
        mpfr_mul(r10294, r10293, r10293, MPFR_RNDN);
        mpfr_mul(r10295, r10292, r10289, MPFR_RNDN);
        mpfr_mul(r10296, r10295, r10295, MPFR_RNDN);
        ;
        mpfr_sub(r10298, r10296, r10297, MPFR_RNDN);
        mpfr_div(r10299, r10294, r10298, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r10302, r10289, r10301, MPFR_RNDN);
        mpfr_div(r10303, r10300, r10302, MPFR_RNDN);
        ;
        mpfr_add(r10305, r10303, r10304, MPFR_RNDN);
        ;
        mpfr_div(r10307, r10306, r10289, MPFR_RNDN);
        mpfr_div(r10308, r10307, r10289, MPFR_RNDN);
        mpfr_add(r10309, r10305, r10308, MPFR_RNDN);
        if (mpfr_get_si(r10291, MPFR_RNDN)) { mpfr_set(r10310, r10299, MPFR_RNDN); } else { mpfr_set(r10310, r10309, MPFR_RNDN); };
        return mpfr_get_d(r10310, MPFR_RNDN);
}

