#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 r9120 = 2;
        float r9121 = t;
        float r9122 = 3;
        float r9123 = pow(r9121, r9122);
        float r9124 = l;
        float r9125 = r9124 * r9124;
        float r9126 = r9123 / r9125;
        float r9127 = k;
        float r9128 = sin(r9127);
        float r9129 = r9126 * r9128;
        float r9130 = tan(r9127);
        float r9131 = r9129 * r9130;
        float r9132 = 1;
        float r9133 = r9127 / r9121;
        float r9134 = pow(r9133, r9120);
        float r9135 = r9132 + r9134;
        float r9136 = r9135 - r9132;
        float r9137 = r9131 * r9136;
        float r9138 = r9120 / r9137;
        return r9138;
}

double f_id(double t, double l, double k) {
        double r9139 = 2;
        double r9140 = t;
        double r9141 = 3;
        double r9142 = pow(r9140, r9141);
        double r9143 = l;
        double r9144 = r9143 * r9143;
        double r9145 = r9142 / r9144;
        double r9146 = k;
        double r9147 = sin(r9146);
        double r9148 = r9145 * r9147;
        double r9149 = tan(r9146);
        double r9150 = r9148 * r9149;
        double r9151 = 1;
        double r9152 = r9146 / r9140;
        double r9153 = pow(r9152, r9139);
        double r9154 = r9151 + r9153;
        double r9155 = r9154 - r9151;
        double r9156 = r9150 * r9155;
        double r9157 = r9139 / r9156;
        return r9157;
}


double f_of(float t, float l, float k) {
        float r9158 = t;
        float r9159 = -2.747891034753405e+69;
        bool r9160 = r9158 <= r9159;
        float r9161 = 2;
        float r9162 = k;
        float r9163 = r9162 / r9158;
        float r9164 = fabs(r9163);
        float r9165 = l;
        float r9166 = r9158 / r9165;
        float r9167 = r9166 * r9166;
        float r9168 = r9167 * r9164;
        float r9169 = sin(r9162);
        float r9170 = tan(r9162);
        float r9171 = r9170 * r9158;
        float r9172 = r9169 * r9171;
        float r9173 = r9168 * r9172;
        float r9174 = r9164 * r9173;
        float r9175 = r9161 / r9174;
        float r9176 = -3.343425587628506e-54;
        bool r9177 = r9158 <= r9176;
        float r9178 = r9158 * r9166;
        float r9179 = r9158 * r9178;
        float r9180 = r9179 * r9169;
        float r9181 = r9180 * r9169;
        float r9182 = r9181 * r9164;
        float r9183 = cos(r9162);
        float r9184 = r9183 * r9165;
        float r9185 = r9182 / r9184;
        float r9186 = r9185 * r9164;
        float r9187 = r9161 / r9186;
        float r9188 = 2.2613754421181447e-69;
        bool r9189 = r9158 <= r9188;
        float r9190 = 5.373468861171188e+103;
        bool r9191 = r9158 <= r9190;
        float r9192 = !r9191;
        bool r9193 = r9189 || r9192;
        float r9194 = r9161 / r9158;
        float r9195 = r9158 * r9158;
        float r9196 = r9194 / r9195;
        float r9197 = r9169 * r9170;
        float r9198 = r9196 / r9197;
        float r9199 = r9164 / r9165;
        float r9200 = r9199 * r9199;
        float r9201 = r9198 / r9200;
        float r9202 = r9193 ? r9175 : r9201;
        float r9203 = r9177 ? r9187 : r9202;
        float r9204 = r9160 ? r9175 : r9203;
        return r9204;
}

