#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 r7445 = atan2(1.0, 0.0);
        float r7446 = l;
        float r7447 = r7445 * r7446;
        float r7448 = 1.0f;
        float r7449 = F;
        float r7450 = r7449 * r7449;
        float r7451 = r7448 / r7450;
        float r7452 = tan(r7447);
        float r7453 = r7451 * r7452;
        float r7454 = r7447 - r7453;
        return r7454;
}

double f_id(double F, double l) {
        double r7455 = atan2(1.0, 0.0);
        double r7456 = l;
        double r7457 = r7455 * r7456;
        double r7458 = 1.0;
        double r7459 = F;
        double r7460 = r7459 * r7459;
        double r7461 = r7458 / r7460;
        double r7462 = tan(r7457);
        double r7463 = r7461 * r7462;
        double r7464 = r7457 - r7463;
        return r7464;
}


double f_of(float F, float l) {
        float r7465 = atan2(1.0, 0.0);
        float r7466 = l;
        float r7467 = r7465 * r7466;
        float r7468 = sin(r7467);
        float r7469 = F;
        float r7470 = 2.0f;
        float r7471 = pow(r7469, r7470);
        float r7472 = 0.041666666666666664f;
        float r7473 = 4.0f;
        float r7474 = pow(r7465, r7473);
        float r7475 = pow(r7466, r7473);
        float r7476 = r7474 * r7475;
        float r7477 = 1.0f;
        float r7478 = fma(r7472, r7476, r7477);
        float r7479 = 0.5f;
        float r7480 = r7467 * r7467;
        float r7481 = r7479 * r7480;
        float r7482 = r7478 - r7481;
        float r7483 = r7471 * r7482;
        float r7484 = r7468 / r7483;
        float r7485 = r7467 - r7484;
        float r7486 = -3.2080101628163186e+180f;
        bool r7487 = r7485 <= r7486;
        float r7488 = log(r7468);
        float r7489 = log(r7469);
        float r7490 = cos(r7467);
        float r7491 = log(r7490);
        float r7492 = fma(r7489, r7470, r7491);
        float r7493 = r7488 - r7492;
        float r7494 = exp(r7493);
        float r7495 = r7467 - r7494;
        float r7496 = 4.158770752654795e+144f;
        bool r7497 = r7485 <= r7496;
        float r7498 = cbrt(r7468);
        float r7499 = r7498 * r7498;
        float r7500 = r7499 * r7498;
        float r7501 = expm1(r7500);
        float r7502 = log1p(r7501);
        float r7503 = cbrt(r7490);
        float r7504 = r7503 * r7503;
        float r7505 = r7504 * r7503;
        float r7506 = r7505 * r7471;
        float r7507 = r7502 / r7506;
        float r7508 = r7467 - r7507;
        float r7509 = r7497 ? r7485 : r7508;
        float r7510 = r7487 ? r7495 : r7509;
        return r7510;
}

double f_od(double F, double l) {
        double r7511 = atan2(1.0, 0.0);
        double r7512 = l;
        double r7513 = r7511 * r7512;
        double r7514 = sin(r7513);
        double r7515 = F;
        double r7516 = 2.0;
        double r7517 = pow(r7515, r7516);
        double r7518 = 0.041666666666666664;
        double r7519 = 4.0;
        double r7520 = pow(r7511, r7519);
        double r7521 = pow(r7512, r7519);
        double r7522 = r7520 * r7521;
        double r7523 = 1.0;
        double r7524 = fma(r7518, r7522, r7523);
        double r7525 = 0.5;
        double r7526 = r7513 * r7513;
        double r7527 = r7525 * r7526;
        double r7528 = r7524 - r7527;
        double r7529 = r7517 * r7528;
        double r7530 = r7514 / r7529;
        double r7531 = r7513 - r7530;
        double r7532 = -3.2080101628163186e+180;
        bool r7533 = r7531 <= r7532;
        double r7534 = log(r7514);
        double r7535 = log(r7515);
        double r7536 = cos(r7513);
        double r7537 = log(r7536);
        double r7538 = fma(r7535, r7516, r7537);
        double r7539 = r7534 - r7538;
        double r7540 = exp(r7539);
        double r7541 = r7513 - r7540;
        double r7542 = 4.158770752654795e+144;
        bool r7543 = r7531 <= r7542;
        double r7544 = cbrt(r7514);
        double r7545 = r7544 * r7544;
        double r7546 = r7545 * r7544;
        double r7547 = expm1(r7546);
        double r7548 = log1p(r7547);
        double r7549 = cbrt(r7536);
        double r7550 = r7549 * r7549;
        double r7551 = r7550 * r7549;
        double r7552 = r7551 * r7517;
        double r7553 = r7548 / r7552;
        double r7554 = r7513 - r7553;
        double r7555 = r7543 ? r7531 : r7554;
        double r7556 = r7533 ? r7541 : r7555;
        return r7556;
}

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 r7557, r7558, r7559, r7560, r7561, r7562, r7563, r7564, r7565, r7566;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2640);
        mpfr_init(r7557);
        mpfr_init(r7558);
        mpfr_init(r7559);
        mpfr_init_set_str(r7560, "1", 10, MPFR_RNDN);
        mpfr_init(r7561);
        mpfr_init(r7562);
        mpfr_init(r7563);
        mpfr_init(r7564);
        mpfr_init(r7565);
        mpfr_init(r7566);
}

