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

char *name = "Trigonometry A";

double f_if(float e, float v) {
        float r7634 = e;
        float r7635 = v;
        float r7636 = sin(r7635);
        float r7637 = r7634 * r7636;
        float r7638 = 1.0f;
        float r7639 = cos(r7635);
        float r7640 = r7634 * r7639;
        float r7641 = r7638 + r7640;
        float r7642 = r7637 / r7641;
        return r7642;
}

double f_id(double e, double v) {
        double r7643 = e;
        double r7644 = v;
        double r7645 = sin(r7644);
        double r7646 = r7643 * r7645;
        double r7647 = 1.0;
        double r7648 = cos(r7644);
        double r7649 = r7643 * r7648;
        double r7650 = r7647 + r7649;
        double r7651 = r7646 / r7650;
        return r7651;
}


double f_of(float e, float v) {
        float r7652 = e;
        float r7653 = v;
        float r7654 = sin(r7653);
        float r7655 = r7652 * r7654;
        float r7656 = cos(r7653);
        float r7657 = r7656 * r7652;
        float r7658 = r7657 * r7657;
        float r7659 = 1.0f;
        float r7660 = r7658 - r7659;
        float r7661 = r7655 / r7660;
        float r7662 = r7657 - r7659;
        float r7663 = r7661 * r7662;
        return r7663;
}

double f_od(double e, double v) {
        double r7664 = e;
        double r7665 = v;
        double r7666 = sin(r7665);
        double r7667 = r7664 * r7666;
        double r7668 = cos(r7665);
        double r7669 = r7668 * r7664;
        double r7670 = r7669 * r7669;
        double r7671 = 1.0;
        double r7672 = r7670 - r7671;
        double r7673 = r7667 / r7672;
        double r7674 = r7669 - r7671;
        double r7675 = r7673 * r7674;
        return r7675;
}

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 r7676, r7677, r7678, r7679, r7680, r7681, r7682, r7683, r7684;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r7676);
        mpfr_init(r7677);
        mpfr_init(r7678);
        mpfr_init(r7679);
        mpfr_init_set_str(r7680, "1", 10, MPFR_RNDN);
        mpfr_init(r7681);
        mpfr_init(r7682);
        mpfr_init(r7683);
        mpfr_init(r7684);
}

double f_im(double e, double v) {
        mpfr_set_d(r7676, e, MPFR_RNDN);
        mpfr_set_d(r7677, v, MPFR_RNDN);
        mpfr_sin(r7678, r7677, MPFR_RNDN);
        mpfr_mul(r7679, r7676, r7678, MPFR_RNDN);
        ;
        mpfr_cos(r7681, r7677, MPFR_RNDN);
        mpfr_mul(r7682, r7676, r7681, MPFR_RNDN);
        mpfr_add(r7683, r7680, r7682, MPFR_RNDN);
        mpfr_div(r7684, r7679, r7683, MPFR_RNDN);
        return mpfr_get_d(r7684, MPFR_RNDN);
}

static mpfr_t r7685, r7686, r7687, r7688, r7689, r7690, r7691, r7692, r7693, r7694, r7695, r7696;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r7685);
        mpfr_init(r7686);
        mpfr_init(r7687);
        mpfr_init(r7688);
        mpfr_init(r7689);
        mpfr_init(r7690);
        mpfr_init(r7691);
        mpfr_init_set_str(r7692, "1", 10, MPFR_RNDN);
        mpfr_init(r7693);
        mpfr_init(r7694);
        mpfr_init(r7695);
        mpfr_init(r7696);
}

double f_fm(double e, double v) {
        mpfr_set_d(r7685, e, MPFR_RNDN);
        mpfr_set_d(r7686, v, MPFR_RNDN);
        mpfr_sin(r7687, r7686, MPFR_RNDN);
        mpfr_mul(r7688, r7685, r7687, MPFR_RNDN);
        mpfr_cos(r7689, r7686, MPFR_RNDN);
        mpfr_mul(r7690, r7689, r7685, MPFR_RNDN);
        mpfr_mul(r7691, r7690, r7690, MPFR_RNDN);
        ;
        mpfr_sub(r7693, r7691, r7692, MPFR_RNDN);
        mpfr_div(r7694, r7688, r7693, MPFR_RNDN);
        mpfr_sub(r7695, r7690, r7692, MPFR_RNDN);
        mpfr_mul(r7696, r7694, r7695, MPFR_RNDN);
        return mpfr_get_d(r7696, MPFR_RNDN);
}

static mpfr_t r7697, r7698, r7699, r7700, r7701, r7702, r7703, r7704, r7705, r7706, r7707, r7708;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r7697);
        mpfr_init(r7698);
        mpfr_init(r7699);
        mpfr_init(r7700);
        mpfr_init(r7701);
        mpfr_init(r7702);
        mpfr_init(r7703);
        mpfr_init_set_str(r7704, "1", 10, MPFR_RNDN);
        mpfr_init(r7705);
        mpfr_init(r7706);
        mpfr_init(r7707);
        mpfr_init(r7708);
}

double f_dm(double e, double v) {
        mpfr_set_d(r7697, e, MPFR_RNDN);
        mpfr_set_d(r7698, v, MPFR_RNDN);
        mpfr_sin(r7699, r7698, MPFR_RNDN);
        mpfr_mul(r7700, r7697, r7699, MPFR_RNDN);
        mpfr_cos(r7701, r7698, MPFR_RNDN);
        mpfr_mul(r7702, r7701, r7697, MPFR_RNDN);
        mpfr_mul(r7703, r7702, r7702, MPFR_RNDN);
        ;
        mpfr_sub(r7705, r7703, r7704, MPFR_RNDN);
        mpfr_div(r7706, r7700, r7705, MPFR_RNDN);
        mpfr_sub(r7707, r7702, r7704, MPFR_RNDN);
        mpfr_mul(r7708, r7706, r7707, MPFR_RNDN);
        return mpfr_get_d(r7708, MPFR_RNDN);
}

