#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 r9695 = i;
        float r9696 = r9695 * r9695;
        float r9697 = r9696 * r9696;
        float r9698 = 2.0f;
        float r9699 = r9698 * r9695;
        float r9700 = r9699 * r9699;
        float r9701 = r9697 / r9700;
        float r9702 = 1.0f;
        float r9703 = r9700 - r9702;
        float r9704 = r9701 / r9703;
        return r9704;
}

double f_id(double i) {
        double r9705 = i;
        double r9706 = r9705 * r9705;
        double r9707 = r9706 * r9706;
        double r9708 = 2.0;
        double r9709 = r9708 * r9705;
        double r9710 = r9709 * r9709;
        double r9711 = r9707 / r9710;
        double r9712 = 1.0;
        double r9713 = r9710 - r9712;
        double r9714 = r9711 / r9713;
        return r9714;
}


double f_of(float i) {
        float r9715 = 1.0f;
        float r9716 = 16.0f;
        float r9717 = 4.0f;
        float r9718 = i;
        float r9719 = r9718 * r9718;
        float r9720 = r9717 / r9719;
        float r9721 = r9716 - r9720;
        float r9722 = r9715 / r9721;
        return r9722;
}

double f_od(double i) {
        double r9723 = 1.0;
        double r9724 = 16.0;
        double r9725 = 4.0;
        double r9726 = i;
        double r9727 = r9726 * r9726;
        double r9728 = r9725 / r9727;
        double r9729 = r9724 - r9728;
        double r9730 = r9723 / r9729;
        return r9730;
}

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 r9731, r9732, r9733, r9734, r9735, r9736, r9737, r9738, r9739, r9740;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9731);
        mpfr_init(r9732);
        mpfr_init(r9733);
        mpfr_init_set_str(r9734, "2", 10, MPFR_RNDN);
        mpfr_init(r9735);
        mpfr_init(r9736);
        mpfr_init(r9737);
        mpfr_init_set_str(r9738, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9739);
        mpfr_init(r9740);
}

double f_im(double i) {
        mpfr_set_d(r9731, i, MPFR_RNDN);
        mpfr_mul(r9732, r9731, r9731, MPFR_RNDN);
        mpfr_mul(r9733, r9732, r9732, MPFR_RNDN);
        ;
        mpfr_mul(r9735, r9734, r9731, MPFR_RNDN);
        mpfr_mul(r9736, r9735, r9735, MPFR_RNDN);
        mpfr_div(r9737, r9733, r9736, MPFR_RNDN);
        ;
        mpfr_sub(r9739, r9736, r9738, MPFR_RNDN);
        mpfr_div(r9740, r9737, r9739, MPFR_RNDN);
        return mpfr_get_d(r9740, MPFR_RNDN);
}

static mpfr_t r9741, r9742, r9743, r9744, r9745, r9746, r9747, r9748;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r9741, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r9742, "16", 10, MPFR_RNDN);
        mpfr_init_set_str(r9743, "4.0", 10, MPFR_RNDN);
        mpfr_init(r9744);
        mpfr_init(r9745);
        mpfr_init(r9746);
        mpfr_init(r9747);
        mpfr_init(r9748);
}

double f_fm(double i) {
        ;
        ;
        ;
        mpfr_set_d(r9744, i, MPFR_RNDN);
        mpfr_mul(r9745, r9744, r9744, MPFR_RNDN);
        mpfr_div(r9746, r9743, r9745, MPFR_RNDN);
        mpfr_sub(r9747, r9742, r9746, MPFR_RNDN);
        mpfr_div(r9748, r9741, r9747, MPFR_RNDN);
        return mpfr_get_d(r9748, MPFR_RNDN);
}

static mpfr_t r9749, r9750, r9751, r9752, r9753, r9754, r9755, r9756;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r9749, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r9750, "16", 10, MPFR_RNDN);
        mpfr_init_set_str(r9751, "4.0", 10, MPFR_RNDN);
        mpfr_init(r9752);
        mpfr_init(r9753);
        mpfr_init(r9754);
        mpfr_init(r9755);
        mpfr_init(r9756);
}

double f_dm(double i) {
        ;
        ;
        ;
        mpfr_set_d(r9752, i, MPFR_RNDN);
        mpfr_mul(r9753, r9752, r9752, MPFR_RNDN);
        mpfr_div(r9754, r9751, r9753, MPFR_RNDN);
        mpfr_sub(r9755, r9750, r9754, MPFR_RNDN);
        mpfr_div(r9756, r9749, r9755, MPFR_RNDN);
        return mpfr_get_d(r9756, MPFR_RNDN);
}

