#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 r20413 = atan2(1.0, 0.0);
        float r20414 = l;
        float r20415 = r20413 * r20414;
        float r20416 = 1;
        float r20417 = F;
        float r20418 = r20417 * r20417;
        float r20419 = r20416 / r20418;
        float r20420 = tan(r20415);
        float r20421 = r20419 * r20420;
        float r20422 = r20415 - r20421;
        return r20422;
}

double f_id(double F, double l) {
        double r20423 = atan2(1.0, 0.0);
        double r20424 = l;
        double r20425 = r20423 * r20424;
        double r20426 = 1;
        double r20427 = F;
        double r20428 = r20427 * r20427;
        double r20429 = r20426 / r20428;
        double r20430 = tan(r20425);
        double r20431 = r20429 * r20430;
        double r20432 = r20425 - r20431;
        return r20432;
}


double f_of(float F, float l) {
        float r20433 = atan2(1.0, 0.0);
        float r20434 = l;
        float r20435 = r20433 * r20434;
        float r20436 = -8.198105750490824e+150;
        bool r20437 = r20435 <= r20436;
        float r20438 = 1;
        float r20439 = F;
        float r20440 = r20438 / r20439;
        float r20441 = r20439 / r20433;
        float r20442 = r20441 / r20434;
        float r20443 = r20434 * r20439;
        float r20444 = 1/3;
        float r20445 = r20444 * r20433;
        float r20446 = r20443 * r20445;
        float r20447 = r20442 - r20446;
        float r20448 = r20440 / r20447;
        float r20449 = r20435 - r20448;
        float r20450 = 1.3776109410006105e+152;
        bool r20451 = r20435 <= r20450;
        float r20452 = r20434 * r20433;
        float r20453 = sin(r20452);
        float r20454 = 1/24;
        float r20455 = 4;
        float r20456 = pow(r20433, r20455);
        float r20457 = pow(r20434, r20455);
        float r20458 = r20456 * r20457;
        float r20459 = r20454 * r20458;
        float r20460 = r20438 + r20459;
        float r20461 = 1/2;
        float r20462 = 2;
        float r20463 = pow(r20433, r20462);
        float r20464 = pow(r20434, r20462);
        float r20465 = r20463 * r20464;
        float r20466 = r20461 * r20465;
        float r20467 = r20460 - r20466;
        float r20468 = r20453 / r20467;
        float r20469 = r20468 / r20439;
        float r20470 = r20469 / r20439;
        float r20471 = r20452 - r20470;
        float r20472 = r20451 ? r20471 : r20449;
        float r20473 = r20437 ? r20449 : r20472;
        return r20473;
}

double f_od(double F, double l) {
        double r20474 = atan2(1.0, 0.0);
        double r20475 = l;
        double r20476 = r20474 * r20475;
        double r20477 = -8.198105750490824e+150;
        bool r20478 = r20476 <= r20477;
        double r20479 = 1;
        double r20480 = F;
        double r20481 = r20479 / r20480;
        double r20482 = r20480 / r20474;
        double r20483 = r20482 / r20475;
        double r20484 = r20475 * r20480;
        double r20485 = 1/3;
        double r20486 = r20485 * r20474;
        double r20487 = r20484 * r20486;
        double r20488 = r20483 - r20487;
        double r20489 = r20481 / r20488;
        double r20490 = r20476 - r20489;
        double r20491 = 1.3776109410006105e+152;
        bool r20492 = r20476 <= r20491;
        double r20493 = r20475 * r20474;
        double r20494 = sin(r20493);
        double r20495 = 1/24;
        double r20496 = 4;
        double r20497 = pow(r20474, r20496);
        double r20498 = pow(r20475, r20496);
        double r20499 = r20497 * r20498;
        double r20500 = r20495 * r20499;
        double r20501 = r20479 + r20500;
        double r20502 = 1/2;
        double r20503 = 2;
        double r20504 = pow(r20474, r20503);
        double r20505 = pow(r20475, r20503);
        double r20506 = r20504 * r20505;
        double r20507 = r20502 * r20506;
        double r20508 = r20501 - r20507;
        double r20509 = r20494 / r20508;
        double r20510 = r20509 / r20480;
        double r20511 = r20510 / r20480;
        double r20512 = r20493 - r20511;
        double r20513 = r20492 ? r20512 : r20490;
        double r20514 = r20478 ? r20490 : r20513;
        return r20514;
}

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 r20515, r20516, r20517, r20518, r20519, r20520, r20521, r20522, r20523, r20524;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3728);
        mpfr_init(r20515);
        mpfr_init(r20516);
        mpfr_init(r20517);
        mpfr_init_set_str(r20518, "1", 10, MPFR_RNDN);
        mpfr_init(r20519);
        mpfr_init(r20520);
        mpfr_init(r20521);
        mpfr_init(r20522);
        mpfr_init(r20523);
        mpfr_init(r20524);
}