double f_im(double F, double l) {
        mpfr_const_pi(r7557, MPFR_RNDN);
        mpfr_set_d(r7558, l, MPFR_RNDN);
        mpfr_mul(r7559, r7557, r7558, MPFR_RNDN);
        ;
        mpfr_set_d(r7561, F, MPFR_RNDN);
        mpfr_mul(r7562, r7561, r7561, MPFR_RNDN);
        mpfr_div(r7563, r7560, r7562, MPFR_RNDN);
        mpfr_tan(r7564, r7559, MPFR_RNDN);
        mpfr_mul(r7565, r7563, r7564, MPFR_RNDN);
        mpfr_sub(r7566, r7559, r7565, MPFR_RNDN);
        return mpfr_get_d(r7566, MPFR_RNDN);
}

static mpfr_t r7567, r7568, r7569, r7570, r7571, r7572, r7573, r7574, r7575, r7576, r7577, r7578, r7579, r7580, r7581, r7582, r7583, r7584, r7585, r7586, r7587, r7588, r7589, r7590, r7591, r7592, r7593, r7594, r7595, r7596, r7597, r7598, r7599, r7600, r7601, r7602, r7603, r7604, r7605, r7606, r7607, r7608, r7609, r7610, r7611, r7612;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2640);
        mpfr_init(r7567);
        mpfr_init(r7568);
        mpfr_init(r7569);
        mpfr_init(r7570);
        mpfr_init(r7571);
        mpfr_init_set_str(r7572, "2", 10, MPFR_RNDN);
        mpfr_init(r7573);
        mpfr_init_set_str(r7574, "1/24", 10, MPFR_RNDN);
        mpfr_init_set_str(r7575, "4", 10, MPFR_RNDN);
        mpfr_init(r7576);
        mpfr_init(r7577);
        mpfr_init(r7578);
        mpfr_init_set_str(r7579, "1", 10, MPFR_RNDN);
        mpfr_init(r7580);
        mpfr_init_set_str(r7581, "1/2", 10, MPFR_RNDN);
        mpfr_init(r7582);
        mpfr_init(r7583);
        mpfr_init(r7584);
        mpfr_init(r7585);
        mpfr_init(r7586);
        mpfr_init(r7587);
        mpfr_init_set_str(r7588, "-3.2080101628163186e+180", 10, MPFR_RNDN);
        mpfr_init(r7589);
        mpfr_init(r7590);
        mpfr_init(r7591);
        mpfr_init(r7592);
        mpfr_init(r7593);
        mpfr_init(r7594);
        mpfr_init(r7595);
        mpfr_init(r7596);
        mpfr_init(r7597);
        mpfr_init_set_str(r7598, "4.158770752654795e+144", 10, MPFR_RNDN);
        mpfr_init(r7599);
        mpfr_init(r7600);
        mpfr_init(r7601);
        mpfr_init(r7602);
        mpfr_init(r7603);
        mpfr_init(r7604);
        mpfr_init(r7605);
        mpfr_init(r7606);
        mpfr_init(r7607);
        mpfr_init(r7608);
        mpfr_init(r7609);
        mpfr_init(r7610);
        mpfr_init(r7611);
        mpfr_init(r7612);
}

