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

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

double f_if(float alpha, float beta, float i) {
        float r10347 = alpha;
        float r10348 = beta;
        float r10349 = r10347 + r10348;
        float r10350 = r10348 - r10347;
        float r10351 = r10349 * r10350;
        float r10352 = 2;
        float r10353 = i;
        float r10354 = r10352 * r10353;
        float r10355 = r10349 + r10354;
        float r10356 = r10351 / r10355;
        float r10357 = 2.0;
        float r10358 = r10355 + r10357;
        float r10359 = r10356 / r10358;
        float r10360 = 1.0;
        float r10361 = r10359 + r10360;
        float r10362 = r10361 / r10357;
        return r10362;
}

double f_id(double alpha, double beta, double i) {
        double r10363 = alpha;
        double r10364 = beta;
        double r10365 = r10363 + r10364;
        double r10366 = r10364 - r10363;
        double r10367 = r10365 * r10366;
        double r10368 = 2;
        double r10369 = i;
        double r10370 = r10368 * r10369;
        double r10371 = r10365 + r10370;
        double r10372 = r10367 / r10371;
        double r10373 = 2.0;
        double r10374 = r10371 + r10373;
        double r10375 = r10372 / r10374;
        double r10376 = 1.0;
        double r10377 = r10375 + r10376;
        double r10378 = r10377 / r10373;
        return r10378;
}


double f_of(float alpha, float beta, float i) {
        float r10379 = alpha;
        float r10380 = beta;
        float r10381 = r10379 + r10380;
        float r10382 = 2.0;
        float r10383 = r10382 + r10379;
        float r10384 = 2;
        float r10385 = i;
        float r10386 = fma(r10384, r10385, r10380);
        float r10387 = r10383 + r10386;
        float r10388 = r10381 / r10387;
        float r10389 = 1;
        float r10390 = fma(r10384, r10385, r10379);
        float r10391 = r10390 + r10380;
        float r10392 = sqrt(r10391);
        float r10393 = r10389 / r10392;
        float r10394 = r10380 - r10379;
        float r10395 = r10394 / r10392;
        float r10396 = r10393 * r10395;
        float r10397 = 1.0;
        float r10398 = fma(r10388, r10396, r10397);
        float r10399 = r10398 / r10382;
        float r10400 = 1.570757098534734e-11;
        bool r10401 = r10399 <= r10400;
        float r10402 = r10389 / r10379;
        float r10403 = r10402 / r10382;
        float r10404 = 4.0;
        float r10405 = 8.0;
        float r10406 = r10405 / r10379;
        float r10407 = fma(r10406, r10402, r10382);
        float r10408 = fma(r10404, r10402, r10407);
        float r10409 = r10403 * r10408;
        float r10410 = r10389 / r10391;
        float r10411 = r10394 * r10410;
        float r10412 = fma(r10388, r10411, r10397);
        float r10413 = r10412 / r10382;
        float r10414 = r10401 ? r10409 : r10413;
        return r10414;
}

