#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 r26466 = 0.5;
        float r26467 = re;
        float r26468 = sin(r26467);
        float r26469 = r26466 * r26468;
        float r26470 = im;
        float r26471 = -r26470;
        float r26472 = exp(r26471);
        float r26473 = exp(r26470);
        float r26474 = r26472 - r26473;
        float r26475 = r26469 * r26474;
        return r26475;
}

double f_id(double re, double im) {
        double r26476 = 0.5;
        double r26477 = re;
        double r26478 = sin(r26477);
        double r26479 = r26476 * r26478;
        double r26480 = im;
        double r26481 = -r26480;
        double r26482 = exp(r26481);
        double r26483 = exp(r26480);
        double r26484 = r26482 - r26483;
        double r26485 = r26479 * r26484;
        return r26485;
}


double f_of(float re, float im) {
        float r26486 = 0.5;
        float r26487 = re;
        float r26488 = sin(r26487);
        float r26489 = r26486 * r26488;
        float r26490 = 1/60;
        float r26491 = im;
        float r26492 = 5;
        float r26493 = pow(r26491, r26492);
        float r26494 = r26490 * r26493;
        float r26495 = 2;
        float r26496 = r26495 * r26491;
        float r26497 = 1/3;
        float r26498 = 3;
        float r26499 = pow(r26491, r26498);
        float r26500 = r26497 * r26499;
        float r26501 = r26496 + r26500;
        float r26502 = r26494 + r26501;
        float r26503 = -r26502;
        float r26504 = r26489 * r26503;
        return r26504;
}

double f_od(double re, double im) {
        double r26505 = 0.5;
        double r26506 = re;
        double r26507 = sin(r26506);
        double r26508 = r26505 * r26507;
        double r26509 = 1/60;
        double r26510 = im;
        double r26511 = 5;
        double r26512 = pow(r26510, r26511);
        double r26513 = r26509 * r26512;
        double r26514 = 2;
        double r26515 = r26514 * r26510;
        double r26516 = 1/3;
        double r26517 = 3;
        double r26518 = pow(r26510, r26517);
        double r26519 = r26516 * r26518;
        double r26520 = r26515 + r26519;
        double r26521 = r26513 + r26520;
        double r26522 = -r26521;
        double r26523 = r26508 * r26522;
        return r26523;
}

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 r26524, r26525, r26526, r26527, r26528, r26529, r26530, r26531, r26532, r26533;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26524, "0.5", 10, MPFR_RNDN);
        mpfr_init(r26525);
        mpfr_init(r26526);
        mpfr_init(r26527);
        mpfr_init(r26528);
        mpfr_init(r26529);
        mpfr_init(r26530);
        mpfr_init(r26531);
        mpfr_init(r26532);
        mpfr_init(r26533);
}

double f_im(double re, double im) {
        ;
        mpfr_set_d(r26525, re, MPFR_RNDN);
        mpfr_sin(r26526, r26525, MPFR_RNDN);
        mpfr_mul(r26527, r26524, r26526, MPFR_RNDN);
        mpfr_set_d(r26528, im, MPFR_RNDN);
        mpfr_neg(r26529, r26528, MPFR_RNDN);
        mpfr_exp(r26530, r26529, MPFR_RNDN);
        mpfr_exp(r26531, r26528, MPFR_RNDN);
        mpfr_sub(r26532, r26530, r26531, MPFR_RNDN);
        mpfr_mul(r26533, r26527, r26532, MPFR_RNDN);
        return mpfr_get_d(r26533, MPFR_RNDN);
}

