#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, B";

double f_if(float x, float y) {
        float r53885 = x;
        float r53886 = 3.0;
        float r53887 = r53885 * r53886;
        float r53888 = y;
        float r53889 = r53887 * r53888;
        float r53890 = r53889 * r53888;
        return r53890;
}

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


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

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

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 r53909, r53910, r53911, r53912, r53913, r53914;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r53909);
        mpfr_init_set_str(r53910, "3.0", 10, MPFR_RNDN);
        mpfr_init(r53911);
        mpfr_init(r53912);
        mpfr_init(r53913);
        mpfr_init(r53914);
}

double f_im(double x, double y) {
        mpfr_set_d(r53909, x, MPFR_RNDN);
        ;
        mpfr_mul(r53911, r53909, r53910, MPFR_RNDN);
        mpfr_set_d(r53912, y, MPFR_RNDN);
        mpfr_mul(r53913, r53911, r53912, MPFR_RNDN);
        mpfr_mul(r53914, r53913, r53912, MPFR_RNDN);
        return mpfr_get_d(r53914, MPFR_RNDN);
}

static mpfr_t r53915, r53916, r53917, r53918, r53919, r53920;

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

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

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

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

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

