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

char *name = "Toniolo and Linder, Equation (10+)";

double f_if(float t, float l, float k) {
        float r25238 = 2;
        float r25239 = t;
        float r25240 = 3;
        float r25241 = pow(r25239, r25240);
        float r25242 = l;
        float r25243 = r25242 * r25242;
        float r25244 = r25241 / r25243;
        float r25245 = k;
        float r25246 = sin(r25245);
        float r25247 = r25244 * r25246;
        float r25248 = tan(r25245);
        float r25249 = r25247 * r25248;
        float r25250 = 1;
        float r25251 = r25245 / r25239;
        float r25252 = pow(r25251, r25238);
        float r25253 = r25250 + r25252;
        float r25254 = r25253 + r25250;
        float r25255 = r25249 * r25254;
        float r25256 = r25238 / r25255;
        return r25256;
}

double f_id(double t, double l, double k) {
        double r25257 = 2;
        double r25258 = t;
        double r25259 = 3;
        double r25260 = pow(r25258, r25259);
        double r25261 = l;
        double r25262 = r25261 * r25261;
        double r25263 = r25260 / r25262;
        double r25264 = k;
        double r25265 = sin(r25264);
        double r25266 = r25263 * r25265;
        double r25267 = tan(r25264);
        double r25268 = r25266 * r25267;
        double r25269 = 1;
        double r25270 = r25264 / r25258;
        double r25271 = pow(r25270, r25257);
        double r25272 = r25269 + r25271;
        double r25273 = r25272 + r25269;
        double r25274 = r25268 * r25273;
        double r25275 = r25257 / r25274;
        return r25275;
}


double f_of(float t, float l, float k) {
        float r25276 = 2;
        float r25277 = t;
        float r25278 = l;
        float r25279 = r25278 / r25277;
        float r25280 = r25277 / r25279;
        float r25281 = r25277 / r25278;
        float r25282 = r25280 * r25281;
        float r25283 = k;
        float r25284 = sin(r25283);
        float r25285 = r25282 * r25284;
        float r25286 = tan(r25283);
        float r25287 = r25285 * r25286;
        float r25288 = r25276 / r25287;
        float r25289 = 1;
        float r25290 = r25283 / r25277;
        float r25291 = pow(r25290, r25276);
        float r25292 = r25289 + r25291;
        float r25293 = r25292 + r25289;
        float r25294 = r25288 / r25293;
        float r25295 = 1.1718297240596694e+229;
        bool r25296 = r25294 <= r25295;
        float r25297 = cos(r25283);
        float r25298 = r25279 * r25297;
        float r25299 = r25284 / r25279;
        float r25300 = r25299 * r25277;
        float r25301 = r25300 * r25284;
        float r25302 = r25301 * r25293;
        float r25303 = r25298 / r25302;
        float r25304 = r25289 / r25303;
        float r25305 = r25276 / r25304;
        float r25306 = r25284 * r25277;
        float r25307 = r25306 * r25284;
        float r25308 = r25307 * r25293;
        float r25309 = r25308 / r25279;
        float r25310 = r25309 / r25298;
        float r25311 = r25276 / r25310;
        float r25312 = r25296 ? r25305 : r25311;
        return r25312;
}

