#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 r26059 = beta;
        float r26060 = alpha;
        float r26061 = r26059 - r26060;
        float r26062 = r26060 + r26059;
        float r26063 = 2.0;
        float r26064 = r26062 + r26063;
        float r26065 = r26061 / r26064;
        float r26066 = 1.0;
        float r26067 = r26065 + r26066;
        float r26068 = r26067 / r26063;
        return r26068;
}

double f_id(double alpha, double beta) {
        double r26069 = beta;
        double r26070 = alpha;
        double r26071 = r26069 - r26070;
        double r26072 = r26070 + r26069;
        double r26073 = 2.0;
        double r26074 = r26072 + r26073;
        double r26075 = r26071 / r26074;
        double r26076 = 1.0;
        double r26077 = r26075 + r26076;
        double r26078 = r26077 / r26073;
        return r26078;
}


double f_of(float alpha, float beta) {
        float r26079 = beta;
        float r26080 = alpha;
        float r26081 = r26080 + r26079;
        float r26082 = 2.0;
        float r26083 = r26081 + r26082;
        float r26084 = r26079 / r26083;
        float r26085 = 1;
        float r26086 = r26085 / r26083;
        float r26087 = 1.0;
        float r26088 = -r26087;
        float r26089 = fma(r26080, r26086, r26088);
        float r26090 = r26084 - r26089;
        float r26091 = r26090 / r26082;
        float r26092 = 1.4864894681144355e-07;
        bool r26093 = r26091 <= r26092;
        float r26094 = 4.0;
        float r26095 = 2;
        float r26096 = pow(r26080, r26095);
        float r26097 = r26085 / r26096;
        float r26098 = r26094 * r26097;
        float r26099 = 8.0;
        float r26100 = 3;
        float r26101 = pow(r26080, r26100);
        float r26102 = r26085 / r26101;
        float r26103 = r26099 * r26102;
        float r26104 = r26085 / r26080;
        float r26105 = r26082 * r26104;
        float r26106 = r26103 + r26105;
        float r26107 = r26098 - r26106;
        float r26108 = r26084 - r26107;
        float r26109 = r26108 / r26082;
        float r26110 = r26093 ? r26109 : r26091;
        return r26110;
}

double f_od(double alpha, double beta) {
        double r26111 = beta;
        double r26112 = alpha;
        double r26113 = r26112 + r26111;
        double r26114 = 2.0;
        double r26115 = r26113 + r26114;
        double r26116 = r26111 / r26115;
        double r26117 = 1;
        double r26118 = r26117 / r26115;
        double r26119 = 1.0;
        double r26120 = -r26119;
        double r26121 = fma(r26112, r26118, r26120);
        double r26122 = r26116 - r26121;
        double r26123 = r26122 / r26114;
        double r26124 = 1.4864894681144355e-07;
        bool r26125 = r26123 <= r26124;
        double r26126 = 4.0;
        double r26127 = 2;
        double r26128 = pow(r26112, r26127);
        double r26129 = r26117 / r26128;
        double r26130 = r26126 * r26129;
        double r26131 = 8.0;
        double r26132 = 3;
        double r26133 = pow(r26112, r26132);
        double r26134 = r26117 / r26133;
        double r26135 = r26131 * r26134;
        double r26136 = r26117 / r26112;
        double r26137 = r26114 * r26136;
        double r26138 = r26135 + r26137;
        double r26139 = r26130 - r26138;
        double r26140 = r26116 - r26139;
        double r26141 = r26140 / r26114;
        double r26142 = r26125 ? r26141 : r26123;
        return r26142;
}

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 r26143, r26144, r26145, r26146, r26147, r26148, r26149, r26150, r26151, r26152;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26143);
        mpfr_init(r26144);
        mpfr_init(r26145);
        mpfr_init(r26146);
        mpfr_init_set_str(r26147, "2.0", 10, MPFR_RNDN);
        mpfr_init(r26148);
        mpfr_init(r26149);
        mpfr_init_set_str(r26150, "1.0", 10, MPFR_RNDN);
        mpfr_init(r26151);
        mpfr_init(r26152);
}

