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

char *name = "cos(2*x)/(cos^2(x)*sin^2(x))";

double f_if(float x, float cos, float sin) {
        float r25260 = 2;
        float r25261 = x;
        float r25262 = r25260 * r25261;
        float r25263 = cos(r25262);
        float r25264 = cos;
        float r25265 = pow(r25264, r25260);
        float r25266 = sin;
        float r25267 = pow(r25266, r25260);
        float r25268 = r25261 * r25267;
        float r25269 = r25268 * r25261;
        float r25270 = r25265 * r25269;
        float r25271 = r25263 / r25270;
        return r25271;
}

double f_id(double x, double cos, double sin) {
        double r25272 = 2;
        double r25273 = x;
        double r25274 = r25272 * r25273;
        double r25275 = cos(r25274);
        double r25276 = cos;
        double r25277 = pow(r25276, r25272);
        double r25278 = sin;
        double r25279 = pow(r25278, r25272);
        double r25280 = r25273 * r25279;
        double r25281 = r25280 * r25273;
        double r25282 = r25277 * r25281;
        double r25283 = r25275 / r25282;
        return r25283;
}


double f_of(float x, float cos, float sin) {
        float r25284 = 1;
        float r25285 = cos;
        float r25286 = sin;
        float r25287 = r25285 * r25286;
        float r25288 = x;
        float r25289 = r25287 * r25288;
        float r25290 = fabs(r25289);
        float r25291 = r25284 / r25290;
        float r25292 = 2;
        float r25293 = r25288 * r25292;
        float r25294 = cos(r25293);
        float r25295 = r25286 * r25288;
        float r25296 = r25285 * r25295;
        float r25297 = fabs(r25296);
        float r25298 = r25294 / r25297;
        float r25299 = r25291 * r25298;
        float r25300 = 1.6261123667941e-313;
        bool r25301 = r25299 <= r25300;
        float r25302 = r25292 * r25288;
        float r25303 = cos(r25302);
        float r25304 = r25288 * r25285;
        float r25305 = r25304 * r25286;
        float r25306 = fabs(r25305);
        float r25307 = r25303 / r25306;
        float r25308 = r25307 / r25306;
        float r25309 = 2.3999061954305667e+296;
        bool r25310 = r25299 <= r25309;
        float r25311 = sqrt(r25307);
        float r25312 = r25311 * r25311;
        float r25313 = r25312 / r25306;
        float r25314 = r25310 ? r25299 : r25313;
        float r25315 = r25301 ? r25308 : r25314;
        return r25315;
}

double f_od(double x, double cos, double sin) {
        double r25316 = 1;
        double r25317 = cos;
        double r25318 = sin;
        double r25319 = r25317 * r25318;
        double r25320 = x;
        double r25321 = r25319 * r25320;
        double r25322 = fabs(r25321);
        double r25323 = r25316 / r25322;
        double r25324 = 2;
        double r25325 = r25320 * r25324;
        double r25326 = cos(r25325);
        double r25327 = r25318 * r25320;
        double r25328 = r25317 * r25327;
        double r25329 = fabs(r25328);
        double r25330 = r25326 / r25329;
        double r25331 = r25323 * r25330;
        double r25332 = 1.6261123667941e-313;
        bool r25333 = r25331 <= r25332;
        double r25334 = r25324 * r25320;
        double r25335 = cos(r25334);
        double r25336 = r25320 * r25317;
        double r25337 = r25336 * r25318;
        double r25338 = fabs(r25337);
        double r25339 = r25335 / r25338;
        double r25340 = r25339 / r25338;
        double r25341 = 2.3999061954305667e+296;
        bool r25342 = r25331 <= r25341;
        double r25343 = sqrt(r25339);
        double r25344 = r25343 * r25343;
        double r25345 = r25344 / r25338;
        double r25346 = r25342 ? r25331 : r25345;
        double r25347 = r25333 ? r25340 : r25346;
        return r25347;
}

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 r25348, r25349, r25350, r25351, r25352, r25353, r25354, r25355, r25356, r25357, r25358, r25359;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r25348, "2", 10, MPFR_RNDN);
        mpfr_init(r25349);
        mpfr_init(r25350);
        mpfr_init(r25351);
        mpfr_init(r25352);
        mpfr_init(r25353);
        mpfr_init(r25354);
        mpfr_init(r25355);
        mpfr_init(r25356);
        mpfr_init(r25357);
        mpfr_init(r25358);
        mpfr_init(r25359);
}

