#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 r27179 = 4;
        float r27180 = 3;
        float r27181 = atan2(1.0, 0.0);
        float r27182 = r27180 * r27181;
        float r27183 = 1;
        float r27184 = v;
        float r27185 = r27184 * r27184;
        float r27186 = r27183 - r27185;
        float r27187 = r27182 * r27186;
        float r27188 = 2;
        float r27189 = 6;
        float r27190 = r27189 * r27185;
        float r27191 = r27188 - r27190;
        float r27192 = sqrt(r27191);
        float r27193 = r27187 * r27192;
        float r27194 = r27179 / r27193;
        return r27194;
}

double f_id(double v) {
        double r27195 = 4;
        double r27196 = 3;
        double r27197 = atan2(1.0, 0.0);
        double r27198 = r27196 * r27197;
        double r27199 = 1;
        double r27200 = v;
        double r27201 = r27200 * r27200;
        double r27202 = r27199 - r27201;
        double r27203 = r27198 * r27202;
        double r27204 = 2;
        double r27205 = 6;
        double r27206 = r27205 * r27201;
        double r27207 = r27204 - r27206;
        double r27208 = sqrt(r27207);
        double r27209 = r27203 * r27208;
        double r27210 = r27195 / r27209;
        return r27210;
}


double f_of(float v) {
        float r27211 = 4;
        float r27212 = atan2(1.0, 0.0);
        float r27213 = 3;
        float r27214 = r27212 * r27213;
        float r27215 = r27211 / r27214;
        float r27216 = 1;
        float r27217 = v;
        float r27218 = r27217 * r27217;
        float r27219 = r27216 - r27218;
        float r27220 = r27215 / r27219;
        float r27221 = 6;
        float r27222 = -r27221;
        float r27223 = 2;
        float r27224 = fma(r27222, r27218, r27223);
        float r27225 = sqrt(r27224);
        float r27226 = r27220 / r27225;
        float r27227 = pow(r27226, r27213);
        float r27228 = cbrt(r27227);
        return r27228;
}

double f_od(double v) {
        double r27229 = 4;
        double r27230 = atan2(1.0, 0.0);
        double r27231 = 3;
        double r27232 = r27230 * r27231;
        double r27233 = r27229 / r27232;
        double r27234 = 1;
        double r27235 = v;
        double r27236 = r27235 * r27235;
        double r27237 = r27234 - r27236;
        double r27238 = r27233 / r27237;
        double r27239 = 6;
        double r27240 = -r27239;
        double r27241 = 2;
        double r27242 = fma(r27240, r27236, r27241);
        double r27243 = sqrt(r27242);
        double r27244 = r27238 / r27243;
        double r27245 = pow(r27244, r27231);
        double r27246 = cbrt(r27245);
        return r27246;
}

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 r27247, r27248, r27249, r27250, r27251, r27252, r27253, r27254, r27255, r27256, r27257, r27258, r27259, r27260, r27261, r27262;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r27247, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r27248, "3", 10, MPFR_RNDN);
        mpfr_init(r27249);
        mpfr_init(r27250);
        mpfr_init_set_str(r27251, "1", 10, MPFR_RNDN);
        mpfr_init(r27252);
        mpfr_init(r27253);
        mpfr_init(r27254);
        mpfr_init(r27255);
        mpfr_init_set_str(r27256, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r27257, "6", 10, MPFR_RNDN);
        mpfr_init(r27258);
        mpfr_init(r27259);
        mpfr_init(r27260);
        mpfr_init(r27261);
        mpfr_init(r27262);
}

double f_im(double v) {
        ;
        ;
        mpfr_const_pi(r27249, MPFR_RNDN);
        mpfr_mul(r27250, r27248, r27249, MPFR_RNDN);
        ;
        mpfr_set_d(r27252, v, MPFR_RNDN);
        mpfr_mul(r27253, r27252, r27252, MPFR_RNDN);
        mpfr_sub(r27254, r27251, r27253, MPFR_RNDN);
        mpfr_mul(r27255, r27250, r27254, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r27258, r27257, r27253, MPFR_RNDN);
        mpfr_sub(r27259, r27256, r27258, MPFR_RNDN);
        mpfr_sqrt(r27260, r27259, MPFR_RNDN);
        mpfr_mul(r27261, r27255, r27260, MPFR_RNDN);
        mpfr_div(r27262, r27247, r27261, MPFR_RNDN);
        return mpfr_get_d(r27262, MPFR_RNDN);
}

