#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 r26455 = i;
        float r26456 = r26455 * r26455;
        float r26457 = r26456 * r26456;
        float r26458 = 2;
        float r26459 = r26458 * r26455;
        float r26460 = r26459 * r26459;
        float r26461 = r26457 / r26460;
        float r26462 = 1.0;
        float r26463 = r26460 - r26462;
        float r26464 = r26461 / r26463;
        return r26464;
}

double f_id(double i) {
        double r26465 = i;
        double r26466 = r26465 * r26465;
        double r26467 = r26466 * r26466;
        double r26468 = 2;
        double r26469 = r26468 * r26465;
        double r26470 = r26469 * r26469;
        double r26471 = r26467 / r26470;
        double r26472 = 1.0;
        double r26473 = r26470 - r26472;
        double r26474 = r26471 / r26473;
        return r26474;
}


double f_of(float i) {
        float r26475 = i;
        float r26476 = 133029.44563007404;
        bool r26477 = r26475 <= r26476;
        float r26478 = 2;
        float r26479 = r26475 / r26478;
        float r26480 = r26479 * r26479;
        float r26481 = r26475 + r26475;
        float r26482 = r26481 * r26481;
        float r26483 = 1.0;
        float r26484 = r26482 - r26483;
        float r26485 = r26480 / r26484;
        float r26486 = 0.00390625;
        float r26487 = 4;
        float r26488 = pow(r26475, r26487);
        float r26489 = r26486 / r26488;
        float r26490 = 0.015625;
        float r26491 = r26490 / r26475;
        float r26492 = r26491 / r26475;
        float r26493 = r26489 + r26492;
        float r26494 = 1/16;
        float r26495 = r26493 + r26494;
        float r26496 = r26477 ? r26485 : r26495;
        return r26496;
}

double f_od(double i) {
        double r26497 = i;
        double r26498 = 133029.44563007404;
        bool r26499 = r26497 <= r26498;
        double r26500 = 2;
        double r26501 = r26497 / r26500;
        double r26502 = r26501 * r26501;
        double r26503 = r26497 + r26497;
        double r26504 = r26503 * r26503;
        double r26505 = 1.0;
        double r26506 = r26504 - r26505;
        double r26507 = r26502 / r26506;
        double r26508 = 0.00390625;
        double r26509 = 4;
        double r26510 = pow(r26497, r26509);
        double r26511 = r26508 / r26510;
        double r26512 = 0.015625;
        double r26513 = r26512 / r26497;
        double r26514 = r26513 / r26497;
        double r26515 = r26511 + r26514;
        double r26516 = 1/16;
        double r26517 = r26515 + r26516;
        double r26518 = r26499 ? r26507 : r26517;
        return r26518;
}

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 r26519, r26520, r26521, r26522, r26523, r26524, r26525, r26526, r26527, r26528;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r26519);
        mpfr_init(r26520);
        mpfr_init(r26521);
        mpfr_init_set_str(r26522, "2", 10, MPFR_RNDN);
        mpfr_init(r26523);
        mpfr_init(r26524);
        mpfr_init(r26525);
        mpfr_init_set_str(r26526, "1.0", 10, MPFR_RNDN);
        mpfr_init(r26527);
        mpfr_init(r26528);
}

double f_im(double i) {
        mpfr_set_d(r26519, i, MPFR_RNDN);
        mpfr_mul(r26520, r26519, r26519, MPFR_RNDN);
        mpfr_mul(r26521, r26520, r26520, MPFR_RNDN);
        ;
        mpfr_mul(r26523, r26522, r26519, MPFR_RNDN);
        mpfr_mul(r26524, r26523, r26523, MPFR_RNDN);
        mpfr_div(r26525, r26521, r26524, MPFR_RNDN);
        ;
        mpfr_sub(r26527, r26524, r26526, MPFR_RNDN);
        mpfr_div(r26528, r26525, r26527, MPFR_RNDN);
        return mpfr_get_d(r26528, MPFR_RNDN);
}

static mpfr_t r26529, r26530, r26531, r26532, r26533, r26534, r26535, r26536, r26537, r26538, r26539, r26540, r26541, r26542, r26543, r26544, r26545, r26546, r26547, r26548, r26549, r26550;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r26529);
        mpfr_init_set_str(r26530, "133029.44563007404", 10, MPFR_RNDN);
        mpfr_init(r26531);
        mpfr_init_set_str(r26532, "2", 10, MPFR_RNDN);
        mpfr_init(r26533);
        mpfr_init(r26534);
        mpfr_init(r26535);
        mpfr_init(r26536);
        mpfr_init_set_str(r26537, "1.0", 10, MPFR_RNDN);
        mpfr_init(r26538);
        mpfr_init(r26539);
        mpfr_init_set_str(r26540, "0.00390625", 10, MPFR_RNDN);
        mpfr_init_set_str(r26541, "4", 10, MPFR_RNDN);
        mpfr_init(r26542);
        mpfr_init(r26543);
        mpfr_init_set_str(r26544, "0.015625", 10, MPFR_RNDN);
        mpfr_init(r26545);
        mpfr_init(r26546);
        mpfr_init(r26547);
        mpfr_init_set_str(r26548, "1/16", 10, MPFR_RNDN);
        mpfr_init(r26549);
        mpfr_init(r26550);
}