double f_fm(double F, double l) {
        mpfr_const_pi(r7567, MPFR_RNDN);
        mpfr_set_d(r7568, l, MPFR_RNDN);
        mpfr_mul(r7569, r7567, r7568, MPFR_RNDN);
        mpfr_sin(r7570, r7569, MPFR_RNDN);
        mpfr_set_d(r7571, F, MPFR_RNDN);
        ;
        mpfr_pow(r7573, r7571, r7572, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r7576, r7567, r7575, MPFR_RNDN);
        mpfr_pow(r7577, r7568, r7575, MPFR_RNDN);
        mpfr_mul(r7578, r7576, r7577, MPFR_RNDN);
        ;
        mpfr_fma(r7580, r7574, r7578, r7579, MPFR_RNDN);
        ;
        mpfr_mul(r7582, r7569, r7569, MPFR_RNDN);
        mpfr_mul(r7583, r7581, r7582, MPFR_RNDN);
        mpfr_sub(r7584, r7580, r7583, MPFR_RNDN);
        mpfr_mul(r7585, r7573, r7584, MPFR_RNDN);
        mpfr_div(r7586, r7570, r7585, MPFR_RNDN);
        mpfr_sub(r7587, r7569, r7586, MPFR_RNDN);
        ;
        mpfr_set_si(r7589, mpfr_cmp(r7587, r7588) <= 0, MPFR_RNDN);
        mpfr_log(r7590, r7570, MPFR_RNDN);
        mpfr_log(r7591, r7571, MPFR_RNDN);
        mpfr_cos(r7592, r7569, MPFR_RNDN);
        mpfr_log(r7593, r7592, MPFR_RNDN);
        mpfr_fma(r7594, r7591, r7572, r7593, MPFR_RNDN);
        mpfr_sub(r7595, r7590, r7594, MPFR_RNDN);
        mpfr_exp(r7596, r7595, MPFR_RNDN);
        mpfr_sub(r7597, r7569, r7596, MPFR_RNDN);
        ;
        mpfr_set_si(r7599, mpfr_cmp(r7587, r7598) <= 0, MPFR_RNDN);
        mpfr_cbrt(r7600, r7570, MPFR_RNDN);
        mpfr_mul(r7601, r7600, r7600, MPFR_RNDN);
        mpfr_mul(r7602, r7601, r7600, MPFR_RNDN);
        mpfr_expm1(r7603, r7602, MPFR_RNDN);
        mpfr_log1p(r7604, r7603, MPFR_RNDN);
        mpfr_cbrt(r7605, r7592, MPFR_RNDN);
        mpfr_mul(r7606, r7605, r7605, MPFR_RNDN);
        mpfr_mul(r7607, r7606, r7605, MPFR_RNDN);
        mpfr_mul(r7608, r7607, r7573, MPFR_RNDN);
        mpfr_div(r7609, r7604, r7608, MPFR_RNDN);
        mpfr_sub(r7610, r7569, r7609, MPFR_RNDN);
        if (mpfr_get_si(r7599, MPFR_RNDN)) { mpfr_set(r7611, r7587, MPFR_RNDN); } else { mpfr_set(r7611, r7610, MPFR_RNDN); };
        if (mpfr_get_si(r7589, MPFR_RNDN)) { mpfr_set(r7612, r7597, MPFR_RNDN); } else { mpfr_set(r7612, r7611, MPFR_RNDN); };
        return mpfr_get_d(r7612, MPFR_RNDN);
}

static mpfr_t r7613, r7614, r7615, r7616, r7617, r7618, r7619, r7620, r7621, r7622, r7623, r7624, r7625, r7626, r7627, r7628, r7629, r7630, r7631, r7632, r7633, r7634, r7635, r7636, r7637, r7638, r7639, r7640, r7641, r7642, r7643, r7644, r7645, r7646, r7647, r7648, r7649, r7650, r7651, r7652, r7653, r7654, r7655, r7656, r7657, r7658;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2640);
        mpfr_init(r7613);
        mpfr_init(r7614);
        mpfr_init(r7615);
        mpfr_init(r7616);
        mpfr_init(r7617);
        mpfr_init_set_str(r7618, "2", 10, MPFR_RNDN);
        mpfr_init(r7619);
        mpfr_init_set_str(r7620, "1/24", 10, MPFR_RNDN);
        mpfr_init_set_str(r7621, "4", 10, MPFR_RNDN);
        mpfr_init(r7622);
        mpfr_init(r7623);
        mpfr_init(r7624);
        mpfr_init_set_str(r7625, "1", 10, MPFR_RNDN);
        mpfr_init(r7626);
        mpfr_init_set_str(r7627, "1/2", 10, MPFR_RNDN);
        mpfr_init(r7628);
        mpfr_init(r7629);
        mpfr_init(r7630);
        mpfr_init(r7631);
        mpfr_init(r7632);
        mpfr_init(r7633);
        mpfr_init_set_str(r7634, "-3.2080101628163186e+180", 10, MPFR_RNDN);
        mpfr_init(r7635);
        mpfr_init(r7636);
        mpfr_init(r7637);
        mpfr_init(r7638);
        mpfr_init(r7639);
        mpfr_init(r7640);
        mpfr_init(r7641);
        mpfr_init(r7642);
        mpfr_init(r7643);
        mpfr_init_set_str(r7644, "4.158770752654795e+144", 10, MPFR_RNDN);
        mpfr_init(r7645);
        mpfr_init(r7646);
        mpfr_init(r7647);
        mpfr_init(r7648);
        mpfr_init(r7649);
        mpfr_init(r7650);
        mpfr_init(r7651);
        mpfr_init(r7652);
        mpfr_init(r7653);
        mpfr_init(r7654);
        mpfr_init(r7655);
        mpfr_init(r7656);
        mpfr_init(r7657);
        mpfr_init(r7658);
}

