#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 r9522 = i;
        float r9523 = r9522 * r9522;
        float r9524 = r9523 * r9523;
        float r9525 = 2;
        float r9526 = r9525 * r9522;
        float r9527 = r9526 * r9526;
        float r9528 = r9524 / r9527;
        float r9529 = 1.0;
        float r9530 = r9527 - r9529;
        float r9531 = r9528 / r9530;
        return r9531;
}

double f_id(double i) {
        double r9532 = i;
        double r9533 = r9532 * r9532;
        double r9534 = r9533 * r9533;
        double r9535 = 2;
        double r9536 = r9535 * r9532;
        double r9537 = r9536 * r9536;
        double r9538 = r9534 / r9537;
        double r9539 = 1.0;
        double r9540 = r9537 - r9539;
        double r9541 = r9538 / r9540;
        return r9541;
}


double f_of(float i) {
        float r9542 = i;
        float r9543 = 242.25612442363837;
        bool r9544 = r9542 <= r9543;
        float r9545 = 2;
        float r9546 = r9542 / r9545;
        float r9547 = r9545 * r9542;
        float r9548 = 1.0;
        float r9549 = -r9548;
        float r9550 = fma(r9547, r9547, r9549);
        float r9551 = r9546 / r9550;
        float r9552 = r9551 * r9546;
        float r9553 = 0.0078125;
        float r9554 = 5;
        float r9555 = pow(r9542, r9554);
        float r9556 = r9553 / r9555;
        float r9557 = 1;
        float r9558 = r9557 / r9542;
        float r9559 = 0.03125;
        float r9560 = r9559 / r9542;
        float r9561 = 1/8;
        float r9562 = fma(r9558, r9560, r9561);
        float r9563 = fma(r9556, r9542, r9562);
        float r9564 = r9563 / r9545;
        float r9565 = r9544 ? r9552 : r9564;
        return r9565;
}

double f_od(double i) {
        double r9566 = i;
        double r9567 = 242.25612442363837;
        bool r9568 = r9566 <= r9567;
        double r9569 = 2;
        double r9570 = r9566 / r9569;
        double r9571 = r9569 * r9566;
        double r9572 = 1.0;
        double r9573 = -r9572;
        double r9574 = fma(r9571, r9571, r9573);
        double r9575 = r9570 / r9574;
        double r9576 = r9575 * r9570;
        double r9577 = 0.0078125;
        double r9578 = 5;
        double r9579 = pow(r9566, r9578);
        double r9580 = r9577 / r9579;
        double r9581 = 1;
        double r9582 = r9581 / r9566;
        double r9583 = 0.03125;
        double r9584 = r9583 / r9566;
        double r9585 = 1/8;
        double r9586 = fma(r9582, r9584, r9585);
        double r9587 = fma(r9580, r9566, r9586);
        double r9588 = r9587 / r9569;
        double r9589 = r9568 ? r9576 : r9588;
        return r9589;
}

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 r9590, r9591, r9592, r9593, r9594, r9595, r9596, r9597, r9598, r9599;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r9590);
        mpfr_init(r9591);
        mpfr_init(r9592);
        mpfr_init_set_str(r9593, "2", 10, MPFR_RNDN);
        mpfr_init(r9594);
        mpfr_init(r9595);
        mpfr_init(r9596);
        mpfr_init_set_str(r9597, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9598);
        mpfr_init(r9599);
}

double f_im(double i) {
        mpfr_set_d(r9590, i, MPFR_RNDN);
        mpfr_mul(r9591, r9590, r9590, MPFR_RNDN);
        mpfr_mul(r9592, r9591, r9591, MPFR_RNDN);
        ;
        mpfr_mul(r9594, r9593, r9590, MPFR_RNDN);
        mpfr_mul(r9595, r9594, r9594, MPFR_RNDN);
        mpfr_div(r9596, r9592, r9595, MPFR_RNDN);
        ;
        mpfr_sub(r9598, r9595, r9597, MPFR_RNDN);
        mpfr_div(r9599, r9596, r9598, MPFR_RNDN);
        return mpfr_get_d(r9599, MPFR_RNDN);
}

static mpfr_t r9600, r9601, r9602, r9603, r9604, r9605, r9606, r9607, r9608, r9609, r9610, r9611, r9612, r9613, r9614, r9615, r9616, r9617, r9618, r9619, r9620, r9621, r9622, r9623;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9600);
        mpfr_init_set_str(r9601, "242.25612442363837", 10, MPFR_RNDN);
        mpfr_init(r9602);
        mpfr_init_set_str(r9603, "2", 10, MPFR_RNDN);
        mpfr_init(r9604);
        mpfr_init(r9605);
        mpfr_init_set_str(r9606, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9607);
        mpfr_init(r9608);
        mpfr_init(r9609);
        mpfr_init(r9610);
        mpfr_init_set_str(r9611, "0.0078125", 10, MPFR_RNDN);
        mpfr_init_set_str(r9612, "5", 10, MPFR_RNDN);
        mpfr_init(r9613);
        mpfr_init(r9614);
        mpfr_init_set_str(r9615, "1", 10, MPFR_RNDN);
        mpfr_init(r9616);
        mpfr_init_set_str(r9617, "0.03125", 10, MPFR_RNDN);
        mpfr_init(r9618);
        mpfr_init_set_str(r9619, "1/8", 10, MPFR_RNDN);
        mpfr_init(r9620);
        mpfr_init(r9621);
        mpfr_init(r9622);
        mpfr_init(r9623);
}

