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

char *name = "Falkner and Boettcher, Equation (20:1,3)";

double f_if(float v, float t) {
        float r11229 = 1;
        float r11230 = 5;
        float r11231 = v;
        float r11232 = r11231 * r11231;
        float r11233 = r11230 * r11232;
        float r11234 = r11229 - r11233;
        float r11235 = atan2(1.0, 0.0);
        float r11236 = t;
        float r11237 = r11235 * r11236;
        float r11238 = 2;
        float r11239 = 3;
        float r11240 = r11239 * r11232;
        float r11241 = r11229 - r11240;
        float r11242 = r11238 * r11241;
        float r11243 = sqrt(r11242);
        float r11244 = r11237 * r11243;
        float r11245 = r11229 - r11232;
        float r11246 = r11244 * r11245;
        float r11247 = r11234 / r11246;
        return r11247;
}

double f_id(double v, double t) {
        double r11248 = 1;
        double r11249 = 5;
        double r11250 = v;
        double r11251 = r11250 * r11250;
        double r11252 = r11249 * r11251;
        double r11253 = r11248 - r11252;
        double r11254 = atan2(1.0, 0.0);
        double r11255 = t;
        double r11256 = r11254 * r11255;
        double r11257 = 2;
        double r11258 = 3;
        double r11259 = r11258 * r11251;
        double r11260 = r11248 - r11259;
        double r11261 = r11257 * r11260;
        double r11262 = sqrt(r11261);
        double r11263 = r11256 * r11262;
        double r11264 = r11248 - r11251;
        double r11265 = r11263 * r11264;
        double r11266 = r11253 / r11265;
        return r11266;
}


double f_of(float v, float t) {
        float r11267 = 1;
        float r11268 = v;
        float r11269 = r11268 * r11268;
        float r11270 = 5;
        float r11271 = r11269 * r11270;
        float r11272 = r11267 - r11271;
        float r11273 = t;
        float r11274 = r11272 / r11273;
        float r11275 = atan2(1.0, 0.0);
        float r11276 = 3;
        float r11277 = pow(r11268, r11276);
        float r11278 = r11277 * r11277;
        float r11279 = r11267 - r11278;
        float r11280 = r11275 * r11279;
        float r11281 = r11269 * r11276;
        float r11282 = r11281 * r11281;
        float r11283 = r11267 - r11282;
        float r11284 = 2;
        float r11285 = r11283 * r11284;
        float r11286 = sqrt(r11285);
        float r11287 = r11280 * r11286;
        float r11288 = r11274 / r11287;
        float r11289 = r11276 * r11269;
        float r11290 = r11267 + r11289;
        float r11291 = sqrt(r11290);
        float r11292 = r11267 * r11267;
        float r11293 = r11269 * r11269;
        float r11294 = r11267 * r11269;
        float r11295 = r11293 + r11294;
        float r11296 = r11292 + r11295;
        float r11297 = r11291 * r11296;
        float r11298 = r11288 * r11297;
        return r11298;
}

double f_od(double v, double t) {
        double r11299 = 1;
        double r11300 = v;
        double r11301 = r11300 * r11300;
        double r11302 = 5;
        double r11303 = r11301 * r11302;
        double r11304 = r11299 - r11303;
        double r11305 = t;
        double r11306 = r11304 / r11305;
        double r11307 = atan2(1.0, 0.0);
        double r11308 = 3;
        double r11309 = pow(r11300, r11308);
        double r11310 = r11309 * r11309;
        double r11311 = r11299 - r11310;
        double r11312 = r11307 * r11311;
        double r11313 = r11301 * r11308;
        double r11314 = r11313 * r11313;
        double r11315 = r11299 - r11314;
        double r11316 = 2;
        double r11317 = r11315 * r11316;
        double r11318 = sqrt(r11317);
        double r11319 = r11312 * r11318;
        double r11320 = r11306 / r11319;
        double r11321 = r11308 * r11301;
        double r11322 = r11299 + r11321;
        double r11323 = sqrt(r11322);
        double r11324 = r11299 * r11299;
        double r11325 = r11301 * r11301;
        double r11326 = r11299 * r11301;
        double r11327 = r11325 + r11326;
        double r11328 = r11324 + r11327;
        double r11329 = r11323 * r11328;
        double r11330 = r11320 * r11329;
        return r11330;
}

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 r11331, r11332, r11333, r11334, r11335, r11336, r11337, r11338, r11339, r11340, r11341, r11342, r11343, r11344, r11345, r11346, r11347, r11348, r11349;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11331, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r11332, "5", 10, MPFR_RNDN);
        mpfr_init(r11333);
        mpfr_init(r11334);
        mpfr_init(r11335);
        mpfr_init(r11336);
        mpfr_init(r11337);
        mpfr_init(r11338);
        mpfr_init(r11339);
        mpfr_init_set_str(r11340, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r11341, "3", 10, MPFR_RNDN);
        mpfr_init(r11342);
        mpfr_init(r11343);
        mpfr_init(r11344);
        mpfr_init(r11345);
        mpfr_init(r11346);
        mpfr_init(r11347);
        mpfr_init(r11348);
        mpfr_init(r11349);
}

