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

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

double f_if(float alpha, float beta, float i) {
        float r56507064 = i;
        float r56507065 = alpha;
        float r56507066 = beta;
        float r56507067 = r56507065 + r56507066;
        float r56507068 = r56507067 + r56507064;
        float r56507069 = r56507064 * r56507068;
        float r56507070 = r56507066 * r56507065;
        float r56507071 = r56507070 + r56507069;
        float r56507072 = r56507069 * r56507071;
        float r56507073 = 2;
        float r56507074 = r56507073 * r56507064;
        float r56507075 = r56507067 + r56507074;
        float r56507076 = r56507075 * r56507075;
        float r56507077 = r56507072 / r56507076;
        float r56507078 = 1.0;
        float r56507079 = r56507076 - r56507078;
        float r56507080 = r56507077 / r56507079;
        return r56507080;
}

double f_id(double alpha, double beta, double i) {
        double r56507081 = i;
        double r56507082 = alpha;
        double r56507083 = beta;
        double r56507084 = r56507082 + r56507083;
        double r56507085 = r56507084 + r56507081;
        double r56507086 = r56507081 * r56507085;
        double r56507087 = r56507083 * r56507082;
        double r56507088 = r56507087 + r56507086;
        double r56507089 = r56507086 * r56507088;
        double r56507090 = 2;
        double r56507091 = r56507090 * r56507081;
        double r56507092 = r56507084 + r56507091;
        double r56507093 = r56507092 * r56507092;
        double r56507094 = r56507089 / r56507093;
        double r56507095 = 1.0;
        double r56507096 = r56507093 - r56507095;
        double r56507097 = r56507094 / r56507096;
        return r56507097;
}


double f_of(float alpha, float beta, float i) {
        float r56507098 = alpha;
        float r56507099 = beta;
        float r56507100 = r56507098 + r56507099;
        float r56507101 = 1.334759629949433e+154;
        bool r56507102 = r56507100 <= r56507101;
        float r56507103 = i;
        float r56507104 = r56507100 + r56507103;
        float r56507105 = r56507103 * r56507104;
        float r56507106 = 2;
        float r56507107 = r56507106 * r56507103;
        float r56507108 = r56507100 + r56507107;
        float r56507109 = r56507105 / r56507108;
        float r56507110 = r56507108 * r56507108;
        float r56507111 = 1.0;
        float r56507112 = r56507110 - r56507111;
        float r56507113 = sqrt(r56507112);
        float r56507114 = r56507109 / r56507113;
        float r56507115 = r56507099 * r56507098;
        float r56507116 = r56507115 + r56507105;
        float r56507117 = r56507116 / r56507108;
        float r56507118 = r56507117 / r56507113;
        float r56507119 = r56507114 * r56507118;
        float r56507120 = 0;
        float r56507121 = r56507102 ? r56507119 : r56507120;
        return r56507121;
}

double f_od(double alpha, double beta, double i) {
        double r56507122 = alpha;
        double r56507123 = beta;
        double r56507124 = r56507122 + r56507123;
        double r56507125 = 1.334759629949433e+154;
        bool r56507126 = r56507124 <= r56507125;
        double r56507127 = i;
        double r56507128 = r56507124 + r56507127;
        double r56507129 = r56507127 * r56507128;
        double r56507130 = 2;
        double r56507131 = r56507130 * r56507127;
        double r56507132 = r56507124 + r56507131;
        double r56507133 = r56507129 / r56507132;
        double r56507134 = r56507132 * r56507132;
        double r56507135 = 1.0;
        double r56507136 = r56507134 - r56507135;
        double r56507137 = sqrt(r56507136);
        double r56507138 = r56507133 / r56507137;
        double r56507139 = r56507123 * r56507122;
        double r56507140 = r56507139 + r56507129;
        double r56507141 = r56507140 / r56507132;
        double r56507142 = r56507141 / r56507137;
        double r56507143 = r56507138 * r56507142;
        double r56507144 = 0;
        double r56507145 = r56507126 ? r56507143 : r56507144;
        return r56507145;
}

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 r56507146, r56507147, r56507148, r56507149, r56507150, r56507151, r56507152, r56507153, r56507154, r56507155, r56507156, r56507157, r56507158, r56507159, r56507160, r56507161, r56507162;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r56507146);
        mpfr_init(r56507147);
        mpfr_init(r56507148);
        mpfr_init(r56507149);
        mpfr_init(r56507150);
        mpfr_init(r56507151);
        mpfr_init(r56507152);
        mpfr_init(r56507153);
        mpfr_init(r56507154);
        mpfr_init_set_str(r56507155, "2", 10, MPFR_RNDN);
        mpfr_init(r56507156);
        mpfr_init(r56507157);
        mpfr_init(r56507158);
        mpfr_init(r56507159);
        mpfr_init_set_str(r56507160, "1.0", 10, MPFR_RNDN);
        mpfr_init(r56507161);
        mpfr_init(r56507162);
}

