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

char *name = "VandenBroeck and Keller, Equation (6)";

double f_if(float F, float l) {
        float r30461251 = atan2(1.0, 0.0);
        float r30461252 = l;
        float r30461253 = r30461251 * r30461252;
        float r30461254 = 1;
        float r30461255 = F;
        float r30461256 = r30461255 * r30461255;
        float r30461257 = r30461254 / r30461256;
        float r30461258 = tan(r30461253);
        float r30461259 = r30461257 * r30461258;
        float r30461260 = r30461253 - r30461259;
        return r30461260;
}

double f_id(double F, double l) {
        double r30461261 = atan2(1.0, 0.0);
        double r30461262 = l;
        double r30461263 = r30461261 * r30461262;
        double r30461264 = 1;
        double r30461265 = F;
        double r30461266 = r30461265 * r30461265;
        double r30461267 = r30461264 / r30461266;
        double r30461268 = tan(r30461263);
        double r30461269 = r30461267 * r30461268;
        double r30461270 = r30461263 - r30461269;
        return r30461270;
}


double f_of(float F, float l) {
        float r30461271 = atan2(1.0, 0.0);
        float r30461272 = l;
        float r30461273 = r30461271 * r30461272;
        float r30461274 = -7.009633394870095e+99;
        bool r30461275 = r30461273 <= r30461274;
        float r30461276 = tan(r30461273);
        float r30461277 = F;
        float r30461278 = r30461276 / r30461277;
        float r30461279 = cbrt(r30461278);
        float r30461280 = r30461279 * r30461279;
        float r30461281 = r30461271 / r30461272;
        float r30461282 = cos(r30461281);
        float r30461283 = sin(r30461281);
        float r30461284 = r30461282 / r30461283;
        float r30461285 = r30461277 / r30461284;
        float r30461286 = cbrt(r30461285);
        float r30461287 = r30461277 / r30461286;
        float r30461288 = r30461280 / r30461287;
        float r30461289 = r30461273 - r30461288;
        float r30461290 = -2.1761679811364737e+26;
        bool r30461291 = r30461273 <= r30461290;
        float r30461292 = sin(r30461273);
        float r30461293 = r30461277 * r30461277;
        float r30461294 = 1/24;
        float r30461295 = 4;
        float r30461296 = pow(r30461271, r30461295);
        float r30461297 = pow(r30461272, r30461295);
        float r30461298 = r30461296 * r30461297;
        float r30461299 = r30461294 * r30461298;
        float r30461300 = 1;
        float r30461301 = r30461299 + r30461300;
        float r30461302 = 1/2;
        float r30461303 = 2;
        float r30461304 = pow(r30461271, r30461303);
        float r30461305 = pow(r30461272, r30461303);
        float r30461306 = r30461304 * r30461305;
        float r30461307 = r30461302 * r30461306;
        float r30461308 = r30461301 - r30461307;
        float r30461309 = r30461293 * r30461308;
        float r30461310 = r30461292 / r30461309;
        float r30461311 = r30461273 - r30461310;
        float r30461312 = 2.1687705884278945e+62;
        bool r30461313 = r30461273 <= r30461312;
        float r30461314 = r30461278 / r30461277;
        float r30461315 = r30461273 - r30461314;
        float r30461316 = r30461313 ? r30461315 : r30461289;
        float r30461317 = r30461291 ? r30461311 : r30461316;
        float r30461318 = r30461275 ? r30461289 : r30461317;
        return r30461318;
}