double f_fm(double i) {
        mpfr_set_d(r9600, i, MPFR_RNDN);
        ;
        mpfr_set_si(r9602, mpfr_cmp(r9600, r9601) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r9604, r9600, r9603, MPFR_RNDN);
        mpfr_mul(r9605, r9603, r9600, MPFR_RNDN);
        ;
        mpfr_neg(r9607, r9606, MPFR_RNDN);
        mpfr_fma(r9608, r9605, r9605, r9607, MPFR_RNDN);
        mpfr_div(r9609, r9604, r9608, MPFR_RNDN);
        mpfr_mul(r9610, r9609, r9604, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r9613, r9600, r9612, MPFR_RNDN);
        mpfr_div(r9614, r9611, r9613, MPFR_RNDN);
        ;
        mpfr_div(r9616, r9615, r9600, MPFR_RNDN);
        ;
        mpfr_div(r9618, r9617, r9600, MPFR_RNDN);
        ;
        mpfr_fma(r9620, r9616, r9618, r9619, MPFR_RNDN);
        mpfr_fma(r9621, r9614, r9600, r9620, MPFR_RNDN);
        mpfr_div(r9622, r9621, r9603, MPFR_RNDN);
        if (mpfr_get_si(r9602, MPFR_RNDN)) { mpfr_set(r9623, r9610, MPFR_RNDN); } else { mpfr_set(r9623, r9622, MPFR_RNDN); };
        return mpfr_get_d(r9623, MPFR_RNDN);
}

static mpfr_t r9624, r9625, r9626, r9627, r9628, r9629, r9630, r9631, r9632, r9633, r9634, r9635, r9636, r9637, r9638, r9639, r9640, r9641, r9642, r9643, r9644, r9645, r9646, r9647;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9624);
        mpfr_init_set_str(r9625, "242.25612442363837", 10, MPFR_RNDN);
        mpfr_init(r9626);
        mpfr_init_set_str(r9627, "2", 10, MPFR_RNDN);
        mpfr_init(r9628);
        mpfr_init(r9629);
        mpfr_init_set_str(r9630, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9631);
        mpfr_init(r9632);
        mpfr_init(r9633);
        mpfr_init(r9634);
        mpfr_init_set_str(r9635, "0.0078125", 10, MPFR_RNDN);
        mpfr_init_set_str(r9636, "5", 10, MPFR_RNDN);
        mpfr_init(r9637);
        mpfr_init(r9638);
        mpfr_init_set_str(r9639, "1", 10, MPFR_RNDN);
        mpfr_init(r9640);
        mpfr_init_set_str(r9641, "0.03125", 10, MPFR_RNDN);
        mpfr_init(r9642);
        mpfr_init_set_str(r9643, "1/8", 10, MPFR_RNDN);
        mpfr_init(r9644);
        mpfr_init(r9645);
        mpfr_init(r9646);
        mpfr_init(r9647);
}

double f_dm(double i) {
        mpfr_set_d(r9624, i, MPFR_RNDN);
        ;
        mpfr_set_si(r9626, mpfr_cmp(r9624, r9625) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r9628, r9624, r9627, MPFR_RNDN);
        mpfr_mul(r9629, r9627, r9624, MPFR_RNDN);
        ;
        mpfr_neg(r9631, r9630, MPFR_RNDN);
        mpfr_fma(r9632, r9629, r9629, r9631, MPFR_RNDN);
        mpfr_div(r9633, r9628, r9632, MPFR_RNDN);
        mpfr_mul(r9634, r9633, r9628, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r9637, r9624, r9636, MPFR_RNDN);
        mpfr_div(r9638, r9635, r9637, MPFR_RNDN);
        ;
        mpfr_div(r9640, r9639, r9624, MPFR_RNDN);
        ;
        mpfr_div(r9642, r9641, r9624, MPFR_RNDN);
        ;
        mpfr_fma(r9644, r9640, r9642, r9643, MPFR_RNDN);
        mpfr_fma(r9645, r9638, r9624, r9644, MPFR_RNDN);
        mpfr_div(r9646, r9645, r9627, MPFR_RNDN);
        if (mpfr_get_si(r9626, MPFR_RNDN)) { mpfr_set(r9647, r9634, MPFR_RNDN); } else { mpfr_set(r9647, r9646, MPFR_RNDN); };
        return mpfr_get_d(r9647, MPFR_RNDN);
}

