#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 r33124 = 4;
        float r33125 = 3;
        float r33126 = atan2(1.0, 0.0);
        float r33127 = r33125 * r33126;
        float r33128 = 1;
        float r33129 = v;
        float r33130 = r33129 * r33129;
        float r33131 = r33128 - r33130;
        float r33132 = r33127 * r33131;
        float r33133 = 2;
        float r33134 = 6;
        float r33135 = r33134 * r33130;
        float r33136 = r33133 - r33135;
        float r33137 = sqrt(r33136);
        float r33138 = r33132 * r33137;
        float r33139 = r33124 / r33138;
        return r33139;
}

double f_id(double v) {
        double r33140 = 4;
        double r33141 = 3;
        double r33142 = atan2(1.0, 0.0);
        double r33143 = r33141 * r33142;
        double r33144 = 1;
        double r33145 = v;
        double r33146 = r33145 * r33145;
        double r33147 = r33144 - r33146;
        double r33148 = r33143 * r33147;
        double r33149 = 2;
        double r33150 = 6;
        double r33151 = r33150 * r33146;
        double r33152 = r33149 - r33151;
        double r33153 = sqrt(r33152);
        double r33154 = r33148 * r33153;
        double r33155 = r33140 / r33154;
        return r33155;
}


double f_of(float v) {
        float r33156 = 4;
        float r33157 = 3;
        float r33158 = r33156 / r33157;
        float r33159 = atan2(1.0, 0.0);
        float r33160 = v;
        float r33161 = r33159 * r33160;
        float r33162 = r33161 * r33160;
        float r33163 = r33159 - r33162;
        float r33164 = r33158 / r33163;
        float r33165 = 2;
        float r33166 = 6;
        float r33167 = r33160 * r33160;
        float r33168 = r33166 * r33167;
        float r33169 = r33165 - r33168;
        float r33170 = sqrt(r33169);
        float r33171 = r33164 / r33170;
        return r33171;
}

double f_od(double v) {
        double r33172 = 4;
        double r33173 = 3;
        double r33174 = r33172 / r33173;
        double r33175 = atan2(1.0, 0.0);
        double r33176 = v;
        double r33177 = r33175 * r33176;
        double r33178 = r33177 * r33176;
        double r33179 = r33175 - r33178;
        double r33180 = r33174 / r33179;
        double r33181 = 2;
        double r33182 = 6;
        double r33183 = r33176 * r33176;
        double r33184 = r33182 * r33183;
        double r33185 = r33181 - r33184;
        double r33186 = sqrt(r33185);
        double r33187 = r33180 / r33186;
        return r33187;
}

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 r33188, r33189, r33190, r33191, r33192, r33193, r33194, r33195, r33196, r33197, r33198, r33199, r33200, r33201, r33202, r33203;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r33188, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r33189, "3", 10, MPFR_RNDN);
        mpfr_init(r33190);
        mpfr_init(r33191);
        mpfr_init_set_str(r33192, "1", 10, MPFR_RNDN);
        mpfr_init(r33193);
        mpfr_init(r33194);
        mpfr_init(r33195);
        mpfr_init(r33196);
        mpfr_init_set_str(r33197, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r33198, "6", 10, MPFR_RNDN);
        mpfr_init(r33199);
        mpfr_init(r33200);
        mpfr_init(r33201);
        mpfr_init(r33202);
        mpfr_init(r33203);
}

double f_im(double v) {
        ;
        ;
        mpfr_const_pi(r33190, MPFR_RNDN);
        mpfr_mul(r33191, r33189, r33190, MPFR_RNDN);
        ;
        mpfr_set_d(r33193, v, MPFR_RNDN);
        mpfr_mul(r33194, r33193, r33193, MPFR_RNDN);
        mpfr_sub(r33195, r33192, r33194, MPFR_RNDN);
        mpfr_mul(r33196, r33191, r33195, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r33199, r33198, r33194, MPFR_RNDN);
        mpfr_sub(r33200, r33197, r33199, MPFR_RNDN);
        mpfr_sqrt(r33201, r33200, MPFR_RNDN);
        mpfr_mul(r33202, r33196, r33201, MPFR_RNDN);
        mpfr_div(r33203, r33188, r33202, MPFR_RNDN);
        return mpfr_get_d(r33203, MPFR_RNDN);
}

