#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 r11105 = 4;
        float r11106 = 3;
        float r11107 = atan2(1.0, 0.0);
        float r11108 = r11106 * r11107;
        float r11109 = 1;
        float r11110 = v;
        float r11111 = r11110 * r11110;
        float r11112 = r11109 - r11111;
        float r11113 = r11108 * r11112;
        float r11114 = 2;
        float r11115 = 6;
        float r11116 = r11115 * r11111;
        float r11117 = r11114 - r11116;
        float r11118 = sqrt(r11117);
        float r11119 = r11113 * r11118;
        float r11120 = r11105 / r11119;
        return r11120;
}

double f_id(double v) {
        double r11121 = 4;
        double r11122 = 3;
        double r11123 = atan2(1.0, 0.0);
        double r11124 = r11122 * r11123;
        double r11125 = 1;
        double r11126 = v;
        double r11127 = r11126 * r11126;
        double r11128 = r11125 - r11127;
        double r11129 = r11124 * r11128;
        double r11130 = 2;
        double r11131 = 6;
        double r11132 = r11131 * r11127;
        double r11133 = r11130 - r11132;
        double r11134 = sqrt(r11133);
        double r11135 = r11129 * r11134;
        double r11136 = r11121 / r11135;
        return r11136;
}


double f_of(float v) {
        float r11137 = 4;
        float r11138 = atan2(1.0, 0.0);
        float r11139 = r11137 / r11138;
        float r11140 = 3;
        float r11141 = r11139 / r11140;
        float r11142 = 1;
        float r11143 = v;
        float r11144 = r11143 * r11143;
        float r11145 = r11142 - r11144;
        float r11146 = r11141 / r11145;
        float r11147 = 2;
        float r11148 = 6;
        float r11149 = r11143 * r11148;
        float r11150 = r11143 * r11149;
        float r11151 = r11147 - r11150;
        float r11152 = sqrt(r11151);
        float r11153 = r11146 / r11152;
        float r11154 = pow(r11153, r11140);
        float r11155 = cbrt(r11154);
        return r11155;
}

double f_od(double v) {
        double r11156 = 4;
        double r11157 = atan2(1.0, 0.0);
        double r11158 = r11156 / r11157;
        double r11159 = 3;
        double r11160 = r11158 / r11159;
        double r11161 = 1;
        double r11162 = v;
        double r11163 = r11162 * r11162;
        double r11164 = r11161 - r11163;
        double r11165 = r11160 / r11164;
        double r11166 = 2;
        double r11167 = 6;
        double r11168 = r11162 * r11167;
        double r11169 = r11162 * r11168;
        double r11170 = r11166 - r11169;
        double r11171 = sqrt(r11170);
        double r11172 = r11165 / r11171;
        double r11173 = pow(r11172, r11159);
        double r11174 = cbrt(r11173);
        return r11174;
}

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 r11175, r11176, r11177, r11178, r11179, r11180, r11181, r11182, r11183, r11184, r11185, r11186, r11187, r11188, r11189, r11190;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r11175, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r11176, "3", 10, MPFR_RNDN);
        mpfr_init(r11177);
        mpfr_init(r11178);
        mpfr_init_set_str(r11179, "1", 10, MPFR_RNDN);
        mpfr_init(r11180);
        mpfr_init(r11181);
        mpfr_init(r11182);
        mpfr_init(r11183);
        mpfr_init_set_str(r11184, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r11185, "6", 10, MPFR_RNDN);
        mpfr_init(r11186);
        mpfr_init(r11187);
        mpfr_init(r11188);
        mpfr_init(r11189);
        mpfr_init(r11190);
}

double f_im(double v) {
        ;
        ;
        mpfr_const_pi(r11177, MPFR_RNDN);
        mpfr_mul(r11178, r11176, r11177, MPFR_RNDN);
        ;
        mpfr_set_d(r11180, v, MPFR_RNDN);
        mpfr_mul(r11181, r11180, r11180, MPFR_RNDN);
        mpfr_sub(r11182, r11179, r11181, MPFR_RNDN);
        mpfr_mul(r11183, r11178, r11182, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r11186, r11185, r11181, MPFR_RNDN);
        mpfr_sub(r11187, r11184, r11186, MPFR_RNDN);
        mpfr_sqrt(r11188, r11187, MPFR_RNDN);
        mpfr_mul(r11189, r11183, r11188, MPFR_RNDN);
        mpfr_div(r11190, r11175, r11189, MPFR_RNDN);
        return mpfr_get_d(r11190, MPFR_RNDN);
}