double f_od(double t, double l, double k) {
        double r9205 = t;
        double r9206 = -2.747891034753405e+69;
        bool r9207 = r9205 <= r9206;
        double r9208 = 2;
        double r9209 = k;
        double r9210 = r9209 / r9205;
        double r9211 = fabs(r9210);
        double r9212 = l;
        double r9213 = r9205 / r9212;
        double r9214 = r9213 * r9213;
        double r9215 = r9214 * r9211;
        double r9216 = sin(r9209);
        double r9217 = tan(r9209);
        double r9218 = r9217 * r9205;
        double r9219 = r9216 * r9218;
        double r9220 = r9215 * r9219;
        double r9221 = r9211 * r9220;
        double r9222 = r9208 / r9221;
        double r9223 = -3.343425587628506e-54;
        bool r9224 = r9205 <= r9223;
        double r9225 = r9205 * r9213;
        double r9226 = r9205 * r9225;
        double r9227 = r9226 * r9216;
        double r9228 = r9227 * r9216;
        double r9229 = r9228 * r9211;
        double r9230 = cos(r9209);
        double r9231 = r9230 * r9212;
        double r9232 = r9229 / r9231;
        double r9233 = r9232 * r9211;
        double r9234 = r9208 / r9233;
        double r9235 = 2.2613754421181447e-69;
        bool r9236 = r9205 <= r9235;
        double r9237 = 5.373468861171188e+103;
        bool r9238 = r9205 <= r9237;
        double r9239 = !r9238;
        bool r9240 = r9236 || r9239;
        double r9241 = r9208 / r9205;
        double r9242 = r9205 * r9205;
        double r9243 = r9241 / r9242;
        double r9244 = r9216 * r9217;
        double r9245 = r9243 / r9244;
        double r9246 = r9211 / r9212;
        double r9247 = r9246 * r9246;
        double r9248 = r9245 / r9247;
        double r9249 = r9240 ? r9222 : r9248;
        double r9250 = r9224 ? r9234 : r9249;
        double r9251 = r9207 ? r9222 : r9250;
        return r9251;
}

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 r9252, r9253, r9254, r9255, r9256, r9257, r9258, r9259, r9260, r9261, r9262, r9263, r9264, r9265, r9266, r9267, r9268, r9269, r9270;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(4176);
        mpfr_init_set_str(r9252, "2", 10, MPFR_RNDN);
        mpfr_init(r9253);
        mpfr_init_set_str(r9254, "3", 10, MPFR_RNDN);
        mpfr_init(r9255);
        mpfr_init(r9256);
        mpfr_init(r9257);
        mpfr_init(r9258);
        mpfr_init(r9259);
        mpfr_init(r9260);
        mpfr_init(r9261);
        mpfr_init(r9262);
        mpfr_init(r9263);
        mpfr_init_set_str(r9264, "1", 10, MPFR_RNDN);
        mpfr_init(r9265);
        mpfr_init(r9266);
        mpfr_init(r9267);
        mpfr_init(r9268);
        mpfr_init(r9269);
        mpfr_init(r9270);
}

double f_im(double t, double l, double k) {
        ;
        mpfr_set_d(r9253, t, MPFR_RNDN);
        ;
        mpfr_pow(r9255, r9253, r9254, MPFR_RNDN);
        mpfr_set_d(r9256, l, MPFR_RNDN);
        mpfr_mul(r9257, r9256, r9256, MPFR_RNDN);
        mpfr_div(r9258, r9255, r9257, MPFR_RNDN);
        mpfr_set_d(r9259, k, MPFR_RNDN);
        mpfr_sin(r9260, r9259, MPFR_RNDN);
        mpfr_mul(r9261, r9258, r9260, MPFR_RNDN);
        mpfr_tan(r9262, r9259, MPFR_RNDN);
        mpfr_mul(r9263, r9261, r9262, MPFR_RNDN);
        ;
        mpfr_div(r9265, r9259, r9253, MPFR_RNDN);
        mpfr_pow(r9266, r9265, r9252, MPFR_RNDN);
        mpfr_add(r9267, r9264, r9266, MPFR_RNDN);
        mpfr_sub(r9268, r9267, r9264, MPFR_RNDN);
        mpfr_mul(r9269, r9263, r9268, MPFR_RNDN);
        mpfr_div(r9270, r9252, r9269, MPFR_RNDN);
        return mpfr_get_d(r9270, MPFR_RNDN);
}