double f_im(double alpha, double beta) {
        mpfr_set_d(r26143, beta, MPFR_RNDN);
        mpfr_set_d(r26144, alpha, MPFR_RNDN);
        mpfr_sub(r26145, r26143, r26144, MPFR_RNDN);
        mpfr_add(r26146, r26144, r26143, MPFR_RNDN);
        ;
        mpfr_add(r26148, r26146, r26147, MPFR_RNDN);
        mpfr_div(r26149, r26145, r26148, MPFR_RNDN);
        ;
        mpfr_add(r26151, r26149, r26150, MPFR_RNDN);
        mpfr_div(r26152, r26151, r26147, MPFR_RNDN);
        return mpfr_get_d(r26152, MPFR_RNDN);
}

static mpfr_t r26153, r26154, r26155, r26156, r26157, r26158, r26159, r26160, r26161, r26162, r26163, r26164, r26165, r26166, r26167, r26168, r26169, r26170, r26171, r26172, r26173, r26174, r26175, r26176, r26177, r26178, r26179, r26180, r26181, r26182, r26183, r26184;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26153);
        mpfr_init(r26154);
        mpfr_init(r26155);
        mpfr_init_set_str(r26156, "2.0", 10, MPFR_RNDN);
        mpfr_init(r26157);
        mpfr_init(r26158);
        mpfr_init_set_str(r26159, "1", 10, MPFR_RNDN);
        mpfr_init(r26160);
        mpfr_init_set_str(r26161, "1.0", 10, MPFR_RNDN);
        mpfr_init(r26162);
        mpfr_init(r26163);
        mpfr_init(r26164);
        mpfr_init(r26165);
        mpfr_init_set_str(r26166, "1.4864894681144355e-07", 10, MPFR_RNDN);
        mpfr_init(r26167);
        mpfr_init_set_str(r26168, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r26169, "2", 10, MPFR_RNDN);
        mpfr_init(r26170);
        mpfr_init(r26171);
        mpfr_init(r26172);
        mpfr_init_set_str(r26173, "8.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r26174, "3", 10, MPFR_RNDN);
        mpfr_init(r26175);
        mpfr_init(r26176);
        mpfr_init(r26177);
        mpfr_init(r26178);
        mpfr_init(r26179);
        mpfr_init(r26180);
        mpfr_init(r26181);
        mpfr_init(r26182);
        mpfr_init(r26183);
        mpfr_init(r26184);
}

double f_fm(double alpha, double beta) {
        mpfr_set_d(r26153, beta, MPFR_RNDN);
        mpfr_set_d(r26154, alpha, MPFR_RNDN);
        mpfr_add(r26155, r26154, r26153, MPFR_RNDN);
        ;
        mpfr_add(r26157, r26155, r26156, MPFR_RNDN);
        mpfr_div(r26158, r26153, r26157, MPFR_RNDN);
        ;
        mpfr_div(r26160, r26159, r26157, MPFR_RNDN);
        ;
        mpfr_neg(r26162, r26161, MPFR_RNDN);
        mpfr_fma(r26163, r26154, r26160, r26162, MPFR_RNDN);
        mpfr_sub(r26164, r26158, r26163, MPFR_RNDN);
        mpfr_div(r26165, r26164, r26156, MPFR_RNDN);
        ;
        mpfr_set_si(r26167, mpfr_cmp(r26165, r26166) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26170, r26154, r26169, MPFR_RNDN);
        mpfr_div(r26171, r26159, r26170, MPFR_RNDN);
        mpfr_mul(r26172, r26168, r26171, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26175, r26154, r26174, MPFR_RNDN);
        mpfr_div(r26176, r26159, r26175, MPFR_RNDN);
        mpfr_mul(r26177, r26173, r26176, MPFR_RNDN);
        mpfr_div(r26178, r26159, r26154, MPFR_RNDN);
        mpfr_mul(r26179, r26156, r26178, MPFR_RNDN);
        mpfr_add(r26180, r26177, r26179, MPFR_RNDN);
        mpfr_sub(r26181, r26172, r26180, MPFR_RNDN);
        mpfr_sub(r26182, r26158, r26181, MPFR_RNDN);
        mpfr_div(r26183, r26182, r26156, MPFR_RNDN);
        if (mpfr_get_si(r26167, MPFR_RNDN)) { mpfr_set(r26184, r26183, MPFR_RNDN); } else { mpfr_set(r26184, r26165, MPFR_RNDN); };
        return mpfr_get_d(r26184, MPFR_RNDN);
}

