#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 r49803 = x;
        float r49804 = y;
        float r49805 = z;
        float r49806 = t;
        float r49807 = r49805 - r49806;
        float r49808 = a;
        float r49809 = r49808 - r49806;
        float r49810 = r49807 / r49809;
        float r49811 = r49804 * r49810;
        float r49812 = r49803 + r49811;
        return r49812;
}

double f_id(double x, double y, double z, double t, double a) {
        double r49813 = x;
        double r49814 = y;
        double r49815 = z;
        double r49816 = t;
        double r49817 = r49815 - r49816;
        double r49818 = a;
        double r49819 = r49818 - r49816;
        double r49820 = r49817 / r49819;
        double r49821 = r49814 * r49820;
        double r49822 = r49813 + r49821;
        return r49822;
}


double f_of(float x, float y, float z, float t, float a) {
        float r49823 = x;
        float r49824 = y;
        float r49825 = z;
        float r49826 = t;
        float r49827 = r49825 - r49826;
        float r49828 = a;
        float r49829 = r49828 - r49826;
        float r49830 = r49827 / r49829;
        float r49831 = r49824 * r49830;
        float r49832 = r49823 + r49831;
        return r49832;
}

double f_od(double x, double y, double z, double t, double a) {
        double r49833 = x;
        double r49834 = y;
        double r49835 = z;
        double r49836 = t;
        double r49837 = r49835 - r49836;
        double r49838 = a;
        double r49839 = r49838 - r49836;
        double r49840 = r49837 / r49839;
        double r49841 = r49834 * r49840;
        double r49842 = r49833 + r49841;
        return r49842;
}

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 r49843, r49844, r49845, r49846, r49847, r49848, r49849, r49850, r49851, r49852;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r49843);
        mpfr_init(r49844);
        mpfr_init(r49845);
        mpfr_init(r49846);
        mpfr_init(r49847);
        mpfr_init(r49848);
        mpfr_init(r49849);
        mpfr_init(r49850);
        mpfr_init(r49851);
        mpfr_init(r49852);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49843, x, MPFR_RNDN);
        mpfr_set_d(r49844, y, MPFR_RNDN);
        mpfr_set_d(r49845, z, MPFR_RNDN);
        mpfr_set_d(r49846, t, MPFR_RNDN);
        mpfr_sub(r49847, r49845, r49846, MPFR_RNDN);
        mpfr_set_d(r49848, a, MPFR_RNDN);
        mpfr_sub(r49849, r49848, r49846, MPFR_RNDN);
        mpfr_div(r49850, r49847, r49849, MPFR_RNDN);
        mpfr_mul(r49851, r49844, r49850, MPFR_RNDN);
        mpfr_add(r49852, r49843, r49851, MPFR_RNDN);
        return mpfr_get_d(r49852, MPFR_RNDN);
}

static mpfr_t r49853, r49854, r49855, r49856, r49857, r49858, r49859, r49860, r49861, r49862;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49853);
        mpfr_init(r49854);
        mpfr_init(r49855);
        mpfr_init(r49856);
        mpfr_init(r49857);
        mpfr_init(r49858);
        mpfr_init(r49859);
        mpfr_init(r49860);
        mpfr_init(r49861);
        mpfr_init(r49862);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49853, x, MPFR_RNDN);
        mpfr_set_d(r49854, y, MPFR_RNDN);
        mpfr_set_d(r49855, z, MPFR_RNDN);
        mpfr_set_d(r49856, t, MPFR_RNDN);
        mpfr_sub(r49857, r49855, r49856, MPFR_RNDN);
        mpfr_set_d(r49858, a, MPFR_RNDN);
        mpfr_sub(r49859, r49858, r49856, MPFR_RNDN);
        mpfr_div(r49860, r49857, r49859, MPFR_RNDN);
        mpfr_mul(r49861, r49854, r49860, MPFR_RNDN);
        mpfr_add(r49862, r49853, r49861, MPFR_RNDN);
        return mpfr_get_d(r49862, MPFR_RNDN);
}

static mpfr_t r49863, r49864, r49865, r49866, r49867, r49868, r49869, r49870, r49871, r49872;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49863);
        mpfr_init(r49864);
        mpfr_init(r49865);
        mpfr_init(r49866);
        mpfr_init(r49867);
        mpfr_init(r49868);
        mpfr_init(r49869);
        mpfr_init(r49870);
        mpfr_init(r49871);
        mpfr_init(r49872);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49863, x, MPFR_RNDN);
        mpfr_set_d(r49864, y, MPFR_RNDN);
        mpfr_set_d(r49865, z, MPFR_RNDN);
        mpfr_set_d(r49866, t, MPFR_RNDN);
        mpfr_sub(r49867, r49865, r49866, MPFR_RNDN);
        mpfr_set_d(r49868, a, MPFR_RNDN);
        mpfr_sub(r49869, r49868, r49866, MPFR_RNDN);
        mpfr_div(r49870, r49867, r49869, MPFR_RNDN);
        mpfr_mul(r49871, r49864, r49870, MPFR_RNDN);
        mpfr_add(r49872, r49863, r49871, MPFR_RNDN);
        return mpfr_get_d(r49872, MPFR_RNDN);
}

