#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 r21087 = 2;
        float r21088 = t;
        float r21089 = 3;
        float r21090 = pow(r21088, r21089);
        float r21091 = l;
        float r21092 = r21091 * r21091;
        float r21093 = r21090 / r21092;
        float r21094 = k;
        float r21095 = sin(r21094);
        float r21096 = r21093 * r21095;
        float r21097 = tan(r21094);
        float r21098 = r21096 * r21097;
        float r21099 = 1;
        float r21100 = r21094 / r21088;
        float r21101 = pow(r21100, r21087);
        float r21102 = r21099 + r21101;
        float r21103 = r21102 + r21099;
        float r21104 = r21098 * r21103;
        float r21105 = r21087 / r21104;
        return r21105;
}

double f_id(double t, double l, double k) {
        double r21106 = 2;
        double r21107 = t;
        double r21108 = 3;
        double r21109 = pow(r21107, r21108);
        double r21110 = l;
        double r21111 = r21110 * r21110;
        double r21112 = r21109 / r21111;
        double r21113 = k;
        double r21114 = sin(r21113);
        double r21115 = r21112 * r21114;
        double r21116 = tan(r21113);
        double r21117 = r21115 * r21116;
        double r21118 = 1;
        double r21119 = r21113 / r21107;
        double r21120 = pow(r21119, r21106);
        double r21121 = r21118 + r21120;
        double r21122 = r21121 + r21118;
        double r21123 = r21117 * r21122;
        double r21124 = r21106 / r21123;
        return r21124;
}


double f_of(float t, float l, float k) {
        float r21125 = t;
        float r21126 = -2.689528545733962e-159;
        bool r21127 = r21125 <= r21126;
        float r21128 = 2;
        float r21129 = l;
        float r21130 = r21125 / r21129;
        float r21131 = k;
        float r21132 = sin(r21131);
        float r21133 = r21130 * r21132;
        float r21134 = r21125 * r21133;
        float r21135 = 1;
        float r21136 = r21131 / r21125;
        float r21137 = pow(r21136, r21128);
        float r21138 = r21135 + r21137;
        float r21139 = r21138 + r21135;
        float r21140 = r21132 * r21139;
        float r21141 = r21134 * r21140;
        float r21142 = r21129 / r21125;
        float r21143 = cos(r21131);
        float r21144 = r21142 * r21143;
        float r21145 = r21141 / r21144;
        float r21146 = r21128 / r21145;
        float r21147 = 1.276646960013956e-234;
        bool r21148 = r21125 <= r21147;
        float r21149 = pow(r21129, r21128);
        float r21150 = 3;
        float r21151 = pow(r21125, r21150);
        float r21152 = r21149 * r21151;
        float r21153 = r21135 / r21152;
        float r21154 = r21153 * r21132;
        float r21155 = tan(r21131);
        float r21156 = r21154 * r21155;
        float r21157 = r21156 * r21139;
        float r21158 = r21128 / r21157;
        float r21159 = r21148 ? r21158 : r21146;
        float r21160 = r21127 ? r21146 : r21159;
        return r21160;
}

