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

char *name = "Falkner and Boettcher, Equation (22+)";

double f_if(float v) {
        float r10437 = 4.0f;
        float r10438 = 3.0f;
        float r10439 = atan2(1.0, 0.0);
        float r10440 = r10438 * r10439;
        float r10441 = 1.0f;
        float r10442 = v;
        float r10443 = r10442 * r10442;
        float r10444 = r10441 - r10443;
        float r10445 = r10440 * r10444;
        float r10446 = 2.0f;
        float r10447 = 6.0f;
        float r10448 = r10447 * r10443;
        float r10449 = r10446 - r10448;
        float r10450 = sqrt(r10449);
        float r10451 = r10445 * r10450;
        float r10452 = r10437 / r10451;
        return r10452;
}

double f_id(double v) {
        double r10453 = 4.0;
        double r10454 = 3.0;
        double r10455 = atan2(1.0, 0.0);
        double r10456 = r10454 * r10455;
        double r10457 = 1.0;
        double r10458 = v;
        double r10459 = r10458 * r10458;
        double r10460 = r10457 - r10459;
        double r10461 = r10456 * r10460;
        double r10462 = 2.0;
        double r10463 = 6.0;
        double r10464 = r10463 * r10459;
        double r10465 = r10462 - r10464;
        double r10466 = sqrt(r10465);
        double r10467 = r10461 * r10466;
        double r10468 = r10453 / r10467;
        return r10468;
}


double f_of(float v) {
        float r10469 = 4.0f;
        float r10470 = 3.0f;
        float r10471 = r10469 / r10470;
        float r10472 = atan2(1.0, 0.0);
        float r10473 = r10471 / r10472;
        float r10474 = 1.0f;
        float r10475 = v;
        float r10476 = r10475 * r10475;
        float r10477 = r10474 - r10476;
        float r10478 = r10473 / r10477;
        float r10479 = 6.0f;
        float r10480 = r10479 * r10475;
        float r10481 = -r10475;
        float r10482 = 2.0f;
        float r10483 = fma(r10480, r10481, r10482);
        float r10484 = sqrt(r10483);
        float r10485 = r10478 / r10484;
        return r10485;
}

double f_od(double v) {
        double r10486 = 4.0;
        double r10487 = 3.0;
        double r10488 = r10486 / r10487;
        double r10489 = atan2(1.0, 0.0);
        double r10490 = r10488 / r10489;
        double r10491 = 1.0;
        double r10492 = v;
        double r10493 = r10492 * r10492;
        double r10494 = r10491 - r10493;
        double r10495 = r10490 / r10494;
        double r10496 = 6.0;
        double r10497 = r10496 * r10492;
        double r10498 = -r10492;
        double r10499 = 2.0;
        double r10500 = fma(r10497, r10498, r10499);
        double r10501 = sqrt(r10500);
        double r10502 = r10495 / r10501;
        return r10502;
}

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 r10503, r10504, r10505, r10506, r10507, r10508, r10509, r10510, r10511, r10512, r10513, r10514, r10515, r10516, r10517, r10518;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r10503, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r10504, "3", 10, MPFR_RNDN);
        mpfr_init(r10505);
        mpfr_init(r10506);
        mpfr_init_set_str(r10507, "1", 10, MPFR_RNDN);
        mpfr_init(r10508);
        mpfr_init(r10509);
        mpfr_init(r10510);
        mpfr_init(r10511);
        mpfr_init_set_str(r10512, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r10513, "6", 10, MPFR_RNDN);
        mpfr_init(r10514);
        mpfr_init(r10515);
        mpfr_init(r10516);
        mpfr_init(r10517);
        mpfr_init(r10518);
}

double f_im(double v) {
        ;
        ;
        mpfr_const_pi(r10505, MPFR_RNDN);
        mpfr_mul(r10506, r10504, r10505, MPFR_RNDN);
        ;
        mpfr_set_d(r10508, v, MPFR_RNDN);
        mpfr_mul(r10509, r10508, r10508, MPFR_RNDN);
        mpfr_sub(r10510, r10507, r10509, MPFR_RNDN);
        mpfr_mul(r10511, r10506, r10510, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r10514, r10513, r10509, MPFR_RNDN);
        mpfr_sub(r10515, r10512, r10514, MPFR_RNDN);
        mpfr_sqrt(r10516, r10515, MPFR_RNDN);
        mpfr_mul(r10517, r10511, r10516, MPFR_RNDN);
        mpfr_div(r10518, r10503, r10517, MPFR_RNDN);
        return mpfr_get_d(r10518, MPFR_RNDN);
}

