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

char *name = "Graphics.Rendering.Chart.Plot.AreaSpots:renderSpotLegend from Chart-1.5.3";

double f_if(float x, float y) {
        float r50071 = x;
        float r50072 = y;
        float r50073 = r50072 - r50071;
        float r50074 = fabs(r50073);
        float r50075 = 2.0;
        float r50076 = r50074 / r50075;
        float r50077 = r50071 + r50076;
        return r50077;
}

double f_id(double x, double y) {
        double r50078 = x;
        double r50079 = y;
        double r50080 = r50079 - r50078;
        double r50081 = fabs(r50080);
        double r50082 = 2.0;
        double r50083 = r50081 / r50082;
        double r50084 = r50078 + r50083;
        return r50084;
}


double f_of(float x, float y) {
        float r50085 = x;
        float r50086 = y;
        float r50087 = r50086 - r50085;
        float r50088 = fabs(r50087);
        float r50089 = 2.0;
        float r50090 = r50088 / r50089;
        float r50091 = r50085 + r50090;
        return r50091;
}

double f_od(double x, double y) {
        double r50092 = x;
        double r50093 = y;
        double r50094 = r50093 - r50092;
        double r50095 = fabs(r50094);
        double r50096 = 2.0;
        double r50097 = r50095 / r50096;
        double r50098 = r50092 + r50097;
        return r50098;
}

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 r50099, r50100, r50101, r50102, r50103, r50104, r50105;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2448);
        mpfr_init(r50099);
        mpfr_init(r50100);
        mpfr_init(r50101);
        mpfr_init(r50102);
        mpfr_init_set_str(r50103, "2.0", 10, MPFR_RNDN);
        mpfr_init(r50104);
        mpfr_init(r50105);
}

double f_im(double x, double y) {
        mpfr_set_d(r50099, x, MPFR_RNDN);
        mpfr_set_d(r50100, y, MPFR_RNDN);
        mpfr_sub(r50101, r50100, r50099, MPFR_RNDN);
        mpfr_abs(r50102, r50101, MPFR_RNDN);
        ;
        mpfr_div(r50104, r50102, r50103, MPFR_RNDN);
        mpfr_add(r50105, r50099, r50104, MPFR_RNDN);
        return mpfr_get_d(r50105, MPFR_RNDN);
}

static mpfr_t r50106, r50107, r50108, r50109, r50110, r50111, r50112;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2448);
        mpfr_init(r50106);
        mpfr_init(r50107);
        mpfr_init(r50108);
        mpfr_init(r50109);
        mpfr_init_set_str(r50110, "2.0", 10, MPFR_RNDN);
        mpfr_init(r50111);
        mpfr_init(r50112);
}

double f_fm(double x, double y) {
        mpfr_set_d(r50106, x, MPFR_RNDN);
        mpfr_set_d(r50107, y, MPFR_RNDN);
        mpfr_sub(r50108, r50107, r50106, MPFR_RNDN);
        mpfr_abs(r50109, r50108, MPFR_RNDN);
        ;
        mpfr_div(r50111, r50109, r50110, MPFR_RNDN);
        mpfr_add(r50112, r50106, r50111, MPFR_RNDN);
        return mpfr_get_d(r50112, MPFR_RNDN);
}

static mpfr_t r50113, r50114, r50115, r50116, r50117, r50118, r50119;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2448);
        mpfr_init(r50113);
        mpfr_init(r50114);
        mpfr_init(r50115);
        mpfr_init(r50116);
        mpfr_init_set_str(r50117, "2.0", 10, MPFR_RNDN);
        mpfr_init(r50118);
        mpfr_init(r50119);
}

double f_dm(double x, double y) {
        mpfr_set_d(r50113, x, MPFR_RNDN);
        mpfr_set_d(r50114, y, MPFR_RNDN);
        mpfr_sub(r50115, r50114, r50113, MPFR_RNDN);
        mpfr_abs(r50116, r50115, MPFR_RNDN);
        ;
        mpfr_div(r50118, r50116, r50117, MPFR_RNDN);
        mpfr_add(r50119, r50113, r50118, MPFR_RNDN);
        return mpfr_get_d(r50119, MPFR_RNDN);
}