double f_od(double F, double l) {
        double r30461319 = atan2(1.0, 0.0);
        double r30461320 = l;
        double r30461321 = r30461319 * r30461320;
        double r30461322 = -7.009633394870095e+99;
        bool r30461323 = r30461321 <= r30461322;
        double r30461324 = tan(r30461321);
        double r30461325 = F;
        double r30461326 = r30461324 / r30461325;
        double r30461327 = cbrt(r30461326);
        double r30461328 = r30461327 * r30461327;
        double r30461329 = r30461319 / r30461320;
        double r30461330 = cos(r30461329);
        double r30461331 = sin(r30461329);
        double r30461332 = r30461330 / r30461331;
        double r30461333 = r30461325 / r30461332;
        double r30461334 = cbrt(r30461333);
        double r30461335 = r30461325 / r30461334;
        double r30461336 = r30461328 / r30461335;
        double r30461337 = r30461321 - r30461336;
        double r30461338 = -2.1761679811364737e+26;
        bool r30461339 = r30461321 <= r30461338;
        double r30461340 = sin(r30461321);
        double r30461341 = r30461325 * r30461325;
        double r30461342 = 1/24;
        double r30461343 = 4;
        double r30461344 = pow(r30461319, r30461343);
        double r30461345 = pow(r30461320, r30461343);
        double r30461346 = r30461344 * r30461345;
        double r30461347 = r30461342 * r30461346;
        double r30461348 = 1;
        double r30461349 = r30461347 + r30461348;
        double r30461350 = 1/2;
        double r30461351 = 2;
        double r30461352 = pow(r30461319, r30461351);
        double r30461353 = pow(r30461320, r30461351);
        double r30461354 = r30461352 * r30461353;
        double r30461355 = r30461350 * r30461354;
        double r30461356 = r30461349 - r30461355;
        double r30461357 = r30461341 * r30461356;
        double r30461358 = r30461340 / r30461357;
        double r30461359 = r30461321 - r30461358;
        double r30461360 = 2.1687705884278945e+62;
        bool r30461361 = r30461321 <= r30461360;
        double r30461362 = r30461326 / r30461325;
        double r30461363 = r30461321 - r30461362;
        double r30461364 = r30461361 ? r30461363 : r30461337;
        double r30461365 = r30461339 ? r30461359 : r30461364;
        double r30461366 = r30461323 ? r30461337 : r30461365;
        return r30461366;
}

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 r30461367, r30461368, r30461369, r30461370, r30461371, r30461372, r30461373, r30461374, r30461375, r30461376;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2960);
        mpfr_init(r30461367);
        mpfr_init(r30461368);
        mpfr_init(r30461369);
        mpfr_init_set_str(r30461370, "1", 10, MPFR_RNDN);
        mpfr_init(r30461371);
        mpfr_init(r30461372);
        mpfr_init(r30461373);
        mpfr_init(r30461374);
        mpfr_init(r30461375);
        mpfr_init(r30461376);
}

double f_im(double F, double l) {
        mpfr_const_pi(r30461367, MPFR_RNDN);
        mpfr_set_d(r30461368, l, MPFR_RNDN);
        mpfr_mul(r30461369, r30461367, r30461368, MPFR_RNDN);
        ;
        mpfr_set_d(r30461371, F, MPFR_RNDN);
        mpfr_mul(r30461372, r30461371, r30461371, MPFR_RNDN);
        mpfr_div(r30461373, r30461370, r30461372, MPFR_RNDN);
        mpfr_tan(r30461374, r30461369, MPFR_RNDN);
        mpfr_mul(r30461375, r30461373, r30461374, MPFR_RNDN);
        mpfr_sub(r30461376, r30461369, r30461375, MPFR_RNDN);
        return mpfr_get_d(r30461376, MPFR_RNDN);
}