double f_od(double alpha, double beta, double i) {
        double r10415 = alpha;
        double r10416 = beta;
        double r10417 = r10415 + r10416;
        double r10418 = 2.0;
        double r10419 = r10418 + r10415;
        double r10420 = 2;
        double r10421 = i;
        double r10422 = fma(r10420, r10421, r10416);
        double r10423 = r10419 + r10422;
        double r10424 = r10417 / r10423;
        double r10425 = 1;
        double r10426 = fma(r10420, r10421, r10415);
        double r10427 = r10426 + r10416;
        double r10428 = sqrt(r10427);
        double r10429 = r10425 / r10428;
        double r10430 = r10416 - r10415;
        double r10431 = r10430 / r10428;
        double r10432 = r10429 * r10431;
        double r10433 = 1.0;
        double r10434 = fma(r10424, r10432, r10433);
        double r10435 = r10434 / r10418;
        double r10436 = 1.570757098534734e-11;
        bool r10437 = r10435 <= r10436;
        double r10438 = r10425 / r10415;
        double r10439 = r10438 / r10418;
        double r10440 = 4.0;
        double r10441 = 8.0;
        double r10442 = r10441 / r10415;
        double r10443 = fma(r10442, r10438, r10418);
        double r10444 = fma(r10440, r10438, r10443);
        double r10445 = r10439 * r10444;
        double r10446 = r10425 / r10427;
        double r10447 = r10430 * r10446;
        double r10448 = fma(r10424, r10447, r10433);
        double r10449 = r10448 / r10418;
        double r10450 = r10437 ? r10445 : r10449;
        return r10450;
}

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 r10451, r10452, r10453, r10454, r10455, r10456, r10457, r10458, r10459, r10460, r10461, r10462, r10463, r10464, r10465, r10466;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r10451);
        mpfr_init(r10452);
        mpfr_init(r10453);
        mpfr_init(r10454);
        mpfr_init(r10455);
        mpfr_init_set_str(r10456, "2", 10, MPFR_RNDN);
        mpfr_init(r10457);
        mpfr_init(r10458);
        mpfr_init(r10459);
        mpfr_init(r10460);
        mpfr_init_set_str(r10461, "2.0", 10, MPFR_RNDN);
        mpfr_init(r10462);
        mpfr_init(r10463);
        mpfr_init_set_str(r10464, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10465);
        mpfr_init(r10466);
}

double f_im(double alpha, double beta, double i) {
        mpfr_set_d(r10451, alpha, MPFR_RNDN);
        mpfr_set_d(r10452, beta, MPFR_RNDN);
        mpfr_add(r10453, r10451, r10452, MPFR_RNDN);
        mpfr_sub(r10454, r10452, r10451, MPFR_RNDN);
        mpfr_mul(r10455, r10453, r10454, MPFR_RNDN);
        ;
        mpfr_set_d(r10457, i, MPFR_RNDN);
        mpfr_mul(r10458, r10456, r10457, MPFR_RNDN);
        mpfr_add(r10459, r10453, r10458, MPFR_RNDN);
        mpfr_div(r10460, r10455, r10459, MPFR_RNDN);
        ;
        mpfr_add(r10462, r10459, r10461, MPFR_RNDN);
        mpfr_div(r10463, r10460, r10462, MPFR_RNDN);
        ;
        mpfr_add(r10465, r10463, r10464, MPFR_RNDN);
        mpfr_div(r10466, r10465, r10461, MPFR_RNDN);
        return mpfr_get_d(r10466, MPFR_RNDN);
}

static mpfr_t r10467, r10468, r10469, r10470, r10471, r10472, r10473, r10474, r10475, r10476, r10477, r10478, r10479, r10480, r10481, r10482, r10483, r10484, r10485, r10486, r10487, r10488, r10489, r10490, r10491, r10492, r10493, r10494, r10495, r10496, r10497, r10498, r10499, r10500, r10501, r10502;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r10467);
        mpfr_init(r10468);
        mpfr_init(r10469);
        mpfr_init_set_str(r10470, "2.0", 10, MPFR_RNDN);
        mpfr_init(r10471);
        mpfr_init_set_str(r10472, "2", 10, MPFR_RNDN);
        mpfr_init(r10473);
        mpfr_init(r10474);
        mpfr_init(r10475);
        mpfr_init(r10476);
        mpfr_init_set_str(r10477, "1", 10, MPFR_RNDN);
        mpfr_init(r10478);
        mpfr_init(r10479);
        mpfr_init(r10480);
        mpfr_init(r10481);
        mpfr_init(r10482);
        mpfr_init(r10483);
        mpfr_init(r10484);
        mpfr_init_set_str(r10485, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10486);
        mpfr_init(r10487);
        mpfr_init_set_str(r10488, "1.570757098534734e-11", 10, MPFR_RNDN);
        mpfr_init(r10489);
        mpfr_init(r10490);
        mpfr_init(r10491);
        mpfr_init_set_str(r10492, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r10493, "8.0", 10, MPFR_RNDN);
        mpfr_init(r10494);
        mpfr_init(r10495);
        mpfr_init(r10496);
        mpfr_init(r10497);
        mpfr_init(r10498);
        mpfr_init(r10499);
        mpfr_init(r10500);
        mpfr_init(r10501);
        mpfr_init(r10502);
}

