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

char *name = "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisLine from plot-0.2.3.4, B";

double f_if(float x, float y, float z, float t, float a) {
        float r49774 = x;
        float r49775 = y;
        float r49776 = z;
        float r49777 = t;
        float r49778 = r49776 - r49777;
        float r49779 = a;
        float r49780 = r49779 - r49777;
        float r49781 = r49778 / r49780;
        float r49782 = r49775 * r49781;
        float r49783 = r49774 + r49782;
        return r49783;
}

double f_id(double x, double y, double z, double t, double a) {
        double r49784 = x;
        double r49785 = y;
        double r49786 = z;
        double r49787 = t;
        double r49788 = r49786 - r49787;
        double r49789 = a;
        double r49790 = r49789 - r49787;
        double r49791 = r49788 / r49790;
        double r49792 = r49785 * r49791;
        double r49793 = r49784 + r49792;
        return r49793;
}


double f_of(float x, float y, float z, float t, float a) {
        float r49794 = x;
        float r49795 = y;
        float r49796 = z;
        float r49797 = t;
        float r49798 = r49796 - r49797;
        float r49799 = a;
        float r49800 = r49799 - r49797;
        float r49801 = r49798 / r49800;
        float r49802 = r49795 * r49801;
        float r49803 = r49794 + r49802;
        return r49803;
}

double f_od(double x, double y, double z, double t, double a) {
        double r49804 = x;
        double r49805 = y;
        double r49806 = z;
        double r49807 = t;
        double r49808 = r49806 - r49807;
        double r49809 = a;
        double r49810 = r49809 - r49807;
        double r49811 = r49808 / r49810;
        double r49812 = r49805 * r49811;
        double r49813 = r49804 + r49812;
        return r49813;
}

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 r49814, r49815, r49816, r49817, r49818, r49819, r49820, r49821, r49822, r49823;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r49814);
        mpfr_init(r49815);
        mpfr_init(r49816);
        mpfr_init(r49817);
        mpfr_init(r49818);
        mpfr_init(r49819);
        mpfr_init(r49820);
        mpfr_init(r49821);
        mpfr_init(r49822);
        mpfr_init(r49823);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49814, x, MPFR_RNDN);
        mpfr_set_d(r49815, y, MPFR_RNDN);
        mpfr_set_d(r49816, z, MPFR_RNDN);
        mpfr_set_d(r49817, t, MPFR_RNDN);
        mpfr_sub(r49818, r49816, r49817, MPFR_RNDN);
        mpfr_set_d(r49819, a, MPFR_RNDN);
        mpfr_sub(r49820, r49819, r49817, MPFR_RNDN);
        mpfr_div(r49821, r49818, r49820, MPFR_RNDN);
        mpfr_mul(r49822, r49815, r49821, MPFR_RNDN);
        mpfr_add(r49823, r49814, r49822, MPFR_RNDN);
        return mpfr_get_d(r49823, MPFR_RNDN);
}

static mpfr_t r49824, r49825, r49826, r49827, r49828, r49829, r49830, r49831, r49832, r49833;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49824);
        mpfr_init(r49825);
        mpfr_init(r49826);
        mpfr_init(r49827);
        mpfr_init(r49828);
        mpfr_init(r49829);
        mpfr_init(r49830);
        mpfr_init(r49831);
        mpfr_init(r49832);
        mpfr_init(r49833);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49824, x, MPFR_RNDN);
        mpfr_set_d(r49825, y, MPFR_RNDN);
        mpfr_set_d(r49826, z, MPFR_RNDN);
        mpfr_set_d(r49827, t, MPFR_RNDN);
        mpfr_sub(r49828, r49826, r49827, MPFR_RNDN);
        mpfr_set_d(r49829, a, MPFR_RNDN);
        mpfr_sub(r49830, r49829, r49827, MPFR_RNDN);
        mpfr_div(r49831, r49828, r49830, MPFR_RNDN);
        mpfr_mul(r49832, r49825, r49831, MPFR_RNDN);
        mpfr_add(r49833, r49824, r49832, MPFR_RNDN);
        return mpfr_get_d(r49833, MPFR_RNDN);
}

static mpfr_t r49834, r49835, r49836, r49837, r49838, r49839, r49840, r49841, r49842, r49843;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49834);
        mpfr_init(r49835);
        mpfr_init(r49836);
        mpfr_init(r49837);
        mpfr_init(r49838);
        mpfr_init(r49839);
        mpfr_init(r49840);
        mpfr_init(r49841);
        mpfr_init(r49842);
        mpfr_init(r49843);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49834, x, MPFR_RNDN);
        mpfr_set_d(r49835, y, MPFR_RNDN);
        mpfr_set_d(r49836, z, MPFR_RNDN);
        mpfr_set_d(r49837, t, MPFR_RNDN);
        mpfr_sub(r49838, r49836, r49837, MPFR_RNDN);
        mpfr_set_d(r49839, a, MPFR_RNDN);
        mpfr_sub(r49840, r49839, r49837, MPFR_RNDN);
        mpfr_div(r49841, r49838, r49840, MPFR_RNDN);
        mpfr_mul(r49842, r49835, r49841, MPFR_RNDN);
        mpfr_add(r49843, r49834, r49842, MPFR_RNDN);
        return mpfr_get_d(r49843, MPFR_RNDN);
}

