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

char *name = "Graphics.Rendering.Plot.Render.Plot.Legend:renderLegendOutside from plot-0.2.3.4, A";

double f_if(float x, float y) {
        float r49204 = x;
        float r49205 = y;
        float r49206 = r49204 + r49205;
        float r49207 = r49206 + r49204;
        return r49207;
}

double f_id(double x, double y) {
        double r49208 = x;
        double r49209 = y;
        double r49210 = r49208 + r49209;
        double r49211 = r49210 + r49208;
        return r49211;
}


double f_of(float x, float y) {
        float r49212 = x;
        float r49213 = y;
        float r49214 = r49212 + r49213;
        float r49215 = r49214 + r49212;
        return r49215;
}

double f_od(double x, double y) {
        double r49216 = x;
        double r49217 = y;
        double r49218 = r49216 + r49217;
        double r49219 = r49218 + r49216;
        return r49219;
}

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 r49220, r49221, r49222, r49223;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r49220);
        mpfr_init(r49221);
        mpfr_init(r49222);
        mpfr_init(r49223);
}

double f_im(double x, double y) {
        mpfr_set_d(r49220, x, MPFR_RNDN);
        mpfr_set_d(r49221, y, MPFR_RNDN);
        mpfr_add(r49222, r49220, r49221, MPFR_RNDN);
        mpfr_add(r49223, r49222, r49220, MPFR_RNDN);
        return mpfr_get_d(r49223, MPFR_RNDN);
}

static mpfr_t r49224, r49225, r49226, r49227;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49224);
        mpfr_init(r49225);
        mpfr_init(r49226);
        mpfr_init(r49227);
}

double f_fm(double x, double y) {
        mpfr_set_d(r49224, x, MPFR_RNDN);
        mpfr_set_d(r49225, y, MPFR_RNDN);
        mpfr_add(r49226, r49224, r49225, MPFR_RNDN);
        mpfr_add(r49227, r49226, r49224, MPFR_RNDN);
        return mpfr_get_d(r49227, MPFR_RNDN);
}

static mpfr_t r49228, r49229, r49230, r49231;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49228);
        mpfr_init(r49229);
        mpfr_init(r49230);
        mpfr_init(r49231);
}

double f_dm(double x, double y) {
        mpfr_set_d(r49228, x, MPFR_RNDN);
        mpfr_set_d(r49229, y, MPFR_RNDN);
        mpfr_add(r49230, r49228, r49229, MPFR_RNDN);
        mpfr_add(r49231, r49230, r49228, MPFR_RNDN);
        return mpfr_get_d(r49231, MPFR_RNDN);
}