double f_od(double t, double l, double k) {
        double r25313 = 2;
        double r25314 = t;
        double r25315 = l;
        double r25316 = r25315 / r25314;
        double r25317 = r25314 / r25316;
        double r25318 = r25314 / r25315;
        double r25319 = r25317 * r25318;
        double r25320 = k;
        double r25321 = sin(r25320);
        double r25322 = r25319 * r25321;
        double r25323 = tan(r25320);
        double r25324 = r25322 * r25323;
        double r25325 = r25313 / r25324;
        double r25326 = 1;
        double r25327 = r25320 / r25314;
        double r25328 = pow(r25327, r25313);
        double r25329 = r25326 + r25328;
        double r25330 = r25329 + r25326;
        double r25331 = r25325 / r25330;
        double r25332 = 1.1718297240596694e+229;
        bool r25333 = r25331 <= r25332;
        double r25334 = cos(r25320);
        double r25335 = r25316 * r25334;
        double r25336 = r25321 / r25316;
        double r25337 = r25336 * r25314;
        double r25338 = r25337 * r25321;
        double r25339 = r25338 * r25330;
        double r25340 = r25335 / r25339;
        double r25341 = r25326 / r25340;
        double r25342 = r25313 / r25341;
        double r25343 = r25321 * r25314;
        double r25344 = r25343 * r25321;
        double r25345 = r25344 * r25330;
        double r25346 = r25345 / r25316;
        double r25347 = r25346 / r25335;
        double r25348 = r25313 / r25347;
        double r25349 = r25333 ? r25342 : r25348;
        return r25349;
}

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 r25350, r25351, r25352, r25353, r25354, r25355, r25356, r25357, r25358, r25359, r25360, r25361, r25362, r25363, r25364, r25365, r25366, r25367, r25368;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r25350, "2", 10, MPFR_RNDN);
        mpfr_init(r25351);
        mpfr_init_set_str(r25352, "3", 10, MPFR_RNDN);
        mpfr_init(r25353);
        mpfr_init(r25354);
        mpfr_init(r25355);
        mpfr_init(r25356);
        mpfr_init(r25357);
        mpfr_init(r25358);
        mpfr_init(r25359);
        mpfr_init(r25360);
        mpfr_init(r25361);
        mpfr_init_set_str(r25362, "1", 10, MPFR_RNDN);
        mpfr_init(r25363);
        mpfr_init(r25364);
        mpfr_init(r25365);
        mpfr_init(r25366);
        mpfr_init(r25367);
        mpfr_init(r25368);
}

double f_im(double t, double l, double k) {
        ;
        mpfr_set_d(r25351, t, MPFR_RNDN);
        ;
        mpfr_pow(r25353, r25351, r25352, MPFR_RNDN);
        mpfr_set_d(r25354, l, MPFR_RNDN);
        mpfr_mul(r25355, r25354, r25354, MPFR_RNDN);
        mpfr_div(r25356, r25353, r25355, MPFR_RNDN);
        mpfr_set_d(r25357, k, MPFR_RNDN);
        mpfr_sin(r25358, r25357, MPFR_RNDN);
        mpfr_mul(r25359, r25356, r25358, MPFR_RNDN);
        mpfr_tan(r25360, r25357, MPFR_RNDN);
        mpfr_mul(r25361, r25359, r25360, MPFR_RNDN);
        ;
        mpfr_div(r25363, r25357, r25351, MPFR_RNDN);
        mpfr_pow(r25364, r25363, r25350, MPFR_RNDN);
        mpfr_add(r25365, r25362, r25364, MPFR_RNDN);
        mpfr_add(r25366, r25365, r25362, MPFR_RNDN);
        mpfr_mul(r25367, r25361, r25366, MPFR_RNDN);
        mpfr_div(r25368, r25350, r25367, MPFR_RNDN);
        return mpfr_get_d(r25368, MPFR_RNDN);
}

static mpfr_t r25369, r25370, r25371, r25372, r25373, r25374, r25375, r25376, r25377, r25378, r25379, r25380, r25381, r25382, r25383, r25384, r25385, r25386, r25387, r25388, r25389, r25390, r25391, r25392, r25393, r25394, r25395, r25396, r25397, r25398, r25399, r25400, r25401, r25402, r25403, r25404, r25405;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r25369, "2", 10, MPFR_RNDN);
        mpfr_init(r25370);
        mpfr_init(r25371);
        mpfr_init(r25372);
        mpfr_init(r25373);
        mpfr_init(r25374);
        mpfr_init(r25375);
        mpfr_init(r25376);
        mpfr_init(r25377);
        mpfr_init(r25378);
        mpfr_init(r25379);
        mpfr_init(r25380);
        mpfr_init(r25381);
        mpfr_init_set_str(r25382, "1", 10, MPFR_RNDN);
        mpfr_init(r25383);
        mpfr_init(r25384);
        mpfr_init(r25385);
        mpfr_init(r25386);
        mpfr_init(r25387);
        mpfr_init_set_str(r25388, "1.1718297240596694e+229", 10, MPFR_RNDN);
        mpfr_init(r25389);
        mpfr_init(r25390);
        mpfr_init(r25391);
        mpfr_init(r25392);
        mpfr_init(r25393);
        mpfr_init(r25394);
        mpfr_init(r25395);
        mpfr_init(r25396);
        mpfr_init(r25397);
        mpfr_init(r25398);
        mpfr_init(r25399);
        mpfr_init(r25400);
        mpfr_init(r25401);
        mpfr_init(r25402);
        mpfr_init(r25403);
        mpfr_init(r25404);
        mpfr_init(r25405);
}