static mpfr_t r26185, r26186, r26187, r26188, r26189, r26190, r26191, r26192, r26193, r26194, r26195, r26196, r26197, r26198, r26199, r26200, r26201, r26202, r26203, r26204, r26205, r26206, r26207, r26208, r26209, r26210, r26211, r26212, r26213, r26214, r26215, r26216;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26185);
        mpfr_init(r26186);
        mpfr_init(r26187);
        mpfr_init_set_str(r26188, "2.0", 10, MPFR_RNDN);
        mpfr_init(r26189);
        mpfr_init(r26190);
        mpfr_init_set_str(r26191, "1", 10, MPFR_RNDN);
        mpfr_init(r26192);
        mpfr_init_set_str(r26193, "1.0", 10, MPFR_RNDN);
        mpfr_init(r26194);
        mpfr_init(r26195);
        mpfr_init(r26196);
        mpfr_init(r26197);
        mpfr_init_set_str(r26198, "1.4864894681144355e-07", 10, MPFR_RNDN);
        mpfr_init(r26199);
        mpfr_init_set_str(r26200, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r26201, "2", 10, MPFR_RNDN);
        mpfr_init(r26202);
        mpfr_init(r26203);
        mpfr_init(r26204);
        mpfr_init_set_str(r26205, "8.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r26206, "3", 10, MPFR_RNDN);
        mpfr_init(r26207);
        mpfr_init(r26208);
        mpfr_init(r26209);
        mpfr_init(r26210);
        mpfr_init(r26211);
        mpfr_init(r26212);
        mpfr_init(r26213);
        mpfr_init(r26214);
        mpfr_init(r26215);
        mpfr_init(r26216);
}

double f_dm(double alpha, double beta) {
        mpfr_set_d(r26185, beta, MPFR_RNDN);
        mpfr_set_d(r26186, alpha, MPFR_RNDN);
        mpfr_add(r26187, r26186, r26185, MPFR_RNDN);
        ;
        mpfr_add(r26189, r26187, r26188, MPFR_RNDN);
        mpfr_div(r26190, r26185, r26189, MPFR_RNDN);
        ;
        mpfr_div(r26192, r26191, r26189, MPFR_RNDN);
        ;
        mpfr_neg(r26194, r26193, MPFR_RNDN);
        mpfr_fma(r26195, r26186, r26192, r26194, MPFR_RNDN);
        mpfr_sub(r26196, r26190, r26195, MPFR_RNDN);
        mpfr_div(r26197, r26196, r26188, MPFR_RNDN);
        ;
        mpfr_set_si(r26199, mpfr_cmp(r26197, r26198) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26202, r26186, r26201, MPFR_RNDN);
        mpfr_div(r26203, r26191, r26202, MPFR_RNDN);
        mpfr_mul(r26204, r26200, r26203, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26207, r26186, r26206, MPFR_RNDN);
        mpfr_div(r26208, r26191, r26207, MPFR_RNDN);
        mpfr_mul(r26209, r26205, r26208, MPFR_RNDN);
        mpfr_div(r26210, r26191, r26186, MPFR_RNDN);
        mpfr_mul(r26211, r26188, r26210, MPFR_RNDN);
        mpfr_add(r26212, r26209, r26211, MPFR_RNDN);
        mpfr_sub(r26213, r26204, r26212, MPFR_RNDN);
        mpfr_sub(r26214, r26190, r26213, MPFR_RNDN);
        mpfr_div(r26215, r26214, r26188, MPFR_RNDN);
        if (mpfr_get_si(r26199, MPFR_RNDN)) { mpfr_set(r26216, r26215, MPFR_RNDN); } else { mpfr_set(r26216, r26197, MPFR_RNDN); };
        return mpfr_get_d(r26216, MPFR_RNDN);
}

