#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, B";

double f_if(float x, float y, float z, float t, float a) {
        float r49515 = x;
        float r49516 = y;
        float r49517 = z;
        float r49518 = t;
        float r49519 = r49517 - r49518;
        float r49520 = a;
        float r49521 = r49520 - r49518;
        float r49522 = r49519 / r49521;
        float r49523 = r49516 * r49522;
        float r49524 = r49515 + r49523;
        return r49524;
}

double f_id(double x, double y, double z, double t, double a) {
        double r49525 = x;
        double r49526 = y;
        double r49527 = z;
        double r49528 = t;
        double r49529 = r49527 - r49528;
        double r49530 = a;
        double r49531 = r49530 - r49528;
        double r49532 = r49529 / r49531;
        double r49533 = r49526 * r49532;
        double r49534 = r49525 + r49533;
        return r49534;
}


double f_of(float x, float y, float z, float t, float a) {
        float r49535 = x;
        float r49536 = y;
        float r49537 = z;
        float r49538 = t;
        float r49539 = r49537 - r49538;
        float r49540 = a;
        float r49541 = r49540 - r49538;
        float r49542 = r49539 / r49541;
        float r49543 = r49536 * r49542;
        float r49544 = r49535 + r49543;
        return r49544;
}

double f_od(double x, double y, double z, double t, double a) {
        double r49545 = x;
        double r49546 = y;
        double r49547 = z;
        double r49548 = t;
        double r49549 = r49547 - r49548;
        double r49550 = a;
        double r49551 = r49550 - r49548;
        double r49552 = r49549 / r49551;
        double r49553 = r49546 * r49552;
        double r49554 = r49545 + r49553;
        return r49554;
}

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 r49555, r49556, r49557, r49558, r49559, r49560, r49561, r49562, r49563, r49564;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r49555);
        mpfr_init(r49556);
        mpfr_init(r49557);
        mpfr_init(r49558);
        mpfr_init(r49559);
        mpfr_init(r49560);
        mpfr_init(r49561);
        mpfr_init(r49562);
        mpfr_init(r49563);
        mpfr_init(r49564);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49555, x, MPFR_RNDN);
        mpfr_set_d(r49556, y, MPFR_RNDN);
        mpfr_set_d(r49557, z, MPFR_RNDN);
        mpfr_set_d(r49558, t, MPFR_RNDN);
        mpfr_sub(r49559, r49557, r49558, MPFR_RNDN);
        mpfr_set_d(r49560, a, MPFR_RNDN);
        mpfr_sub(r49561, r49560, r49558, MPFR_RNDN);
        mpfr_div(r49562, r49559, r49561, MPFR_RNDN);
        mpfr_mul(r49563, r49556, r49562, MPFR_RNDN);
        mpfr_add(r49564, r49555, r49563, MPFR_RNDN);
        return mpfr_get_d(r49564, MPFR_RNDN);
}

static mpfr_t r49565, r49566, r49567, r49568, r49569, r49570, r49571, r49572, r49573, r49574;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49565);
        mpfr_init(r49566);
        mpfr_init(r49567);
        mpfr_init(r49568);
        mpfr_init(r49569);
        mpfr_init(r49570);
        mpfr_init(r49571);
        mpfr_init(r49572);
        mpfr_init(r49573);
        mpfr_init(r49574);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49565, x, MPFR_RNDN);
        mpfr_set_d(r49566, y, MPFR_RNDN);
        mpfr_set_d(r49567, z, MPFR_RNDN);
        mpfr_set_d(r49568, t, MPFR_RNDN);
        mpfr_sub(r49569, r49567, r49568, MPFR_RNDN);
        mpfr_set_d(r49570, a, MPFR_RNDN);
        mpfr_sub(r49571, r49570, r49568, MPFR_RNDN);
        mpfr_div(r49572, r49569, r49571, MPFR_RNDN);
        mpfr_mul(r49573, r49566, r49572, MPFR_RNDN);
        mpfr_add(r49574, r49565, r49573, MPFR_RNDN);
        return mpfr_get_d(r49574, MPFR_RNDN);
}

static mpfr_t r49575, r49576, r49577, r49578, r49579, r49580, r49581, r49582, r49583, r49584;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49575);
        mpfr_init(r49576);
        mpfr_init(r49577);
        mpfr_init(r49578);
        mpfr_init(r49579);
        mpfr_init(r49580);
        mpfr_init(r49581);
        mpfr_init(r49582);
        mpfr_init(r49583);
        mpfr_init(r49584);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49575, x, MPFR_RNDN);
        mpfr_set_d(r49576, y, MPFR_RNDN);
        mpfr_set_d(r49577, z, MPFR_RNDN);
        mpfr_set_d(r49578, t, MPFR_RNDN);
        mpfr_sub(r49579, r49577, r49578, MPFR_RNDN);
        mpfr_set_d(r49580, a, MPFR_RNDN);
        mpfr_sub(r49581, r49580, r49578, MPFR_RNDN);
        mpfr_div(r49582, r49579, r49581, MPFR_RNDN);
        mpfr_mul(r49583, r49576, r49582, MPFR_RNDN);
        mpfr_add(r49584, r49575, r49583, MPFR_RNDN);
        return mpfr_get_d(r49584, MPFR_RNDN);
}

