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

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

double f_if(float alpha, float beta) {
        float r20411 = alpha;
        float r20412 = beta;
        float r20413 = r20411 + r20412;
        float r20414 = r20412 * r20411;
        float r20415 = r20413 + r20414;
        float r20416 = 1.0f;
        float r20417 = r20415 + r20416;
        float r20418 = 2.0f;
        float r20419 = 1.0f;
        float r20420 = r20418 * r20419;
        float r20421 = r20413 + r20420;
        float r20422 = r20417 / r20421;
        float r20423 = r20422 / r20421;
        float r20424 = r20421 + r20416;
        float r20425 = r20423 / r20424;
        return r20425;
}

double f_id(double alpha, double beta) {
        double r20426 = alpha;
        double r20427 = beta;
        double r20428 = r20426 + r20427;
        double r20429 = r20427 * r20426;
        double r20430 = r20428 + r20429;
        double r20431 = 1.0;
        double r20432 = r20430 + r20431;
        double r20433 = 2.0;
        double r20434 = 1.0;
        double r20435 = r20433 * r20434;
        double r20436 = r20428 + r20435;
        double r20437 = r20432 / r20436;
        double r20438 = r20437 / r20436;
        double r20439 = r20436 + r20431;
        double r20440 = r20438 / r20439;
        return r20440;
}


double f_of(float alpha, float beta) {
        float r20441 = beta;
        float r20442 = 7.672284614270702e+191f;
        bool r20443 = r20441 <= r20442;
        float r20444 = alpha;
        float r20445 = 1.0f;
        float r20446 = r20444 + r20445;
        float r20447 = r20441 * r20444;
        float r20448 = r20447 + r20441;
        float r20449 = r20446 + r20448;
        float r20450 = 2.0f;
        float r20451 = r20441 + r20450;
        float r20452 = r20444 + r20451;
        float r20453 = r20449 / r20452;
        float r20454 = r20446 + r20451;
        float r20455 = cbrt(r20454);
        float r20456 = r20455 * (r20455 * r20455);
        float r20457 = r20453 / r20456;
        float r20458 = r20457 / r20452;
        float r20459 = r20444 + r20441;
        float r20460 = 0.25f;
        float r20461 = r20459 * r20460;
        float r20462 = 0.5f;
        float r20463 = r20461 + r20462;
        float r20464 = r20450 + r20441;
        float r20465 = r20444 + r20464;
        float r20466 = r20464 + r20446;
        float r20467 = r20465 * r20466;
        float r20468 = r20463 / r20467;
        float r20469 = r20443 ? r20458 : r20468;
        return r20469;
}

double f_od(double alpha, double beta) {
        double r20470 = beta;
        double r20471 = 7.672284614270702e+191;
        bool r20472 = r20470 <= r20471;
        double r20473 = alpha;
        double r20474 = 1.0;
        double r20475 = r20473 + r20474;
        double r20476 = r20470 * r20473;
        double r20477 = r20476 + r20470;
        double r20478 = r20475 + r20477;
        double r20479 = 2.0;
        double r20480 = r20470 + r20479;
        double r20481 = r20473 + r20480;
        double r20482 = r20478 / r20481;
        double r20483 = r20475 + r20480;
        double r20484 = cbrt(r20483);
        double r20485 = r20484 * (r20484 * r20484);
        double r20486 = r20482 / r20485;
        double r20487 = r20486 / r20481;
        double r20488 = r20473 + r20470;
        double r20489 = 0.25;
        double r20490 = r20488 * r20489;
        double r20491 = 0.5;
        double r20492 = r20490 + r20491;
        double r20493 = r20479 + r20470;
        double r20494 = r20473 + r20493;
        double r20495 = r20493 + r20475;
        double r20496 = r20494 * r20495;
        double r20497 = r20492 / r20496;
        double r20498 = r20472 ? r20487 : r20497;
        return r20498;
}

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 r20499, r20500, r20501, r20502, r20503, r20504, r20505, r20506, r20507, r20508, r20509, r20510, r20511, r20512, r20513;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r20499);
        mpfr_init(r20500);
        mpfr_init(r20501);
        mpfr_init(r20502);
        mpfr_init(r20503);
        mpfr_init_set_str(r20504, "1.0", 10, MPFR_RNDN);
        mpfr_init(r20505);
        mpfr_init_set_str(r20506, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r20507, "1", 10, MPFR_RNDN);
        mpfr_init(r20508);
        mpfr_init(r20509);
        mpfr_init(r20510);
        mpfr_init(r20511);
        mpfr_init(r20512);
        mpfr_init(r20513);
}