static mpfr_t r30461377, r30461378, r30461379, r30461380, r30461381, r30461382, r30461383, r30461384, r30461385, r30461386, r30461387, r30461388, r30461389, r30461390, r30461391, r30461392, r30461393, r30461394, r30461395, r30461396, r30461397, r30461398, r30461399, r30461400, r30461401, r30461402, r30461403, r30461404, r30461405, r30461406, r30461407, r30461408, r30461409, r30461410, r30461411, r30461412, r30461413, r30461414, r30461415, r30461416, r30461417, r30461418, r30461419, r30461420, r30461421, r30461422, r30461423, r30461424;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r30461377);
        mpfr_init(r30461378);
        mpfr_init(r30461379);
        mpfr_init_set_str(r30461380, "-7.009633394870095e+99", 10, MPFR_RNDN);
        mpfr_init(r30461381);
        mpfr_init(r30461382);
        mpfr_init(r30461383);
        mpfr_init(r30461384);
        mpfr_init(r30461385);
        mpfr_init(r30461386);
        mpfr_init(r30461387);
        mpfr_init(r30461388);
        mpfr_init(r30461389);
        mpfr_init(r30461390);
        mpfr_init(r30461391);
        mpfr_init(r30461392);
        mpfr_init(r30461393);
        mpfr_init(r30461394);
        mpfr_init(r30461395);
        mpfr_init_set_str(r30461396, "-2.1761679811364737e+26", 10, MPFR_RNDN);
        mpfr_init(r30461397);
        mpfr_init(r30461398);
        mpfr_init(r30461399);
        mpfr_init_set_str(r30461400, "1/24", 10, MPFR_RNDN);
        mpfr_init_set_str(r30461401, "4", 10, MPFR_RNDN);
        mpfr_init(r30461402);
        mpfr_init(r30461403);
        mpfr_init(r30461404);
        mpfr_init(r30461405);
        mpfr_init_set_str(r30461406, "1", 10, MPFR_RNDN);
        mpfr_init(r30461407);
        mpfr_init_set_str(r30461408, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r30461409, "2", 10, MPFR_RNDN);
        mpfr_init(r30461410);
        mpfr_init(r30461411);
        mpfr_init(r30461412);
        mpfr_init(r30461413);
        mpfr_init(r30461414);
        mpfr_init(r30461415);
        mpfr_init(r30461416);
        mpfr_init(r30461417);
        mpfr_init_set_str(r30461418, "2.1687705884278945e+62", 10, MPFR_RNDN);
        mpfr_init(r30461419);
        mpfr_init(r30461420);
        mpfr_init(r30461421);
        mpfr_init(r30461422);
        mpfr_init(r30461423);
        mpfr_init(r30461424);
}

double f_fm(double F, double l) {
        mpfr_const_pi(r30461377, MPFR_RNDN);
        mpfr_set_d(r30461378, l, MPFR_RNDN);
        mpfr_mul(r30461379, r30461377, r30461378, MPFR_RNDN);
        ;
        mpfr_set_si(r30461381, mpfr_cmp(r30461379, r30461380) <= 0, MPFR_RNDN);
        mpfr_tan(r30461382, r30461379, MPFR_RNDN);
        mpfr_set_d(r30461383, F, MPFR_RNDN);
        mpfr_div(r30461384, r30461382, r30461383, MPFR_RNDN);
        mpfr_cbrt(r30461385, r30461384, MPFR_RNDN);
        mpfr_mul(r30461386, r30461385, r30461385, MPFR_RNDN);
        mpfr_div(r30461387, r30461377, r30461378, MPFR_RNDN);
        mpfr_cos(r30461388, r30461387, MPFR_RNDN);
        mpfr_sin(r30461389, r30461387, MPFR_RNDN);
        mpfr_div(r30461390, r30461388, r30461389, MPFR_RNDN);
        mpfr_div(r30461391, r30461383, r30461390, MPFR_RNDN);
        mpfr_cbrt(r30461392, r30461391, MPFR_RNDN);
        mpfr_div(r30461393, r30461383, r30461392, MPFR_RNDN);
        mpfr_div(r30461394, r30461386, r30461393, MPFR_RNDN);
        mpfr_sub(r30461395, r30461379, r30461394, MPFR_RNDN);
        ;
        mpfr_set_si(r30461397, mpfr_cmp(r30461379, r30461396) <= 0, MPFR_RNDN);
        mpfr_sin(r30461398, r30461379, MPFR_RNDN);
        mpfr_mul(r30461399, r30461383, r30461383, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30461402, r30461377, r30461401, MPFR_RNDN);
        mpfr_pow(r30461403, r30461378, r30461401, MPFR_RNDN);
        mpfr_mul(r30461404, r30461402, r30461403, MPFR_RNDN);
        mpfr_mul(r30461405, r30461400, r30461404, MPFR_RNDN);
        ;
        mpfr_add(r30461407, r30461405, r30461406, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30461410, r30461377, r30461409, MPFR_RNDN);
        mpfr_pow(r30461411, r30461378, r30461409, MPFR_RNDN);
        mpfr_mul(r30461412, r30461410, r30461411, MPFR_RNDN);
        mpfr_mul(r30461413, r30461408, r30461412, MPFR_RNDN);
        mpfr_sub(r30461414, r30461407, r30461413, MPFR_RNDN);
        mpfr_mul(r30461415, r30461399, r30461414, MPFR_RNDN);
        mpfr_div(r30461416, r30461398, r30461415, MPFR_RNDN);
        mpfr_sub(r30461417, r30461379, r30461416, MPFR_RNDN);
        ;
        mpfr_set_si(r30461419, mpfr_cmp(r30461379, r30461418) <= 0, MPFR_RNDN);
        mpfr_div(r30461420, r30461384, r30461383, MPFR_RNDN);
        mpfr_sub(r30461421, r30461379, r30461420, MPFR_RNDN);
        if (mpfr_get_si(r30461419, MPFR_RNDN)) { mpfr_set(r30461422, r30461421, MPFR_RNDN); } else { mpfr_set(r30461422, r30461395, MPFR_RNDN); };
        if (mpfr_get_si(r30461397, MPFR_RNDN)) { mpfr_set(r30461423, r30461417, MPFR_RNDN); } else { mpfr_set(r30461423, r30461422, MPFR_RNDN); };
        if (mpfr_get_si(r30461381, MPFR_RNDN)) { mpfr_set(r30461424, r30461395, MPFR_RNDN); } else { mpfr_set(r30461424, r30461423, MPFR_RNDN); };
        return mpfr_get_d(r30461424, MPFR_RNDN);
}

