#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 r22299 = i;
        float r22300 = r22299 * r22299;
        float r22301 = r22300 * r22300;
        float r22302 = 2;
        float r22303 = r22302 * r22299;
        float r22304 = r22303 * r22303;
        float r22305 = r22301 / r22304;
        float r22306 = 1.0;
        float r22307 = r22304 - r22306;
        float r22308 = r22305 / r22307;
        return r22308;
}

double f_id(double i) {
        double r22309 = i;
        double r22310 = r22309 * r22309;
        double r22311 = r22310 * r22310;
        double r22312 = 2;
        double r22313 = r22312 * r22309;
        double r22314 = r22313 * r22313;
        double r22315 = r22311 / r22314;
        double r22316 = 1.0;
        double r22317 = r22314 - r22316;
        double r22318 = r22315 / r22317;
        return r22318;
}


double f_of(float i) {
        float r22319 = i;
        float r22320 = 214.4089819703991;
        bool r22321 = r22319 <= r22320;
        float r22322 = 2;
        float r22323 = r22319 / r22322;
        float r22324 = r22319 + r22319;
        float r22325 = 1.0;
        float r22326 = -r22325;
        float r22327 = fma(r22324, r22324, r22326);
        float r22328 = r22323 / r22327;
        float r22329 = r22323 * r22328;
        float r22330 = 1/16;
        float r22331 = 0.00390625;
        float r22332 = 4;
        float r22333 = pow(r22319, r22332);
        float r22334 = r22331 / r22333;
        float r22335 = 0.015625;
        float r22336 = r22335 / r22319;
        float r22337 = r22336 / r22319;
        float r22338 = r22334 + r22337;
        float r22339 = r22330 + r22338;
        float r22340 = r22321 ? r22329 : r22339;
        return r22340;
}

double f_od(double i) {
        double r22341 = i;
        double r22342 = 214.4089819703991;
        bool r22343 = r22341 <= r22342;
        double r22344 = 2;
        double r22345 = r22341 / r22344;
        double r22346 = r22341 + r22341;
        double r22347 = 1.0;
        double r22348 = -r22347;
        double r22349 = fma(r22346, r22346, r22348);
        double r22350 = r22345 / r22349;
        double r22351 = r22345 * r22350;
        double r22352 = 1/16;
        double r22353 = 0.00390625;
        double r22354 = 4;
        double r22355 = pow(r22341, r22354);
        double r22356 = r22353 / r22355;
        double r22357 = 0.015625;
        double r22358 = r22357 / r22341;
        double r22359 = r22358 / r22341;
        double r22360 = r22356 + r22359;
        double r22361 = r22352 + r22360;
        double r22362 = r22343 ? r22351 : r22361;
        return r22362;
}

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 r22363, r22364, r22365, r22366, r22367, r22368, r22369, r22370, r22371, r22372;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r22363);
        mpfr_init(r22364);
        mpfr_init(r22365);
        mpfr_init_set_str(r22366, "2", 10, MPFR_RNDN);
        mpfr_init(r22367);
        mpfr_init(r22368);
        mpfr_init(r22369);
        mpfr_init_set_str(r22370, "1.0", 10, MPFR_RNDN);
        mpfr_init(r22371);
        mpfr_init(r22372);
}

double f_im(double i) {
        mpfr_set_d(r22363, i, MPFR_RNDN);
        mpfr_mul(r22364, r22363, r22363, MPFR_RNDN);
        mpfr_mul(r22365, r22364, r22364, MPFR_RNDN);
        ;
        mpfr_mul(r22367, r22366, r22363, MPFR_RNDN);
        mpfr_mul(r22368, r22367, r22367, MPFR_RNDN);
        mpfr_div(r22369, r22365, r22368, MPFR_RNDN);
        ;
        mpfr_sub(r22371, r22368, r22370, MPFR_RNDN);
        mpfr_div(r22372, r22369, r22371, MPFR_RNDN);
        return mpfr_get_d(r22372, MPFR_RNDN);
}

static mpfr_t r22373, r22374, r22375, r22376, r22377, r22378, r22379, r22380, r22381, r22382, r22383, r22384, r22385, r22386, r22387, r22388, r22389, r22390, r22391, r22392, r22393, r22394;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r22373);
        mpfr_init_set_str(r22374, "214.4089819703991", 10, MPFR_RNDN);
        mpfr_init(r22375);
        mpfr_init_set_str(r22376, "2", 10, MPFR_RNDN);
        mpfr_init(r22377);
        mpfr_init(r22378);
        mpfr_init_set_str(r22379, "1.0", 10, MPFR_RNDN);
        mpfr_init(r22380);
        mpfr_init(r22381);
        mpfr_init(r22382);
        mpfr_init(r22383);
        mpfr_init_set_str(r22384, "1/16", 10, MPFR_RNDN);
        mpfr_init_set_str(r22385, "0.00390625", 10, MPFR_RNDN);
        mpfr_init_set_str(r22386, "4", 10, MPFR_RNDN);
        mpfr_init(r22387);
        mpfr_init(r22388);
        mpfr_init_set_str(r22389, "0.015625", 10, MPFR_RNDN);
        mpfr_init(r22390);
        mpfr_init(r22391);
        mpfr_init(r22392);
        mpfr_init(r22393);
        mpfr_init(r22394);
}

