#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 r26471 = i;
        float r26472 = r26471 * r26471;
        float r26473 = r26472 * r26472;
        float r26474 = 2;
        float r26475 = r26474 * r26471;
        float r26476 = r26475 * r26475;
        float r26477 = r26473 / r26476;
        float r26478 = 1.0;
        float r26479 = r26476 - r26478;
        float r26480 = r26477 / r26479;
        return r26480;
}

double f_id(double i) {
        double r26481 = i;
        double r26482 = r26481 * r26481;
        double r26483 = r26482 * r26482;
        double r26484 = 2;
        double r26485 = r26484 * r26481;
        double r26486 = r26485 * r26485;
        double r26487 = r26483 / r26486;
        double r26488 = 1.0;
        double r26489 = r26486 - r26488;
        double r26490 = r26487 / r26489;
        return r26490;
}


double f_of(float i) {
        float r26491 = i;
        float r26492 = 133029.44563007404;
        bool r26493 = r26491 <= r26492;
        float r26494 = 2;
        float r26495 = r26491 / r26494;
        float r26496 = r26495 * r26495;
        float r26497 = r26491 + r26491;
        float r26498 = r26497 * r26497;
        float r26499 = 1.0;
        float r26500 = r26498 - r26499;
        float r26501 = r26496 / r26500;
        float r26502 = 0.00390625;
        float r26503 = 4;
        float r26504 = pow(r26491, r26503);
        float r26505 = r26502 / r26504;
        float r26506 = 0.015625;
        float r26507 = r26506 / r26491;
        float r26508 = r26507 / r26491;
        float r26509 = r26505 + r26508;
        float r26510 = 1/16;
        float r26511 = r26509 + r26510;
        float r26512 = r26493 ? r26501 : r26511;
        return r26512;
}

double f_od(double i) {
        double r26513 = i;
        double r26514 = 133029.44563007404;
        bool r26515 = r26513 <= r26514;
        double r26516 = 2;
        double r26517 = r26513 / r26516;
        double r26518 = r26517 * r26517;
        double r26519 = r26513 + r26513;
        double r26520 = r26519 * r26519;
        double r26521 = 1.0;
        double r26522 = r26520 - r26521;
        double r26523 = r26518 / r26522;
        double r26524 = 0.00390625;
        double r26525 = 4;
        double r26526 = pow(r26513, r26525);
        double r26527 = r26524 / r26526;
        double r26528 = 0.015625;
        double r26529 = r26528 / r26513;
        double r26530 = r26529 / r26513;
        double r26531 = r26527 + r26530;
        double r26532 = 1/16;
        double r26533 = r26531 + r26532;
        double r26534 = r26515 ? r26523 : r26533;
        return r26534;
}

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 r26535, r26536, r26537, r26538, r26539, r26540, r26541, r26542, r26543, r26544;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r26535);
        mpfr_init(r26536);
        mpfr_init(r26537);
        mpfr_init_set_str(r26538, "2", 10, MPFR_RNDN);
        mpfr_init(r26539);
        mpfr_init(r26540);
        mpfr_init(r26541);
        mpfr_init_set_str(r26542, "1.0", 10, MPFR_RNDN);
        mpfr_init(r26543);
        mpfr_init(r26544);
}

double f_im(double i) {
        mpfr_set_d(r26535, i, MPFR_RNDN);
        mpfr_mul(r26536, r26535, r26535, MPFR_RNDN);
        mpfr_mul(r26537, r26536, r26536, MPFR_RNDN);
        ;
        mpfr_mul(r26539, r26538, r26535, MPFR_RNDN);
        mpfr_mul(r26540, r26539, r26539, MPFR_RNDN);
        mpfr_div(r26541, r26537, r26540, MPFR_RNDN);
        ;
        mpfr_sub(r26543, r26540, r26542, MPFR_RNDN);
        mpfr_div(r26544, r26541, r26543, MPFR_RNDN);
        return mpfr_get_d(r26544, MPFR_RNDN);
}

static mpfr_t r26545, r26546, r26547, r26548, r26549, r26550, r26551, r26552, r26553, r26554, r26555, r26556, r26557, r26558, r26559, r26560, r26561, r26562, r26563, r26564, r26565, r26566;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r26545);
        mpfr_init_set_str(r26546, "133029.44563007404", 10, MPFR_RNDN);
        mpfr_init(r26547);
        mpfr_init_set_str(r26548, "2", 10, MPFR_RNDN);
        mpfr_init(r26549);
        mpfr_init(r26550);
        mpfr_init(r26551);
        mpfr_init(r26552);
        mpfr_init_set_str(r26553, "1.0", 10, MPFR_RNDN);
        mpfr_init(r26554);
        mpfr_init(r26555);
        mpfr_init_set_str(r26556, "0.00390625", 10, MPFR_RNDN);
        mpfr_init_set_str(r26557, "4", 10, MPFR_RNDN);
        mpfr_init(r26558);
        mpfr_init(r26559);
        mpfr_init_set_str(r26560, "0.015625", 10, MPFR_RNDN);
        mpfr_init(r26561);
        mpfr_init(r26562);
        mpfr_init(r26563);
        mpfr_init_set_str(r26564, "1/16", 10, MPFR_RNDN);
        mpfr_init(r26565);
        mpfr_init(r26566);
}

