#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 r9118 = i;
        float r9119 = alpha;
        float r9120 = beta;
        float r9121 = r9119 + r9120;
        float r9122 = r9121 + r9118;
        float r9123 = r9118 * r9122;
        float r9124 = r9120 * r9119;
        float r9125 = r9124 + r9123;
        float r9126 = r9123 * r9125;
        float r9127 = 2.0f;
        float r9128 = r9127 * r9118;
        float r9129 = r9121 + r9128;
        float r9130 = r9129 * r9129;
        float r9131 = r9126 / r9130;
        float r9132 = 1.0f;
        float r9133 = r9130 - r9132;
        float r9134 = r9131 / r9133;
        return r9134;
}

double f_id(double alpha, double beta, double i) {
        double r9135 = i;
        double r9136 = alpha;
        double r9137 = beta;
        double r9138 = r9136 + r9137;
        double r9139 = r9138 + r9135;
        double r9140 = r9135 * r9139;
        double r9141 = r9137 * r9136;
        double r9142 = r9141 + r9140;
        double r9143 = r9140 * r9142;
        double r9144 = 2.0;
        double r9145 = r9144 * r9135;
        double r9146 = r9138 + r9145;
        double r9147 = r9146 * r9146;
        double r9148 = r9143 / r9147;
        double r9149 = 1.0;
        double r9150 = r9147 - r9149;
        double r9151 = r9148 / r9150;
        return r9151;
}


double f_of(float alpha, float beta, float i) {
        float r9152 = i;
        float r9153 = 2.0f;
        float r9154 = pow(r9152, r9153);
        float r9155 = 0.25f;
        float r9156 = r9154 * r9155;
        float r9157 = beta;
        float r9158 = alpha;
        float r9159 = r9152 + r9158;
        float r9160 = r9157 + r9159;
        float r9161 = 4.0f;
        float r9162 = r9152 * r9161;
        float r9163 = r9160 * r9162;
        float r9164 = 1.0f;
        float r9165 = r9163 - r9164;
        float r9166 = r9156 / r9165;
        float r9167 = 5.516083787584404e-131f;
        bool r9168 = r9166 <= r9167;
        float r9169 = 0.0f;
        float r9170 = r9152 + r9157;
        float r9171 = r9159 * r9170;
        float r9172 = fma(r9153, r9152, r9157);
        float r9173 = r9172 + r9158;
        float r9174 = r9171 / r9173;
        float r9175 = r9157 + r9158;
        float r9176 = r9175 + r9152;
        float r9177 = r9176 * r9152;
        float r9178 = r9153 * r9152;
        float r9179 = r9178 + r9175;
        float r9180 = r9177 / r9179;
        float r9181 = r9174 * r9180;
        float r9182 = r9179 * r9179;
        float r9183 = r9182 - r9164;
        float r9184 = r9181 / r9183;
        float r9185 = r9168 ? r9169 : r9184;
        return r9185;
}

double f_od(double alpha, double beta, double i) {
        double r9186 = i;
        double r9187 = 2.0;
        double r9188 = pow(r9186, r9187);
        double r9189 = 0.25;
        double r9190 = r9188 * r9189;
        double r9191 = beta;
        double r9192 = alpha;
        double r9193 = r9186 + r9192;
        double r9194 = r9191 + r9193;
        double r9195 = 4.0;
        double r9196 = r9186 * r9195;
        double r9197 = r9194 * r9196;
        double r9198 = 1.0;
        double r9199 = r9197 - r9198;
        double r9200 = r9190 / r9199;
        double r9201 = 5.516083787584404e-131;
        bool r9202 = r9200 <= r9201;
        double r9203 = 0.0;
        double r9204 = r9186 + r9191;
        double r9205 = r9193 * r9204;
        double r9206 = fma(r9187, r9186, r9191);
        double r9207 = r9206 + r9192;
        double r9208 = r9205 / r9207;
        double r9209 = r9191 + r9192;
        double r9210 = r9209 + r9186;
        double r9211 = r9210 * r9186;
        double r9212 = r9187 * r9186;
        double r9213 = r9212 + r9209;
        double r9214 = r9211 / r9213;
        double r9215 = r9208 * r9214;
        double r9216 = r9213 * r9213;
        double r9217 = r9216 - r9198;
        double r9218 = r9215 / r9217;
        double r9219 = r9202 ? r9203 : r9218;
        return r9219;
}

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 r9220, r9221, r9222, r9223, r9224, r9225, r9226, r9227, r9228, r9229, r9230, r9231, r9232, r9233, r9234, r9235, r9236;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r9220);
        mpfr_init(r9221);
        mpfr_init(r9222);
        mpfr_init(r9223);
        mpfr_init(r9224);
        mpfr_init(r9225);
        mpfr_init(r9226);
        mpfr_init(r9227);
        mpfr_init(r9228);
        mpfr_init_set_str(r9229, "2", 10, MPFR_RNDN);
        mpfr_init(r9230);
        mpfr_init(r9231);
        mpfr_init(r9232);
        mpfr_init(r9233);
        mpfr_init_set_str(r9234, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9235);
        mpfr_init(r9236);
}

