#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 r3911223 = e;
        float r3911224 = v;
        float r3911225 = sin(r3911224);
        float r3911226 = r3911223 * r3911225;
        float r3911227 = 1;
        float r3911228 = cos(r3911224);
        float r3911229 = r3911223 * r3911228;
        float r3911230 = r3911227 + r3911229;
        float r3911231 = r3911226 / r3911230;
        return r3911231;
}

double f_id(double e, double v) {
        double r3911232 = e;
        double r3911233 = v;
        double r3911234 = sin(r3911233);
        double r3911235 = r3911232 * r3911234;
        double r3911236 = 1;
        double r3911237 = cos(r3911233);
        double r3911238 = r3911232 * r3911237;
        double r3911239 = r3911236 + r3911238;
        double r3911240 = r3911235 / r3911239;
        return r3911240;
}


double f_of(float e, float v) {
        float r3911241 = e;
        float r3911242 = v;
        float r3911243 = sin(r3911242);
        float r3911244 = r3911241 * r3911243;
        float r3911245 = 1;
        float r3911246 = cos(r3911242);
        float r3911247 = r3911241 * r3911246;
        float r3911248 = r3911245 + r3911247;
        float r3911249 = r3911244 / r3911248;
        return r3911249;
}

double f_od(double e, double v) {
        double r3911250 = e;
        double r3911251 = v;
        double r3911252 = sin(r3911251);
        double r3911253 = r3911250 * r3911252;
        double r3911254 = 1;
        double r3911255 = cos(r3911251);
        double r3911256 = r3911250 * r3911255;
        double r3911257 = r3911254 + r3911256;
        double r3911258 = r3911253 / r3911257;
        return r3911258;
}

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 r3911259, r3911260, r3911261, r3911262, r3911263, r3911264, r3911265, r3911266, r3911267;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r3911259);
        mpfr_init(r3911260);
        mpfr_init(r3911261);
        mpfr_init(r3911262);
        mpfr_init_set_str(r3911263, "1", 10, MPFR_RNDN);
        mpfr_init(r3911264);
        mpfr_init(r3911265);
        mpfr_init(r3911266);
        mpfr_init(r3911267);
}

double f_im(double e, double v) {
        mpfr_set_d(r3911259, e, MPFR_RNDN);
        mpfr_set_d(r3911260, v, MPFR_RNDN);
        mpfr_sin(r3911261, r3911260, MPFR_RNDN);
        mpfr_mul(r3911262, r3911259, r3911261, MPFR_RNDN);
        ;
        mpfr_cos(r3911264, r3911260, MPFR_RNDN);
        mpfr_mul(r3911265, r3911259, r3911264, MPFR_RNDN);
        mpfr_add(r3911266, r3911263, r3911265, MPFR_RNDN);
        mpfr_div(r3911267, r3911262, r3911266, MPFR_RNDN);
        return mpfr_get_d(r3911267, MPFR_RNDN);
}

static mpfr_t r3911268, r3911269, r3911270, r3911271, r3911272, r3911273, r3911274, r3911275, r3911276;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r3911268);
        mpfr_init(r3911269);
        mpfr_init(r3911270);
        mpfr_init(r3911271);
        mpfr_init_set_str(r3911272, "1", 10, MPFR_RNDN);
        mpfr_init(r3911273);
        mpfr_init(r3911274);
        mpfr_init(r3911275);
        mpfr_init(r3911276);
}

double f_fm(double e, double v) {
        mpfr_set_d(r3911268, e, MPFR_RNDN);
        mpfr_set_d(r3911269, v, MPFR_RNDN);
        mpfr_sin(r3911270, r3911269, MPFR_RNDN);
        mpfr_mul(r3911271, r3911268, r3911270, MPFR_RNDN);
        ;
        mpfr_cos(r3911273, r3911269, MPFR_RNDN);
        mpfr_mul(r3911274, r3911268, r3911273, MPFR_RNDN);
        mpfr_add(r3911275, r3911272, r3911274, MPFR_RNDN);
        mpfr_div(r3911276, r3911271, r3911275, MPFR_RNDN);
        return mpfr_get_d(r3911276, MPFR_RNDN);
}

static mpfr_t r3911277, r3911278, r3911279, r3911280, r3911281, r3911282, r3911283, r3911284, r3911285;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r3911277);
        mpfr_init(r3911278);
        mpfr_init(r3911279);
        mpfr_init(r3911280);
        mpfr_init_set_str(r3911281, "1", 10, MPFR_RNDN);
        mpfr_init(r3911282);
        mpfr_init(r3911283);
        mpfr_init(r3911284);
        mpfr_init(r3911285);
}

double f_dm(double e, double v) {
        mpfr_set_d(r3911277, e, MPFR_RNDN);
        mpfr_set_d(r3911278, v, MPFR_RNDN);
        mpfr_sin(r3911279, r3911278, MPFR_RNDN);
        mpfr_mul(r3911280, r3911277, r3911279, MPFR_RNDN);
        ;
        mpfr_cos(r3911282, r3911278, MPFR_RNDN);
        mpfr_mul(r3911283, r3911277, r3911282, MPFR_RNDN);
        mpfr_add(r3911284, r3911281, r3911283, MPFR_RNDN);
        mpfr_div(r3911285, r3911280, r3911284, MPFR_RNDN);
        return mpfr_get_d(r3911285, MPFR_RNDN);
}