static mpfr_t r33204, r33205, r33206, r33207, r33208, r33209, r33210, r33211, r33212, r33213, r33214, r33215, r33216, r33217, r33218, r33219;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r33204, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r33205, "3", 10, MPFR_RNDN);
        mpfr_init(r33206);
        mpfr_init(r33207);
        mpfr_init(r33208);
        mpfr_init(r33209);
        mpfr_init(r33210);
        mpfr_init(r33211);
        mpfr_init(r33212);
        mpfr_init_set_str(r33213, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r33214, "6", 10, MPFR_RNDN);
        mpfr_init(r33215);
        mpfr_init(r33216);
        mpfr_init(r33217);
        mpfr_init(r33218);
        mpfr_init(r33219);
}

double f_fm(double v) {
        ;
        ;
        mpfr_div(r33206, r33204, r33205, MPFR_RNDN);
        mpfr_const_pi(r33207, MPFR_RNDN);
        mpfr_set_d(r33208, v, MPFR_RNDN);
        mpfr_mul(r33209, r33207, r33208, MPFR_RNDN);
        mpfr_mul(r33210, r33209, r33208, MPFR_RNDN);
        mpfr_sub(r33211, r33207, r33210, MPFR_RNDN);
        mpfr_div(r33212, r33206, r33211, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r33215, r33208, r33208, MPFR_RNDN);
        mpfr_mul(r33216, r33214, r33215, MPFR_RNDN);
        mpfr_sub(r33217, r33213, r33216, MPFR_RNDN);
        mpfr_sqrt(r33218, r33217, MPFR_RNDN);
        mpfr_div(r33219, r33212, r33218, MPFR_RNDN);
        return mpfr_get_d(r33219, MPFR_RNDN);
}

static mpfr_t r33220, r33221, r33222, r33223, r33224, r33225, r33226, r33227, r33228, r33229, r33230, r33231, r33232, r33233, r33234, r33235;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r33220, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r33221, "3", 10, MPFR_RNDN);
        mpfr_init(r33222);
        mpfr_init(r33223);
        mpfr_init(r33224);
        mpfr_init(r33225);
        mpfr_init(r33226);
        mpfr_init(r33227);
        mpfr_init(r33228);
        mpfr_init_set_str(r33229, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r33230, "6", 10, MPFR_RNDN);
        mpfr_init(r33231);
        mpfr_init(r33232);
        mpfr_init(r33233);
        mpfr_init(r33234);
        mpfr_init(r33235);
}

double f_dm(double v) {
        ;
        ;
        mpfr_div(r33222, r33220, r33221, MPFR_RNDN);
        mpfr_const_pi(r33223, MPFR_RNDN);
        mpfr_set_d(r33224, v, MPFR_RNDN);
        mpfr_mul(r33225, r33223, r33224, MPFR_RNDN);
        mpfr_mul(r33226, r33225, r33224, MPFR_RNDN);
        mpfr_sub(r33227, r33223, r33226, MPFR_RNDN);
        mpfr_div(r33228, r33222, r33227, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r33231, r33224, r33224, MPFR_RNDN);
        mpfr_mul(r33232, r33230, r33231, MPFR_RNDN);
        mpfr_sub(r33233, r33229, r33232, MPFR_RNDN);
        mpfr_sqrt(r33234, r33233, MPFR_RNDN);
        mpfr_div(r33235, r33228, r33234, MPFR_RNDN);
        return mpfr_get_d(r33235, MPFR_RNDN);
}

