#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisLine from plot-0.2.3.4, A";

double f_if(float x, float y, float z, float t, float a) {
        float r49585 = x;
        float r49586 = y;
        float r49587 = z;
        float r49588 = t;
        float r49589 = r49587 - r49588;
        float r49590 = a;
        float r49591 = r49587 - r49590;
        float r49592 = r49589 / r49591;
        float r49593 = r49586 * r49592;
        float r49594 = r49585 + r49593;
        return r49594;
}

double f_id(double x, double y, double z, double t, double a) {
        double r49595 = x;
        double r49596 = y;
        double r49597 = z;
        double r49598 = t;
        double r49599 = r49597 - r49598;
        double r49600 = a;
        double r49601 = r49597 - r49600;
        double r49602 = r49599 / r49601;
        double r49603 = r49596 * r49602;
        double r49604 = r49595 + r49603;
        return r49604;
}


double f_of(float x, float y, float z, float t, float a) {
        float r49605 = x;
        float r49606 = y;
        float r49607 = z;
        float r49608 = a;
        float r49609 = r49607 - r49608;
        float r49610 = r49607 / r49609;
        float r49611 = t;
        float r49612 = r49611 / r49609;
        float r49613 = r49610 - r49612;
        float r49614 = r49606 * r49613;
        float r49615 = r49605 + r49614;
        return r49615;
}

double f_od(double x, double y, double z, double t, double a) {
        double r49616 = x;
        double r49617 = y;
        double r49618 = z;
        double r49619 = a;
        double r49620 = r49618 - r49619;
        double r49621 = r49618 / r49620;
        double r49622 = t;
        double r49623 = r49622 / r49620;
        double r49624 = r49621 - r49623;
        double r49625 = r49617 * r49624;
        double r49626 = r49616 + r49625;
        return r49626;
}

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 r49627, r49628, r49629, r49630, r49631, r49632, r49633, r49634, r49635, r49636;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r49627);
        mpfr_init(r49628);
        mpfr_init(r49629);
        mpfr_init(r49630);
        mpfr_init(r49631);
        mpfr_init(r49632);
        mpfr_init(r49633);
        mpfr_init(r49634);
        mpfr_init(r49635);
        mpfr_init(r49636);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49627, x, MPFR_RNDN);
        mpfr_set_d(r49628, y, MPFR_RNDN);
        mpfr_set_d(r49629, z, MPFR_RNDN);
        mpfr_set_d(r49630, t, MPFR_RNDN);
        mpfr_sub(r49631, r49629, r49630, MPFR_RNDN);
        mpfr_set_d(r49632, a, MPFR_RNDN);
        mpfr_sub(r49633, r49629, r49632, MPFR_RNDN);
        mpfr_div(r49634, r49631, r49633, MPFR_RNDN);
        mpfr_mul(r49635, r49628, r49634, MPFR_RNDN);
        mpfr_add(r49636, r49627, r49635, MPFR_RNDN);
        return mpfr_get_d(r49636, MPFR_RNDN);
}

static mpfr_t r49637, r49638, r49639, r49640, r49641, r49642, r49643, r49644, r49645, r49646, r49647;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49637);
        mpfr_init(r49638);
        mpfr_init(r49639);
        mpfr_init(r49640);
        mpfr_init(r49641);
        mpfr_init(r49642);
        mpfr_init(r49643);
        mpfr_init(r49644);
        mpfr_init(r49645);
        mpfr_init(r49646);
        mpfr_init(r49647);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49637, x, MPFR_RNDN);
        mpfr_set_d(r49638, y, MPFR_RNDN);
        mpfr_set_d(r49639, z, MPFR_RNDN);
        mpfr_set_d(r49640, a, MPFR_RNDN);
        mpfr_sub(r49641, r49639, r49640, MPFR_RNDN);
        mpfr_div(r49642, r49639, r49641, MPFR_RNDN);
        mpfr_set_d(r49643, t, MPFR_RNDN);
        mpfr_div(r49644, r49643, r49641, MPFR_RNDN);
        mpfr_sub(r49645, r49642, r49644, MPFR_RNDN);
        mpfr_mul(r49646, r49638, r49645, MPFR_RNDN);
        mpfr_add(r49647, r49637, r49646, MPFR_RNDN);
        return mpfr_get_d(r49647, MPFR_RNDN);
}

static mpfr_t r49648, r49649, r49650, r49651, r49652, r49653, r49654, r49655, r49656, r49657, r49658;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49648);
        mpfr_init(r49649);
        mpfr_init(r49650);
        mpfr_init(r49651);
        mpfr_init(r49652);
        mpfr_init(r49653);
        mpfr_init(r49654);
        mpfr_init(r49655);
        mpfr_init(r49656);
        mpfr_init(r49657);
        mpfr_init(r49658);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49648, x, MPFR_RNDN);
        mpfr_set_d(r49649, y, MPFR_RNDN);
        mpfr_set_d(r49650, z, MPFR_RNDN);
        mpfr_set_d(r49651, a, MPFR_RNDN);
        mpfr_sub(r49652, r49650, r49651, MPFR_RNDN);
        mpfr_div(r49653, r49650, r49652, MPFR_RNDN);
        mpfr_set_d(r49654, t, MPFR_RNDN);
        mpfr_div(r49655, r49654, r49652, MPFR_RNDN);
        mpfr_sub(r49656, r49653, r49655, MPFR_RNDN);
        mpfr_mul(r49657, r49649, r49656, MPFR_RNDN);
        mpfr_add(r49658, r49648, r49657, MPFR_RNDN);
        return mpfr_get_d(r49658, MPFR_RNDN);
}