double f_im(double v, double t) {
        ;
        ;
        mpfr_set_d(r11333, v, MPFR_RNDN);
        mpfr_mul(r11334, r11333, r11333, MPFR_RNDN);
        mpfr_mul(r11335, r11332, r11334, MPFR_RNDN);
        mpfr_sub(r11336, r11331, r11335, MPFR_RNDN);
        mpfr_const_pi(r11337, MPFR_RNDN);
        mpfr_set_d(r11338, t, MPFR_RNDN);
        mpfr_mul(r11339, r11337, r11338, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r11342, r11341, r11334, MPFR_RNDN);
        mpfr_sub(r11343, r11331, r11342, MPFR_RNDN);
        mpfr_mul(r11344, r11340, r11343, MPFR_RNDN);
        mpfr_sqrt(r11345, r11344, MPFR_RNDN);
        mpfr_mul(r11346, r11339, r11345, MPFR_RNDN);
        mpfr_sub(r11347, r11331, r11334, MPFR_RNDN);
        mpfr_mul(r11348, r11346, r11347, MPFR_RNDN);
        mpfr_div(r11349, r11336, r11348, MPFR_RNDN);
        return mpfr_get_d(r11349, MPFR_RNDN);
}

static mpfr_t r11350, r11351, r11352, r11353, r11354, r11355, r11356, r11357, r11358, r11359, r11360, r11361, r11362, r11363, r11364, r11365, r11366, r11367, r11368, r11369, r11370, r11371, r11372, r11373, r11374, r11375, r11376, r11377, r11378, r11379, r11380, r11381;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11350, "1", 10, MPFR_RNDN);
        mpfr_init(r11351);
        mpfr_init(r11352);
        mpfr_init_set_str(r11353, "5", 10, MPFR_RNDN);
        mpfr_init(r11354);
        mpfr_init(r11355);
        mpfr_init(r11356);
        mpfr_init(r11357);
        mpfr_init(r11358);
        mpfr_init_set_str(r11359, "3", 10, MPFR_RNDN);
        mpfr_init(r11360);
        mpfr_init(r11361);
        mpfr_init(r11362);
        mpfr_init(r11363);
        mpfr_init(r11364);
        mpfr_init(r11365);
        mpfr_init(r11366);
        mpfr_init_set_str(r11367, "2", 10, MPFR_RNDN);
        mpfr_init(r11368);
        mpfr_init(r11369);
        mpfr_init(r11370);
        mpfr_init(r11371);
        mpfr_init(r11372);
        mpfr_init(r11373);
        mpfr_init(r11374);
        mpfr_init(r11375);
        mpfr_init(r11376);
        mpfr_init(r11377);
        mpfr_init(r11378);
        mpfr_init(r11379);
        mpfr_init(r11380);
        mpfr_init(r11381);
}

double f_fm(double v, double t) {
        ;
        mpfr_set_d(r11351, v, MPFR_RNDN);
        mpfr_mul(r11352, r11351, r11351, MPFR_RNDN);
        ;
        mpfr_mul(r11354, r11352, r11353, MPFR_RNDN);
        mpfr_sub(r11355, r11350, r11354, MPFR_RNDN);
        mpfr_set_d(r11356, t, MPFR_RNDN);
        mpfr_div(r11357, r11355, r11356, MPFR_RNDN);
        mpfr_const_pi(r11358, MPFR_RNDN);
        ;
        mpfr_pow(r11360, r11351, r11359, MPFR_RNDN);
        mpfr_mul(r11361, r11360, r11360, MPFR_RNDN);
        mpfr_sub(r11362, r11350, r11361, MPFR_RNDN);
        mpfr_mul(r11363, r11358, r11362, MPFR_RNDN);
        mpfr_mul(r11364, r11352, r11359, MPFR_RNDN);
        mpfr_mul(r11365, r11364, r11364, MPFR_RNDN);
        mpfr_sub(r11366, r11350, r11365, MPFR_RNDN);
        ;
        mpfr_mul(r11368, r11366, r11367, MPFR_RNDN);
        mpfr_sqrt(r11369, r11368, MPFR_RNDN);
        mpfr_mul(r11370, r11363, r11369, MPFR_RNDN);
        mpfr_div(r11371, r11357, r11370, MPFR_RNDN);
        mpfr_mul(r11372, r11359, r11352, MPFR_RNDN);
        mpfr_add(r11373, r11350, r11372, MPFR_RNDN);
        mpfr_sqrt(r11374, r11373, MPFR_RNDN);
        mpfr_mul(r11375, r11350, r11350, MPFR_RNDN);
        mpfr_mul(r11376, r11352, r11352, MPFR_RNDN);
        mpfr_mul(r11377, r11350, r11352, MPFR_RNDN);
        mpfr_add(r11378, r11376, r11377, MPFR_RNDN);
        mpfr_add(r11379, r11375, r11378, MPFR_RNDN);
        mpfr_mul(r11380, r11374, r11379, MPFR_RNDN);
        mpfr_mul(r11381, r11371, r11380, MPFR_RNDN);
        return mpfr_get_d(r11381, MPFR_RNDN);
}