static mpfr_t r9271, r9272, r9273, r9274, r9275, r9276, r9277, r9278, r9279, r9280, r9281, r9282, r9283, r9284, r9285, r9286, r9287, r9288, r9289, r9290, r9291, r9292, r9293, r9294, r9295, r9296, r9297, r9298, r9299, r9300, r9301, r9302, r9303, r9304, r9305, r9306, r9307, r9308, r9309, r9310, r9311, r9312, r9313, r9314, r9315, r9316, r9317;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(4176);
        mpfr_init(r9271);
        mpfr_init_set_str(r9272, "-2.747891034753405e+69", 10, MPFR_RNDN);
        mpfr_init(r9273);
        mpfr_init_set_str(r9274, "2", 10, MPFR_RNDN);
        mpfr_init(r9275);
        mpfr_init(r9276);
        mpfr_init(r9277);
        mpfr_init(r9278);
        mpfr_init(r9279);
        mpfr_init(r9280);
        mpfr_init(r9281);
        mpfr_init(r9282);
        mpfr_init(r9283);
        mpfr_init(r9284);
        mpfr_init(r9285);
        mpfr_init(r9286);
        mpfr_init(r9287);
        mpfr_init(r9288);
        mpfr_init_set_str(r9289, "-3.343425587628506e-54", 10, MPFR_RNDN);
        mpfr_init(r9290);
        mpfr_init(r9291);
        mpfr_init(r9292);
        mpfr_init(r9293);
        mpfr_init(r9294);
        mpfr_init(r9295);
        mpfr_init(r9296);
        mpfr_init(r9297);
        mpfr_init(r9298);
        mpfr_init(r9299);
        mpfr_init(r9300);
        mpfr_init_set_str(r9301, "2.2613754421181447e-69", 10, MPFR_RNDN);
        mpfr_init(r9302);
        mpfr_init_set_str(r9303, "5.373468861171188e+103", 10, MPFR_RNDN);
        mpfr_init(r9304);
        mpfr_init(r9305);
        mpfr_init(r9306);
        mpfr_init(r9307);
        mpfr_init(r9308);
        mpfr_init(r9309);
        mpfr_init(r9310);
        mpfr_init(r9311);
        mpfr_init(r9312);
        mpfr_init(r9313);
        mpfr_init(r9314);
        mpfr_init(r9315);
        mpfr_init(r9316);
        mpfr_init(r9317);
}