double f_fm(double i) {
        mpfr_set_d(r26545, i, MPFR_RNDN);
        ;
        mpfr_set_si(r26547, mpfr_cmp(r26545, r26546) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r26549, r26545, r26548, MPFR_RNDN);
        mpfr_mul(r26550, r26549, r26549, MPFR_RNDN);
        mpfr_add(r26551, r26545, r26545, MPFR_RNDN);
        mpfr_mul(r26552, r26551, r26551, MPFR_RNDN);
        ;
        mpfr_sub(r26554, r26552, r26553, MPFR_RNDN);
        mpfr_div(r26555, r26550, r26554, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26558, r26545, r26557, MPFR_RNDN);
        mpfr_div(r26559, r26556, r26558, MPFR_RNDN);
        ;
        mpfr_div(r26561, r26560, r26545, MPFR_RNDN);
        mpfr_div(r26562, r26561, r26545, MPFR_RNDN);
        mpfr_add(r26563, r26559, r26562, MPFR_RNDN);
        ;
        mpfr_add(r26565, r26563, r26564, MPFR_RNDN);
        if (mpfr_get_si(r26547, MPFR_RNDN)) { mpfr_set(r26566, r26555, MPFR_RNDN); } else { mpfr_set(r26566, r26565, MPFR_RNDN); };
        return mpfr_get_d(r26566, MPFR_RNDN);
}

static mpfr_t r26567, r26568, r26569, r26570, r26571, r26572, r26573, r26574, r26575, r26576, r26577, r26578, r26579, r26580, r26581, r26582, r26583, r26584, r26585, r26586, r26587, r26588;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r26567);
        mpfr_init_set_str(r26568, "133029.44563007404", 10, MPFR_RNDN);
        mpfr_init(r26569);
        mpfr_init_set_str(r26570, "2", 10, MPFR_RNDN);
        mpfr_init(r26571);
        mpfr_init(r26572);
        mpfr_init(r26573);
        mpfr_init(r26574);
        mpfr_init_set_str(r26575, "1.0", 10, MPFR_RNDN);
        mpfr_init(r26576);
        mpfr_init(r26577);
        mpfr_init_set_str(r26578, "0.00390625", 10, MPFR_RNDN);
        mpfr_init_set_str(r26579, "4", 10, MPFR_RNDN);
        mpfr_init(r26580);
        mpfr_init(r26581);
        mpfr_init_set_str(r26582, "0.015625", 10, MPFR_RNDN);
        mpfr_init(r26583);
        mpfr_init(r26584);
        mpfr_init(r26585);
        mpfr_init_set_str(r26586, "1/16", 10, MPFR_RNDN);
        mpfr_init(r26587);
        mpfr_init(r26588);
}

double f_dm(double i) {
        mpfr_set_d(r26567, i, MPFR_RNDN);
        ;
        mpfr_set_si(r26569, mpfr_cmp(r26567, r26568) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r26571, r26567, r26570, MPFR_RNDN);
        mpfr_mul(r26572, r26571, r26571, MPFR_RNDN);
        mpfr_add(r26573, r26567, r26567, MPFR_RNDN);
        mpfr_mul(r26574, r26573, r26573, MPFR_RNDN);
        ;
        mpfr_sub(r26576, r26574, r26575, MPFR_RNDN);
        mpfr_div(r26577, r26572, r26576, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26580, r26567, r26579, MPFR_RNDN);
        mpfr_div(r26581, r26578, r26580, MPFR_RNDN);
        ;
        mpfr_div(r26583, r26582, r26567, MPFR_RNDN);
        mpfr_div(r26584, r26583, r26567, MPFR_RNDN);
        mpfr_add(r26585, r26581, r26584, MPFR_RNDN);
        ;
        mpfr_add(r26587, r26585, r26586, MPFR_RNDN);
        if (mpfr_get_si(r26569, MPFR_RNDN)) { mpfr_set(r26588, r26577, MPFR_RNDN); } else { mpfr_set(r26588, r26587, MPFR_RNDN); };
        return mpfr_get_d(r26588, MPFR_RNDN);
}