static mpfr_t r30461425, r30461426, r30461427, r30461428, r30461429, r30461430, r30461431, r30461432, r30461433, r30461434, r30461435, r30461436, r30461437, r30461438, r30461439, r30461440, r30461441, r30461442, r30461443, r30461444, r30461445, r30461446, r30461447, r30461448, r30461449, r30461450, r30461451, r30461452, r30461453, r30461454, r30461455, r30461456, r30461457, r30461458, r30461459, r30461460, r30461461, r30461462, r30461463, r30461464, r30461465, r30461466, r30461467, r30461468, r30461469, r30461470, r30461471, r30461472;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r30461425);
        mpfr_init(r30461426);
        mpfr_init(r30461427);
        mpfr_init_set_str(r30461428, "-7.009633394870095e+99", 10, MPFR_RNDN);
        mpfr_init(r30461429);
        mpfr_init(r30461430);
        mpfr_init(r30461431);
        mpfr_init(r30461432);
        mpfr_init(r30461433);
        mpfr_init(r30461434);
        mpfr_init(r30461435);
        mpfr_init(r30461436);
        mpfr_init(r30461437);
        mpfr_init(r30461438);
        mpfr_init(r30461439);
        mpfr_init(r30461440);
        mpfr_init(r30461441);
        mpfr_init(r30461442);
        mpfr_init(r30461443);
        mpfr_init_set_str(r30461444, "-2.1761679811364737e+26", 10, MPFR_RNDN);
        mpfr_init(r30461445);
        mpfr_init(r30461446);
        mpfr_init(r30461447);
        mpfr_init_set_str(r30461448, "1/24", 10, MPFR_RNDN);
        mpfr_init_set_str(r30461449, "4", 10, MPFR_RNDN);
        mpfr_init(r30461450);
        mpfr_init(r30461451);
        mpfr_init(r30461452);
        mpfr_init(r30461453);
        mpfr_init_set_str(r30461454, "1", 10, MPFR_RNDN);
        mpfr_init(r30461455);
        mpfr_init_set_str(r30461456, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r30461457, "2", 10, MPFR_RNDN);
        mpfr_init(r30461458);
        mpfr_init(r30461459);
        mpfr_init(r30461460);
        mpfr_init(r30461461);
        mpfr_init(r30461462);
        mpfr_init(r30461463);
        mpfr_init(r30461464);
        mpfr_init(r30461465);
        mpfr_init_set_str(r30461466, "2.1687705884278945e+62", 10, MPFR_RNDN);
        mpfr_init(r30461467);
        mpfr_init(r30461468);
        mpfr_init(r30461469);
        mpfr_init(r30461470);
        mpfr_init(r30461471);
        mpfr_init(r30461472);
}