static mpfr_t r26534, r26535, r26536, r26537, r26538, r26539, r26540, r26541, r26542, r26543, r26544, r26545, r26546, r26547, r26548, r26549, r26550, r26551, r26552;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26534, "0.5", 10, MPFR_RNDN);
        mpfr_init(r26535);
        mpfr_init(r26536);
        mpfr_init(r26537);
        mpfr_init_set_str(r26538, "1/60", 10, MPFR_RNDN);
        mpfr_init(r26539);
        mpfr_init_set_str(r26540, "5", 10, MPFR_RNDN);
        mpfr_init(r26541);
        mpfr_init(r26542);
        mpfr_init_set_str(r26543, "2", 10, MPFR_RNDN);
        mpfr_init(r26544);
        mpfr_init_set_str(r26545, "1/3", 10, MPFR_RNDN);
        mpfr_init_set_str(r26546, "3", 10, MPFR_RNDN);
        mpfr_init(r26547);
        mpfr_init(r26548);
        mpfr_init(r26549);
        mpfr_init(r26550);
        mpfr_init(r26551);
        mpfr_init(r26552);
}

double f_fm(double re, double im) {
        ;
        mpfr_set_d(r26535, re, MPFR_RNDN);
        mpfr_sin(r26536, r26535, MPFR_RNDN);
        mpfr_mul(r26537, r26534, r26536, MPFR_RNDN);
        ;
        mpfr_set_d(r26539, im, MPFR_RNDN);
        ;
        mpfr_pow(r26541, r26539, r26540, MPFR_RNDN);
        mpfr_mul(r26542, r26538, r26541, MPFR_RNDN);
        ;
        mpfr_mul(r26544, r26543, r26539, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26547, r26539, r26546, MPFR_RNDN);
        mpfr_mul(r26548, r26545, r26547, MPFR_RNDN);
        mpfr_add(r26549, r26544, r26548, MPFR_RNDN);
        mpfr_add(r26550, r26542, r26549, MPFR_RNDN);
        mpfr_neg(r26551, r26550, MPFR_RNDN);
        mpfr_mul(r26552, r26537, r26551, MPFR_RNDN);
        return mpfr_get_d(r26552, MPFR_RNDN);
}

static mpfr_t r26553, r26554, r26555, r26556, r26557, r26558, r26559, r26560, r26561, r26562, r26563, r26564, r26565, r26566, r26567, r26568, r26569, r26570, r26571;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26553, "0.5", 10, MPFR_RNDN);
        mpfr_init(r26554);
        mpfr_init(r26555);
        mpfr_init(r26556);
        mpfr_init_set_str(r26557, "1/60", 10, MPFR_RNDN);
        mpfr_init(r26558);
        mpfr_init_set_str(r26559, "5", 10, MPFR_RNDN);
        mpfr_init(r26560);
        mpfr_init(r26561);
        mpfr_init_set_str(r26562, "2", 10, MPFR_RNDN);
        mpfr_init(r26563);
        mpfr_init_set_str(r26564, "1/3", 10, MPFR_RNDN);
        mpfr_init_set_str(r26565, "3", 10, MPFR_RNDN);
        mpfr_init(r26566);
        mpfr_init(r26567);
        mpfr_init(r26568);
        mpfr_init(r26569);
        mpfr_init(r26570);
        mpfr_init(r26571);
}

double f_dm(double re, double im) {
        ;
        mpfr_set_d(r26554, re, MPFR_RNDN);
        mpfr_sin(r26555, r26554, MPFR_RNDN);
        mpfr_mul(r26556, r26553, r26555, MPFR_RNDN);
        ;
        mpfr_set_d(r26558, im, MPFR_RNDN);
        ;
        mpfr_pow(r26560, r26558, r26559, MPFR_RNDN);
        mpfr_mul(r26561, r26557, r26560, MPFR_RNDN);
        ;
        mpfr_mul(r26563, r26562, r26558, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26566, r26558, r26565, MPFR_RNDN);
        mpfr_mul(r26567, r26564, r26566, MPFR_RNDN);
        mpfr_add(r26568, r26563, r26567, MPFR_RNDN);
        mpfr_add(r26569, r26561, r26568, MPFR_RNDN);
        mpfr_neg(r26570, r26569, MPFR_RNDN);
        mpfr_mul(r26571, r26556, r26570, MPFR_RNDN);
        return mpfr_get_d(r26571, MPFR_RNDN);
}