double f_im(double F, double l) {
        mpfr_const_pi(r20515, MPFR_RNDN);
        mpfr_set_d(r20516, l, MPFR_RNDN);
        mpfr_mul(r20517, r20515, r20516, MPFR_RNDN);
        ;
        mpfr_set_d(r20519, F, MPFR_RNDN);
        mpfr_mul(r20520, r20519, r20519, MPFR_RNDN);
        mpfr_div(r20521, r20518, r20520, MPFR_RNDN);
        mpfr_tan(r20522, r20517, MPFR_RNDN);
        mpfr_mul(r20523, r20521, r20522, MPFR_RNDN);
        mpfr_sub(r20524, r20517, r20523, MPFR_RNDN);
        return mpfr_get_d(r20524, MPFR_RNDN);
}

static mpfr_t r20525, r20526, r20527, r20528, r20529, r20530, r20531, r20532, r20533, r20534, r20535, r20536, r20537, r20538, r20539, r20540, r20541, r20542, r20543, r20544, r20545, r20546, r20547, r20548, r20549, r20550, r20551, r20552, r20553, r20554, r20555, r20556, r20557, r20558, r20559, r20560, r20561, r20562, r20563, r20564, r20565;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3728);
        mpfr_init(r20525);
        mpfr_init(r20526);
        mpfr_init(r20527);
        mpfr_init_set_str(r20528, "-8.198105750490824e+150", 10, MPFR_RNDN);
        mpfr_init(r20529);
        mpfr_init_set_str(r20530, "1", 10, MPFR_RNDN);
        mpfr_init(r20531);
        mpfr_init(r20532);
        mpfr_init(r20533);
        mpfr_init(r20534);
        mpfr_init(r20535);
        mpfr_init_set_str(r20536, "1/3", 10, MPFR_RNDN);
        mpfr_init(r20537);
        mpfr_init(r20538);
        mpfr_init(r20539);
        mpfr_init(r20540);
        mpfr_init(r20541);
        mpfr_init_set_str(r20542, "1.3776109410006105e+152", 10, MPFR_RNDN);
        mpfr_init(r20543);
        mpfr_init(r20544);
        mpfr_init(r20545);
        mpfr_init_set_str(r20546, "1/24", 10, MPFR_RNDN);
        mpfr_init_set_str(r20547, "4", 10, MPFR_RNDN);
        mpfr_init(r20548);
        mpfr_init(r20549);
        mpfr_init(r20550);
        mpfr_init(r20551);
        mpfr_init(r20552);
        mpfr_init_set_str(r20553, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r20554, "2", 10, MPFR_RNDN);
        mpfr_init(r20555);
        mpfr_init(r20556);
        mpfr_init(r20557);
        mpfr_init(r20558);
        mpfr_init(r20559);
        mpfr_init(r20560);
        mpfr_init(r20561);
        mpfr_init(r20562);
        mpfr_init(r20563);
        mpfr_init(r20564);
        mpfr_init(r20565);
}

