#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 r49074 = x;
        float r49075 = y;
        float r49076 = z;
        float r49077 = t;
        float r49078 = r49076 - r49077;
        float r49079 = r49075 * r49078;
        float r49080 = a;
        float r49081 = r49076 - r49080;
        float r49082 = r49079 / r49081;
        float r49083 = r49074 + r49082;
        return r49083;
}

double f_id(double x, double y, double z, double t, double a) {
        double r49084 = x;
        double r49085 = y;
        double r49086 = z;
        double r49087 = t;
        double r49088 = r49086 - r49087;
        double r49089 = r49085 * r49088;
        double r49090 = a;
        double r49091 = r49086 - r49090;
        double r49092 = r49089 / r49091;
        double r49093 = r49084 + r49092;
        return r49093;
}


double f_of(float x, float y, float z, float t, float a) {
        float r49094 = x;
        float r49095 = y;
        float r49096 = 1;
        float r49097 = r49095 / r49096;
        float r49098 = z;
        float r49099 = t;
        float r49100 = r49098 - r49099;
        float r49101 = a;
        float r49102 = r49098 - r49101;
        float r49103 = r49100 / r49102;
        float r49104 = r49097 * r49103;
        float r49105 = r49094 + r49104;
        return r49105;
}

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

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 r49118, r49119, r49120, r49121, r49122, r49123, r49124, r49125, r49126, r49127;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r49118);
        mpfr_init(r49119);
        mpfr_init(r49120);
        mpfr_init(r49121);
        mpfr_init(r49122);
        mpfr_init(r49123);
        mpfr_init(r49124);
        mpfr_init(r49125);
        mpfr_init(r49126);
        mpfr_init(r49127);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49118, x, MPFR_RNDN);
        mpfr_set_d(r49119, y, MPFR_RNDN);
        mpfr_set_d(r49120, z, MPFR_RNDN);
        mpfr_set_d(r49121, t, MPFR_RNDN);
        mpfr_sub(r49122, r49120, r49121, MPFR_RNDN);
        mpfr_mul(r49123, r49119, r49122, MPFR_RNDN);
        mpfr_set_d(r49124, a, MPFR_RNDN);
        mpfr_sub(r49125, r49120, r49124, MPFR_RNDN);
        mpfr_div(r49126, r49123, r49125, MPFR_RNDN);
        mpfr_add(r49127, r49118, r49126, MPFR_RNDN);
        return mpfr_get_d(r49127, MPFR_RNDN);
}

static mpfr_t r49128, r49129, r49130, r49131, r49132, r49133, r49134, r49135, r49136, r49137, r49138, r49139;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49128);
        mpfr_init(r49129);
        mpfr_init_set_str(r49130, "1", 10, MPFR_RNDN);
        mpfr_init(r49131);
        mpfr_init(r49132);
        mpfr_init(r49133);
        mpfr_init(r49134);
        mpfr_init(r49135);
        mpfr_init(r49136);
        mpfr_init(r49137);
        mpfr_init(r49138);
        mpfr_init(r49139);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49128, x, MPFR_RNDN);
        mpfr_set_d(r49129, y, MPFR_RNDN);
        ;
        mpfr_div(r49131, r49129, r49130, MPFR_RNDN);
        mpfr_set_d(r49132, z, MPFR_RNDN);
        mpfr_set_d(r49133, t, MPFR_RNDN);
        mpfr_sub(r49134, r49132, r49133, MPFR_RNDN);
        mpfr_set_d(r49135, a, MPFR_RNDN);
        mpfr_sub(r49136, r49132, r49135, MPFR_RNDN);
        mpfr_div(r49137, r49134, r49136, MPFR_RNDN);
        mpfr_mul(r49138, r49131, r49137, MPFR_RNDN);
        mpfr_add(r49139, r49128, r49138, MPFR_RNDN);
        return mpfr_get_d(r49139, MPFR_RNDN);
}

static mpfr_t r49140, r49141, r49142, r49143, r49144, r49145, r49146, r49147, r49148, r49149, r49150, r49151;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49140);
        mpfr_init(r49141);
        mpfr_init_set_str(r49142, "1", 10, MPFR_RNDN);
        mpfr_init(r49143);
        mpfr_init(r49144);
        mpfr_init(r49145);
        mpfr_init(r49146);
        mpfr_init(r49147);
        mpfr_init(r49148);
        mpfr_init(r49149);
        mpfr_init(r49150);
        mpfr_init(r49151);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49140, x, MPFR_RNDN);
        mpfr_set_d(r49141, y, MPFR_RNDN);
        ;
        mpfr_div(r49143, r49141, r49142, MPFR_RNDN);
        mpfr_set_d(r49144, z, MPFR_RNDN);
        mpfr_set_d(r49145, t, MPFR_RNDN);
        mpfr_sub(r49146, r49144, r49145, MPFR_RNDN);
        mpfr_set_d(r49147, a, MPFR_RNDN);
        mpfr_sub(r49148, r49144, r49147, MPFR_RNDN);
        mpfr_div(r49149, r49146, r49148, MPFR_RNDN);
        mpfr_mul(r49150, r49143, r49149, MPFR_RNDN);
        mpfr_add(r49151, r49140, r49150, MPFR_RNDN);
        return mpfr_get_d(r49151, MPFR_RNDN);
}

