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

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

double f_if(float x, float y, float z, float t, float a) {
        float r48680 = x;
        float r48681 = y;
        float r48682 = z;
        float r48683 = t;
        float r48684 = r48682 - r48683;
        float r48685 = r48681 * r48684;
        float r48686 = a;
        float r48687 = r48682 - r48686;
        float r48688 = r48685 / r48687;
        float r48689 = r48680 + r48688;
        return r48689;
}

double f_id(double x, double y, double z, double t, double a) {
        double r48690 = x;
        double r48691 = y;
        double r48692 = z;
        double r48693 = t;
        double r48694 = r48692 - r48693;
        double r48695 = r48691 * r48694;
        double r48696 = a;
        double r48697 = r48692 - r48696;
        double r48698 = r48695 / r48697;
        double r48699 = r48690 + r48698;
        return r48699;
}


double f_of(float x, float y, float z, float t, float a) {
        float r48700 = x;
        float r48701 = y;
        float r48702 = 1;
        float r48703 = r48701 / r48702;
        float r48704 = z;
        float r48705 = t;
        float r48706 = r48704 - r48705;
        float r48707 = a;
        float r48708 = r48704 - r48707;
        float r48709 = r48706 / r48708;
        float r48710 = r48703 * r48709;
        float r48711 = r48700 + r48710;
        return r48711;
}

double f_od(double x, double y, double z, double t, double a) {
        double r48712 = x;
        double r48713 = y;
        double r48714 = 1;
        double r48715 = r48713 / r48714;
        double r48716 = z;
        double r48717 = t;
        double r48718 = r48716 - r48717;
        double r48719 = a;
        double r48720 = r48716 - r48719;
        double r48721 = r48718 / r48720;
        double r48722 = r48715 * r48721;
        double r48723 = r48712 + r48722;
        return r48723;
}

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 r48724, r48725, r48726, r48727, r48728, r48729, r48730, r48731, r48732, r48733;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r48724);
        mpfr_init(r48725);
        mpfr_init(r48726);
        mpfr_init(r48727);
        mpfr_init(r48728);
        mpfr_init(r48729);
        mpfr_init(r48730);
        mpfr_init(r48731);
        mpfr_init(r48732);
        mpfr_init(r48733);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r48724, x, MPFR_RNDN);
        mpfr_set_d(r48725, y, MPFR_RNDN);
        mpfr_set_d(r48726, z, MPFR_RNDN);
        mpfr_set_d(r48727, t, MPFR_RNDN);
        mpfr_sub(r48728, r48726, r48727, MPFR_RNDN);
        mpfr_mul(r48729, r48725, r48728, MPFR_RNDN);
        mpfr_set_d(r48730, a, MPFR_RNDN);
        mpfr_sub(r48731, r48726, r48730, MPFR_RNDN);
        mpfr_div(r48732, r48729, r48731, MPFR_RNDN);
        mpfr_add(r48733, r48724, r48732, MPFR_RNDN);
        return mpfr_get_d(r48733, MPFR_RNDN);
}

static mpfr_t r48734, r48735, r48736, r48737, r48738, r48739, r48740, r48741, r48742, r48743, r48744, r48745;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r48734);
        mpfr_init(r48735);
        mpfr_init_set_str(r48736, "1", 10, MPFR_RNDN);
        mpfr_init(r48737);
        mpfr_init(r48738);
        mpfr_init(r48739);
        mpfr_init(r48740);
        mpfr_init(r48741);
        mpfr_init(r48742);
        mpfr_init(r48743);
        mpfr_init(r48744);
        mpfr_init(r48745);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r48734, x, MPFR_RNDN);
        mpfr_set_d(r48735, y, MPFR_RNDN);
        ;
        mpfr_div(r48737, r48735, r48736, MPFR_RNDN);
        mpfr_set_d(r48738, z, MPFR_RNDN);
        mpfr_set_d(r48739, t, MPFR_RNDN);
        mpfr_sub(r48740, r48738, r48739, MPFR_RNDN);
        mpfr_set_d(r48741, a, MPFR_RNDN);
        mpfr_sub(r48742, r48738, r48741, MPFR_RNDN);
        mpfr_div(r48743, r48740, r48742, MPFR_RNDN);
        mpfr_mul(r48744, r48737, r48743, MPFR_RNDN);
        mpfr_add(r48745, r48734, r48744, MPFR_RNDN);
        return mpfr_get_d(r48745, MPFR_RNDN);
}

static mpfr_t r48746, r48747, r48748, r48749, r48750, r48751, r48752, r48753, r48754, r48755, r48756, r48757;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r48746);
        mpfr_init(r48747);
        mpfr_init_set_str(r48748, "1", 10, MPFR_RNDN);
        mpfr_init(r48749);
        mpfr_init(r48750);
        mpfr_init(r48751);
        mpfr_init(r48752);
        mpfr_init(r48753);
        mpfr_init(r48754);
        mpfr_init(r48755);
        mpfr_init(r48756);
        mpfr_init(r48757);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r48746, x, MPFR_RNDN);
        mpfr_set_d(r48747, y, MPFR_RNDN);
        ;
        mpfr_div(r48749, r48747, r48748, MPFR_RNDN);
        mpfr_set_d(r48750, z, MPFR_RNDN);
        mpfr_set_d(r48751, t, MPFR_RNDN);
        mpfr_sub(r48752, r48750, r48751, MPFR_RNDN);
        mpfr_set_d(r48753, a, MPFR_RNDN);
        mpfr_sub(r48754, r48750, r48753, MPFR_RNDN);
        mpfr_div(r48755, r48752, r48754, MPFR_RNDN);
        mpfr_mul(r48756, r48749, r48755, MPFR_RNDN);
        mpfr_add(r48757, r48746, r48756, MPFR_RNDN);
        return mpfr_get_d(r48757, MPFR_RNDN);
}

