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

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

double f_if(float x, float y, float z, float t, float a) {
        float r49632 = x;
        float r49633 = y;
        float r49634 = r49632 + r49633;
        float r49635 = z;
        float r49636 = t;
        float r49637 = r49635 - r49636;
        float r49638 = r49637 * r49633;
        float r49639 = a;
        float r49640 = r49639 - r49636;
        float r49641 = r49638 / r49640;
        float r49642 = r49634 - r49641;
        return r49642;
}

double f_id(double x, double y, double z, double t, double a) {
        double r49643 = x;
        double r49644 = y;
        double r49645 = r49643 + r49644;
        double r49646 = z;
        double r49647 = t;
        double r49648 = r49646 - r49647;
        double r49649 = r49648 * r49644;
        double r49650 = a;
        double r49651 = r49650 - r49647;
        double r49652 = r49649 / r49651;
        double r49653 = r49645 - r49652;
        return r49653;
}


double f_of(float x, float y, float z, float t, float a) {
        float r49654 = a;
        float r49655 = -4.193402137698978e-168;
        bool r49656 = r49654 <= r49655;
        float r49657 = x;
        float r49658 = y;
        float r49659 = r49657 + r49658;
        float r49660 = z;
        float r49661 = t;
        float r49662 = r49660 - r49661;
        float r49663 = cbrt(r49662);
        float r49664 = r49663 * r49663;
        float r49665 = 1;
        float r49666 = r49664 / r49665;
        float r49667 = r49654 - r49661;
        float r49668 = r49667 / r49658;
        float r49669 = r49663 / r49668;
        float r49670 = r49666 * r49669;
        float r49671 = r49659 - r49670;
        float r49672 = 2.179660528406852e-239;
        bool r49673 = r49654 <= r49672;
        float r49674 = r49660 * r49658;
        float r49675 = r49674 / r49661;
        float r49676 = r49675 + r49657;
        float r49677 = r49658 + r49657;
        float r49678 = r49658 / r49667;
        float r49679 = r49662 * r49678;
        float r49680 = r49677 - r49679;
        float r49681 = r49673 ? r49676 : r49680;
        float r49682 = r49656 ? r49671 : r49681;
        return r49682;
}

double f_od(double x, double y, double z, double t, double a) {
        double r49683 = a;
        double r49684 = -4.193402137698978e-168;
        bool r49685 = r49683 <= r49684;
        double r49686 = x;
        double r49687 = y;
        double r49688 = r49686 + r49687;
        double r49689 = z;
        double r49690 = t;
        double r49691 = r49689 - r49690;
        double r49692 = cbrt(r49691);
        double r49693 = r49692 * r49692;
        double r49694 = 1;
        double r49695 = r49693 / r49694;
        double r49696 = r49683 - r49690;
        double r49697 = r49696 / r49687;
        double r49698 = r49692 / r49697;
        double r49699 = r49695 * r49698;
        double r49700 = r49688 - r49699;
        double r49701 = 2.179660528406852e-239;
        bool r49702 = r49683 <= r49701;
        double r49703 = r49689 * r49687;
        double r49704 = r49703 / r49690;
        double r49705 = r49704 + r49686;
        double r49706 = r49687 + r49686;
        double r49707 = r49687 / r49696;
        double r49708 = r49691 * r49707;
        double r49709 = r49706 - r49708;
        double r49710 = r49702 ? r49705 : r49709;
        double r49711 = r49685 ? r49700 : r49710;
        return r49711;
}

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 r49712, r49713, r49714, r49715, r49716, r49717, r49718, r49719, r49720, r49721, r49722;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1936);
        mpfr_init(r49712);
        mpfr_init(r49713);
        mpfr_init(r49714);
        mpfr_init(r49715);
        mpfr_init(r49716);
        mpfr_init(r49717);
        mpfr_init(r49718);
        mpfr_init(r49719);
        mpfr_init(r49720);
        mpfr_init(r49721);
        mpfr_init(r49722);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49712, x, MPFR_RNDN);
        mpfr_set_d(r49713, y, MPFR_RNDN);
        mpfr_add(r49714, r49712, r49713, MPFR_RNDN);
        mpfr_set_d(r49715, z, MPFR_RNDN);
        mpfr_set_d(r49716, t, MPFR_RNDN);
        mpfr_sub(r49717, r49715, r49716, MPFR_RNDN);
        mpfr_mul(r49718, r49717, r49713, MPFR_RNDN);
        mpfr_set_d(r49719, a, MPFR_RNDN);
        mpfr_sub(r49720, r49719, r49716, MPFR_RNDN);
        mpfr_div(r49721, r49718, r49720, MPFR_RNDN);
        mpfr_sub(r49722, r49714, r49721, MPFR_RNDN);
        return mpfr_get_d(r49722, MPFR_RNDN);
}