static mpfr_t r11191, r11192, r11193, r11194, r11195, r11196, r11197, r11198, r11199, r11200, r11201, r11202, r11203, r11204, r11205, r11206, r11207, r11208, r11209;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r11191, "4", 10, MPFR_RNDN);
        mpfr_init(r11192);
        mpfr_init(r11193);
        mpfr_init_set_str(r11194, "3", 10, MPFR_RNDN);
        mpfr_init(r11195);
        mpfr_init_set_str(r11196, "1", 10, MPFR_RNDN);
        mpfr_init(r11197);
        mpfr_init(r11198);
        mpfr_init(r11199);
        mpfr_init(r11200);
        mpfr_init_set_str(r11201, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r11202, "6", 10, MPFR_RNDN);
        mpfr_init(r11203);
        mpfr_init(r11204);
        mpfr_init(r11205);
        mpfr_init(r11206);
        mpfr_init(r11207);
        mpfr_init(r11208);
        mpfr_init(r11209);
}

double f_fm(double v) {
        ;
        mpfr_const_pi(r11192, MPFR_RNDN);
        mpfr_div(r11193, r11191, r11192, MPFR_RNDN);
        ;
        mpfr_div(r11195, r11193, r11194, MPFR_RNDN);
        ;
        mpfr_set_d(r11197, v, MPFR_RNDN);
        mpfr_mul(r11198, r11197, r11197, MPFR_RNDN);
        mpfr_sub(r11199, r11196, r11198, MPFR_RNDN);
        mpfr_div(r11200, r11195, r11199, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r11203, r11197, r11202, MPFR_RNDN);
        mpfr_mul(r11204, r11197, r11203, MPFR_RNDN);
        mpfr_sub(r11205, r11201, r11204, MPFR_RNDN);
        mpfr_sqrt(r11206, r11205, MPFR_RNDN);
        mpfr_div(r11207, r11200, r11206, MPFR_RNDN);
        mpfr_pow(r11208, r11207, r11194, MPFR_RNDN);
        mpfr_cbrt(r11209, r11208, MPFR_RNDN);
        return mpfr_get_d(r11209, MPFR_RNDN);
}

static mpfr_t r11210, r11211, r11212, r11213, r11214, r11215, r11216, r11217, r11218, r11219, r11220, r11221, r11222, r11223, r11224, r11225, r11226, r11227, r11228;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r11210, "4", 10, MPFR_RNDN);
        mpfr_init(r11211);
        mpfr_init(r11212);
        mpfr_init_set_str(r11213, "3", 10, MPFR_RNDN);
        mpfr_init(r11214);
        mpfr_init_set_str(r11215, "1", 10, MPFR_RNDN);
        mpfr_init(r11216);
        mpfr_init(r11217);
        mpfr_init(r11218);
        mpfr_init(r11219);
        mpfr_init_set_str(r11220, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r11221, "6", 10, MPFR_RNDN);
        mpfr_init(r11222);
        mpfr_init(r11223);
        mpfr_init(r11224);
        mpfr_init(r11225);
        mpfr_init(r11226);
        mpfr_init(r11227);
        mpfr_init(r11228);
}

double f_dm(double v) {
        ;
        mpfr_const_pi(r11211, MPFR_RNDN);
        mpfr_div(r11212, r11210, r11211, MPFR_RNDN);
        ;
        mpfr_div(r11214, r11212, r11213, MPFR_RNDN);
        ;
        mpfr_set_d(r11216, v, MPFR_RNDN);
        mpfr_mul(r11217, r11216, r11216, MPFR_RNDN);
        mpfr_sub(r11218, r11215, r11217, MPFR_RNDN);
        mpfr_div(r11219, r11214, r11218, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r11222, r11216, r11221, MPFR_RNDN);
        mpfr_mul(r11223, r11216, r11222, MPFR_RNDN);
        mpfr_sub(r11224, r11220, r11223, MPFR_RNDN);
        mpfr_sqrt(r11225, r11224, MPFR_RNDN);
        mpfr_div(r11226, r11219, r11225, MPFR_RNDN);
        mpfr_pow(r11227, r11226, r11213, MPFR_RNDN);
        mpfr_cbrt(r11228, r11227, MPFR_RNDN);
        return mpfr_get_d(r11228, MPFR_RNDN);
}