double f_fm(double i) {
        mpfr_set_d(r22373, i, MPFR_RNDN);
        ;
        mpfr_set_si(r22375, mpfr_cmp(r22373, r22374) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r22377, r22373, r22376, MPFR_RNDN);
        mpfr_add(r22378, r22373, r22373, MPFR_RNDN);
        ;
        mpfr_neg(r22380, r22379, MPFR_RNDN);
        mpfr_fma(r22381, r22378, r22378, r22380, MPFR_RNDN);
        mpfr_div(r22382, r22377, r22381, MPFR_RNDN);
        mpfr_mul(r22383, r22377, r22382, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_pow(r22387, r22373, r22386, MPFR_RNDN);
        mpfr_div(r22388, r22385, r22387, MPFR_RNDN);
        ;
        mpfr_div(r22390, r22389, r22373, MPFR_RNDN);
        mpfr_div(r22391, r22390, r22373, MPFR_RNDN);
        mpfr_add(r22392, r22388, r22391, MPFR_RNDN);
        mpfr_add(r22393, r22384, r22392, MPFR_RNDN);
        if (mpfr_get_si(r22375, MPFR_RNDN)) { mpfr_set(r22394, r22383, MPFR_RNDN); } else { mpfr_set(r22394, r22393, MPFR_RNDN); };
        return mpfr_get_d(r22394, MPFR_RNDN);
}

static mpfr_t r22395, r22396, r22397, r22398, r22399, r22400, r22401, r22402, r22403, r22404, r22405, r22406, r22407, r22408, r22409, r22410, r22411, r22412, r22413, r22414, r22415, r22416;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r22395);
        mpfr_init_set_str(r22396, "214.4089819703991", 10, MPFR_RNDN);
        mpfr_init(r22397);
        mpfr_init_set_str(r22398, "2", 10, MPFR_RNDN);
        mpfr_init(r22399);
        mpfr_init(r22400);
        mpfr_init_set_str(r22401, "1.0", 10, MPFR_RNDN);
        mpfr_init(r22402);
        mpfr_init(r22403);
        mpfr_init(r22404);
        mpfr_init(r22405);
        mpfr_init_set_str(r22406, "1/16", 10, MPFR_RNDN);
        mpfr_init_set_str(r22407, "0.00390625", 10, MPFR_RNDN);
        mpfr_init_set_str(r22408, "4", 10, MPFR_RNDN);
        mpfr_init(r22409);
        mpfr_init(r22410);
        mpfr_init_set_str(r22411, "0.015625", 10, MPFR_RNDN);
        mpfr_init(r22412);
        mpfr_init(r22413);
        mpfr_init(r22414);
        mpfr_init(r22415);
        mpfr_init(r22416);
}

double f_dm(double i) {
        mpfr_set_d(r22395, i, MPFR_RNDN);
        ;
        mpfr_set_si(r22397, mpfr_cmp(r22395, r22396) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r22399, r22395, r22398, MPFR_RNDN);
        mpfr_add(r22400, r22395, r22395, MPFR_RNDN);
        ;
        mpfr_neg(r22402, r22401, MPFR_RNDN);
        mpfr_fma(r22403, r22400, r22400, r22402, MPFR_RNDN);
        mpfr_div(r22404, r22399, r22403, MPFR_RNDN);
        mpfr_mul(r22405, r22399, r22404, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_pow(r22409, r22395, r22408, MPFR_RNDN);
        mpfr_div(r22410, r22407, r22409, MPFR_RNDN);
        ;
        mpfr_div(r22412, r22411, r22395, MPFR_RNDN);
        mpfr_div(r22413, r22412, r22395, MPFR_RNDN);
        mpfr_add(r22414, r22410, r22413, MPFR_RNDN);
        mpfr_add(r22415, r22406, r22414, MPFR_RNDN);
        if (mpfr_get_si(r22397, MPFR_RNDN)) { mpfr_set(r22416, r22405, MPFR_RNDN); } else { mpfr_set(r22416, r22415, MPFR_RNDN); };
        return mpfr_get_d(r22416, MPFR_RNDN);
}