static mpfr_t r49723, r49724, r49725, r49726, r49727, r49728, r49729, r49730, r49731, r49732, r49733, r49734, r49735, r49736, r49737, r49738, r49739, r49740, r49741, r49742, r49743, r49744, r49745, r49746, r49747, r49748, r49749, r49750, r49751;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1936);
        mpfr_init(r49723);
        mpfr_init_set_str(r49724, "-4.193402137698978e-168", 10, MPFR_RNDN);
        mpfr_init(r49725);
        mpfr_init(r49726);
        mpfr_init(r49727);
        mpfr_init(r49728);
        mpfr_init(r49729);
        mpfr_init(r49730);
        mpfr_init(r49731);
        mpfr_init(r49732);
        mpfr_init(r49733);
        mpfr_init_set_str(r49734, "1", 10, MPFR_RNDN);
        mpfr_init(r49735);
        mpfr_init(r49736);
        mpfr_init(r49737);
        mpfr_init(r49738);
        mpfr_init(r49739);
        mpfr_init(r49740);
        mpfr_init_set_str(r49741, "2.179660528406852e-239", 10, MPFR_RNDN);
        mpfr_init(r49742);
        mpfr_init(r49743);
        mpfr_init(r49744);
        mpfr_init(r49745);
        mpfr_init(r49746);
        mpfr_init(r49747);
        mpfr_init(r49748);
        mpfr_init(r49749);
        mpfr_init(r49750);
        mpfr_init(r49751);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49723, a, MPFR_RNDN);
        ;
        mpfr_set_si(r49725, mpfr_cmp(r49723, r49724) <= 0, MPFR_RNDN);
        mpfr_set_d(r49726, x, MPFR_RNDN);
        mpfr_set_d(r49727, y, MPFR_RNDN);
        mpfr_add(r49728, r49726, r49727, MPFR_RNDN);
        mpfr_set_d(r49729, z, MPFR_RNDN);
        mpfr_set_d(r49730, t, MPFR_RNDN);
        mpfr_sub(r49731, r49729, r49730, MPFR_RNDN);
        mpfr_cbrt(r49732, r49731, MPFR_RNDN);
        mpfr_mul(r49733, r49732, r49732, MPFR_RNDN);
        ;
        mpfr_div(r49735, r49733, r49734, MPFR_RNDN);
        mpfr_sub(r49736, r49723, r49730, MPFR_RNDN);
        mpfr_div(r49737, r49736, r49727, MPFR_RNDN);
        mpfr_div(r49738, r49732, r49737, MPFR_RNDN);
        mpfr_mul(r49739, r49735, r49738, MPFR_RNDN);
        mpfr_sub(r49740, r49728, r49739, MPFR_RNDN);
        ;
        mpfr_set_si(r49742, mpfr_cmp(r49723, r49741) <= 0, MPFR_RNDN);
        mpfr_mul(r49743, r49729, r49727, MPFR_RNDN);
        mpfr_div(r49744, r49743, r49730, MPFR_RNDN);
        mpfr_add(r49745, r49744, r49726, MPFR_RNDN);
        mpfr_add(r49746, r49727, r49726, MPFR_RNDN);
        mpfr_div(r49747, r49727, r49736, MPFR_RNDN);
        mpfr_mul(r49748, r49731, r49747, MPFR_RNDN);
        mpfr_sub(r49749, r49746, r49748, MPFR_RNDN);
        if (mpfr_get_si(r49742, MPFR_RNDN)) { mpfr_set(r49750, r49745, MPFR_RNDN); } else { mpfr_set(r49750, r49749, MPFR_RNDN); };
        if (mpfr_get_si(r49725, MPFR_RNDN)) { mpfr_set(r49751, r49740, MPFR_RNDN); } else { mpfr_set(r49751, r49750, MPFR_RNDN); };
        return mpfr_get_d(r49751, MPFR_RNDN);
}