double f_fm(double F, double l) {
        mpfr_const_pi(r20525, MPFR_RNDN);
        mpfr_set_d(r20526, l, MPFR_RNDN);
        mpfr_mul(r20527, r20525, r20526, MPFR_RNDN);
        ;
        mpfr_set_si(r20529, mpfr_cmp(r20527, r20528) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r20531, F, MPFR_RNDN);
        mpfr_div(r20532, r20530, r20531, MPFR_RNDN);
        mpfr_div(r20533, r20531, r20525, MPFR_RNDN);
        mpfr_div(r20534, r20533, r20526, MPFR_RNDN);
        mpfr_mul(r20535, r20526, r20531, MPFR_RNDN);
        ;
        mpfr_mul(r20537, r20536, r20525, MPFR_RNDN);
        mpfr_mul(r20538, r20535, r20537, MPFR_RNDN);
        mpfr_sub(r20539, r20534, r20538, MPFR_RNDN);
        mpfr_div(r20540, r20532, r20539, MPFR_RNDN);
        mpfr_sub(r20541, r20527, r20540, MPFR_RNDN);
        ;
        mpfr_set_si(r20543, mpfr_cmp(r20527, r20542) <= 0, MPFR_RNDN);
        mpfr_mul(r20544, r20526, r20525, MPFR_RNDN);
        mpfr_sin(r20545, r20544, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r20548, r20525, r20547, MPFR_RNDN);
        mpfr_pow(r20549, r20526, r20547, MPFR_RNDN);
        mpfr_mul(r20550, r20548, r20549, MPFR_RNDN);
        mpfr_mul(r20551, r20546, r20550, MPFR_RNDN);
        mpfr_add(r20552, r20530, r20551, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r20555, r20525, r20554, MPFR_RNDN);
        mpfr_pow(r20556, r20526, r20554, MPFR_RNDN);
        mpfr_mul(r20557, r20555, r20556, MPFR_RNDN);
        mpfr_mul(r20558, r20553, r20557, MPFR_RNDN);
        mpfr_sub(r20559, r20552, r20558, MPFR_RNDN);
        mpfr_div(r20560, r20545, r20559, MPFR_RNDN);
        mpfr_div(r20561, r20560, r20531, MPFR_RNDN);
        mpfr_div(r20562, r20561, r20531, MPFR_RNDN);
        mpfr_sub(r20563, r20544, r20562, MPFR_RNDN);
        if (mpfr_get_si(r20543, MPFR_RNDN)) { mpfr_set(r20564, r20563, MPFR_RNDN); } else { mpfr_set(r20564, r20541, MPFR_RNDN); };
        if (mpfr_get_si(r20529, MPFR_RNDN)) { mpfr_set(r20565, r20541, MPFR_RNDN); } else { mpfr_set(r20565, r20564, MPFR_RNDN); };
        return mpfr_get_d(r20565, MPFR_RNDN);
}

static mpfr_t r20566, r20567, r20568, r20569, r20570, r20571, r20572, r20573, r20574, r20575, r20576, r20577, r20578, r20579, r20580, r20581, r20582, r20583, r20584, r20585, r20586, r20587, r20588, r20589, r20590, r20591, r20592, r20593, r20594, r20595, r20596, r20597, r20598, r20599, r20600, r20601, r20602, r20603, r20604, r20605, r20606;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3728);
        mpfr_init(r20566);
        mpfr_init(r20567);
        mpfr_init(r20568);
        mpfr_init_set_str(r20569, "-8.198105750490824e+150", 10, MPFR_RNDN);
        mpfr_init(r20570);
        mpfr_init_set_str(r20571, "1", 10, MPFR_RNDN);
        mpfr_init(r20572);
        mpfr_init(r20573);
        mpfr_init(r20574);
        mpfr_init(r20575);
        mpfr_init(r20576);
        mpfr_init_set_str(r20577, "1/3", 10, MPFR_RNDN);
        mpfr_init(r20578);
        mpfr_init(r20579);
        mpfr_init(r20580);
        mpfr_init(r20581);
        mpfr_init(r20582);
        mpfr_init_set_str(r20583, "1.3776109410006105e+152", 10, MPFR_RNDN);
        mpfr_init(r20584);
        mpfr_init(r20585);
        mpfr_init(r20586);
        mpfr_init_set_str(r20587, "1/24", 10, MPFR_RNDN);
        mpfr_init_set_str(r20588, "4", 10, MPFR_RNDN);
        mpfr_init(r20589);
        mpfr_init(r20590);
        mpfr_init(r20591);
        mpfr_init(r20592);
        mpfr_init(r20593);
        mpfr_init_set_str(r20594, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r20595, "2", 10, MPFR_RNDN);
        mpfr_init(r20596);
        mpfr_init(r20597);
        mpfr_init(r20598);
        mpfr_init(r20599);
        mpfr_init(r20600);
        mpfr_init(r20601);
        mpfr_init(r20602);
        mpfr_init(r20603);
        mpfr_init(r20604);
        mpfr_init(r20605);
        mpfr_init(r20606);
}