static mpfr_t r10519, r10520, r10521, r10522, r10523, r10524, r10525, r10526, r10527, r10528, r10529, r10530, r10531, r10532, r10533, r10534, r10535;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r10519, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r10520, "3", 10, MPFR_RNDN);
        mpfr_init(r10521);
        mpfr_init(r10522);
        mpfr_init(r10523);
        mpfr_init_set_str(r10524, "1", 10, MPFR_RNDN);
        mpfr_init(r10525);
        mpfr_init(r10526);
        mpfr_init(r10527);
        mpfr_init(r10528);
        mpfr_init_set_str(r10529, "6", 10, MPFR_RNDN);
        mpfr_init(r10530);
        mpfr_init(r10531);
        mpfr_init_set_str(r10532, "2", 10, MPFR_RNDN);
        mpfr_init(r10533);
        mpfr_init(r10534);
        mpfr_init(r10535);
}

double f_fm(double v) {
        ;
        ;
        mpfr_div(r10521, r10519, r10520, MPFR_RNDN);
        mpfr_const_pi(r10522, MPFR_RNDN);
        mpfr_div(r10523, r10521, r10522, MPFR_RNDN);
        ;
        mpfr_set_d(r10525, v, MPFR_RNDN);
        mpfr_mul(r10526, r10525, r10525, MPFR_RNDN);
        mpfr_sub(r10527, r10524, r10526, MPFR_RNDN);
        mpfr_div(r10528, r10523, r10527, MPFR_RNDN);
        ;
        mpfr_mul(r10530, r10529, r10525, MPFR_RNDN);
        mpfr_neg(r10531, r10525, MPFR_RNDN);
        ;
        mpfr_fma(r10533, r10530, r10531, r10532, MPFR_RNDN);
        mpfr_sqrt(r10534, r10533, MPFR_RNDN);
        mpfr_div(r10535, r10528, r10534, MPFR_RNDN);
        return mpfr_get_d(r10535, MPFR_RNDN);
}

static mpfr_t r10536, r10537, r10538, r10539, r10540, r10541, r10542, r10543, r10544, r10545, r10546, r10547, r10548, r10549, r10550, r10551, r10552;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r10536, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r10537, "3", 10, MPFR_RNDN);
        mpfr_init(r10538);
        mpfr_init(r10539);
        mpfr_init(r10540);
        mpfr_init_set_str(r10541, "1", 10, MPFR_RNDN);
        mpfr_init(r10542);
        mpfr_init(r10543);
        mpfr_init(r10544);
        mpfr_init(r10545);
        mpfr_init_set_str(r10546, "6", 10, MPFR_RNDN);
        mpfr_init(r10547);
        mpfr_init(r10548);
        mpfr_init_set_str(r10549, "2", 10, MPFR_RNDN);
        mpfr_init(r10550);
        mpfr_init(r10551);
        mpfr_init(r10552);
}

double f_dm(double v) {
        ;
        ;
        mpfr_div(r10538, r10536, r10537, MPFR_RNDN);
        mpfr_const_pi(r10539, MPFR_RNDN);
        mpfr_div(r10540, r10538, r10539, MPFR_RNDN);
        ;
        mpfr_set_d(r10542, v, MPFR_RNDN);
        mpfr_mul(r10543, r10542, r10542, MPFR_RNDN);
        mpfr_sub(r10544, r10541, r10543, MPFR_RNDN);
        mpfr_div(r10545, r10540, r10544, MPFR_RNDN);
        ;
        mpfr_mul(r10547, r10546, r10542, MPFR_RNDN);
        mpfr_neg(r10548, r10542, MPFR_RNDN);
        ;
        mpfr_fma(r10550, r10547, r10548, r10549, MPFR_RNDN);
        mpfr_sqrt(r10551, r10550, MPFR_RNDN);
        mpfr_div(r10552, r10545, r10551, MPFR_RNDN);
        return mpfr_get_d(r10552, MPFR_RNDN);
}