double f_dm(double F, double l) {
        mpfr_const_pi(r7613, MPFR_RNDN);
        mpfr_set_d(r7614, l, MPFR_RNDN);
        mpfr_mul(r7615, r7613, r7614, MPFR_RNDN);
        mpfr_sin(r7616, r7615, MPFR_RNDN);
        mpfr_set_d(r7617, F, MPFR_RNDN);
        ;
        mpfr_pow(r7619, r7617, r7618, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r7622, r7613, r7621, MPFR_RNDN);
        mpfr_pow(r7623, r7614, r7621, MPFR_RNDN);
        mpfr_mul(r7624, r7622, r7623, MPFR_RNDN);
        ;
        mpfr_fma(r7626, r7620, r7624, r7625, MPFR_RNDN);
        ;
        mpfr_mul(r7628, r7615, r7615, MPFR_RNDN);
        mpfr_mul(r7629, r7627, r7628, MPFR_RNDN);
        mpfr_sub(r7630, r7626, r7629, MPFR_RNDN);
        mpfr_mul(r7631, r7619, r7630, MPFR_RNDN);
        mpfr_div(r7632, r7616, r7631, MPFR_RNDN);
        mpfr_sub(r7633, r7615, r7632, MPFR_RNDN);
        ;
        mpfr_set_si(r7635, mpfr_cmp(r7633, r7634) <= 0, MPFR_RNDN);
        mpfr_log(r7636, r7616, MPFR_RNDN);
        mpfr_log(r7637, r7617, MPFR_RNDN);
        mpfr_cos(r7638, r7615, MPFR_RNDN);
        mpfr_log(r7639, r7638, MPFR_RNDN);
        mpfr_fma(r7640, r7637, r7618, r7639, MPFR_RNDN);
        mpfr_sub(r7641, r7636, r7640, MPFR_RNDN);
        mpfr_exp(r7642, r7641, MPFR_RNDN);
        mpfr_sub(r7643, r7615, r7642, MPFR_RNDN);
        ;
        mpfr_set_si(r7645, mpfr_cmp(r7633, r7644) <= 0, MPFR_RNDN);
        mpfr_cbrt(r7646, r7616, MPFR_RNDN);
        mpfr_mul(r7647, r7646, r7646, MPFR_RNDN);
        mpfr_mul(r7648, r7647, r7646, MPFR_RNDN);
        mpfr_expm1(r7649, r7648, MPFR_RNDN);
        mpfr_log1p(r7650, r7649, MPFR_RNDN);
        mpfr_cbrt(r7651, r7638, MPFR_RNDN);
        mpfr_mul(r7652, r7651, r7651, MPFR_RNDN);
        mpfr_mul(r7653, r7652, r7651, MPFR_RNDN);
        mpfr_mul(r7654, r7653, r7619, MPFR_RNDN);
        mpfr_div(r7655, r7650, r7654, MPFR_RNDN);
        mpfr_sub(r7656, r7615, r7655, MPFR_RNDN);
        if (mpfr_get_si(r7645, MPFR_RNDN)) { mpfr_set(r7657, r7633, MPFR_RNDN); } else { mpfr_set(r7657, r7656, MPFR_RNDN); };
        if (mpfr_get_si(r7635, MPFR_RNDN)) { mpfr_set(r7658, r7643, MPFR_RNDN); } else { mpfr_set(r7658, r7657, MPFR_RNDN); };
        return mpfr_get_d(r7658, MPFR_RNDN);
}