static mpfr_t r49752, r49753, r49754, r49755, r49756, r49757, r49758, r49759, r49760, r49761, r49762, r49763, r49764, r49765, r49766, r49767, r49768, r49769, r49770, r49771, r49772, r49773, r49774, r49775, r49776, r49777, r49778, r49779, r49780;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1936);
        mpfr_init(r49752);
        mpfr_init_set_str(r49753, "-4.193402137698978e-168", 10, MPFR_RNDN);
        mpfr_init(r49754);
        mpfr_init(r49755);
        mpfr_init(r49756);
        mpfr_init(r49757);
        mpfr_init(r49758);
        mpfr_init(r49759);
        mpfr_init(r49760);
        mpfr_init(r49761);
        mpfr_init(r49762);
        mpfr_init_set_str(r49763, "1", 10, MPFR_RNDN);
        mpfr_init(r49764);
        mpfr_init(r49765);
        mpfr_init(r49766);
        mpfr_init(r49767);
        mpfr_init(r49768);
        mpfr_init(r49769);
        mpfr_init_set_str(r49770, "2.179660528406852e-239", 10, MPFR_RNDN);
        mpfr_init(r49771);
        mpfr_init(r49772);
        mpfr_init(r49773);
        mpfr_init(r49774);
        mpfr_init(r49775);
        mpfr_init(r49776);
        mpfr_init(r49777);
        mpfr_init(r49778);
        mpfr_init(r49779);
        mpfr_init(r49780);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49752, a, MPFR_RNDN);
        ;
        mpfr_set_si(r49754, mpfr_cmp(r49752, r49753) <= 0, MPFR_RNDN);
        mpfr_set_d(r49755, x, MPFR_RNDN);
        mpfr_set_d(r49756, y, MPFR_RNDN);
        mpfr_add(r49757, r49755, r49756, MPFR_RNDN);
        mpfr_set_d(r49758, z, MPFR_RNDN);
        mpfr_set_d(r49759, t, MPFR_RNDN);
        mpfr_sub(r49760, r49758, r49759, MPFR_RNDN);
        mpfr_cbrt(r49761, r49760, MPFR_RNDN);
        mpfr_mul(r49762, r49761, r49761, MPFR_RNDN);
        ;
        mpfr_div(r49764, r49762, r49763, MPFR_RNDN);
        mpfr_sub(r49765, r49752, r49759, MPFR_RNDN);
        mpfr_div(r49766, r49765, r49756, MPFR_RNDN);
        mpfr_div(r49767, r49761, r49766, MPFR_RNDN);
        mpfr_mul(r49768, r49764, r49767, MPFR_RNDN);
        mpfr_sub(r49769, r49757, r49768, MPFR_RNDN);
        ;
        mpfr_set_si(r49771, mpfr_cmp(r49752, r49770) <= 0, MPFR_RNDN);
        mpfr_mul(r49772, r49758, r49756, MPFR_RNDN);
        mpfr_div(r49773, r49772, r49759, MPFR_RNDN);
        mpfr_add(r49774, r49773, r49755, MPFR_RNDN);
        mpfr_add(r49775, r49756, r49755, MPFR_RNDN);
        mpfr_div(r49776, r49756, r49765, MPFR_RNDN);
        mpfr_mul(r49777, r49760, r49776, MPFR_RNDN);
        mpfr_sub(r49778, r49775, r49777, MPFR_RNDN);
        if (mpfr_get_si(r49771, MPFR_RNDN)) { mpfr_set(r49779, r49774, MPFR_RNDN); } else { mpfr_set(r49779, r49778, MPFR_RNDN); };
        if (mpfr_get_si(r49754, MPFR_RNDN)) { mpfr_set(r49780, r49769, MPFR_RNDN); } else { mpfr_set(r49780, r49779, MPFR_RNDN); };
        return mpfr_get_d(r49780, MPFR_RNDN);
}