double f_od(double t, double l, double k) {
        double r21161 = t;
        double r21162 = -2.689528545733962e-159;
        bool r21163 = r21161 <= r21162;
        double r21164 = 2;
        double r21165 = l;
        double r21166 = r21161 / r21165;
        double r21167 = k;
        double r21168 = sin(r21167);
        double r21169 = r21166 * r21168;
        double r21170 = r21161 * r21169;
        double r21171 = 1;
        double r21172 = r21167 / r21161;
        double r21173 = pow(r21172, r21164);
        double r21174 = r21171 + r21173;
        double r21175 = r21174 + r21171;
        double r21176 = r21168 * r21175;
        double r21177 = r21170 * r21176;
        double r21178 = r21165 / r21161;
        double r21179 = cos(r21167);
        double r21180 = r21178 * r21179;
        double r21181 = r21177 / r21180;
        double r21182 = r21164 / r21181;
        double r21183 = 1.276646960013956e-234;
        bool r21184 = r21161 <= r21183;
        double r21185 = pow(r21165, r21164);
        double r21186 = 3;
        double r21187 = pow(r21161, r21186);
        double r21188 = r21185 * r21187;
        double r21189 = r21171 / r21188;
        double r21190 = r21189 * r21168;
        double r21191 = tan(r21167);
        double r21192 = r21190 * r21191;
        double r21193 = r21192 * r21175;
        double r21194 = r21164 / r21193;
        double r21195 = r21184 ? r21194 : r21182;
        double r21196 = r21163 ? r21182 : r21195;
        return r21196;
}

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 r21197, r21198, r21199, r21200, r21201, r21202, r21203, r21204, r21205, r21206, r21207, r21208, r21209, r21210, r21211, r21212, r21213, r21214, r21215;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r21197, "2", 10, MPFR_RNDN);
        mpfr_init(r21198);
        mpfr_init_set_str(r21199, "3", 10, MPFR_RNDN);
        mpfr_init(r21200);
        mpfr_init(r21201);
        mpfr_init(r21202);
        mpfr_init(r21203);
        mpfr_init(r21204);
        mpfr_init(r21205);
        mpfr_init(r21206);
        mpfr_init(r21207);
        mpfr_init(r21208);
        mpfr_init_set_str(r21209, "1", 10, MPFR_RNDN);
        mpfr_init(r21210);
        mpfr_init(r21211);
        mpfr_init(r21212);
        mpfr_init(r21213);
        mpfr_init(r21214);
        mpfr_init(r21215);
}

double f_im(double t, double l, double k) {
        ;
        mpfr_set_d(r21198, t, MPFR_RNDN);
        ;
        mpfr_pow(r21200, r21198, r21199, MPFR_RNDN);
        mpfr_set_d(r21201, l, MPFR_RNDN);
        mpfr_mul(r21202, r21201, r21201, MPFR_RNDN);
        mpfr_div(r21203, r21200, r21202, MPFR_RNDN);
        mpfr_set_d(r21204, k, MPFR_RNDN);
        mpfr_sin(r21205, r21204, MPFR_RNDN);
        mpfr_mul(r21206, r21203, r21205, MPFR_RNDN);
        mpfr_tan(r21207, r21204, MPFR_RNDN);
        mpfr_mul(r21208, r21206, r21207, MPFR_RNDN);
        ;
        mpfr_div(r21210, r21204, r21198, MPFR_RNDN);
        mpfr_pow(r21211, r21210, r21197, MPFR_RNDN);
        mpfr_add(r21212, r21209, r21211, MPFR_RNDN);
        mpfr_add(r21213, r21212, r21209, MPFR_RNDN);
        mpfr_mul(r21214, r21208, r21213, MPFR_RNDN);
        mpfr_div(r21215, r21197, r21214, MPFR_RNDN);
        return mpfr_get_d(r21215, MPFR_RNDN);
}

static mpfr_t r21216, r21217, r21218, r21219, r21220, r21221, r21222, r21223, r21224, r21225, r21226, r21227, r21228, r21229, r21230, r21231, r21232, r21233, r21234, r21235, r21236, r21237, r21238, r21239, r21240, r21241, r21242, r21243, r21244, r21245, r21246, r21247, r21248, r21249, r21250, r21251;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r21216);
        mpfr_init_set_str(r21217, "-2.689528545733962e-159", 10, MPFR_RNDN);
        mpfr_init(r21218);
        mpfr_init_set_str(r21219, "2", 10, MPFR_RNDN);
        mpfr_init(r21220);
        mpfr_init(r21221);
        mpfr_init(r21222);
        mpfr_init(r21223);
        mpfr_init(r21224);
        mpfr_init(r21225);
        mpfr_init_set_str(r21226, "1", 10, MPFR_RNDN);
        mpfr_init(r21227);
        mpfr_init(r21228);
        mpfr_init(r21229);
        mpfr_init(r21230);
        mpfr_init(r21231);
        mpfr_init(r21232);
        mpfr_init(r21233);
        mpfr_init(r21234);
        mpfr_init(r21235);
        mpfr_init(r21236);
        mpfr_init(r21237);
        mpfr_init_set_str(r21238, "1.276646960013956e-234", 10, MPFR_RNDN);
        mpfr_init(r21239);
        mpfr_init(r21240);
        mpfr_init_set_str(r21241, "3", 10, MPFR_RNDN);
        mpfr_init(r21242);
        mpfr_init(r21243);
        mpfr_init(r21244);
        mpfr_init(r21245);
        mpfr_init(r21246);
        mpfr_init(r21247);
        mpfr_init(r21248);
        mpfr_init(r21249);
        mpfr_init(r21250);
        mpfr_init(r21251);
}

