#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 r53849 = x;
        float r53850 = 3.0f;
        float r53851 = r53849 * r53850;
        float r53852 = y;
        float r53853 = r53851 * r53852;
        float r53854 = r53853 * r53852;
        return r53854;
}

double f_id(double x, double y) {
        double r53855 = x;
        double r53856 = 3.0;
        double r53857 = r53855 * r53856;
        double r53858 = y;
        double r53859 = r53857 * r53858;
        double r53860 = r53859 * r53858;
        return r53860;
}


double f_of(float x, float y) {
        float r53861 = 3.0f;
        float r53862 = y;
        float r53863 = x;
        float r53864 = r53862 * r53863;
        float r53865 = r53864 * r53862;
        float r53866 = r53861 * r53865;
        return r53866;
}

double f_od(double x, double y) {
        double r53867 = 3.0;
        double r53868 = y;
        double r53869 = x;
        double r53870 = r53868 * r53869;
        double r53871 = r53870 * r53868;
        double r53872 = r53867 * r53871;
        return r53872;
}

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 r53873, r53874, r53875, r53876, r53877, r53878;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r53873);
        mpfr_init_set_str(r53874, "3.0", 10, MPFR_RNDN);
        mpfr_init(r53875);
        mpfr_init(r53876);
        mpfr_init(r53877);
        mpfr_init(r53878);
}

double f_im(double x, double y) {
        mpfr_set_d(r53873, x, MPFR_RNDN);
        ;
        mpfr_mul(r53875, r53873, r53874, MPFR_RNDN);
        mpfr_set_d(r53876, y, MPFR_RNDN);
        mpfr_mul(r53877, r53875, r53876, MPFR_RNDN);
        mpfr_mul(r53878, r53877, r53876, MPFR_RNDN);
        return mpfr_get_d(r53878, MPFR_RNDN);
}

static mpfr_t r53879, r53880, r53881, r53882, r53883, r53884;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r53879, "3.0", 10, MPFR_RNDN);
        mpfr_init(r53880);
        mpfr_init(r53881);
        mpfr_init(r53882);
        mpfr_init(r53883);
        mpfr_init(r53884);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r53880, y, MPFR_RNDN);
        mpfr_set_d(r53881, x, MPFR_RNDN);
        mpfr_mul(r53882, r53880, r53881, MPFR_RNDN);
        mpfr_mul(r53883, r53882, r53880, MPFR_RNDN);
        mpfr_mul(r53884, r53879, r53883, MPFR_RNDN);
        return mpfr_get_d(r53884, MPFR_RNDN);
}

static mpfr_t r53885, r53886, r53887, r53888, r53889, r53890;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r53885, "3.0", 10, MPFR_RNDN);
        mpfr_init(r53886);
        mpfr_init(r53887);
        mpfr_init(r53888);
        mpfr_init(r53889);
        mpfr_init(r53890);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r53886, y, MPFR_RNDN);
        mpfr_set_d(r53887, x, MPFR_RNDN);
        mpfr_mul(r53888, r53886, r53887, MPFR_RNDN);
        mpfr_mul(r53889, r53888, r53886, MPFR_RNDN);
        mpfr_mul(r53890, r53885, r53889, MPFR_RNDN);
        return mpfr_get_d(r53890, MPFR_RNDN);
}

