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

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

double f_if(float x, float y) {
        float r53891 = x;
        float r53892 = 3.0f;
        float r53893 = r53891 * r53892;
        float r53894 = r53893 * r53891;
        float r53895 = y;
        float r53896 = r53894 * r53895;
        return r53896;
}

double f_id(double x, double y) {
        double r53897 = x;
        double r53898 = 3.0;
        double r53899 = r53897 * r53898;
        double r53900 = r53899 * r53897;
        double r53901 = y;
        double r53902 = r53900 * r53901;
        return r53902;
}


double f_of(float x, float y) {
        float r53903 = x;
        float r53904 = 3.0f;
        float r53905 = r53903 * r53904;
        float r53906 = y;
        float r53907 = r53903 * r53906;
        float r53908 = r53905 * r53907;
        return r53908;
}

double f_od(double x, double y) {
        double r53909 = x;
        double r53910 = 3.0;
        double r53911 = r53909 * r53910;
        double r53912 = y;
        double r53913 = r53909 * r53912;
        double r53914 = r53911 * r53913;
        return r53914;
}

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 r53915, r53916, r53917, r53918, r53919, r53920;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r53915);
        mpfr_init_set_str(r53916, "3.0", 10, MPFR_RNDN);
        mpfr_init(r53917);
        mpfr_init(r53918);
        mpfr_init(r53919);
        mpfr_init(r53920);
}

double f_im(double x, double y) {
        mpfr_set_d(r53915, x, MPFR_RNDN);
        ;
        mpfr_mul(r53917, r53915, r53916, MPFR_RNDN);
        mpfr_mul(r53918, r53917, r53915, MPFR_RNDN);
        mpfr_set_d(r53919, y, MPFR_RNDN);
        mpfr_mul(r53920, r53918, r53919, MPFR_RNDN);
        return mpfr_get_d(r53920, MPFR_RNDN);
}

static mpfr_t r53921, r53922, r53923, r53924, r53925, r53926;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r53921);
        mpfr_init_set_str(r53922, "3.0", 10, MPFR_RNDN);
        mpfr_init(r53923);
        mpfr_init(r53924);
        mpfr_init(r53925);
        mpfr_init(r53926);
}

double f_fm(double x, double y) {
        mpfr_set_d(r53921, x, MPFR_RNDN);
        ;
        mpfr_mul(r53923, r53921, r53922, MPFR_RNDN);
        mpfr_set_d(r53924, y, MPFR_RNDN);
        mpfr_mul(r53925, r53921, r53924, MPFR_RNDN);
        mpfr_mul(r53926, r53923, r53925, MPFR_RNDN);
        return mpfr_get_d(r53926, MPFR_RNDN);
}

static mpfr_t r53927, r53928, r53929, r53930, r53931, r53932;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r53927);
        mpfr_init_set_str(r53928, "3.0", 10, MPFR_RNDN);
        mpfr_init(r53929);
        mpfr_init(r53930);
        mpfr_init(r53931);
        mpfr_init(r53932);
}

double f_dm(double x, double y) {
        mpfr_set_d(r53927, x, MPFR_RNDN);
        ;
        mpfr_mul(r53929, r53927, r53928, MPFR_RNDN);
        mpfr_set_d(r53930, y, MPFR_RNDN);
        mpfr_mul(r53931, r53927, r53930, MPFR_RNDN);
        mpfr_mul(r53932, r53929, r53931, MPFR_RNDN);
        return mpfr_get_d(r53932, MPFR_RNDN);
}