double f_dm(double F, double l) {
        mpfr_const_pi(r30461425, MPFR_RNDN);
        mpfr_set_d(r30461426, l, MPFR_RNDN);
        mpfr_mul(r30461427, r30461425, r30461426, MPFR_RNDN);
        ;
        mpfr_set_si(r30461429, mpfr_cmp(r30461427, r30461428) <= 0, MPFR_RNDN);
        mpfr_tan(r30461430, r30461427, MPFR_RNDN);
        mpfr_set_d(r30461431, F, MPFR_RNDN);
        mpfr_div(r30461432, r30461430, r30461431, MPFR_RNDN);
        mpfr_cbrt(r30461433, r30461432, MPFR_RNDN);
        mpfr_mul(r30461434, r30461433, r30461433, MPFR_RNDN);
        mpfr_div(r30461435, r30461425, r30461426, MPFR_RNDN);
        mpfr_cos(r30461436, r30461435, MPFR_RNDN);
        mpfr_sin(r30461437, r30461435, MPFR_RNDN);
        mpfr_div(r30461438, r30461436, r30461437, MPFR_RNDN);
        mpfr_div(r30461439, r30461431, r30461438, MPFR_RNDN);
        mpfr_cbrt(r30461440, r30461439, MPFR_RNDN);
        mpfr_div(r30461441, r30461431, r30461440, MPFR_RNDN);
        mpfr_div(r30461442, r30461434, r30461441, MPFR_RNDN);
        mpfr_sub(r30461443, r30461427, r30461442, MPFR_RNDN);
        ;
        mpfr_set_si(r30461445, mpfr_cmp(r30461427, r30461444) <= 0, MPFR_RNDN);
        mpfr_sin(r30461446, r30461427, MPFR_RNDN);
        mpfr_mul(r30461447, r30461431, r30461431, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30461450, r30461425, r30461449, MPFR_RNDN);
        mpfr_pow(r30461451, r30461426, r30461449, MPFR_RNDN);
        mpfr_mul(r30461452, r30461450, r30461451, MPFR_RNDN);
        mpfr_mul(r30461453, r30461448, r30461452, MPFR_RNDN);
        ;
        mpfr_add(r30461455, r30461453, r30461454, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30461458, r30461425, r30461457, MPFR_RNDN);
        mpfr_pow(r30461459, r30461426, r30461457, MPFR_RNDN);
        mpfr_mul(r30461460, r30461458, r30461459, MPFR_RNDN);
        mpfr_mul(r30461461, r30461456, r30461460, MPFR_RNDN);
        mpfr_sub(r30461462, r30461455, r30461461, MPFR_RNDN);
        mpfr_mul(r30461463, r30461447, r30461462, MPFR_RNDN);
        mpfr_div(r30461464, r30461446, r30461463, MPFR_RNDN);
        mpfr_sub(r30461465, r30461427, r30461464, MPFR_RNDN);
        ;
        mpfr_set_si(r30461467, mpfr_cmp(r30461427, r30461466) <= 0, MPFR_RNDN);
        mpfr_div(r30461468, r30461432, r30461431, MPFR_RNDN);
        mpfr_sub(r30461469, r30461427, r30461468, MPFR_RNDN);
        if (mpfr_get_si(r30461467, MPFR_RNDN)) { mpfr_set(r30461470, r30461469, MPFR_RNDN); } else { mpfr_set(r30461470, r30461443, MPFR_RNDN); };
        if (mpfr_get_si(r30461445, MPFR_RNDN)) { mpfr_set(r30461471, r30461465, MPFR_RNDN); } else { mpfr_set(r30461471, r30461470, MPFR_RNDN); };
        if (mpfr_get_si(r30461429, MPFR_RNDN)) { mpfr_set(r30461472, r30461443, MPFR_RNDN); } else { mpfr_set(r30461472, r30461471, MPFR_RNDN); };
        return mpfr_get_d(r30461472, MPFR_RNDN);
}