double f_im(double alpha, double beta) {
        mpfr_set_d(r20499, alpha, MPFR_RNDN);
        mpfr_set_d(r20500, beta, MPFR_RNDN);
        mpfr_add(r20501, r20499, r20500, MPFR_RNDN);
        mpfr_mul(r20502, r20500, r20499, MPFR_RNDN);
        mpfr_add(r20503, r20501, r20502, MPFR_RNDN);
        ;
        mpfr_add(r20505, r20503, r20504, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r20508, r20506, r20507, MPFR_RNDN);
        mpfr_add(r20509, r20501, r20508, MPFR_RNDN);
        mpfr_div(r20510, r20505, r20509, MPFR_RNDN);
        mpfr_div(r20511, r20510, r20509, MPFR_RNDN);
        mpfr_add(r20512, r20509, r20504, MPFR_RNDN);
        mpfr_div(r20513, r20511, r20512, MPFR_RNDN);
        return mpfr_get_d(r20513, MPFR_RNDN);
}

static mpfr_t r20514, r20515, r20516, r20517, r20518, r20519, r20520, r20521, r20522, r20523, r20524, r20525, r20526, r20527, r20528, r20529, r20530, r20531, r20532, r20533, r20534, r20535, r20536, r20537, r20538, r20539, r20540, r20541, r20542;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r20514);
        mpfr_init_set_str(r20515, "7.672284614270702e+191", 10, MPFR_RNDN);
        mpfr_init(r20516);
        mpfr_init(r20517);
        mpfr_init_set_str(r20518, "1.0", 10, MPFR_RNDN);
        mpfr_init(r20519);
        mpfr_init(r20520);
        mpfr_init(r20521);
        mpfr_init(r20522);
        mpfr_init_set_str(r20523, "2", 10, MPFR_RNDN);
        mpfr_init(r20524);
        mpfr_init(r20525);
        mpfr_init(r20526);
        mpfr_init(r20527);
        mpfr_init(r20528);
        mpfr_init(r20529);
        mpfr_init(r20530);
        mpfr_init(r20531);
        mpfr_init(r20532);
        mpfr_init_set_str(r20533, "0.25", 10, MPFR_RNDN);
        mpfr_init(r20534);
        mpfr_init_set_str(r20535, "0.5", 10, MPFR_RNDN);
        mpfr_init(r20536);
        mpfr_init(r20537);
        mpfr_init(r20538);
        mpfr_init(r20539);
        mpfr_init(r20540);
        mpfr_init(r20541);
        mpfr_init(r20542);
}

double f_fm(double alpha, double beta) {
        mpfr_set_d(r20514, beta, MPFR_RNDN);
        ;
        mpfr_set_si(r20516, mpfr_cmp(r20514, r20515) <= 0, MPFR_RNDN);
        mpfr_set_d(r20517, alpha, MPFR_RNDN);
        ;
        mpfr_add(r20519, r20517, r20518, MPFR_RNDN);
        mpfr_mul(r20520, r20514, r20517, MPFR_RNDN);
        mpfr_add(r20521, r20520, r20514, MPFR_RNDN);
        mpfr_add(r20522, r20519, r20521, MPFR_RNDN);
        ;
        mpfr_add(r20524, r20514, r20523, MPFR_RNDN);
        mpfr_add(r20525, r20517, r20524, MPFR_RNDN);
        mpfr_div(r20526, r20522, r20525, MPFR_RNDN);
        mpfr_add(r20527, r20519, r20524, MPFR_RNDN);
        mpfr_cbrt(r20528, r20527, MPFR_RNDN);
        mpfr_mul(r20529, r20528, r20528, MPFR_RNDN); mpfr_mul(r20529, r20529, r20528, MPFR_RNDN);
        mpfr_div(r20530, r20526, r20529, MPFR_RNDN);
        mpfr_div(r20531, r20530, r20525, MPFR_RNDN);
        mpfr_add(r20532, r20517, r20514, MPFR_RNDN);
        ;
        mpfr_mul(r20534, r20532, r20533, MPFR_RNDN);
        ;
        mpfr_add(r20536, r20534, r20535, MPFR_RNDN);
        mpfr_add(r20537, r20523, r20514, MPFR_RNDN);
        mpfr_add(r20538, r20517, r20537, MPFR_RNDN);
        mpfr_add(r20539, r20537, r20519, MPFR_RNDN);
        mpfr_mul(r20540, r20538, r20539, MPFR_RNDN);
        mpfr_div(r20541, r20536, r20540, MPFR_RNDN);
        if (mpfr_get_si(r20516, MPFR_RNDN)) { mpfr_set(r20542, r20531, MPFR_RNDN); } else { mpfr_set(r20542, r20541, MPFR_RNDN); };
        return mpfr_get_d(r20542, MPFR_RNDN);
}