double f_im(double x, double cos, double sin) {
        ;
        mpfr_set_d(r25349, x, MPFR_RNDN);
        mpfr_mul(r25350, r25348, r25349, MPFR_RNDN);
        mpfr_cos(r25351, r25350, MPFR_RNDN);
        mpfr_set_d(r25352, cos, MPFR_RNDN);
        mpfr_pow(r25353, r25352, r25348, MPFR_RNDN);
        mpfr_set_d(r25354, sin, MPFR_RNDN);
        mpfr_pow(r25355, r25354, r25348, MPFR_RNDN);
        mpfr_mul(r25356, r25349, r25355, MPFR_RNDN);
        mpfr_mul(r25357, r25356, r25349, MPFR_RNDN);
        mpfr_mul(r25358, r25353, r25357, MPFR_RNDN);
        mpfr_div(r25359, r25351, r25358, MPFR_RNDN);
        return mpfr_get_d(r25359, MPFR_RNDN);
}

static mpfr_t r25360, r25361, r25362, r25363, r25364, r25365, r25366, r25367, r25368, r25369, r25370, r25371, r25372, r25373, r25374, r25375, r25376, r25377, r25378, r25379, r25380, r25381, r25382, r25383, r25384, r25385, r25386, r25387, r25388, r25389, r25390, r25391;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r25360, "1", 10, MPFR_RNDN);
        mpfr_init(r25361);
        mpfr_init(r25362);
        mpfr_init(r25363);
        mpfr_init(r25364);
        mpfr_init(r25365);
        mpfr_init(r25366);
        mpfr_init(r25367);
        mpfr_init_set_str(r25368, "2", 10, MPFR_RNDN);
        mpfr_init(r25369);
        mpfr_init(r25370);
        mpfr_init(r25371);
        mpfr_init(r25372);
        mpfr_init(r25373);
        mpfr_init(r25374);
        mpfr_init(r25375);
        mpfr_init_set_str(r25376, "1.6261123667941e-313", 10, MPFR_RNDN);
        mpfr_init(r25377);
        mpfr_init(r25378);
        mpfr_init(r25379);
        mpfr_init(r25380);
        mpfr_init(r25381);
        mpfr_init(r25382);
        mpfr_init(r25383);
        mpfr_init(r25384);
        mpfr_init_set_str(r25385, "2.3999061954305667e+296", 10, MPFR_RNDN);
        mpfr_init(r25386);
        mpfr_init(r25387);
        mpfr_init(r25388);
        mpfr_init(r25389);
        mpfr_init(r25390);
        mpfr_init(r25391);
}

double f_fm(double x, double cos, double sin) {
        ;
        mpfr_set_d(r25361, cos, MPFR_RNDN);
        mpfr_set_d(r25362, sin, MPFR_RNDN);
        mpfr_mul(r25363, r25361, r25362, MPFR_RNDN);
        mpfr_set_d(r25364, x, MPFR_RNDN);
        mpfr_mul(r25365, r25363, r25364, MPFR_RNDN);
        mpfr_abs(r25366, r25365, MPFR_RNDN);
        mpfr_div(r25367, r25360, r25366, MPFR_RNDN);
        ;
        mpfr_mul(r25369, r25364, r25368, MPFR_RNDN);
        mpfr_cos(r25370, r25369, MPFR_RNDN);
        mpfr_mul(r25371, r25362, r25364, MPFR_RNDN);
        mpfr_mul(r25372, r25361, r25371, MPFR_RNDN);
        mpfr_abs(r25373, r25372, MPFR_RNDN);
        mpfr_div(r25374, r25370, r25373, MPFR_RNDN);
        mpfr_mul(r25375, r25367, r25374, MPFR_RNDN);
        ;
        mpfr_set_si(r25377, mpfr_cmp(r25375, r25376) <= 0, MPFR_RNDN);
        mpfr_mul(r25378, r25368, r25364, MPFR_RNDN);
        mpfr_cos(r25379, r25378, MPFR_RNDN);
        mpfr_mul(r25380, r25364, r25361, MPFR_RNDN);
        mpfr_mul(r25381, r25380, r25362, MPFR_RNDN);
        mpfr_abs(r25382, r25381, MPFR_RNDN);
        mpfr_div(r25383, r25379, r25382, MPFR_RNDN);
        mpfr_div(r25384, r25383, r25382, MPFR_RNDN);
        ;
        mpfr_set_si(r25386, mpfr_cmp(r25375, r25385) <= 0, MPFR_RNDN);
        mpfr_sqrt(r25387, r25383, MPFR_RNDN);
        mpfr_mul(r25388, r25387, r25387, MPFR_RNDN);
        mpfr_div(r25389, r25388, r25382, MPFR_RNDN);
        if (mpfr_get_si(r25386, MPFR_RNDN)) { mpfr_set(r25390, r25375, MPFR_RNDN); } else { mpfr_set(r25390, r25389, MPFR_RNDN); };
        if (mpfr_get_si(r25377, MPFR_RNDN)) { mpfr_set(r25391, r25384, MPFR_RNDN); } else { mpfr_set(r25391, r25390, MPFR_RNDN); };
        return mpfr_get_d(r25391, MPFR_RNDN);
}

