#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 r46497 = x;
        float r46498 = y;
        float r46499 = z;
        float r46500 = t;
        float r46501 = r46499 - r46500;
        float r46502 = r46498 * r46501;
        float r46503 = a;
        float r46504 = r46503 - r46500;
        float r46505 = r46502 / r46504;
        float r46506 = r46497 + r46505;
        return r46506;
}

double f_id(double x, double y, double z, double t, double a) {
        double r46507 = x;
        double r46508 = y;
        double r46509 = z;
        double r46510 = t;
        double r46511 = r46509 - r46510;
        double r46512 = r46508 * r46511;
        double r46513 = a;
        double r46514 = r46513 - r46510;
        double r46515 = r46512 / r46514;
        double r46516 = r46507 + r46515;
        return r46516;
}


double f_of(float x, float y, float z, float t, float a) {
        float r46517 = x;
        float r46518 = y;
        float r46519 = a;
        float r46520 = t;
        float r46521 = r46519 - r46520;
        float r46522 = z;
        float r46523 = r46522 - r46520;
        float r46524 = r46521 / r46523;
        float r46525 = r46518 / r46524;
        float r46526 = r46517 + r46525;
        return r46526;
}

double f_od(double x, double y, double z, double t, double a) {
        double r46527 = x;
        double r46528 = y;
        double r46529 = a;
        double r46530 = t;
        double r46531 = r46529 - r46530;
        double r46532 = z;
        double r46533 = r46532 - r46530;
        double r46534 = r46531 / r46533;
        double r46535 = r46528 / r46534;
        double r46536 = r46527 + r46535;
        return r46536;
}

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 r46537, r46538, r46539, r46540, r46541, r46542, r46543, r46544, r46545, r46546;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r46537);
        mpfr_init(r46538);
        mpfr_init(r46539);
        mpfr_init(r46540);
        mpfr_init(r46541);
        mpfr_init(r46542);
        mpfr_init(r46543);
        mpfr_init(r46544);
        mpfr_init(r46545);
        mpfr_init(r46546);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r46537, x, MPFR_RNDN);
        mpfr_set_d(r46538, y, MPFR_RNDN);
        mpfr_set_d(r46539, z, MPFR_RNDN);
        mpfr_set_d(r46540, t, MPFR_RNDN);
        mpfr_sub(r46541, r46539, r46540, MPFR_RNDN);
        mpfr_mul(r46542, r46538, r46541, MPFR_RNDN);
        mpfr_set_d(r46543, a, MPFR_RNDN);
        mpfr_sub(r46544, r46543, r46540, MPFR_RNDN);
        mpfr_div(r46545, r46542, r46544, MPFR_RNDN);
        mpfr_add(r46546, r46537, r46545, MPFR_RNDN);
        return mpfr_get_d(r46546, MPFR_RNDN);
}

static mpfr_t r46547, r46548, r46549, r46550, r46551, r46552, r46553, r46554, r46555, r46556;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r46547);
        mpfr_init(r46548);
        mpfr_init(r46549);
        mpfr_init(r46550);
        mpfr_init(r46551);
        mpfr_init(r46552);
        mpfr_init(r46553);
        mpfr_init(r46554);
        mpfr_init(r46555);
        mpfr_init(r46556);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r46547, x, MPFR_RNDN);
        mpfr_set_d(r46548, y, MPFR_RNDN);
        mpfr_set_d(r46549, a, MPFR_RNDN);
        mpfr_set_d(r46550, t, MPFR_RNDN);
        mpfr_sub(r46551, r46549, r46550, MPFR_RNDN);
        mpfr_set_d(r46552, z, MPFR_RNDN);
        mpfr_sub(r46553, r46552, r46550, MPFR_RNDN);
        mpfr_div(r46554, r46551, r46553, MPFR_RNDN);
        mpfr_div(r46555, r46548, r46554, MPFR_RNDN);
        mpfr_add(r46556, r46547, r46555, MPFR_RNDN);
        return mpfr_get_d(r46556, MPFR_RNDN);
}

static mpfr_t r46557, r46558, r46559, r46560, r46561, r46562, r46563, r46564, r46565, r46566;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r46557);
        mpfr_init(r46558);
        mpfr_init(r46559);
        mpfr_init(r46560);
        mpfr_init(r46561);
        mpfr_init(r46562);
        mpfr_init(r46563);
        mpfr_init(r46564);
        mpfr_init(r46565);
        mpfr_init(r46566);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r46557, x, MPFR_RNDN);
        mpfr_set_d(r46558, y, MPFR_RNDN);
        mpfr_set_d(r46559, a, MPFR_RNDN);
        mpfr_set_d(r46560, t, MPFR_RNDN);
        mpfr_sub(r46561, r46559, r46560, MPFR_RNDN);
        mpfr_set_d(r46562, z, MPFR_RNDN);
        mpfr_sub(r46563, r46562, r46560, MPFR_RNDN);
        mpfr_div(r46564, r46561, r46563, MPFR_RNDN);
        mpfr_div(r46565, r46558, r46564, MPFR_RNDN);
        mpfr_add(r46566, r46557, r46565, MPFR_RNDN);
        return mpfr_get_d(r46566, MPFR_RNDN);
}