static mpfr_t r20543, r20544, r20545, r20546, r20547, r20548, r20549, r20550, r20551, r20552, r20553, r20554, r20555, r20556, r20557, r20558, r20559, r20560, r20561, r20562, r20563, r20564, r20565, r20566, r20567, r20568, r20569, r20570, r20571;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r20543);
        mpfr_init_set_str(r20544, "7.672284614270702e+191", 10, MPFR_RNDN);
        mpfr_init(r20545);
        mpfr_init(r20546);
        mpfr_init_set_str(r20547, "1.0", 10, MPFR_RNDN);
        mpfr_init(r20548);
        mpfr_init(r20549);
        mpfr_init(r20550);
        mpfr_init(r20551);
        mpfr_init_set_str(r20552, "2", 10, MPFR_RNDN);
        mpfr_init(r20553);
        mpfr_init(r20554);
        mpfr_init(r20555);
        mpfr_init(r20556);
        mpfr_init(r20557);
        mpfr_init(r20558);
        mpfr_init(r20559);
        mpfr_init(r20560);
        mpfr_init(r20561);
        mpfr_init_set_str(r20562, "0.25", 10, MPFR_RNDN);
        mpfr_init(r20563);
        mpfr_init_set_str(r20564, "0.5", 10, MPFR_RNDN);
        mpfr_init(r20565);
        mpfr_init(r20566);
        mpfr_init(r20567);
        mpfr_init(r20568);
        mpfr_init(r20569);
        mpfr_init(r20570);
        mpfr_init(r20571);
}

double f_dm(double alpha, double beta) {
        mpfr_set_d(r20543, beta, MPFR_RNDN);
        ;
        mpfr_set_si(r20545, mpfr_cmp(r20543, r20544) <= 0, MPFR_RNDN);
        mpfr_set_d(r20546, alpha, MPFR_RNDN);
        ;
        mpfr_add(r20548, r20546, r20547, MPFR_RNDN);
        mpfr_mul(r20549, r20543, r20546, MPFR_RNDN);
        mpfr_add(r20550, r20549, r20543, MPFR_RNDN);
        mpfr_add(r20551, r20548, r20550, MPFR_RNDN);
        ;
        mpfr_add(r20553, r20543, r20552, MPFR_RNDN);
        mpfr_add(r20554, r20546, r20553, MPFR_RNDN);
        mpfr_div(r20555, r20551, r20554, MPFR_RNDN);
        mpfr_add(r20556, r20548, r20553, MPFR_RNDN);
        mpfr_cbrt(r20557, r20556, MPFR_RNDN);
        mpfr_mul(r20558, r20557, r20557, MPFR_RNDN); mpfr_mul(r20558, r20558, r20557, MPFR_RNDN);
        mpfr_div(r20559, r20555, r20558, MPFR_RNDN);
        mpfr_div(r20560, r20559, r20554, MPFR_RNDN);
        mpfr_add(r20561, r20546, r20543, MPFR_RNDN);
        ;
        mpfr_mul(r20563, r20561, r20562, MPFR_RNDN);
        ;
        mpfr_add(r20565, r20563, r20564, MPFR_RNDN);
        mpfr_add(r20566, r20552, r20543, MPFR_RNDN);
        mpfr_add(r20567, r20546, r20566, MPFR_RNDN);
        mpfr_add(r20568, r20566, r20548, MPFR_RNDN);
        mpfr_mul(r20569, r20567, r20568, MPFR_RNDN);
        mpfr_div(r20570, r20565, r20569, MPFR_RNDN);
        if (mpfr_get_si(r20545, MPFR_RNDN)) { mpfr_set(r20571, r20560, MPFR_RNDN); } else { mpfr_set(r20571, r20570, MPFR_RNDN); };
        return mpfr_get_d(r20571, MPFR_RNDN);
}