static mpfr_t r11382, r11383, r11384, r11385, r11386, r11387, r11388, r11389, r11390, r11391, r11392, r11393, r11394, r11395, r11396, r11397, r11398, r11399, r11400, r11401, r11402, r11403, r11404, r11405, r11406, r11407, r11408, r11409, r11410, r11411, r11412, r11413;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11382, "1", 10, MPFR_RNDN);
        mpfr_init(r11383);
        mpfr_init(r11384);
        mpfr_init_set_str(r11385, "5", 10, MPFR_RNDN);
        mpfr_init(r11386);
        mpfr_init(r11387);
        mpfr_init(r11388);
        mpfr_init(r11389);
        mpfr_init(r11390);
        mpfr_init_set_str(r11391, "3", 10, MPFR_RNDN);
        mpfr_init(r11392);
        mpfr_init(r11393);
        mpfr_init(r11394);
        mpfr_init(r11395);
        mpfr_init(r11396);
        mpfr_init(r11397);
        mpfr_init(r11398);
        mpfr_init_set_str(r11399, "2", 10, MPFR_RNDN);
        mpfr_init(r11400);
        mpfr_init(r11401);
        mpfr_init(r11402);
        mpfr_init(r11403);
        mpfr_init(r11404);
        mpfr_init(r11405);
        mpfr_init(r11406);
        mpfr_init(r11407);
        mpfr_init(r11408);
        mpfr_init(r11409);
        mpfr_init(r11410);
        mpfr_init(r11411);
        mpfr_init(r11412);
        mpfr_init(r11413);
}

double f_dm(double v, double t) {
        ;
        mpfr_set_d(r11383, v, MPFR_RNDN);
        mpfr_mul(r11384, r11383, r11383, MPFR_RNDN);
        ;
        mpfr_mul(r11386, r11384, r11385, MPFR_RNDN);
        mpfr_sub(r11387, r11382, r11386, MPFR_RNDN);
        mpfr_set_d(r11388, t, MPFR_RNDN);
        mpfr_div(r11389, r11387, r11388, MPFR_RNDN);
        mpfr_const_pi(r11390, MPFR_RNDN);
        ;
        mpfr_pow(r11392, r11383, r11391, MPFR_RNDN);
        mpfr_mul(r11393, r11392, r11392, MPFR_RNDN);
        mpfr_sub(r11394, r11382, r11393, MPFR_RNDN);
        mpfr_mul(r11395, r11390, r11394, MPFR_RNDN);
        mpfr_mul(r11396, r11384, r11391, MPFR_RNDN);
        mpfr_mul(r11397, r11396, r11396, MPFR_RNDN);
        mpfr_sub(r11398, r11382, r11397, MPFR_RNDN);
        ;
        mpfr_mul(r11400, r11398, r11399, MPFR_RNDN);
        mpfr_sqrt(r11401, r11400, MPFR_RNDN);
        mpfr_mul(r11402, r11395, r11401, MPFR_RNDN);
        mpfr_div(r11403, r11389, r11402, MPFR_RNDN);
        mpfr_mul(r11404, r11391, r11384, MPFR_RNDN);
        mpfr_add(r11405, r11382, r11404, MPFR_RNDN);
        mpfr_sqrt(r11406, r11405, MPFR_RNDN);
        mpfr_mul(r11407, r11382, r11382, MPFR_RNDN);
        mpfr_mul(r11408, r11384, r11384, MPFR_RNDN);
        mpfr_mul(r11409, r11382, r11384, MPFR_RNDN);
        mpfr_add(r11410, r11408, r11409, MPFR_RNDN);
        mpfr_add(r11411, r11407, r11410, MPFR_RNDN);
        mpfr_mul(r11412, r11406, r11411, MPFR_RNDN);
        mpfr_mul(r11413, r11403, r11412, MPFR_RNDN);
        return mpfr_get_d(r11413, MPFR_RNDN);
}