double f_im(double alpha, double beta, double i) {
        mpfr_set_d(r9220, i, MPFR_RNDN);
        mpfr_set_d(r9221, alpha, MPFR_RNDN);
        mpfr_set_d(r9222, beta, MPFR_RNDN);
        mpfr_add(r9223, r9221, r9222, MPFR_RNDN);
        mpfr_add(r9224, r9223, r9220, MPFR_RNDN);
        mpfr_mul(r9225, r9220, r9224, MPFR_RNDN);
        mpfr_mul(r9226, r9222, r9221, MPFR_RNDN);
        mpfr_add(r9227, r9226, r9225, MPFR_RNDN);
        mpfr_mul(r9228, r9225, r9227, MPFR_RNDN);
        ;
        mpfr_mul(r9230, r9229, r9220, MPFR_RNDN);
        mpfr_add(r9231, r9223, r9230, MPFR_RNDN);
        mpfr_mul(r9232, r9231, r9231, MPFR_RNDN);
        mpfr_div(r9233, r9228, r9232, MPFR_RNDN);
        ;
        mpfr_sub(r9235, r9232, r9234, MPFR_RNDN);
        mpfr_div(r9236, r9233, r9235, MPFR_RNDN);
        return mpfr_get_d(r9236, MPFR_RNDN);
}

static mpfr_t r9237, r9238, r9239, r9240, r9241, r9242, r9243, r9244, r9245, r9246, r9247, r9248, r9249, r9250, r9251, r9252, r9253, r9254, r9255, r9256, r9257, r9258, r9259, r9260, r9261, r9262, r9263, r9264, r9265, r9266, r9267, r9268, r9269, r9270;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9237);
        mpfr_init_set_str(r9238, "2", 10, MPFR_RNDN);
        mpfr_init(r9239);
        mpfr_init_set_str(r9240, "1/4", 10, MPFR_RNDN);
        mpfr_init(r9241);
        mpfr_init(r9242);
        mpfr_init(r9243);
        mpfr_init(r9244);
        mpfr_init(r9245);
        mpfr_init_set_str(r9246, "4", 10, MPFR_RNDN);
        mpfr_init(r9247);
        mpfr_init(r9248);
        mpfr_init_set_str(r9249, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9250);
        mpfr_init(r9251);
        mpfr_init_set_str(r9252, "5.516083787584404e-131", 10, MPFR_RNDN);
        mpfr_init(r9253);
        mpfr_init_set_str(r9254, "0", 10, MPFR_RNDN);
        mpfr_init(r9255);
        mpfr_init(r9256);
        mpfr_init(r9257);
        mpfr_init(r9258);
        mpfr_init(r9259);
        mpfr_init(r9260);
        mpfr_init(r9261);
        mpfr_init(r9262);
        mpfr_init(r9263);
        mpfr_init(r9264);
        mpfr_init(r9265);
        mpfr_init(r9266);
        mpfr_init(r9267);
        mpfr_init(r9268);
        mpfr_init(r9269);
        mpfr_init(r9270);
}

double f_fm(double alpha, double beta, double i) {
        mpfr_set_d(r9237, i, MPFR_RNDN);
        ;
        mpfr_pow(r9239, r9237, r9238, MPFR_RNDN);
        ;
        mpfr_mul(r9241, r9239, r9240, MPFR_RNDN);
        mpfr_set_d(r9242, beta, MPFR_RNDN);
        mpfr_set_d(r9243, alpha, MPFR_RNDN);
        mpfr_add(r9244, r9237, r9243, MPFR_RNDN);
        mpfr_add(r9245, r9242, r9244, MPFR_RNDN);
        ;
        mpfr_mul(r9247, r9237, r9246, MPFR_RNDN);
        mpfr_mul(r9248, r9245, r9247, MPFR_RNDN);
        ;
        mpfr_sub(r9250, r9248, r9249, MPFR_RNDN);
        mpfr_div(r9251, r9241, r9250, MPFR_RNDN);
        ;
        mpfr_set_si(r9253, mpfr_cmp(r9251, r9252) <= 0, MPFR_RNDN);
        ;
        mpfr_add(r9255, r9237, r9242, MPFR_RNDN);
        mpfr_mul(r9256, r9244, r9255, MPFR_RNDN);
        mpfr_fma(r9257, r9238, r9237, r9242, MPFR_RNDN);
        mpfr_add(r9258, r9257, r9243, MPFR_RNDN);
        mpfr_div(r9259, r9256, r9258, MPFR_RNDN);
        mpfr_add(r9260, r9242, r9243, MPFR_RNDN);
        mpfr_add(r9261, r9260, r9237, MPFR_RNDN);
        mpfr_mul(r9262, r9261, r9237, MPFR_RNDN);
        mpfr_mul(r9263, r9238, r9237, MPFR_RNDN);
        mpfr_add(r9264, r9263, r9260, MPFR_RNDN);
        mpfr_div(r9265, r9262, r9264, MPFR_RNDN);
        mpfr_mul(r9266, r9259, r9265, MPFR_RNDN);
        mpfr_mul(r9267, r9264, r9264, MPFR_RNDN);
        mpfr_sub(r9268, r9267, r9249, MPFR_RNDN);
        mpfr_div(r9269, r9266, r9268, MPFR_RNDN);
        if (mpfr_get_si(r9253, MPFR_RNDN)) { mpfr_set(r9270, r9254, MPFR_RNDN); } else { mpfr_set(r9270, r9269, MPFR_RNDN); };
        return mpfr_get_d(r9270, MPFR_RNDN);
}