double f_fm(double alpha, double beta, double i) {
        mpfr_set_d(r10467, alpha, MPFR_RNDN);
        mpfr_set_d(r10468, beta, MPFR_RNDN);
        mpfr_add(r10469, r10467, r10468, MPFR_RNDN);
        ;
        mpfr_add(r10471, r10470, r10467, MPFR_RNDN);
        ;
        mpfr_set_d(r10473, i, MPFR_RNDN);
        mpfr_fma(r10474, r10472, r10473, r10468, MPFR_RNDN);
        mpfr_add(r10475, r10471, r10474, MPFR_RNDN);
        mpfr_div(r10476, r10469, r10475, MPFR_RNDN);
        ;
        mpfr_fma(r10478, r10472, r10473, r10467, MPFR_RNDN);
        mpfr_add(r10479, r10478, r10468, MPFR_RNDN);
        mpfr_sqrt(r10480, r10479, MPFR_RNDN);
        mpfr_div(r10481, r10477, r10480, MPFR_RNDN);
        mpfr_sub(r10482, r10468, r10467, MPFR_RNDN);
        mpfr_div(r10483, r10482, r10480, MPFR_RNDN);
        mpfr_mul(r10484, r10481, r10483, MPFR_RNDN);
        ;
        mpfr_fma(r10486, r10476, r10484, r10485, MPFR_RNDN);
        mpfr_div(r10487, r10486, r10470, MPFR_RNDN);
        ;
        mpfr_set_si(r10489, mpfr_cmp(r10487, r10488) <= 0, MPFR_RNDN);
        mpfr_div(r10490, r10477, r10467, MPFR_RNDN);
        mpfr_div(r10491, r10490, r10470, MPFR_RNDN);
        ;
        ;
        mpfr_div(r10494, r10493, r10467, MPFR_RNDN);
        mpfr_fma(r10495, r10494, r10490, r10470, MPFR_RNDN);
        mpfr_fma(r10496, r10492, r10490, r10495, MPFR_RNDN);
        mpfr_mul(r10497, r10491, r10496, MPFR_RNDN);
        mpfr_div(r10498, r10477, r10479, MPFR_RNDN);
        mpfr_mul(r10499, r10482, r10498, MPFR_RNDN);
        mpfr_fma(r10500, r10476, r10499, r10485, MPFR_RNDN);
        mpfr_div(r10501, r10500, r10470, MPFR_RNDN);
        if (mpfr_get_si(r10489, MPFR_RNDN)) { mpfr_set(r10502, r10497, MPFR_RNDN); } else { mpfr_set(r10502, r10501, MPFR_RNDN); };
        return mpfr_get_d(r10502, MPFR_RNDN);
}

