#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 r55060 = x;
        float r55061 = 3.0;
        float r55062 = r55060 * r55061;
        float r55063 = y;
        float r55064 = r55062 * r55063;
        float r55065 = r55064 * r55063;
        return r55065;
}

double f_id(double x, double y) {
        double r55066 = x;
        double r55067 = 3.0;
        double r55068 = r55066 * r55067;
        double r55069 = y;
        double r55070 = r55068 * r55069;
        double r55071 = r55070 * r55069;
        return r55071;
}


double f_of(float x, float y) {
        float r55072 = 3.0;
        float r55073 = y;
        float r55074 = x;
        float r55075 = r55073 * r55074;
        float r55076 = r55075 * r55073;
        float r55077 = r55072 * r55076;
        return r55077;
}

double f_od(double x, double y) {
        double r55078 = 3.0;
        double r55079 = y;
        double r55080 = x;
        double r55081 = r55079 * r55080;
        double r55082 = r55081 * r55079;
        double r55083 = r55078 * r55082;
        return r55083;
}

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 r55084, r55085, r55086, r55087, r55088, r55089;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r55084);
        mpfr_init_set_str(r55085, "3.0", 10, MPFR_RNDN);
        mpfr_init(r55086);
        mpfr_init(r55087);
        mpfr_init(r55088);
        mpfr_init(r55089);
}

double f_im(double x, double y) {
        mpfr_set_d(r55084, x, MPFR_RNDN);
        ;
        mpfr_mul(r55086, r55084, r55085, MPFR_RNDN);
        mpfr_set_d(r55087, y, MPFR_RNDN);
        mpfr_mul(r55088, r55086, r55087, MPFR_RNDN);
        mpfr_mul(r55089, r55088, r55087, MPFR_RNDN);
        return mpfr_get_d(r55089, MPFR_RNDN);
}

static mpfr_t r55090, r55091, r55092, r55093, r55094, r55095;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r55090, "3.0", 10, MPFR_RNDN);
        mpfr_init(r55091);
        mpfr_init(r55092);
        mpfr_init(r55093);
        mpfr_init(r55094);
        mpfr_init(r55095);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r55091, y, MPFR_RNDN);
        mpfr_set_d(r55092, x, MPFR_RNDN);
        mpfr_mul(r55093, r55091, r55092, MPFR_RNDN);
        mpfr_mul(r55094, r55093, r55091, MPFR_RNDN);
        mpfr_mul(r55095, r55090, r55094, MPFR_RNDN);
        return mpfr_get_d(r55095, MPFR_RNDN);
}

static mpfr_t r55096, r55097, r55098, r55099, r55100, r55101;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r55096, "3.0", 10, MPFR_RNDN);
        mpfr_init(r55097);
        mpfr_init(r55098);
        mpfr_init(r55099);
        mpfr_init(r55100);
        mpfr_init(r55101);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r55097, y, MPFR_RNDN);
        mpfr_set_d(r55098, x, MPFR_RNDN);
        mpfr_mul(r55099, r55097, r55098, MPFR_RNDN);
        mpfr_mul(r55100, r55099, r55097, MPFR_RNDN);
        mpfr_mul(r55101, r55096, r55100, MPFR_RNDN);
        return mpfr_get_d(r55101, MPFR_RNDN);
}

