#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Octave 3.8, jcobi/1";

double f_if(float alpha, float beta) {
        float r10539 = beta;
        float r10540 = alpha;
        float r10541 = r10539 - r10540;
        float r10542 = r10540 + r10539;
        float r10543 = 2.0;
        float r10544 = r10542 + r10543;
        float r10545 = r10541 / r10544;
        float r10546 = 1.0;
        float r10547 = r10545 + r10546;
        float r10548 = r10547 / r10543;
        return r10548;
}

double f_id(double alpha, double beta) {
        double r10549 = beta;
        double r10550 = alpha;
        double r10551 = r10549 - r10550;
        double r10552 = r10550 + r10549;
        double r10553 = 2.0;
        double r10554 = r10552 + r10553;
        double r10555 = r10551 / r10554;
        double r10556 = 1.0;
        double r10557 = r10555 + r10556;
        double r10558 = r10557 / r10553;
        return r10558;
}


double f_of(float alpha, float beta) {
        float r10559 = beta;
        float r10560 = alpha;
        float r10561 = r10560 + r10559;
        float r10562 = 2.0;
        float r10563 = r10561 + r10562;
        float r10564 = r10559 / r10563;
        float r10565 = 1;
        float r10566 = r10565 / r10563;
        float r10567 = 1.0;
        float r10568 = -r10567;
        float r10569 = fma(r10560, r10566, r10568);
        float r10570 = r10564 - r10569;
        float r10571 = r10570 / r10562;
        return r10571;
}

double f_od(double alpha, double beta) {
        double r10572 = beta;
        double r10573 = alpha;
        double r10574 = r10573 + r10572;
        double r10575 = 2.0;
        double r10576 = r10574 + r10575;
        double r10577 = r10572 / r10576;
        double r10578 = 1;
        double r10579 = r10578 / r10576;
        double r10580 = 1.0;
        double r10581 = -r10580;
        double r10582 = fma(r10573, r10579, r10581);
        double r10583 = r10577 - r10582;
        double r10584 = r10583 / r10575;
        return r10584;
}

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 r10585, r10586, r10587, r10588, r10589, r10590, r10591, r10592, r10593, r10594;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r10585);
        mpfr_init(r10586);
        mpfr_init(r10587);
        mpfr_init(r10588);
        mpfr_init_set_str(r10589, "2.0", 10, MPFR_RNDN);
        mpfr_init(r10590);
        mpfr_init(r10591);
        mpfr_init_set_str(r10592, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10593);
        mpfr_init(r10594);
}

double f_im(double alpha, double beta) {
        mpfr_set_d(r10585, beta, MPFR_RNDN);
        mpfr_set_d(r10586, alpha, MPFR_RNDN);
        mpfr_sub(r10587, r10585, r10586, MPFR_RNDN);
        mpfr_add(r10588, r10586, r10585, MPFR_RNDN);
        ;
        mpfr_add(r10590, r10588, r10589, MPFR_RNDN);
        mpfr_div(r10591, r10587, r10590, MPFR_RNDN);
        ;
        mpfr_add(r10593, r10591, r10592, MPFR_RNDN);
        mpfr_div(r10594, r10593, r10589, MPFR_RNDN);
        return mpfr_get_d(r10594, MPFR_RNDN);
}

static mpfr_t r10595, r10596, r10597, r10598, r10599, r10600, r10601, r10602, r10603, r10604, r10605, r10606, r10607;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r10595);
        mpfr_init(r10596);
        mpfr_init(r10597);
        mpfr_init_set_str(r10598, "2.0", 10, MPFR_RNDN);
        mpfr_init(r10599);
        mpfr_init(r10600);
        mpfr_init_set_str(r10601, "1", 10, MPFR_RNDN);
        mpfr_init(r10602);
        mpfr_init_set_str(r10603, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10604);
        mpfr_init(r10605);
        mpfr_init(r10606);
        mpfr_init(r10607);
}

double f_fm(double alpha, double beta) {
        mpfr_set_d(r10595, beta, MPFR_RNDN);
        mpfr_set_d(r10596, alpha, MPFR_RNDN);
        mpfr_add(r10597, r10596, r10595, MPFR_RNDN);
        ;
        mpfr_add(r10599, r10597, r10598, MPFR_RNDN);
        mpfr_div(r10600, r10595, r10599, MPFR_RNDN);
        ;
        mpfr_div(r10602, r10601, r10599, MPFR_RNDN);
        ;
        mpfr_neg(r10604, r10603, MPFR_RNDN);
        mpfr_fma(r10605, r10596, r10602, r10604, MPFR_RNDN);
        mpfr_sub(r10606, r10600, r10605, MPFR_RNDN);
        mpfr_div(r10607, r10606, r10598, MPFR_RNDN);
        return mpfr_get_d(r10607, MPFR_RNDN);
}

static mpfr_t r10608, r10609, r10610, r10611, r10612, r10613, r10614, r10615, r10616, r10617, r10618, r10619, r10620;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r10608);
        mpfr_init(r10609);
        mpfr_init(r10610);
        mpfr_init_set_str(r10611, "2.0", 10, MPFR_RNDN);
        mpfr_init(r10612);
        mpfr_init(r10613);
        mpfr_init_set_str(r10614, "1", 10, MPFR_RNDN);
        mpfr_init(r10615);
        mpfr_init_set_str(r10616, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10617);
        mpfr_init(r10618);
        mpfr_init(r10619);
        mpfr_init(r10620);
}

double f_dm(double alpha, double beta) {
        mpfr_set_d(r10608, beta, MPFR_RNDN);
        mpfr_set_d(r10609, alpha, MPFR_RNDN);
        mpfr_add(r10610, r10609, r10608, MPFR_RNDN);
        ;
        mpfr_add(r10612, r10610, r10611, MPFR_RNDN);
        mpfr_div(r10613, r10608, r10612, MPFR_RNDN);
        ;
        mpfr_div(r10615, r10614, r10612, MPFR_RNDN);
        ;
        mpfr_neg(r10617, r10616, MPFR_RNDN);
        mpfr_fma(r10618, r10609, r10615, r10617, MPFR_RNDN);
        mpfr_sub(r10619, r10613, r10618, MPFR_RNDN);
        mpfr_div(r10620, r10619, r10611, MPFR_RNDN);
        return mpfr_get_d(r10620, MPFR_RNDN);
}