static mpfr_t r10503, r10504, r10505, r10506, r10507, r10508, r10509, r10510, r10511, r10512, r10513, r10514, r10515, r10516, r10517, r10518, r10519, r10520, r10521, r10522, r10523, r10524, r10525, r10526, r10527, r10528, r10529, r10530, r10531, r10532, r10533, r10534, r10535, r10536, r10537, r10538;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r10503);
        mpfr_init(r10504);
        mpfr_init(r10505);
        mpfr_init_set_str(r10506, "2.0", 10, MPFR_RNDN);
        mpfr_init(r10507);
        mpfr_init_set_str(r10508, "2", 10, MPFR_RNDN);
        mpfr_init(r10509);
        mpfr_init(r10510);
        mpfr_init(r10511);
        mpfr_init(r10512);
        mpfr_init_set_str(r10513, "1", 10, MPFR_RNDN);
        mpfr_init(r10514);
        mpfr_init(r10515);
        mpfr_init(r10516);
        mpfr_init(r10517);
        mpfr_init(r10518);
        mpfr_init(r10519);
        mpfr_init(r10520);
        mpfr_init_set_str(r10521, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10522);
        mpfr_init(r10523);
        mpfr_init_set_str(r10524, "1.570757098534734e-11", 10, MPFR_RNDN);
        mpfr_init(r10525);
        mpfr_init(r10526);
        mpfr_init(r10527);
        mpfr_init_set_str(r10528, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r10529, "8.0", 10, MPFR_RNDN);
        mpfr_init(r10530);
        mpfr_init(r10531);
        mpfr_init(r10532);
        mpfr_init(r10533);
        mpfr_init(r10534);
        mpfr_init(r10535);
        mpfr_init(r10536);
        mpfr_init(r10537);
        mpfr_init(r10538);
}

double f_dm(double alpha, double beta, double i) {
        mpfr_set_d(r10503, alpha, MPFR_RNDN);
        mpfr_set_d(r10504, beta, MPFR_RNDN);
        mpfr_add(r10505, r10503, r10504, MPFR_RNDN);
        ;
        mpfr_add(r10507, r10506, r10503, MPFR_RNDN);
        ;
        mpfr_set_d(r10509, i, MPFR_RNDN);
        mpfr_fma(r10510, r10508, r10509, r10504, MPFR_RNDN);
        mpfr_add(r10511, r10507, r10510, MPFR_RNDN);
        mpfr_div(r10512, r10505, r10511, MPFR_RNDN);
        ;
        mpfr_fma(r10514, r10508, r10509, r10503, MPFR_RNDN);
        mpfr_add(r10515, r10514, r10504, MPFR_RNDN);
        mpfr_sqrt(r10516, r10515, MPFR_RNDN);
        mpfr_div(r10517, r10513, r10516, MPFR_RNDN);
        mpfr_sub(r10518, r10504, r10503, MPFR_RNDN);
        mpfr_div(r10519, r10518, r10516, MPFR_RNDN);
        mpfr_mul(r10520, r10517, r10519, MPFR_RNDN);
        ;
        mpfr_fma(r10522, r10512, r10520, r10521, MPFR_RNDN);
        mpfr_div(r10523, r10522, r10506, MPFR_RNDN);
        ;
        mpfr_set_si(r10525, mpfr_cmp(r10523, r10524) <= 0, MPFR_RNDN);
        mpfr_div(r10526, r10513, r10503, MPFR_RNDN);
        mpfr_div(r10527, r10526, r10506, MPFR_RNDN);
        ;
        ;
        mpfr_div(r10530, r10529, r10503, MPFR_RNDN);
        mpfr_fma(r10531, r10530, r10526, r10506, MPFR_RNDN);
        mpfr_fma(r10532, r10528, r10526, r10531, MPFR_RNDN);
        mpfr_mul(r10533, r10527, r10532, MPFR_RNDN);
        mpfr_div(r10534, r10513, r10515, MPFR_RNDN);
        mpfr_mul(r10535, r10518, r10534, MPFR_RNDN);
        mpfr_fma(r10536, r10512, r10535, r10521, MPFR_RNDN);
        mpfr_div(r10537, r10536, r10506, MPFR_RNDN);
        if (mpfr_get_si(r10525, MPFR_RNDN)) { mpfr_set(r10538, r10533, MPFR_RNDN); } else { mpfr_set(r10538, r10537, MPFR_RNDN); };
        return mpfr_get_d(r10538, MPFR_RNDN);
}

