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

char *name = "math.cos on complex, imaginary part";

double f_if(float re, float im) {
        float r11523 = 0.5;
        float r11524 = re;
        float r11525 = sin(r11524);
        float r11526 = r11523 * r11525;
        float r11527 = im;
        float r11528 = -r11527;
        float r11529 = exp(r11528);
        float r11530 = exp(r11527);
        float r11531 = r11529 - r11530;
        float r11532 = r11526 * r11531;
        return r11532;
}

double f_id(double re, double im) {
        double r11533 = 0.5;
        double r11534 = re;
        double r11535 = sin(r11534);
        double r11536 = r11533 * r11535;
        double r11537 = im;
        double r11538 = -r11537;
        double r11539 = exp(r11538);
        double r11540 = exp(r11537);
        double r11541 = r11539 - r11540;
        double r11542 = r11536 * r11541;
        return r11542;
}


double f_of(float re, float im) {
        float r11543 = 0.5;
        float r11544 = re;
        float r11545 = sin(r11544);
        float r11546 = r11543 * r11545;
        float r11547 = 1/3;
        float r11548 = im;
        float r11549 = 3;
        float r11550 = pow(r11548, r11549);
        float r11551 = r11547 * r11550;
        float r11552 = 1/60;
        float r11553 = 5;
        float r11554 = pow(r11548, r11553);
        float r11555 = r11552 * r11554;
        float r11556 = 2;
        float r11557 = r11556 * r11548;
        float r11558 = r11555 + r11557;
        float r11559 = r11551 + r11558;
        float r11560 = -r11559;
        float r11561 = r11546 * r11560;
        return r11561;
}

double f_od(double re, double im) {
        double r11562 = 0.5;
        double r11563 = re;
        double r11564 = sin(r11563);
        double r11565 = r11562 * r11564;
        double r11566 = 1/3;
        double r11567 = im;
        double r11568 = 3;
        double r11569 = pow(r11567, r11568);
        double r11570 = r11566 * r11569;
        double r11571 = 1/60;
        double r11572 = 5;
        double r11573 = pow(r11567, r11572);
        double r11574 = r11571 * r11573;
        double r11575 = 2;
        double r11576 = r11575 * r11567;
        double r11577 = r11574 + r11576;
        double r11578 = r11570 + r11577;
        double r11579 = -r11578;
        double r11580 = r11565 * r11579;
        return r11580;
}

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 r11581, r11582, r11583, r11584, r11585, r11586, r11587, r11588, r11589, r11590;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11581, "0.5", 10, MPFR_RNDN);
        mpfr_init(r11582);
        mpfr_init(r11583);
        mpfr_init(r11584);
        mpfr_init(r11585);
        mpfr_init(r11586);
        mpfr_init(r11587);
        mpfr_init(r11588);
        mpfr_init(r11589);
        mpfr_init(r11590);
}

double f_im(double re, double im) {
        ;
        mpfr_set_d(r11582, re, MPFR_RNDN);
        mpfr_sin(r11583, r11582, MPFR_RNDN);
        mpfr_mul(r11584, r11581, r11583, MPFR_RNDN);
        mpfr_set_d(r11585, im, MPFR_RNDN);
        mpfr_neg(r11586, r11585, MPFR_RNDN);
        mpfr_exp(r11587, r11586, MPFR_RNDN);
        mpfr_exp(r11588, r11585, MPFR_RNDN);
        mpfr_sub(r11589, r11587, r11588, MPFR_RNDN);
        mpfr_mul(r11590, r11584, r11589, MPFR_RNDN);
        return mpfr_get_d(r11590, MPFR_RNDN);
}

