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

char *name = "Diagrams.Tangent:$catParam from diagrams-lib-1.3.0.3, E";

double f_if(float x) {
        float r52895 = 3.0;
        float r52896 = 2.0;
        float r52897 = x;
        float r52898 = r52897 * r52895;
        float r52899 = r52896 - r52898;
        float r52900 = r52895 * r52899;
        float r52901 = r52900 * r52897;
        return r52901;
}

double f_id(double x) {
        double r52902 = 3.0;
        double r52903 = 2.0;
        double r52904 = x;
        double r52905 = r52904 * r52902;
        double r52906 = r52903 - r52905;
        double r52907 = r52902 * r52906;
        double r52908 = r52907 * r52904;
        return r52908;
}


double f_of(float x) {
        float r52909 = 6.0;
        float r52910 = 9.0;
        float r52911 = x;
        float r52912 = r52910 * r52911;
        float r52913 = r52909 - r52912;
        float r52914 = r52913 * r52911;
        return r52914;
}

double f_od(double x) {
        double r52915 = 6.0;
        double r52916 = 9.0;
        double r52917 = x;
        double r52918 = r52916 * r52917;
        double r52919 = r52915 - r52918;
        double r52920 = r52919 * r52917;
        return r52920;
}

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 r52921, r52922, r52923, r52924, r52925, r52926, r52927;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r52921, "3.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r52922, "2.0", 10, MPFR_RNDN);
        mpfr_init(r52923);
        mpfr_init(r52924);
        mpfr_init(r52925);
        mpfr_init(r52926);
        mpfr_init(r52927);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r52923, x, MPFR_RNDN);
        mpfr_mul(r52924, r52923, r52921, MPFR_RNDN);
        mpfr_sub(r52925, r52922, r52924, MPFR_RNDN);
        mpfr_mul(r52926, r52921, r52925, MPFR_RNDN);
        mpfr_mul(r52927, r52926, r52923, MPFR_RNDN);
        return mpfr_get_d(r52927, MPFR_RNDN);
}

static mpfr_t r52928, r52929, r52930, r52931, r52932, r52933;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r52928, "6.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r52929, "9.0", 10, MPFR_RNDN);
        mpfr_init(r52930);
        mpfr_init(r52931);
        mpfr_init(r52932);
        mpfr_init(r52933);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r52930, x, MPFR_RNDN);
        mpfr_mul(r52931, r52929, r52930, MPFR_RNDN);
        mpfr_sub(r52932, r52928, r52931, MPFR_RNDN);
        mpfr_mul(r52933, r52932, r52930, MPFR_RNDN);
        return mpfr_get_d(r52933, MPFR_RNDN);
}

static mpfr_t r52934, r52935, r52936, r52937, r52938, r52939;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r52934, "6.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r52935, "9.0", 10, MPFR_RNDN);
        mpfr_init(r52936);
        mpfr_init(r52937);
        mpfr_init(r52938);
        mpfr_init(r52939);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r52936, x, MPFR_RNDN);
        mpfr_mul(r52937, r52935, r52936, MPFR_RNDN);
        mpfr_sub(r52938, r52934, r52937, MPFR_RNDN);
        mpfr_mul(r52939, r52938, r52936, MPFR_RNDN);
        return mpfr_get_d(r52939, MPFR_RNDN);
}

