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

char *name = "Trigonometry B";

double f_if(float x) {
        float r7902 = 1;
        float r7903 = x;
        float r7904 = tan(r7903);
        float r7905 = r7904 * r7904;
        float r7906 = r7902 - r7905;
        float r7907 = r7902 + r7905;
        float r7908 = r7906 / r7907;
        return r7908;
}

double f_id(double x) {
        double r7909 = 1;
        double r7910 = x;
        double r7911 = tan(r7910);
        double r7912 = r7911 * r7911;
        double r7913 = r7909 - r7912;
        double r7914 = r7909 + r7912;
        double r7915 = r7913 / r7914;
        return r7915;
}


double f_of(float x) {
        float r7916 = 1;
        float r7917 = x;
        float r7918 = tan(r7917);
        float r7919 = r7918 * r7918;
        float r7920 = r7916 + r7919;
        float r7921 = r7916 - r7919;
        float r7922 = r7920 / r7921;
        float r7923 = r7916 / r7922;
        return r7923;
}

double f_od(double x) {
        double r7924 = 1;
        double r7925 = x;
        double r7926 = tan(r7925);
        double r7927 = r7926 * r7926;
        double r7928 = r7924 + r7927;
        double r7929 = r7924 - r7927;
        double r7930 = r7928 / r7929;
        double r7931 = r7924 / r7930;
        return r7931;
}

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 r7932, r7933, r7934, r7935, r7936, r7937, r7938;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r7932, "1", 10, MPFR_RNDN);
        mpfr_init(r7933);
        mpfr_init(r7934);
        mpfr_init(r7935);
        mpfr_init(r7936);
        mpfr_init(r7937);
        mpfr_init(r7938);
}

double f_im(double x) {
        ;
        mpfr_set_d(r7933, x, MPFR_RNDN);
        mpfr_tan(r7934, r7933, MPFR_RNDN);
        mpfr_mul(r7935, r7934, r7934, MPFR_RNDN);
        mpfr_sub(r7936, r7932, r7935, MPFR_RNDN);
        mpfr_add(r7937, r7932, r7935, MPFR_RNDN);
        mpfr_div(r7938, r7936, r7937, MPFR_RNDN);
        return mpfr_get_d(r7938, MPFR_RNDN);
}

static mpfr_t r7939, r7940, r7941, r7942, r7943, r7944, r7945, r7946;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r7939, "1", 10, MPFR_RNDN);
        mpfr_init(r7940);
        mpfr_init(r7941);
        mpfr_init(r7942);
        mpfr_init(r7943);
        mpfr_init(r7944);
        mpfr_init(r7945);
        mpfr_init(r7946);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r7940, x, MPFR_RNDN);
        mpfr_tan(r7941, r7940, MPFR_RNDN);
        mpfr_mul(r7942, r7941, r7941, MPFR_RNDN);
        mpfr_add(r7943, r7939, r7942, MPFR_RNDN);
        mpfr_sub(r7944, r7939, r7942, MPFR_RNDN);
        mpfr_div(r7945, r7943, r7944, MPFR_RNDN);
        mpfr_div(r7946, r7939, r7945, MPFR_RNDN);
        return mpfr_get_d(r7946, MPFR_RNDN);
}

static mpfr_t r7947, r7948, r7949, r7950, r7951, r7952, r7953, r7954;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r7947, "1", 10, MPFR_RNDN);
        mpfr_init(r7948);
        mpfr_init(r7949);
        mpfr_init(r7950);
        mpfr_init(r7951);
        mpfr_init(r7952);
        mpfr_init(r7953);
        mpfr_init(r7954);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r7948, x, MPFR_RNDN);
        mpfr_tan(r7949, r7948, MPFR_RNDN);
        mpfr_mul(r7950, r7949, r7949, MPFR_RNDN);
        mpfr_add(r7951, r7947, r7950, MPFR_RNDN);
        mpfr_sub(r7952, r7947, r7950, MPFR_RNDN);
        mpfr_div(r7953, r7951, r7952, MPFR_RNDN);
        mpfr_div(r7954, r7947, r7953, MPFR_RNDN);
        return mpfr_get_d(r7954, MPFR_RNDN);
}