static mpfr_t r11591, r11592, r11593, r11594, r11595, r11596, r11597, r11598, r11599, r11600, r11601, r11602, r11603, r11604, r11605, r11606, r11607, r11608, r11609;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11591, "0.5", 10, MPFR_RNDN);
        mpfr_init(r11592);
        mpfr_init(r11593);
        mpfr_init(r11594);
        mpfr_init_set_str(r11595, "1/3", 10, MPFR_RNDN);
        mpfr_init(r11596);
        mpfr_init_set_str(r11597, "3", 10, MPFR_RNDN);
        mpfr_init(r11598);
        mpfr_init(r11599);
        mpfr_init_set_str(r11600, "1/60", 10, MPFR_RNDN);
        mpfr_init_set_str(r11601, "5", 10, MPFR_RNDN);
        mpfr_init(r11602);
        mpfr_init(r11603);
        mpfr_init_set_str(r11604, "2", 10, MPFR_RNDN);
        mpfr_init(r11605);
        mpfr_init(r11606);
        mpfr_init(r11607);
        mpfr_init(r11608);
        mpfr_init(r11609);
}

double f_fm(double re, double im) {
        ;
        mpfr_set_d(r11592, re, MPFR_RNDN);
        mpfr_sin(r11593, r11592, MPFR_RNDN);
        mpfr_mul(r11594, r11591, r11593, MPFR_RNDN);
        ;
        mpfr_set_d(r11596, im, MPFR_RNDN);
        ;
        mpfr_pow(r11598, r11596, r11597, MPFR_RNDN);
        mpfr_mul(r11599, r11595, r11598, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r11602, r11596, r11601, MPFR_RNDN);
        mpfr_mul(r11603, r11600, r11602, MPFR_RNDN);
        ;
        mpfr_mul(r11605, r11604, r11596, MPFR_RNDN);
        mpfr_add(r11606, r11603, r11605, MPFR_RNDN);
        mpfr_add(r11607, r11599, r11606, MPFR_RNDN);
        mpfr_neg(r11608, r11607, MPFR_RNDN);
        mpfr_mul(r11609, r11594, r11608, MPFR_RNDN);
        return mpfr_get_d(r11609, MPFR_RNDN);
}

static mpfr_t r11610, r11611, r11612, r11613, r11614, r11615, r11616, r11617, r11618, r11619, r11620, r11621, r11622, r11623, r11624, r11625, r11626, r11627, r11628;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11610, "0.5", 10, MPFR_RNDN);
        mpfr_init(r11611);
        mpfr_init(r11612);
        mpfr_init(r11613);
        mpfr_init_set_str(r11614, "1/3", 10, MPFR_RNDN);
        mpfr_init(r11615);
        mpfr_init_set_str(r11616, "3", 10, MPFR_RNDN);
        mpfr_init(r11617);
        mpfr_init(r11618);
        mpfr_init_set_str(r11619, "1/60", 10, MPFR_RNDN);
        mpfr_init_set_str(r11620, "5", 10, MPFR_RNDN);
        mpfr_init(r11621);
        mpfr_init(r11622);
        mpfr_init_set_str(r11623, "2", 10, MPFR_RNDN);
        mpfr_init(r11624);
        mpfr_init(r11625);
        mpfr_init(r11626);
        mpfr_init(r11627);
        mpfr_init(r11628);
}

double f_dm(double re, double im) {
        ;
        mpfr_set_d(r11611, re, MPFR_RNDN);
        mpfr_sin(r11612, r11611, MPFR_RNDN);
        mpfr_mul(r11613, r11610, r11612, MPFR_RNDN);
        ;
        mpfr_set_d(r11615, im, MPFR_RNDN);
        ;
        mpfr_pow(r11617, r11615, r11616, MPFR_RNDN);
        mpfr_mul(r11618, r11614, r11617, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r11621, r11615, r11620, MPFR_RNDN);
        mpfr_mul(r11622, r11619, r11621, MPFR_RNDN);
        ;
        mpfr_mul(r11624, r11623, r11615, MPFR_RNDN);
        mpfr_add(r11625, r11622, r11624, MPFR_RNDN);
        mpfr_add(r11626, r11618, r11625, MPFR_RNDN);
        mpfr_neg(r11627, r11626, MPFR_RNDN);
        mpfr_mul(r11628, r11613, r11627, MPFR_RNDN);
        return mpfr_get_d(r11628, MPFR_RNDN);
}