double f_im(double alpha, double beta, double i) {
        mpfr_set_d(r56507146, i, MPFR_RNDN);
        mpfr_set_d(r56507147, alpha, MPFR_RNDN);
        mpfr_set_d(r56507148, beta, MPFR_RNDN);
        mpfr_add(r56507149, r56507147, r56507148, MPFR_RNDN);
        mpfr_add(r56507150, r56507149, r56507146, MPFR_RNDN);
        mpfr_mul(r56507151, r56507146, r56507150, MPFR_RNDN);
        mpfr_mul(r56507152, r56507148, r56507147, MPFR_RNDN);
        mpfr_add(r56507153, r56507152, r56507151, MPFR_RNDN);
        mpfr_mul(r56507154, r56507151, r56507153, MPFR_RNDN);
        ;
        mpfr_mul(r56507156, r56507155, r56507146, MPFR_RNDN);
        mpfr_add(r56507157, r56507149, r56507156, MPFR_RNDN);
        mpfr_mul(r56507158, r56507157, r56507157, MPFR_RNDN);
        mpfr_div(r56507159, r56507154, r56507158, MPFR_RNDN);
        ;
        mpfr_sub(r56507161, r56507158, r56507160, MPFR_RNDN);
        mpfr_div(r56507162, r56507159, r56507161, MPFR_RNDN);
        return mpfr_get_d(r56507162, MPFR_RNDN);
}

static mpfr_t r56507163, r56507164, r56507165, r56507166, r56507167, r56507168, r56507169, r56507170, r56507171, r56507172, r56507173, r56507174, r56507175, r56507176, r56507177, r56507178, r56507179, r56507180, r56507181, r56507182, r56507183, r56507184, r56507185, r56507186;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r56507163);
        mpfr_init(r56507164);
        mpfr_init(r56507165);
        mpfr_init_set_str(r56507166, "1.334759629949433e+154", 10, MPFR_RNDN);
        mpfr_init(r56507167);
        mpfr_init(r56507168);
        mpfr_init(r56507169);
        mpfr_init(r56507170);
        mpfr_init_set_str(r56507171, "2", 10, MPFR_RNDN);
        mpfr_init(r56507172);
        mpfr_init(r56507173);
        mpfr_init(r56507174);
        mpfr_init(r56507175);
        mpfr_init_set_str(r56507176, "1.0", 10, MPFR_RNDN);
        mpfr_init(r56507177);
        mpfr_init(r56507178);
        mpfr_init(r56507179);
        mpfr_init(r56507180);
        mpfr_init(r56507181);
        mpfr_init(r56507182);
        mpfr_init(r56507183);
        mpfr_init(r56507184);
        mpfr_init_set_str(r56507185, "0", 10, MPFR_RNDN);
        mpfr_init(r56507186);
}

double f_fm(double alpha, double beta, double i) {
        mpfr_set_d(r56507163, alpha, MPFR_RNDN);
        mpfr_set_d(r56507164, beta, MPFR_RNDN);
        mpfr_add(r56507165, r56507163, r56507164, MPFR_RNDN);
        ;
        mpfr_set_si(r56507167, mpfr_cmp(r56507165, r56507166) <= 0, MPFR_RNDN);
        mpfr_set_d(r56507168, i, MPFR_RNDN);
        mpfr_add(r56507169, r56507165, r56507168, MPFR_RNDN);
        mpfr_mul(r56507170, r56507168, r56507169, MPFR_RNDN);
        ;
        mpfr_mul(r56507172, r56507171, r56507168, MPFR_RNDN);
        mpfr_add(r56507173, r56507165, r56507172, MPFR_RNDN);
        mpfr_div(r56507174, r56507170, r56507173, MPFR_RNDN);
        mpfr_mul(r56507175, r56507173, r56507173, MPFR_RNDN);
        ;
        mpfr_sub(r56507177, r56507175, r56507176, MPFR_RNDN);
        mpfr_sqrt(r56507178, r56507177, MPFR_RNDN);
        mpfr_div(r56507179, r56507174, r56507178, MPFR_RNDN);
        mpfr_mul(r56507180, r56507164, r56507163, MPFR_RNDN);
        mpfr_add(r56507181, r56507180, r56507170, MPFR_RNDN);
        mpfr_div(r56507182, r56507181, r56507173, MPFR_RNDN);
        mpfr_div(r56507183, r56507182, r56507178, MPFR_RNDN);
        mpfr_mul(r56507184, r56507179, r56507183, MPFR_RNDN);
        ;
        if (mpfr_get_si(r56507167, MPFR_RNDN)) { mpfr_set(r56507186, r56507184, MPFR_RNDN); } else { mpfr_set(r56507186, r56507185, MPFR_RNDN); };
        return mpfr_get_d(r56507186, MPFR_RNDN);
}