double f_fm(double t, double l, double k) {
        ;
        mpfr_set_d(r25370, t, MPFR_RNDN);
        mpfr_set_d(r25371, l, MPFR_RNDN);
        mpfr_div(r25372, r25371, r25370, MPFR_RNDN);
        mpfr_div(r25373, r25370, r25372, MPFR_RNDN);
        mpfr_div(r25374, r25370, r25371, MPFR_RNDN);
        mpfr_mul(r25375, r25373, r25374, MPFR_RNDN);
        mpfr_set_d(r25376, k, MPFR_RNDN);
        mpfr_sin(r25377, r25376, MPFR_RNDN);
        mpfr_mul(r25378, r25375, r25377, MPFR_RNDN);
        mpfr_tan(r25379, r25376, MPFR_RNDN);
        mpfr_mul(r25380, r25378, r25379, MPFR_RNDN);
        mpfr_div(r25381, r25369, r25380, MPFR_RNDN);
        ;
        mpfr_div(r25383, r25376, r25370, MPFR_RNDN);
        mpfr_pow(r25384, r25383, r25369, MPFR_RNDN);
        mpfr_add(r25385, r25382, r25384, MPFR_RNDN);
        mpfr_add(r25386, r25385, r25382, MPFR_RNDN);
        mpfr_div(r25387, r25381, r25386, MPFR_RNDN);
        ;
        mpfr_set_si(r25389, mpfr_cmp(r25387, r25388) <= 0, MPFR_RNDN);
        mpfr_cos(r25390, r25376, MPFR_RNDN);
        mpfr_mul(r25391, r25372, r25390, MPFR_RNDN);
        mpfr_div(r25392, r25377, r25372, MPFR_RNDN);
        mpfr_mul(r25393, r25392, r25370, MPFR_RNDN);
        mpfr_mul(r25394, r25393, r25377, MPFR_RNDN);
        mpfr_mul(r25395, r25394, r25386, MPFR_RNDN);
        mpfr_div(r25396, r25391, r25395, MPFR_RNDN);
        mpfr_div(r25397, r25382, r25396, MPFR_RNDN);
        mpfr_div(r25398, r25369, r25397, MPFR_RNDN);
        mpfr_mul(r25399, r25377, r25370, MPFR_RNDN);
        mpfr_mul(r25400, r25399, r25377, MPFR_RNDN);
        mpfr_mul(r25401, r25400, r25386, MPFR_RNDN);
        mpfr_div(r25402, r25401, r25372, MPFR_RNDN);
        mpfr_div(r25403, r25402, r25391, MPFR_RNDN);
        mpfr_div(r25404, r25369, r25403, MPFR_RNDN);
        if (mpfr_get_si(r25389, MPFR_RNDN)) { mpfr_set(r25405, r25398, MPFR_RNDN); } else { mpfr_set(r25405, r25404, MPFR_RNDN); };
        return mpfr_get_d(r25405, MPFR_RNDN);
}