double f_fm(double t, double l, double k) {
        mpfr_set_d(r21216, t, MPFR_RNDN);
        ;
        mpfr_set_si(r21218, mpfr_cmp(r21216, r21217) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r21220, l, MPFR_RNDN);
        mpfr_div(r21221, r21216, r21220, MPFR_RNDN);
        mpfr_set_d(r21222, k, MPFR_RNDN);
        mpfr_sin(r21223, r21222, MPFR_RNDN);
        mpfr_mul(r21224, r21221, r21223, MPFR_RNDN);
        mpfr_mul(r21225, r21216, r21224, MPFR_RNDN);
        ;
        mpfr_div(r21227, r21222, r21216, MPFR_RNDN);
        mpfr_pow(r21228, r21227, r21219, MPFR_RNDN);
        mpfr_add(r21229, r21226, r21228, MPFR_RNDN);
        mpfr_add(r21230, r21229, r21226, MPFR_RNDN);
        mpfr_mul(r21231, r21223, r21230, MPFR_RNDN);
        mpfr_mul(r21232, r21225, r21231, MPFR_RNDN);
        mpfr_div(r21233, r21220, r21216, MPFR_RNDN);
        mpfr_cos(r21234, r21222, MPFR_RNDN);
        mpfr_mul(r21235, r21233, r21234, MPFR_RNDN);
        mpfr_div(r21236, r21232, r21235, MPFR_RNDN);
        mpfr_div(r21237, r21219, r21236, MPFR_RNDN);
        ;
        mpfr_set_si(r21239, mpfr_cmp(r21216, r21238) <= 0, MPFR_RNDN);
        mpfr_pow(r21240, r21220, r21219, MPFR_RNDN);
        ;
        mpfr_pow(r21242, r21216, r21241, MPFR_RNDN);
        mpfr_mul(r21243, r21240, r21242, MPFR_RNDN);
        mpfr_div(r21244, r21226, r21243, MPFR_RNDN);
        mpfr_mul(r21245, r21244, r21223, MPFR_RNDN);
        mpfr_tan(r21246, r21222, MPFR_RNDN);
        mpfr_mul(r21247, r21245, r21246, MPFR_RNDN);
        mpfr_mul(r21248, r21247, r21230, MPFR_RNDN);
        mpfr_div(r21249, r21219, r21248, MPFR_RNDN);
        if (mpfr_get_si(r21239, MPFR_RNDN)) { mpfr_set(r21250, r21249, MPFR_RNDN); } else { mpfr_set(r21250, r21237, MPFR_RNDN); };
        if (mpfr_get_si(r21218, MPFR_RNDN)) { mpfr_set(r21251, r21237, MPFR_RNDN); } else { mpfr_set(r21251, r21250, MPFR_RNDN); };
        return mpfr_get_d(r21251, MPFR_RNDN);
}

