#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 r7898 = 1;
        float r7899 = x;
        float r7900 = tan(r7899);
        float r7901 = r7900 * r7900;
        float r7902 = r7898 - r7901;
        float r7903 = r7898 + r7901;
        float r7904 = r7902 / r7903;
        return r7904;
}

double f_id(double x) {
        double r7905 = 1;
        double r7906 = x;
        double r7907 = tan(r7906);
        double r7908 = r7907 * r7907;
        double r7909 = r7905 - r7908;
        double r7910 = r7905 + r7908;
        double r7911 = r7909 / r7910;
        return r7911;
}


double f_of(float x) {
        float r7912 = 1;
        float r7913 = x;
        float r7914 = tan(r7913);
        float r7915 = fma(r7914, r7914, r7912);
        float r7916 = r7914 * r7914;
        float r7917 = r7912 - r7916;
        float r7918 = r7915 / r7917;
        float r7919 = r7912 / r7918;
        return r7919;
}

double f_od(double x) {
        double r7920 = 1;
        double r7921 = x;
        double r7922 = tan(r7921);
        double r7923 = fma(r7922, r7922, r7920);
        double r7924 = r7922 * r7922;
        double r7925 = r7920 - r7924;
        double r7926 = r7923 / r7925;
        double r7927 = r7920 / r7926;
        return r7927;
}

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 r7928, r7929, r7930, r7931, r7932, r7933, r7934;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r7928, "1", 10, MPFR_RNDN);
        mpfr_init(r7929);
        mpfr_init(r7930);
        mpfr_init(r7931);
        mpfr_init(r7932);
        mpfr_init(r7933);
        mpfr_init(r7934);
}

double f_im(double x) {
        ;
        mpfr_set_d(r7929, x, MPFR_RNDN);
        mpfr_tan(r7930, r7929, MPFR_RNDN);
        mpfr_mul(r7931, r7930, r7930, MPFR_RNDN);
        mpfr_sub(r7932, r7928, r7931, MPFR_RNDN);
        mpfr_add(r7933, r7928, r7931, MPFR_RNDN);
        mpfr_div(r7934, r7932, r7933, MPFR_RNDN);
        return mpfr_get_d(r7934, MPFR_RNDN);
}

static mpfr_t r7935, r7936, r7937, r7938, r7939, r7940, r7941, r7942;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r7935, "1", 10, MPFR_RNDN);
        mpfr_init(r7936);
        mpfr_init(r7937);
        mpfr_init(r7938);
        mpfr_init(r7939);
        mpfr_init(r7940);
        mpfr_init(r7941);
        mpfr_init(r7942);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r7936, x, MPFR_RNDN);
        mpfr_tan(r7937, r7936, MPFR_RNDN);
        mpfr_fma(r7938, r7937, r7937, r7935, MPFR_RNDN);
        mpfr_mul(r7939, r7937, r7937, MPFR_RNDN);
        mpfr_sub(r7940, r7935, r7939, MPFR_RNDN);
        mpfr_div(r7941, r7938, r7940, MPFR_RNDN);
        mpfr_div(r7942, r7935, r7941, MPFR_RNDN);
        return mpfr_get_d(r7942, MPFR_RNDN);
}

static mpfr_t r7943, r7944, r7945, r7946, r7947, r7948, r7949, r7950;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r7943, "1", 10, MPFR_RNDN);
        mpfr_init(r7944);
        mpfr_init(r7945);
        mpfr_init(r7946);
        mpfr_init(r7947);
        mpfr_init(r7948);
        mpfr_init(r7949);
        mpfr_init(r7950);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r7944, x, MPFR_RNDN);
        mpfr_tan(r7945, r7944, MPFR_RNDN);
        mpfr_fma(r7946, r7945, r7945, r7943, MPFR_RNDN);
        mpfr_mul(r7947, r7945, r7945, MPFR_RNDN);
        mpfr_sub(r7948, r7943, r7947, MPFR_RNDN);
        mpfr_div(r7949, r7946, r7948, MPFR_RNDN);
        mpfr_div(r7950, r7943, r7949, MPFR_RNDN);
        return mpfr_get_d(r7950, MPFR_RNDN);
}