static mpfr_t r25406, r25407, r25408, r25409, r25410, r25411, r25412, r25413, r25414, r25415, r25416, r25417, r25418, r25419, r25420, r25421, r25422, r25423, r25424, r25425, r25426, r25427, r25428, r25429, r25430, r25431, r25432, r25433, r25434, r25435, r25436, r25437, r25438, r25439, r25440, r25441, r25442;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r25406, "2", 10, MPFR_RNDN);
        mpfr_init(r25407);
        mpfr_init(r25408);
        mpfr_init(r25409);
        mpfr_init(r25410);
        mpfr_init(r25411);
        mpfr_init(r25412);
        mpfr_init(r25413);
        mpfr_init(r25414);
        mpfr_init(r25415);
        mpfr_init(r25416);
        mpfr_init(r25417);
        mpfr_init(r25418);
        mpfr_init_set_str(r25419, "1", 10, MPFR_RNDN);
        mpfr_init(r25420);
        mpfr_init(r25421);
        mpfr_init(r25422);
        mpfr_init(r25423);
        mpfr_init(r25424);
        mpfr_init_set_str(r25425, "1.1718297240596694e+229", 10, MPFR_RNDN);
        mpfr_init(r25426);
        mpfr_init(r25427);
        mpfr_init(r25428);
        mpfr_init(r25429);
        mpfr_init(r25430);
        mpfr_init(r25431);
        mpfr_init(r25432);
        mpfr_init(r25433);
        mpfr_init(r25434);
        mpfr_init(r25435);
        mpfr_init(r25436);
        mpfr_init(r25437);
        mpfr_init(r25438);
        mpfr_init(r25439);
        mpfr_init(r25440);
        mpfr_init(r25441);
        mpfr_init(r25442);
}

double f_dm(double t, double l, double k) {
        ;
        mpfr_set_d(r25407, t, MPFR_RNDN);
        mpfr_set_d(r25408, l, MPFR_RNDN);
        mpfr_div(r25409, r25408, r25407, MPFR_RNDN);
        mpfr_div(r25410, r25407, r25409, MPFR_RNDN);
        mpfr_div(r25411, r25407, r25408, MPFR_RNDN);
        mpfr_mul(r25412, r25410, r25411, MPFR_RNDN);
        mpfr_set_d(r25413, k, MPFR_RNDN);
        mpfr_sin(r25414, r25413, MPFR_RNDN);
        mpfr_mul(r25415, r25412, r25414, MPFR_RNDN);
        mpfr_tan(r25416, r25413, MPFR_RNDN);
        mpfr_mul(r25417, r25415, r25416, MPFR_RNDN);
        mpfr_div(r25418, r25406, r25417, MPFR_RNDN);
        ;
        mpfr_div(r25420, r25413, r25407, MPFR_RNDN);
        mpfr_pow(r25421, r25420, r25406, MPFR_RNDN);
        mpfr_add(r25422, r25419, r25421, MPFR_RNDN);
        mpfr_add(r25423, r25422, r25419, MPFR_RNDN);
        mpfr_div(r25424, r25418, r25423, MPFR_RNDN);
        ;
        mpfr_set_si(r25426, mpfr_cmp(r25424, r25425) <= 0, MPFR_RNDN);
        mpfr_cos(r25427, r25413, MPFR_RNDN);
        mpfr_mul(r25428, r25409, r25427, MPFR_RNDN);
        mpfr_div(r25429, r25414, r25409, MPFR_RNDN);
        mpfr_mul(r25430, r25429, r25407, MPFR_RNDN);
        mpfr_mul(r25431, r25430, r25414, MPFR_RNDN);
        mpfr_mul(r25432, r25431, r25423, MPFR_RNDN);
        mpfr_div(r25433, r25428, r25432, MPFR_RNDN);
        mpfr_div(r25434, r25419, r25433, MPFR_RNDN);
        mpfr_div(r25435, r25406, r25434, MPFR_RNDN);
        mpfr_mul(r25436, r25414, r25407, MPFR_RNDN);
        mpfr_mul(r25437, r25436, r25414, MPFR_RNDN);
        mpfr_mul(r25438, r25437, r25423, MPFR_RNDN);
        mpfr_div(r25439, r25438, r25409, MPFR_RNDN);
        mpfr_div(r25440, r25439, r25428, MPFR_RNDN);
        mpfr_div(r25441, r25406, r25440, MPFR_RNDN);
        if (mpfr_get_si(r25426, MPFR_RNDN)) { mpfr_set(r25442, r25435, MPFR_RNDN); } else { mpfr_set(r25442, r25441, MPFR_RNDN); };
        return mpfr_get_d(r25442, MPFR_RNDN);
}