double f_fm(double t, double l, double k) {
        mpfr_set_d(r9271, t, MPFR_RNDN);
        ;
        mpfr_set_si(r9273, mpfr_cmp(r9271, r9272) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r9275, k, MPFR_RNDN);
        mpfr_div(r9276, r9275, r9271, MPFR_RNDN);
        mpfr_abs(r9277, r9276, MPFR_RNDN);
        mpfr_set_d(r9278, l, MPFR_RNDN);
        mpfr_div(r9279, r9271, r9278, MPFR_RNDN);
        mpfr_mul(r9280, r9279, r9279, MPFR_RNDN);
        mpfr_mul(r9281, r9280, r9277, MPFR_RNDN);
        mpfr_sin(r9282, r9275, MPFR_RNDN);
        mpfr_tan(r9283, r9275, MPFR_RNDN);
        mpfr_mul(r9284, r9283, r9271, MPFR_RNDN);
        mpfr_mul(r9285, r9282, r9284, MPFR_RNDN);
        mpfr_mul(r9286, r9281, r9285, MPFR_RNDN);
        mpfr_mul(r9287, r9277, r9286, MPFR_RNDN);
        mpfr_div(r9288, r9274, r9287, MPFR_RNDN);
        ;
        mpfr_set_si(r9290, mpfr_cmp(r9271, r9289) <= 0, MPFR_RNDN);
        mpfr_mul(r9291, r9271, r9279, MPFR_RNDN);
        mpfr_mul(r9292, r9271, r9291, MPFR_RNDN);
        mpfr_mul(r9293, r9292, r9282, MPFR_RNDN);
        mpfr_mul(r9294, r9293, r9282, MPFR_RNDN);
        mpfr_mul(r9295, r9294, r9277, MPFR_RNDN);
        mpfr_cos(r9296, r9275, MPFR_RNDN);
        mpfr_mul(r9297, r9296, r9278, MPFR_RNDN);
        mpfr_div(r9298, r9295, r9297, MPFR_RNDN);
        mpfr_mul(r9299, r9298, r9277, MPFR_RNDN);
        mpfr_div(r9300, r9274, r9299, MPFR_RNDN);
        ;
        mpfr_set_si(r9302, mpfr_cmp(r9271, r9301) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9304, mpfr_cmp(r9271, r9303) <= 0, MPFR_RNDN);
        mpfr_set_si(r9305, !mpfr_get_si(r9304, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r9306, mpfr_get_si(r9302, MPFR_RNDN) || mpfr_get_si(r9305, MPFR_RNDN), MPFR_RNDN);
        mpfr_div(r9307, r9274, r9271, MPFR_RNDN);
        mpfr_mul(r9308, r9271, r9271, MPFR_RNDN);
        mpfr_div(r9309, r9307, r9308, MPFR_RNDN);
        mpfr_mul(r9310, r9282, r9283, MPFR_RNDN);
        mpfr_div(r9311, r9309, r9310, MPFR_RNDN);
        mpfr_div(r9312, r9277, r9278, MPFR_RNDN);
        mpfr_mul(r9313, r9312, r9312, MPFR_RNDN);
        mpfr_div(r9314, r9311, r9313, MPFR_RNDN);
        if (mpfr_get_si(r9306, MPFR_RNDN)) { mpfr_set(r9315, r9288, MPFR_RNDN); } else { mpfr_set(r9315, r9314, MPFR_RNDN); };
        if (mpfr_get_si(r9290, MPFR_RNDN)) { mpfr_set(r9316, r9300, MPFR_RNDN); } else { mpfr_set(r9316, r9315, MPFR_RNDN); };
        if (mpfr_get_si(r9273, MPFR_RNDN)) { mpfr_set(r9317, r9288, MPFR_RNDN); } else { mpfr_set(r9317, r9316, MPFR_RNDN); };
        return mpfr_get_d(r9317, MPFR_RNDN);
}

static mpfr_t r9318, r9319, r9320, r9321, r9322, r9323, r9324, r9325, r9326, r9327, r9328, r9329, r9330, r9331, r9332, r9333, r9334, r9335, r9336, r9337, r9338, r9339, r9340, r9341, r9342, r9343, r9344, r9345, r9346, r9347, r9348, r9349, r9350, r9351, r9352, r9353, r9354, r9355, r9356, r9357, r9358, r9359, r9360, r9361, r9362, r9363, r9364;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(4176);
        mpfr_init(r9318);
        mpfr_init_set_str(r9319, "-2.747891034753405e+69", 10, MPFR_RNDN);
        mpfr_init(r9320);
        mpfr_init_set_str(r9321, "2", 10, MPFR_RNDN);
        mpfr_init(r9322);
        mpfr_init(r9323);
        mpfr_init(r9324);
        mpfr_init(r9325);
        mpfr_init(r9326);
        mpfr_init(r9327);
        mpfr_init(r9328);
        mpfr_init(r9329);
        mpfr_init(r9330);
        mpfr_init(r9331);
        mpfr_init(r9332);
        mpfr_init(r9333);
        mpfr_init(r9334);
        mpfr_init(r9335);
        mpfr_init_set_str(r9336, "-3.343425587628506e-54", 10, MPFR_RNDN);
        mpfr_init(r9337);
        mpfr_init(r9338);
        mpfr_init(r9339);
        mpfr_init(r9340);
        mpfr_init(r9341);
        mpfr_init(r9342);
        mpfr_init(r9343);
        mpfr_init(r9344);
        mpfr_init(r9345);
        mpfr_init(r9346);
        mpfr_init(r9347);
        mpfr_init_set_str(r9348, "2.2613754421181447e-69", 10, MPFR_RNDN);
        mpfr_init(r9349);
        mpfr_init_set_str(r9350, "5.373468861171188e+103", 10, MPFR_RNDN);
        mpfr_init(r9351);
        mpfr_init(r9352);
        mpfr_init(r9353);
        mpfr_init(r9354);
        mpfr_init(r9355);
        mpfr_init(r9356);
        mpfr_init(r9357);
        mpfr_init(r9358);
        mpfr_init(r9359);
        mpfr_init(r9360);
        mpfr_init(r9361);
        mpfr_init(r9362);
        mpfr_init(r9363);
        mpfr_init(r9364);
}

