#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 r53927 = x;
        float r53928 = 3.0;
        float r53929 = r53927 * r53928;
        float r53930 = r53929 * r53927;
        float r53931 = y;
        float r53932 = r53930 * r53931;
        return r53932;
}

double f_id(double x, double y) {
        double r53933 = x;
        double r53934 = 3.0;
        double r53935 = r53933 * r53934;
        double r53936 = r53935 * r53933;
        double r53937 = y;
        double r53938 = r53936 * r53937;
        return r53938;
}


double f_of(float x, float y) {
        float r53939 = x;
        float r53940 = 3.0;
        float r53941 = y;
        float r53942 = r53939 * r53941;
        float r53943 = r53940 * r53942;
        float r53944 = r53939 * r53943;
        return r53944;
}

double f_od(double x, double y) {
        double r53945 = x;
        double r53946 = 3.0;
        double r53947 = y;
        double r53948 = r53945 * r53947;
        double r53949 = r53946 * r53948;
        double r53950 = r53945 * r53949;
        return r53950;
}

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 r53951, r53952, r53953, r53954, r53955, r53956;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r53951);
        mpfr_init_set_str(r53952, "3.0", 10, MPFR_RNDN);
        mpfr_init(r53953);
        mpfr_init(r53954);
        mpfr_init(r53955);
        mpfr_init(r53956);
}

double f_im(double x, double y) {
        mpfr_set_d(r53951, x, MPFR_RNDN);
        ;
        mpfr_mul(r53953, r53951, r53952, MPFR_RNDN);
        mpfr_mul(r53954, r53953, r53951, MPFR_RNDN);
        mpfr_set_d(r53955, y, MPFR_RNDN);
        mpfr_mul(r53956, r53954, r53955, MPFR_RNDN);
        return mpfr_get_d(r53956, MPFR_RNDN);
}

static mpfr_t r53957, r53958, r53959, r53960, r53961, r53962;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r53957);
        mpfr_init_set_str(r53958, "3.0", 10, MPFR_RNDN);
        mpfr_init(r53959);
        mpfr_init(r53960);
        mpfr_init(r53961);
        mpfr_init(r53962);
}

double f_fm(double x, double y) {
        mpfr_set_d(r53957, x, MPFR_RNDN);
        ;
        mpfr_set_d(r53959, y, MPFR_RNDN);
        mpfr_mul(r53960, r53957, r53959, MPFR_RNDN);
        mpfr_mul(r53961, r53958, r53960, MPFR_RNDN);
        mpfr_mul(r53962, r53957, r53961, MPFR_RNDN);
        return mpfr_get_d(r53962, MPFR_RNDN);
}

static mpfr_t r53963, r53964, r53965, r53966, r53967, r53968;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r53963);
        mpfr_init_set_str(r53964, "3.0", 10, MPFR_RNDN);
        mpfr_init(r53965);
        mpfr_init(r53966);
        mpfr_init(r53967);
        mpfr_init(r53968);
}

double f_dm(double x, double y) {
        mpfr_set_d(r53963, x, MPFR_RNDN);
        ;
        mpfr_set_d(r53965, y, MPFR_RNDN);
        mpfr_mul(r53966, r53963, r53965, MPFR_RNDN);
        mpfr_mul(r53967, r53964, r53966, MPFR_RNDN);
        mpfr_mul(r53968, r53963, r53967, MPFR_RNDN);
        return mpfr_get_d(r53968, MPFR_RNDN);
}

