#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, B";

double f_if(float x, float y, float z, float t, float a) {
        float r49108 = x;
        float r49109 = y;
        float r49110 = z;
        float r49111 = t;
        float r49112 = r49110 - r49111;
        float r49113 = r49109 * r49112;
        float r49114 = a;
        float r49115 = r49114 - r49111;
        float r49116 = r49113 / r49115;
        float r49117 = r49108 + r49116;
        return r49117;
}

double f_id(double x, double y, double z, double t, double a) {
        double r49118 = x;
        double r49119 = y;
        double r49120 = z;
        double r49121 = t;
        double r49122 = r49120 - r49121;
        double r49123 = r49119 * r49122;
        double r49124 = a;
        double r49125 = r49124 - r49121;
        double r49126 = r49123 / r49125;
        double r49127 = r49118 + r49126;
        return r49127;
}


double f_of(float x, float y, float z, float t, float a) {
        float r49128 = x;
        float r49129 = y;
        float r49130 = 1;
        float r49131 = r49129 / r49130;
        float r49132 = z;
        float r49133 = t;
        float r49134 = r49132 - r49133;
        float r49135 = a;
        float r49136 = r49135 - r49133;
        float r49137 = r49134 / r49136;
        float r49138 = r49131 * r49137;
        float r49139 = r49128 + r49138;
        return r49139;
}

double f_od(double x, double y, double z, double t, double a) {
        double r49140 = x;
        double r49141 = y;
        double r49142 = 1;
        double r49143 = r49141 / r49142;
        double r49144 = z;
        double r49145 = t;
        double r49146 = r49144 - r49145;
        double r49147 = a;
        double r49148 = r49147 - r49145;
        double r49149 = r49146 / r49148;
        double r49150 = r49143 * r49149;
        double r49151 = r49140 + r49150;
        return r49151;
}

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 r49152, r49153, r49154, r49155, r49156, r49157, r49158, r49159, r49160, r49161;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r49152);
        mpfr_init(r49153);
        mpfr_init(r49154);
        mpfr_init(r49155);
        mpfr_init(r49156);
        mpfr_init(r49157);
        mpfr_init(r49158);
        mpfr_init(r49159);
        mpfr_init(r49160);
        mpfr_init(r49161);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49152, x, MPFR_RNDN);
        mpfr_set_d(r49153, y, MPFR_RNDN);
        mpfr_set_d(r49154, z, MPFR_RNDN);
        mpfr_set_d(r49155, t, MPFR_RNDN);
        mpfr_sub(r49156, r49154, r49155, MPFR_RNDN);
        mpfr_mul(r49157, r49153, r49156, MPFR_RNDN);
        mpfr_set_d(r49158, a, MPFR_RNDN);
        mpfr_sub(r49159, r49158, r49155, MPFR_RNDN);
        mpfr_div(r49160, r49157, r49159, MPFR_RNDN);
        mpfr_add(r49161, r49152, r49160, MPFR_RNDN);
        return mpfr_get_d(r49161, MPFR_RNDN);
}

static mpfr_t r49162, r49163, r49164, r49165, r49166, r49167, r49168, r49169, r49170, r49171, r49172, r49173;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49162);
        mpfr_init(r49163);
        mpfr_init_set_str(r49164, "1", 10, MPFR_RNDN);
        mpfr_init(r49165);
        mpfr_init(r49166);
        mpfr_init(r49167);
        mpfr_init(r49168);
        mpfr_init(r49169);
        mpfr_init(r49170);
        mpfr_init(r49171);
        mpfr_init(r49172);
        mpfr_init(r49173);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49162, x, MPFR_RNDN);
        mpfr_set_d(r49163, y, MPFR_RNDN);
        ;
        mpfr_div(r49165, r49163, r49164, MPFR_RNDN);
        mpfr_set_d(r49166, z, MPFR_RNDN);
        mpfr_set_d(r49167, t, MPFR_RNDN);
        mpfr_sub(r49168, r49166, r49167, MPFR_RNDN);
        mpfr_set_d(r49169, a, MPFR_RNDN);
        mpfr_sub(r49170, r49169, r49167, MPFR_RNDN);
        mpfr_div(r49171, r49168, r49170, MPFR_RNDN);
        mpfr_mul(r49172, r49165, r49171, MPFR_RNDN);
        mpfr_add(r49173, r49162, r49172, MPFR_RNDN);
        return mpfr_get_d(r49173, MPFR_RNDN);
}

static mpfr_t r49174, r49175, r49176, r49177, r49178, r49179, r49180, r49181, r49182, r49183, r49184, r49185;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49174);
        mpfr_init(r49175);
        mpfr_init_set_str(r49176, "1", 10, MPFR_RNDN);
        mpfr_init(r49177);
        mpfr_init(r49178);
        mpfr_init(r49179);
        mpfr_init(r49180);
        mpfr_init(r49181);
        mpfr_init(r49182);
        mpfr_init(r49183);
        mpfr_init(r49184);
        mpfr_init(r49185);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49174, x, MPFR_RNDN);
        mpfr_set_d(r49175, y, MPFR_RNDN);
        ;
        mpfr_div(r49177, r49175, r49176, MPFR_RNDN);
        mpfr_set_d(r49178, z, MPFR_RNDN);
        mpfr_set_d(r49179, t, MPFR_RNDN);
        mpfr_sub(r49180, r49178, r49179, MPFR_RNDN);
        mpfr_set_d(r49181, a, MPFR_RNDN);
        mpfr_sub(r49182, r49181, r49179, MPFR_RNDN);
        mpfr_div(r49183, r49180, r49182, MPFR_RNDN);
        mpfr_mul(r49184, r49177, r49183, MPFR_RNDN);
        mpfr_add(r49185, r49174, r49184, MPFR_RNDN);
        return mpfr_get_d(r49185, MPFR_RNDN);
}