double f_dm(double F, double l) {
        mpfr_const_pi(r20566, MPFR_RNDN);
        mpfr_set_d(r20567, l, MPFR_RNDN);
        mpfr_mul(r20568, r20566, r20567, MPFR_RNDN);
        ;
        mpfr_set_si(r20570, mpfr_cmp(r20568, r20569) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r20572, F, MPFR_RNDN);
        mpfr_div(r20573, r20571, r20572, MPFR_RNDN);
        mpfr_div(r20574, r20572, r20566, MPFR_RNDN);
        mpfr_div(r20575, r20574, r20567, MPFR_RNDN);
        mpfr_mul(r20576, r20567, r20572, MPFR_RNDN);
        ;
        mpfr_mul(r20578, r20577, r20566, MPFR_RNDN);
        mpfr_mul(r20579, r20576, r20578, MPFR_RNDN);
        mpfr_sub(r20580, r20575, r20579, MPFR_RNDN);
        mpfr_div(r20581, r20573, r20580, MPFR_RNDN);
        mpfr_sub(r20582, r20568, r20581, MPFR_RNDN);
        ;
        mpfr_set_si(r20584, mpfr_cmp(r20568, r20583) <= 0, MPFR_RNDN);
        mpfr_mul(r20585, r20567, r20566, MPFR_RNDN);
        mpfr_sin(r20586, r20585, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r20589, r20566, r20588, MPFR_RNDN);
        mpfr_pow(r20590, r20567, r20588, MPFR_RNDN);
        mpfr_mul(r20591, r20589, r20590, MPFR_RNDN);
        mpfr_mul(r20592, r20587, r20591, MPFR_RNDN);
        mpfr_add(r20593, r20571, r20592, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r20596, r20566, r20595, MPFR_RNDN);
        mpfr_pow(r20597, r20567, r20595, MPFR_RNDN);
        mpfr_mul(r20598, r20596, r20597, MPFR_RNDN);
        mpfr_mul(r20599, r20594, r20598, MPFR_RNDN);
        mpfr_sub(r20600, r20593, r20599, MPFR_RNDN);
        mpfr_div(r20601, r20586, r20600, MPFR_RNDN);
        mpfr_div(r20602, r20601, r20572, MPFR_RNDN);
        mpfr_div(r20603, r20602, r20572, MPFR_RNDN);
        mpfr_sub(r20604, r20585, r20603, MPFR_RNDN);
        if (mpfr_get_si(r20584, MPFR_RNDN)) { mpfr_set(r20605, r20604, MPFR_RNDN); } else { mpfr_set(r20605, r20582, MPFR_RNDN); };
        if (mpfr_get_si(r20570, MPFR_RNDN)) { mpfr_set(r20606, r20582, MPFR_RNDN); } else { mpfr_set(r20606, r20605, MPFR_RNDN); };
        return mpfr_get_d(r20606, MPFR_RNDN);
}

