#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 r49429 = x;
        float r49430 = y;
        float r49431 = z;
        float r49432 = t;
        float r49433 = r49431 - r49432;
        float r49434 = r49430 * r49433;
        float r49435 = a;
        float r49436 = r49431 - r49435;
        float r49437 = r49434 / r49436;
        float r49438 = r49429 + r49437;
        return r49438;
}

double f_id(double x, double y, double z, double t, double a) {
        double r49439 = x;
        double r49440 = y;
        double r49441 = z;
        double r49442 = t;
        double r49443 = r49441 - r49442;
        double r49444 = r49440 * r49443;
        double r49445 = a;
        double r49446 = r49441 - r49445;
        double r49447 = r49444 / r49446;
        double r49448 = r49439 + r49447;
        return r49448;
}


double f_of(float x, float y, float z, float t, float a) {
        float r49449 = x;
        float r49450 = y;
        float r49451 = 1;
        float r49452 = r49450 / r49451;
        float r49453 = z;
        float r49454 = t;
        float r49455 = r49453 - r49454;
        float r49456 = a;
        float r49457 = r49453 - r49456;
        float r49458 = r49455 / r49457;
        float r49459 = r49452 * r49458;
        float r49460 = r49449 + r49459;
        return r49460;
}

double f_od(double x, double y, double z, double t, double a) {
        double r49461 = x;
        double r49462 = y;
        double r49463 = 1;
        double r49464 = r49462 / r49463;
        double r49465 = z;
        double r49466 = t;
        double r49467 = r49465 - r49466;
        double r49468 = a;
        double r49469 = r49465 - r49468;
        double r49470 = r49467 / r49469;
        double r49471 = r49464 * r49470;
        double r49472 = r49461 + r49471;
        return r49472;
}

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 r49473, r49474, r49475, r49476, r49477, r49478, r49479, r49480, r49481, r49482;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r49473);
        mpfr_init(r49474);
        mpfr_init(r49475);
        mpfr_init(r49476);
        mpfr_init(r49477);
        mpfr_init(r49478);
        mpfr_init(r49479);
        mpfr_init(r49480);
        mpfr_init(r49481);
        mpfr_init(r49482);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49473, x, MPFR_RNDN);
        mpfr_set_d(r49474, y, MPFR_RNDN);
        mpfr_set_d(r49475, z, MPFR_RNDN);
        mpfr_set_d(r49476, t, MPFR_RNDN);
        mpfr_sub(r49477, r49475, r49476, MPFR_RNDN);
        mpfr_mul(r49478, r49474, r49477, MPFR_RNDN);
        mpfr_set_d(r49479, a, MPFR_RNDN);
        mpfr_sub(r49480, r49475, r49479, MPFR_RNDN);
        mpfr_div(r49481, r49478, r49480, MPFR_RNDN);
        mpfr_add(r49482, r49473, r49481, MPFR_RNDN);
        return mpfr_get_d(r49482, MPFR_RNDN);
}

static mpfr_t r49483, r49484, r49485, r49486, r49487, r49488, r49489, r49490, r49491, r49492, r49493, r49494;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49483);
        mpfr_init(r49484);
        mpfr_init_set_str(r49485, "1", 10, MPFR_RNDN);
        mpfr_init(r49486);
        mpfr_init(r49487);
        mpfr_init(r49488);
        mpfr_init(r49489);
        mpfr_init(r49490);
        mpfr_init(r49491);
        mpfr_init(r49492);
        mpfr_init(r49493);
        mpfr_init(r49494);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49483, x, MPFR_RNDN);
        mpfr_set_d(r49484, y, MPFR_RNDN);
        ;
        mpfr_div(r49486, r49484, r49485, MPFR_RNDN);
        mpfr_set_d(r49487, z, MPFR_RNDN);
        mpfr_set_d(r49488, t, MPFR_RNDN);
        mpfr_sub(r49489, r49487, r49488, MPFR_RNDN);
        mpfr_set_d(r49490, a, MPFR_RNDN);
        mpfr_sub(r49491, r49487, r49490, MPFR_RNDN);
        mpfr_div(r49492, r49489, r49491, MPFR_RNDN);
        mpfr_mul(r49493, r49486, r49492, MPFR_RNDN);
        mpfr_add(r49494, r49483, r49493, MPFR_RNDN);
        return mpfr_get_d(r49494, MPFR_RNDN);
}

static mpfr_t r49495, r49496, r49497, r49498, r49499, r49500, r49501, r49502, r49503, r49504, r49505, r49506;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49495);
        mpfr_init(r49496);
        mpfr_init_set_str(r49497, "1", 10, MPFR_RNDN);
        mpfr_init(r49498);
        mpfr_init(r49499);
        mpfr_init(r49500);
        mpfr_init(r49501);
        mpfr_init(r49502);
        mpfr_init(r49503);
        mpfr_init(r49504);
        mpfr_init(r49505);
        mpfr_init(r49506);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49495, x, MPFR_RNDN);
        mpfr_set_d(r49496, y, MPFR_RNDN);
        ;
        mpfr_div(r49498, r49496, r49497, MPFR_RNDN);
        mpfr_set_d(r49499, z, MPFR_RNDN);
        mpfr_set_d(r49500, t, MPFR_RNDN);
        mpfr_sub(r49501, r49499, r49500, MPFR_RNDN);
        mpfr_set_d(r49502, a, MPFR_RNDN);
        mpfr_sub(r49503, r49499, r49502, MPFR_RNDN);
        mpfr_div(r49504, r49501, r49503, MPFR_RNDN);
        mpfr_mul(r49505, r49498, r49504, MPFR_RNDN);
        mpfr_add(r49506, r49495, r49505, MPFR_RNDN);
        return mpfr_get_d(r49506, MPFR_RNDN);
}