static mpfr_t r9271, r9272, r9273, r9274, r9275, r9276, r9277, r9278, r9279, r9280, r9281, r9282, r9283, r9284, r9285, r9286, r9287, r9288, r9289, r9290, r9291, r9292, r9293, r9294, r9295, r9296, r9297, r9298, r9299, r9300, r9301, r9302, r9303, r9304;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9271);
        mpfr_init_set_str(r9272, "2", 10, MPFR_RNDN);
        mpfr_init(r9273);
        mpfr_init_set_str(r9274, "1/4", 10, MPFR_RNDN);
        mpfr_init(r9275);
        mpfr_init(r9276);
        mpfr_init(r9277);
        mpfr_init(r9278);
        mpfr_init(r9279);
        mpfr_init_set_str(r9280, "4", 10, MPFR_RNDN);
        mpfr_init(r9281);
        mpfr_init(r9282);
        mpfr_init_set_str(r9283, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9284);
        mpfr_init(r9285);
        mpfr_init_set_str(r9286, "5.516083787584404e-131", 10, MPFR_RNDN);
        mpfr_init(r9287);
        mpfr_init_set_str(r9288, "0", 10, MPFR_RNDN);
        mpfr_init(r9289);
        mpfr_init(r9290);
        mpfr_init(r9291);
        mpfr_init(r9292);
        mpfr_init(r9293);
        mpfr_init(r9294);
        mpfr_init(r9295);
        mpfr_init(r9296);
        mpfr_init(r9297);
        mpfr_init(r9298);
        mpfr_init(r9299);
        mpfr_init(r9300);
        mpfr_init(r9301);
        mpfr_init(r9302);
        mpfr_init(r9303);
        mpfr_init(r9304);
}

double f_dm(double alpha, double beta, double i) {
        mpfr_set_d(r9271, i, MPFR_RNDN);
        ;
        mpfr_pow(r9273, r9271, r9272, MPFR_RNDN);
        ;
        mpfr_mul(r9275, r9273, r9274, MPFR_RNDN);
        mpfr_set_d(r9276, beta, MPFR_RNDN);
        mpfr_set_d(r9277, alpha, MPFR_RNDN);
        mpfr_add(r9278, r9271, r9277, MPFR_RNDN);
        mpfr_add(r9279, r9276, r9278, MPFR_RNDN);
        ;
        mpfr_mul(r9281, r9271, r9280, MPFR_RNDN);
        mpfr_mul(r9282, r9279, r9281, MPFR_RNDN);
        ;
        mpfr_sub(r9284, r9282, r9283, MPFR_RNDN);
        mpfr_div(r9285, r9275, r9284, MPFR_RNDN);
        ;
        mpfr_set_si(r9287, mpfr_cmp(r9285, r9286) <= 0, MPFR_RNDN);
        ;
        mpfr_add(r9289, r9271, r9276, MPFR_RNDN);
        mpfr_mul(r9290, r9278, r9289, MPFR_RNDN);
        mpfr_fma(r9291, r9272, r9271, r9276, MPFR_RNDN);
        mpfr_add(r9292, r9291, r9277, MPFR_RNDN);
        mpfr_div(r9293, r9290, r9292, MPFR_RNDN);
        mpfr_add(r9294, r9276, r9277, MPFR_RNDN);
        mpfr_add(r9295, r9294, r9271, MPFR_RNDN);
        mpfr_mul(r9296, r9295, r9271, MPFR_RNDN);
        mpfr_mul(r9297, r9272, r9271, MPFR_RNDN);
        mpfr_add(r9298, r9297, r9294, MPFR_RNDN);
        mpfr_div(r9299, r9296, r9298, MPFR_RNDN);
        mpfr_mul(r9300, r9293, r9299, MPFR_RNDN);
        mpfr_mul(r9301, r9298, r9298, MPFR_RNDN);
        mpfr_sub(r9302, r9301, r9283, MPFR_RNDN);
        mpfr_div(r9303, r9300, r9302, MPFR_RNDN);
        if (mpfr_get_si(r9287, MPFR_RNDN)) { mpfr_set(r9304, r9288, MPFR_RNDN); } else { mpfr_set(r9304, r9303, MPFR_RNDN); };
        return mpfr_get_d(r9304, MPFR_RNDN);
}

