#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 r48996 = x;
        float r48997 = y;
        float r48998 = z;
        float r48999 = t;
        float r49000 = r48998 - r48999;
        float r49001 = r48997 * r49000;
        float r49002 = a;
        float r49003 = r49002 - r48999;
        float r49004 = r49001 / r49003;
        float r49005 = r48996 + r49004;
        return r49005;
}

double f_id(double x, double y, double z, double t, double a) {
        double r49006 = x;
        double r49007 = y;
        double r49008 = z;
        double r49009 = t;
        double r49010 = r49008 - r49009;
        double r49011 = r49007 * r49010;
        double r49012 = a;
        double r49013 = r49012 - r49009;
        double r49014 = r49011 / r49013;
        double r49015 = r49006 + r49014;
        return r49015;
}


double f_of(float x, float y, float z, float t, float a) {
        float r49016 = x;
        float r49017 = y;
        float r49018 = 1;
        float r49019 = r49017 / r49018;
        float r49020 = z;
        float r49021 = t;
        float r49022 = r49020 - r49021;
        float r49023 = a;
        float r49024 = r49023 - r49021;
        float r49025 = r49022 / r49024;
        float r49026 = r49019 * r49025;
        float r49027 = r49016 + r49026;
        return r49027;
}

double f_od(double x, double y, double z, double t, double a) {
        double r49028 = x;
        double r49029 = y;
        double r49030 = 1;
        double r49031 = r49029 / r49030;
        double r49032 = z;
        double r49033 = t;
        double r49034 = r49032 - r49033;
        double r49035 = a;
        double r49036 = r49035 - r49033;
        double r49037 = r49034 / r49036;
        double r49038 = r49031 * r49037;
        double r49039 = r49028 + r49038;
        return r49039;
}

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 r49040, r49041, r49042, r49043, r49044, r49045, r49046, r49047, r49048, r49049;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r49040);
        mpfr_init(r49041);
        mpfr_init(r49042);
        mpfr_init(r49043);
        mpfr_init(r49044);
        mpfr_init(r49045);
        mpfr_init(r49046);
        mpfr_init(r49047);
        mpfr_init(r49048);
        mpfr_init(r49049);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49040, x, MPFR_RNDN);
        mpfr_set_d(r49041, y, MPFR_RNDN);
        mpfr_set_d(r49042, z, MPFR_RNDN);
        mpfr_set_d(r49043, t, MPFR_RNDN);
        mpfr_sub(r49044, r49042, r49043, MPFR_RNDN);
        mpfr_mul(r49045, r49041, r49044, MPFR_RNDN);
        mpfr_set_d(r49046, a, MPFR_RNDN);
        mpfr_sub(r49047, r49046, r49043, MPFR_RNDN);
        mpfr_div(r49048, r49045, r49047, MPFR_RNDN);
        mpfr_add(r49049, r49040, r49048, MPFR_RNDN);
        return mpfr_get_d(r49049, MPFR_RNDN);
}

static mpfr_t r49050, r49051, r49052, r49053, r49054, r49055, r49056, r49057, r49058, r49059, r49060, r49061;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49050);
        mpfr_init(r49051);
        mpfr_init_set_str(r49052, "1", 10, MPFR_RNDN);
        mpfr_init(r49053);
        mpfr_init(r49054);
        mpfr_init(r49055);
        mpfr_init(r49056);
        mpfr_init(r49057);
        mpfr_init(r49058);
        mpfr_init(r49059);
        mpfr_init(r49060);
        mpfr_init(r49061);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49050, x, MPFR_RNDN);
        mpfr_set_d(r49051, y, MPFR_RNDN);
        ;
        mpfr_div(r49053, r49051, r49052, MPFR_RNDN);
        mpfr_set_d(r49054, z, MPFR_RNDN);
        mpfr_set_d(r49055, t, MPFR_RNDN);
        mpfr_sub(r49056, r49054, r49055, MPFR_RNDN);
        mpfr_set_d(r49057, a, MPFR_RNDN);
        mpfr_sub(r49058, r49057, r49055, MPFR_RNDN);
        mpfr_div(r49059, r49056, r49058, MPFR_RNDN);
        mpfr_mul(r49060, r49053, r49059, MPFR_RNDN);
        mpfr_add(r49061, r49050, r49060, MPFR_RNDN);
        return mpfr_get_d(r49061, MPFR_RNDN);
}

static mpfr_t r49062, r49063, r49064, r49065, r49066, r49067, r49068, r49069, r49070, r49071, r49072, r49073;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49062);
        mpfr_init(r49063);
        mpfr_init_set_str(r49064, "1", 10, MPFR_RNDN);
        mpfr_init(r49065);
        mpfr_init(r49066);
        mpfr_init(r49067);
        mpfr_init(r49068);
        mpfr_init(r49069);
        mpfr_init(r49070);
        mpfr_init(r49071);
        mpfr_init(r49072);
        mpfr_init(r49073);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49062, x, MPFR_RNDN);
        mpfr_set_d(r49063, y, MPFR_RNDN);
        ;
        mpfr_div(r49065, r49063, r49064, MPFR_RNDN);
        mpfr_set_d(r49066, z, MPFR_RNDN);
        mpfr_set_d(r49067, t, MPFR_RNDN);
        mpfr_sub(r49068, r49066, r49067, MPFR_RNDN);
        mpfr_set_d(r49069, a, MPFR_RNDN);
        mpfr_sub(r49070, r49069, r49067, MPFR_RNDN);
        mpfr_div(r49071, r49068, r49070, MPFR_RNDN);
        mpfr_mul(r49072, r49065, r49071, MPFR_RNDN);
        mpfr_add(r49073, r49062, r49072, MPFR_RNDN);
        return mpfr_get_d(r49073, MPFR_RNDN);
}