double f_fm(double i) {
        mpfr_set_d(r26529, i, MPFR_RNDN);
        ;
        mpfr_set_si(r26531, mpfr_cmp(r26529, r26530) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r26533, r26529, r26532, MPFR_RNDN);
        mpfr_mul(r26534, r26533, r26533, MPFR_RNDN);
        mpfr_add(r26535, r26529, r26529, MPFR_RNDN);
        mpfr_mul(r26536, r26535, r26535, MPFR_RNDN);
        ;
        mpfr_sub(r26538, r26536, r26537, MPFR_RNDN);
        mpfr_div(r26539, r26534, r26538, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26542, r26529, r26541, MPFR_RNDN);
        mpfr_div(r26543, r26540, r26542, MPFR_RNDN);
        ;
        mpfr_div(r26545, r26544, r26529, MPFR_RNDN);
        mpfr_div(r26546, r26545, r26529, MPFR_RNDN);
        mpfr_add(r26547, r26543, r26546, MPFR_RNDN);
        ;
        mpfr_add(r26549, r26547, r26548, MPFR_RNDN);
        if (mpfr_get_si(r26531, MPFR_RNDN)) { mpfr_set(r26550, r26539, MPFR_RNDN); } else { mpfr_set(r26550, r26549, MPFR_RNDN); };
        return mpfr_get_d(r26550, MPFR_RNDN);
}

static mpfr_t r26551, r26552, r26553, r26554, r26555, r26556, r26557, r26558, r26559, r26560, r26561, r26562, r26563, r26564, r26565, r26566, r26567, r26568, r26569, r26570, r26571, r26572;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r26551);
        mpfr_init_set_str(r26552, "133029.44563007404", 10, MPFR_RNDN);
        mpfr_init(r26553);
        mpfr_init_set_str(r26554, "2", 10, MPFR_RNDN);
        mpfr_init(r26555);
        mpfr_init(r26556);
        mpfr_init(r26557);
        mpfr_init(r26558);
        mpfr_init_set_str(r26559, "1.0", 10, MPFR_RNDN);
        mpfr_init(r26560);
        mpfr_init(r26561);
        mpfr_init_set_str(r26562, "0.00390625", 10, MPFR_RNDN);
        mpfr_init_set_str(r26563, "4", 10, MPFR_RNDN);
        mpfr_init(r26564);
        mpfr_init(r26565);
        mpfr_init_set_str(r26566, "0.015625", 10, MPFR_RNDN);
        mpfr_init(r26567);
        mpfr_init(r26568);
        mpfr_init(r26569);
        mpfr_init_set_str(r26570, "1/16", 10, MPFR_RNDN);
        mpfr_init(r26571);
        mpfr_init(r26572);
}

double f_dm(double i) {
        mpfr_set_d(r26551, i, MPFR_RNDN);
        ;
        mpfr_set_si(r26553, mpfr_cmp(r26551, r26552) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r26555, r26551, r26554, MPFR_RNDN);
        mpfr_mul(r26556, r26555, r26555, MPFR_RNDN);
        mpfr_add(r26557, r26551, r26551, MPFR_RNDN);
        mpfr_mul(r26558, r26557, r26557, MPFR_RNDN);
        ;
        mpfr_sub(r26560, r26558, r26559, MPFR_RNDN);
        mpfr_div(r26561, r26556, r26560, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26564, r26551, r26563, MPFR_RNDN);
        mpfr_div(r26565, r26562, r26564, MPFR_RNDN);
        ;
        mpfr_div(r26567, r26566, r26551, MPFR_RNDN);
        mpfr_div(r26568, r26567, r26551, MPFR_RNDN);
        mpfr_add(r26569, r26565, r26568, MPFR_RNDN);
        ;
        mpfr_add(r26571, r26569, r26570, MPFR_RNDN);
        if (mpfr_get_si(r26553, MPFR_RNDN)) { mpfr_set(r26572, r26561, MPFR_RNDN); } else { mpfr_set(r26572, r26571, MPFR_RNDN); };
        return mpfr_get_d(r26572, MPFR_RNDN);
}