static mpfr_t r25392, r25393, r25394, r25395, r25396, r25397, r25398, r25399, r25400, r25401, r25402, r25403, r25404, r25405, r25406, r25407, r25408, r25409, r25410, r25411, r25412, r25413, r25414, r25415, r25416, r25417, r25418, r25419, r25420, r25421, r25422, r25423;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r25392, "1", 10, MPFR_RNDN);
        mpfr_init(r25393);
        mpfr_init(r25394);
        mpfr_init(r25395);
        mpfr_init(r25396);
        mpfr_init(r25397);
        mpfr_init(r25398);
        mpfr_init(r25399);
        mpfr_init_set_str(r25400, "2", 10, MPFR_RNDN);
        mpfr_init(r25401);
        mpfr_init(r25402);
        mpfr_init(r25403);
        mpfr_init(r25404);
        mpfr_init(r25405);
        mpfr_init(r25406);
        mpfr_init(r25407);
        mpfr_init_set_str(r25408, "1.6261123667941e-313", 10, MPFR_RNDN);
        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_set_str(r25417, "2.3999061954305667e+296", 10, MPFR_RNDN);
        mpfr_init(r25418);
        mpfr_init(r25419);
        mpfr_init(r25420);
        mpfr_init(r25421);
        mpfr_init(r25422);
        mpfr_init(r25423);
}

double f_dm(double x, double cos, double sin) {
        ;
        mpfr_set_d(r25393, cos, MPFR_RNDN);
        mpfr_set_d(r25394, sin, MPFR_RNDN);
        mpfr_mul(r25395, r25393, r25394, MPFR_RNDN);
        mpfr_set_d(r25396, x, MPFR_RNDN);
        mpfr_mul(r25397, r25395, r25396, MPFR_RNDN);
        mpfr_abs(r25398, r25397, MPFR_RNDN);
        mpfr_div(r25399, r25392, r25398, MPFR_RNDN);
        ;
        mpfr_mul(r25401, r25396, r25400, MPFR_RNDN);
        mpfr_cos(r25402, r25401, MPFR_RNDN);
        mpfr_mul(r25403, r25394, r25396, MPFR_RNDN);
        mpfr_mul(r25404, r25393, r25403, MPFR_RNDN);
        mpfr_abs(r25405, r25404, MPFR_RNDN);
        mpfr_div(r25406, r25402, r25405, MPFR_RNDN);
        mpfr_mul(r25407, r25399, r25406, MPFR_RNDN);
        ;
        mpfr_set_si(r25409, mpfr_cmp(r25407, r25408) <= 0, MPFR_RNDN);
        mpfr_mul(r25410, r25400, r25396, MPFR_RNDN);
        mpfr_cos(r25411, r25410, MPFR_RNDN);
        mpfr_mul(r25412, r25396, r25393, MPFR_RNDN);
        mpfr_mul(r25413, r25412, r25394, MPFR_RNDN);
        mpfr_abs(r25414, r25413, MPFR_RNDN);
        mpfr_div(r25415, r25411, r25414, MPFR_RNDN);
        mpfr_div(r25416, r25415, r25414, MPFR_RNDN);
        ;
        mpfr_set_si(r25418, mpfr_cmp(r25407, r25417) <= 0, MPFR_RNDN);
        mpfr_sqrt(r25419, r25415, MPFR_RNDN);
        mpfr_mul(r25420, r25419, r25419, MPFR_RNDN);
        mpfr_div(r25421, r25420, r25414, MPFR_RNDN);
        if (mpfr_get_si(r25418, MPFR_RNDN)) { mpfr_set(r25422, r25407, MPFR_RNDN); } else { mpfr_set(r25422, r25421, MPFR_RNDN); };
        if (mpfr_get_si(r25409, MPFR_RNDN)) { mpfr_set(r25423, r25416, MPFR_RNDN); } else { mpfr_set(r25423, r25422, MPFR_RNDN); };
        return mpfr_get_d(r25423, MPFR_RNDN);
}