static mpfr_t r21252, r21253, r21254, r21255, r21256, r21257, r21258, r21259, r21260, r21261, r21262, r21263, r21264, r21265, r21266, r21267, r21268, r21269, r21270, r21271, r21272, r21273, r21274, r21275, r21276, r21277, r21278, r21279, r21280, r21281, r21282, r21283, r21284, r21285, r21286, r21287;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r21252);
        mpfr_init_set_str(r21253, "-2.689528545733962e-159", 10, MPFR_RNDN);
        mpfr_init(r21254);
        mpfr_init_set_str(r21255, "2", 10, MPFR_RNDN);
        mpfr_init(r21256);
        mpfr_init(r21257);
        mpfr_init(r21258);
        mpfr_init(r21259);
        mpfr_init(r21260);
        mpfr_init(r21261);
        mpfr_init_set_str(r21262, "1", 10, MPFR_RNDN);
        mpfr_init(r21263);
        mpfr_init(r21264);
        mpfr_init(r21265);
        mpfr_init(r21266);
        mpfr_init(r21267);
        mpfr_init(r21268);
        mpfr_init(r21269);
        mpfr_init(r21270);
        mpfr_init(r21271);
        mpfr_init(r21272);
        mpfr_init(r21273);
        mpfr_init_set_str(r21274, "1.276646960013956e-234", 10, MPFR_RNDN);
        mpfr_init(r21275);
        mpfr_init(r21276);
        mpfr_init_set_str(r21277, "3", 10, MPFR_RNDN);
        mpfr_init(r21278);
        mpfr_init(r21279);
        mpfr_init(r21280);
        mpfr_init(r21281);
        mpfr_init(r21282);
        mpfr_init(r21283);
        mpfr_init(r21284);
        mpfr_init(r21285);
        mpfr_init(r21286);
        mpfr_init(r21287);
}

double f_dm(double t, double l, double k) {
        mpfr_set_d(r21252, t, MPFR_RNDN);
        ;
        mpfr_set_si(r21254, mpfr_cmp(r21252, r21253) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r21256, l, MPFR_RNDN);
        mpfr_div(r21257, r21252, r21256, MPFR_RNDN);
        mpfr_set_d(r21258, k, MPFR_RNDN);
        mpfr_sin(r21259, r21258, MPFR_RNDN);
        mpfr_mul(r21260, r21257, r21259, MPFR_RNDN);
        mpfr_mul(r21261, r21252, r21260, MPFR_RNDN);
        ;
        mpfr_div(r21263, r21258, r21252, MPFR_RNDN);
        mpfr_pow(r21264, r21263, r21255, MPFR_RNDN);
        mpfr_add(r21265, r21262, r21264, MPFR_RNDN);
        mpfr_add(r21266, r21265, r21262, MPFR_RNDN);
        mpfr_mul(r21267, r21259, r21266, MPFR_RNDN);
        mpfr_mul(r21268, r21261, r21267, MPFR_RNDN);
        mpfr_div(r21269, r21256, r21252, MPFR_RNDN);
        mpfr_cos(r21270, r21258, MPFR_RNDN);
        mpfr_mul(r21271, r21269, r21270, MPFR_RNDN);
        mpfr_div(r21272, r21268, r21271, MPFR_RNDN);
        mpfr_div(r21273, r21255, r21272, MPFR_RNDN);
        ;
        mpfr_set_si(r21275, mpfr_cmp(r21252, r21274) <= 0, MPFR_RNDN);
        mpfr_pow(r21276, r21256, r21255, MPFR_RNDN);
        ;
        mpfr_pow(r21278, r21252, r21277, MPFR_RNDN);
        mpfr_mul(r21279, r21276, r21278, MPFR_RNDN);
        mpfr_div(r21280, r21262, r21279, MPFR_RNDN);
        mpfr_mul(r21281, r21280, r21259, MPFR_RNDN);
        mpfr_tan(r21282, r21258, MPFR_RNDN);
        mpfr_mul(r21283, r21281, r21282, MPFR_RNDN);
        mpfr_mul(r21284, r21283, r21266, MPFR_RNDN);
        mpfr_div(r21285, r21255, r21284, MPFR_RNDN);
        if (mpfr_get_si(r21275, MPFR_RNDN)) { mpfr_set(r21286, r21285, MPFR_RNDN); } else { mpfr_set(r21286, r21273, MPFR_RNDN); };
        if (mpfr_get_si(r21254, MPFR_RNDN)) { mpfr_set(r21287, r21273, MPFR_RNDN); } else { mpfr_set(r21287, r21286, MPFR_RNDN); };
        return mpfr_get_d(r21287, MPFR_RNDN);
}