double f_dm(double t, double l, double k) {
        mpfr_set_d(r9318, t, MPFR_RNDN);
        ;
        mpfr_set_si(r9320, mpfr_cmp(r9318, r9319) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r9322, k, MPFR_RNDN);
        mpfr_div(r9323, r9322, r9318, MPFR_RNDN);
        mpfr_abs(r9324, r9323, MPFR_RNDN);
        mpfr_set_d(r9325, l, MPFR_RNDN);
        mpfr_div(r9326, r9318, r9325, MPFR_RNDN);
        mpfr_mul(r9327, r9326, r9326, MPFR_RNDN);
        mpfr_mul(r9328, r9327, r9324, MPFR_RNDN);
        mpfr_sin(r9329, r9322, MPFR_RNDN);
        mpfr_tan(r9330, r9322, MPFR_RNDN);
        mpfr_mul(r9331, r9330, r9318, MPFR_RNDN);
        mpfr_mul(r9332, r9329, r9331, MPFR_RNDN);
        mpfr_mul(r9333, r9328, r9332, MPFR_RNDN);
        mpfr_mul(r9334, r9324, r9333, MPFR_RNDN);
        mpfr_div(r9335, r9321, r9334, MPFR_RNDN);
        ;
        mpfr_set_si(r9337, mpfr_cmp(r9318, r9336) <= 0, MPFR_RNDN);
        mpfr_mul(r9338, r9318, r9326, MPFR_RNDN);
        mpfr_mul(r9339, r9318, r9338, MPFR_RNDN);
        mpfr_mul(r9340, r9339, r9329, MPFR_RNDN);
        mpfr_mul(r9341, r9340, r9329, MPFR_RNDN);
        mpfr_mul(r9342, r9341, r9324, MPFR_RNDN);
        mpfr_cos(r9343, r9322, MPFR_RNDN);
        mpfr_mul(r9344, r9343, r9325, MPFR_RNDN);
        mpfr_div(r9345, r9342, r9344, MPFR_RNDN);
        mpfr_mul(r9346, r9345, r9324, MPFR_RNDN);
        mpfr_div(r9347, r9321, r9346, MPFR_RNDN);
        ;
        mpfr_set_si(r9349, mpfr_cmp(r9318, r9348) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9351, mpfr_cmp(r9318, r9350) <= 0, MPFR_RNDN);
        mpfr_set_si(r9352, !mpfr_get_si(r9351, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r9353, mpfr_get_si(r9349, MPFR_RNDN) || mpfr_get_si(r9352, MPFR_RNDN), MPFR_RNDN);
        mpfr_div(r9354, r9321, r9318, MPFR_RNDN);
        mpfr_mul(r9355, r9318, r9318, MPFR_RNDN);
        mpfr_div(r9356, r9354, r9355, MPFR_RNDN);
        mpfr_mul(r9357, r9329, r9330, MPFR_RNDN);
        mpfr_div(r9358, r9356, r9357, MPFR_RNDN);
        mpfr_div(r9359, r9324, r9325, MPFR_RNDN);
        mpfr_mul(r9360, r9359, r9359, MPFR_RNDN);
        mpfr_div(r9361, r9358, r9360, MPFR_RNDN);
        if (mpfr_get_si(r9353, MPFR_RNDN)) { mpfr_set(r9362, r9335, MPFR_RNDN); } else { mpfr_set(r9362, r9361, MPFR_RNDN); };
        if (mpfr_get_si(r9337, MPFR_RNDN)) { mpfr_set(r9363, r9347, MPFR_RNDN); } else { mpfr_set(r9363, r9362, MPFR_RNDN); };
        if (mpfr_get_si(r9320, MPFR_RNDN)) { mpfr_set(r9364, r9335, MPFR_RNDN); } else { mpfr_set(r9364, r9363, MPFR_RNDN); };
        return mpfr_get_d(r9364, MPFR_RNDN);
}