static mpfr_t r27263, r27264, r27265, r27266, r27267, r27268, r27269, r27270, r27271, r27272, r27273, r27274, r27275, r27276, r27277, r27278, r27279, r27280;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r27263, "4", 10, MPFR_RNDN);
        mpfr_init(r27264);
        mpfr_init_set_str(r27265, "3", 10, MPFR_RNDN);
        mpfr_init(r27266);
        mpfr_init(r27267);
        mpfr_init_set_str(r27268, "1", 10, MPFR_RNDN);
        mpfr_init(r27269);
        mpfr_init(r27270);
        mpfr_init(r27271);
        mpfr_init(r27272);
        mpfr_init_set_str(r27273, "6", 10, MPFR_RNDN);
        mpfr_init(r27274);
        mpfr_init_set_str(r27275, "2", 10, MPFR_RNDN);
        mpfr_init(r27276);
        mpfr_init(r27277);
        mpfr_init(r27278);
        mpfr_init(r27279);
        mpfr_init(r27280);
}

double f_fm(double v) {
        ;
        mpfr_const_pi(r27264, MPFR_RNDN);
        ;
        mpfr_mul(r27266, r27264, r27265, MPFR_RNDN);
        mpfr_div(r27267, r27263, r27266, MPFR_RNDN);
        ;
        mpfr_set_d(r27269, v, MPFR_RNDN);
        mpfr_mul(r27270, r27269, r27269, MPFR_RNDN);
        mpfr_sub(r27271, r27268, r27270, MPFR_RNDN);
        mpfr_div(r27272, r27267, r27271, MPFR_RNDN);
        ;
        mpfr_neg(r27274, r27273, MPFR_RNDN);
        ;
        mpfr_fma(r27276, r27274, r27270, r27275, MPFR_RNDN);
        mpfr_sqrt(r27277, r27276, MPFR_RNDN);
        mpfr_div(r27278, r27272, r27277, MPFR_RNDN);
        mpfr_pow(r27279, r27278, r27265, MPFR_RNDN);
        mpfr_cbrt(r27280, r27279, MPFR_RNDN);
        return mpfr_get_d(r27280, MPFR_RNDN);
}

static mpfr_t r27281, r27282, r27283, r27284, r27285, r27286, r27287, r27288, r27289, r27290, r27291, r27292, r27293, r27294, r27295, r27296, r27297, r27298;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r27281, "4", 10, MPFR_RNDN);
        mpfr_init(r27282);
        mpfr_init_set_str(r27283, "3", 10, MPFR_RNDN);
        mpfr_init(r27284);
        mpfr_init(r27285);
        mpfr_init_set_str(r27286, "1", 10, MPFR_RNDN);
        mpfr_init(r27287);
        mpfr_init(r27288);
        mpfr_init(r27289);
        mpfr_init(r27290);
        mpfr_init_set_str(r27291, "6", 10, MPFR_RNDN);
        mpfr_init(r27292);
        mpfr_init_set_str(r27293, "2", 10, MPFR_RNDN);
        mpfr_init(r27294);
        mpfr_init(r27295);
        mpfr_init(r27296);
        mpfr_init(r27297);
        mpfr_init(r27298);
}

double f_dm(double v) {
        ;
        mpfr_const_pi(r27282, MPFR_RNDN);
        ;
        mpfr_mul(r27284, r27282, r27283, MPFR_RNDN);
        mpfr_div(r27285, r27281, r27284, MPFR_RNDN);
        ;
        mpfr_set_d(r27287, v, MPFR_RNDN);
        mpfr_mul(r27288, r27287, r27287, MPFR_RNDN);
        mpfr_sub(r27289, r27286, r27288, MPFR_RNDN);
        mpfr_div(r27290, r27285, r27289, MPFR_RNDN);
        ;
        mpfr_neg(r27292, r27291, MPFR_RNDN);
        ;
        mpfr_fma(r27294, r27292, r27288, r27293, MPFR_RNDN);
        mpfr_sqrt(r27295, r27294, MPFR_RNDN);
        mpfr_div(r27296, r27290, r27295, MPFR_RNDN);
        mpfr_pow(r27297, r27296, r27283, MPFR_RNDN);
        mpfr_cbrt(r27298, r27297, MPFR_RNDN);
        return mpfr_get_d(r27298, MPFR_RNDN);
}

