#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 r49476 = x;
        float r49477 = y;
        float r49478 = z;
        float r49479 = t;
        float r49480 = r49478 - r49479;
        float r49481 = r49477 * r49480;
        float r49482 = a;
        float r49483 = r49482 - r49479;
        float r49484 = r49481 / r49483;
        float r49485 = r49476 + r49484;
        return r49485;
}

double f_id(double x, double y, double z, double t, double a) {
        double r49486 = x;
        double r49487 = y;
        double r49488 = z;
        double r49489 = t;
        double r49490 = r49488 - r49489;
        double r49491 = r49487 * r49490;
        double r49492 = a;
        double r49493 = r49492 - r49489;
        double r49494 = r49491 / r49493;
        double r49495 = r49486 + r49494;
        return r49495;
}


double f_of(float x, float y, float z, float t, float a) {
        float r49496 = x;
        float r49497 = y;
        float r49498 = 1;
        float r49499 = r49497 / r49498;
        float r49500 = z;
        float r49501 = t;
        float r49502 = r49500 - r49501;
        float r49503 = a;
        float r49504 = r49503 - r49501;
        float r49505 = r49502 / r49504;
        float r49506 = r49499 * r49505;
        float r49507 = r49496 + r49506;
        return r49507;
}

double f_od(double x, double y, double z, double t, double a) {
        double r49508 = x;
        double r49509 = y;
        double r49510 = 1;
        double r49511 = r49509 / r49510;
        double r49512 = z;
        double r49513 = t;
        double r49514 = r49512 - r49513;
        double r49515 = a;
        double r49516 = r49515 - r49513;
        double r49517 = r49514 / r49516;
        double r49518 = r49511 * r49517;
        double r49519 = r49508 + r49518;
        return r49519;
}

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 r49520, r49521, r49522, r49523, r49524, r49525, r49526, r49527, r49528, r49529;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r49520);
        mpfr_init(r49521);
        mpfr_init(r49522);
        mpfr_init(r49523);
        mpfr_init(r49524);
        mpfr_init(r49525);
        mpfr_init(r49526);
        mpfr_init(r49527);
        mpfr_init(r49528);
        mpfr_init(r49529);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49520, x, MPFR_RNDN);
        mpfr_set_d(r49521, y, MPFR_RNDN);
        mpfr_set_d(r49522, z, MPFR_RNDN);
        mpfr_set_d(r49523, t, MPFR_RNDN);
        mpfr_sub(r49524, r49522, r49523, MPFR_RNDN);
        mpfr_mul(r49525, r49521, r49524, MPFR_RNDN);
        mpfr_set_d(r49526, a, MPFR_RNDN);
        mpfr_sub(r49527, r49526, r49523, MPFR_RNDN);
        mpfr_div(r49528, r49525, r49527, MPFR_RNDN);
        mpfr_add(r49529, r49520, r49528, MPFR_RNDN);
        return mpfr_get_d(r49529, MPFR_RNDN);
}

static mpfr_t r49530, r49531, r49532, r49533, r49534, r49535, r49536, r49537, r49538, r49539, r49540, r49541;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49530);
        mpfr_init(r49531);
        mpfr_init_set_str(r49532, "1", 10, MPFR_RNDN);
        mpfr_init(r49533);
        mpfr_init(r49534);
        mpfr_init(r49535);
        mpfr_init(r49536);
        mpfr_init(r49537);
        mpfr_init(r49538);
        mpfr_init(r49539);
        mpfr_init(r49540);
        mpfr_init(r49541);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49530, x, MPFR_RNDN);
        mpfr_set_d(r49531, y, MPFR_RNDN);
        ;
        mpfr_div(r49533, r49531, r49532, MPFR_RNDN);
        mpfr_set_d(r49534, z, MPFR_RNDN);
        mpfr_set_d(r49535, t, MPFR_RNDN);
        mpfr_sub(r49536, r49534, r49535, MPFR_RNDN);
        mpfr_set_d(r49537, a, MPFR_RNDN);
        mpfr_sub(r49538, r49537, r49535, MPFR_RNDN);
        mpfr_div(r49539, r49536, r49538, MPFR_RNDN);
        mpfr_mul(r49540, r49533, r49539, MPFR_RNDN);
        mpfr_add(r49541, r49530, r49540, MPFR_RNDN);
        return mpfr_get_d(r49541, MPFR_RNDN);
}

static mpfr_t r49542, r49543, r49544, r49545, r49546, r49547, r49548, r49549, r49550, r49551, r49552, r49553;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49542);
        mpfr_init(r49543);
        mpfr_init_set_str(r49544, "1", 10, MPFR_RNDN);
        mpfr_init(r49545);
        mpfr_init(r49546);
        mpfr_init(r49547);
        mpfr_init(r49548);
        mpfr_init(r49549);
        mpfr_init(r49550);
        mpfr_init(r49551);
        mpfr_init(r49552);
        mpfr_init(r49553);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49542, x, MPFR_RNDN);
        mpfr_set_d(r49543, y, MPFR_RNDN);
        ;
        mpfr_div(r49545, r49543, r49544, MPFR_RNDN);
        mpfr_set_d(r49546, z, MPFR_RNDN);
        mpfr_set_d(r49547, t, MPFR_RNDN);
        mpfr_sub(r49548, r49546, r49547, MPFR_RNDN);
        mpfr_set_d(r49549, a, MPFR_RNDN);
        mpfr_sub(r49550, r49549, r49547, MPFR_RNDN);
        mpfr_div(r49551, r49548, r49550, MPFR_RNDN);
        mpfr_mul(r49552, r49545, r49551, MPFR_RNDN);
        mpfr_add(r49553, r49542, r49552, MPFR_RNDN);
        return mpfr_get_d(r49553, MPFR_RNDN);
}