static mpfr_t r56507187, r56507188, r56507189, r56507190, r56507191, r56507192, r56507193, r56507194, r56507195, r56507196, r56507197, r56507198, r56507199, r56507200, r56507201, r56507202, r56507203, r56507204, r56507205, r56507206, r56507207, r56507208, r56507209, r56507210;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r56507187);
        mpfr_init(r56507188);
        mpfr_init(r56507189);
        mpfr_init_set_str(r56507190, "1.334759629949433e+154", 10, MPFR_RNDN);
        mpfr_init(r56507191);
        mpfr_init(r56507192);
        mpfr_init(r56507193);
        mpfr_init(r56507194);
        mpfr_init_set_str(r56507195, "2", 10, MPFR_RNDN);
        mpfr_init(r56507196);
        mpfr_init(r56507197);
        mpfr_init(r56507198);
        mpfr_init(r56507199);
        mpfr_init_set_str(r56507200, "1.0", 10, MPFR_RNDN);
        mpfr_init(r56507201);
        mpfr_init(r56507202);
        mpfr_init(r56507203);
        mpfr_init(r56507204);
        mpfr_init(r56507205);
        mpfr_init(r56507206);
        mpfr_init(r56507207);
        mpfr_init(r56507208);
        mpfr_init_set_str(r56507209, "0", 10, MPFR_RNDN);
        mpfr_init(r56507210);
}

double f_dm(double alpha, double beta, double i) {
        mpfr_set_d(r56507187, alpha, MPFR_RNDN);
        mpfr_set_d(r56507188, beta, MPFR_RNDN);
        mpfr_add(r56507189, r56507187, r56507188, MPFR_RNDN);
        ;
        mpfr_set_si(r56507191, mpfr_cmp(r56507189, r56507190) <= 0, MPFR_RNDN);
        mpfr_set_d(r56507192, i, MPFR_RNDN);
        mpfr_add(r56507193, r56507189, r56507192, MPFR_RNDN);
        mpfr_mul(r56507194, r56507192, r56507193, MPFR_RNDN);
        ;
        mpfr_mul(r56507196, r56507195, r56507192, MPFR_RNDN);
        mpfr_add(r56507197, r56507189, r56507196, MPFR_RNDN);
        mpfr_div(r56507198, r56507194, r56507197, MPFR_RNDN);
        mpfr_mul(r56507199, r56507197, r56507197, MPFR_RNDN);
        ;
        mpfr_sub(r56507201, r56507199, r56507200, MPFR_RNDN);
        mpfr_sqrt(r56507202, r56507201, MPFR_RNDN);
        mpfr_div(r56507203, r56507198, r56507202, MPFR_RNDN);
        mpfr_mul(r56507204, r56507188, r56507187, MPFR_RNDN);
        mpfr_add(r56507205, r56507204, r56507194, MPFR_RNDN);
        mpfr_div(r56507206, r56507205, r56507197, MPFR_RNDN);
        mpfr_div(r56507207, r56507206, r56507202, MPFR_RNDN);
        mpfr_mul(r56507208, r56507203, r56507207, MPFR_RNDN);
        ;
        if (mpfr_get_si(r56507191, MPFR_RNDN)) { mpfr_set(r56507210, r56507208, MPFR_RNDN); } else { mpfr_set(r56507210, r56507209, MPFR_RNDN); };
        return mpfr_get_d(r56507210, MPFR_RNDN);
}

