#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 r49507 = x;
        float r49508 = y;
        float r49509 = r49507 + r49508;
        float r49510 = z;
        float r49511 = t;
        float r49512 = r49510 - r49511;
        float r49513 = r49512 * r49508;
        float r49514 = a;
        float r49515 = r49514 - r49511;
        float r49516 = r49513 / r49515;
        float r49517 = r49509 - r49516;
        return r49517;
}

double f_id(double x, double y, double z, double t, double a) {
        double r49518 = x;
        double r49519 = y;
        double r49520 = r49518 + r49519;
        double r49521 = z;
        double r49522 = t;
        double r49523 = r49521 - r49522;
        double r49524 = r49523 * r49519;
        double r49525 = a;
        double r49526 = r49525 - r49522;
        double r49527 = r49524 / r49526;
        double r49528 = r49520 - r49527;
        return r49528;
}


double f_of(float x, float y, float z, float t, float a) {
        float r49529 = x;
        float r49530 = y;
        float r49531 = r49529 + r49530;
        float r49532 = z;
        float r49533 = t;
        float r49534 = r49532 - r49533;
        float r49535 = r49534 * r49530;
        float r49536 = a;
        float r49537 = r49536 - r49533;
        float r49538 = r49535 / r49537;
        float r49539 = r49531 - r49538;
        float r49540 = -5.630417899394863e-287;
        bool r49541 = r49539 <= r49540;
        float r49542 = cbrt(r49534);
        float r49543 = r49542 * r49542;
        float r49544 = r49537 / r49530;
        float r49545 = r49544 / r49542;
        float r49546 = r49543 / r49545;
        float r49547 = r49531 - r49546;
        float r49548 = 7.38922058035238e-171;
        bool r49549 = r49539 <= r49548;
        float r49550 = r49532 * r49530;
        float r49551 = r49550 / r49533;
        float r49552 = r49551 + r49529;
        float r49553 = r49549 ? r49552 : r49547;
        float r49554 = r49541 ? r49547 : r49553;
        return r49554;
}

double f_od(double x, double y, double z, double t, double a) {
        double r49555 = x;
        double r49556 = y;
        double r49557 = r49555 + r49556;
        double r49558 = z;
        double r49559 = t;
        double r49560 = r49558 - r49559;
        double r49561 = r49560 * r49556;
        double r49562 = a;
        double r49563 = r49562 - r49559;
        double r49564 = r49561 / r49563;
        double r49565 = r49557 - r49564;
        double r49566 = -5.630417899394863e-287;
        bool r49567 = r49565 <= r49566;
        double r49568 = cbrt(r49560);
        double r49569 = r49568 * r49568;
        double r49570 = r49563 / r49556;
        double r49571 = r49570 / r49568;
        double r49572 = r49569 / r49571;
        double r49573 = r49557 - r49572;
        double r49574 = 7.38922058035238e-171;
        bool r49575 = r49565 <= r49574;
        double r49576 = r49558 * r49556;
        double r49577 = r49576 / r49559;
        double r49578 = r49577 + r49555;
        double r49579 = r49575 ? r49578 : r49573;
        double r49580 = r49567 ? r49573 : r49579;
        return r49580;
}

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 r49581, r49582, r49583, r49584, r49585, r49586, r49587, r49588, r49589, r49590, r49591;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1936);
        mpfr_init(r49581);
        mpfr_init(r49582);
        mpfr_init(r49583);
        mpfr_init(r49584);
        mpfr_init(r49585);
        mpfr_init(r49586);
        mpfr_init(r49587);
        mpfr_init(r49588);
        mpfr_init(r49589);
        mpfr_init(r49590);
        mpfr_init(r49591);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49581, x, MPFR_RNDN);
        mpfr_set_d(r49582, y, MPFR_RNDN);
        mpfr_add(r49583, r49581, r49582, MPFR_RNDN);
        mpfr_set_d(r49584, z, MPFR_RNDN);
        mpfr_set_d(r49585, t, MPFR_RNDN);
        mpfr_sub(r49586, r49584, r49585, MPFR_RNDN);
        mpfr_mul(r49587, r49586, r49582, MPFR_RNDN);
        mpfr_set_d(r49588, a, MPFR_RNDN);
        mpfr_sub(r49589, r49588, r49585, MPFR_RNDN);
        mpfr_div(r49590, r49587, r49589, MPFR_RNDN);
        mpfr_sub(r49591, r49583, r49590, MPFR_RNDN);
        return mpfr_get_d(r49591, MPFR_RNDN);
}

static mpfr_t r49592, r49593, r49594, r49595, r49596, r49597, r49598, r49599, r49600, r49601, r49602, r49603, r49604, r49605, r49606, r49607, r49608, r49609, r49610, r49611, r49612, r49613, r49614, r49615, r49616, r49617;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1936);
        mpfr_init(r49592);
        mpfr_init(r49593);
        mpfr_init(r49594);
        mpfr_init(r49595);
        mpfr_init(r49596);
        mpfr_init(r49597);
        mpfr_init(r49598);
        mpfr_init(r49599);
        mpfr_init(r49600);
        mpfr_init(r49601);
        mpfr_init(r49602);
        mpfr_init_set_str(r49603, "-5.630417899394863e-287", 10, MPFR_RNDN);
        mpfr_init(r49604);
        mpfr_init(r49605);
        mpfr_init(r49606);
        mpfr_init(r49607);
        mpfr_init(r49608);
        mpfr_init(r49609);
        mpfr_init(r49610);
        mpfr_init_set_str(r49611, "7.38922058035238e-171", 10, MPFR_RNDN);
        mpfr_init(r49612);
        mpfr_init(r49613);
        mpfr_init(r49614);
        mpfr_init(r49615);
        mpfr_init(r49616);
        mpfr_init(r49617);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49592, x, MPFR_RNDN);
        mpfr_set_d(r49593, y, MPFR_RNDN);
        mpfr_add(r49594, r49592, r49593, MPFR_RNDN);
        mpfr_set_d(r49595, z, MPFR_RNDN);
        mpfr_set_d(r49596, t, MPFR_RNDN);
        mpfr_sub(r49597, r49595, r49596, MPFR_RNDN);
        mpfr_mul(r49598, r49597, r49593, MPFR_RNDN);
        mpfr_set_d(r49599, a, MPFR_RNDN);
        mpfr_sub(r49600, r49599, r49596, MPFR_RNDN);
        mpfr_div(r49601, r49598, r49600, MPFR_RNDN);
        mpfr_sub(r49602, r49594, r49601, MPFR_RNDN);
        ;
        mpfr_set_si(r49604, mpfr_cmp(r49602, r49603) <= 0, MPFR_RNDN);
        mpfr_cbrt(r49605, r49597, MPFR_RNDN);
        mpfr_mul(r49606, r49605, r49605, MPFR_RNDN);
        mpfr_div(r49607, r49600, r49593, MPFR_RNDN);
        mpfr_div(r49608, r49607, r49605, MPFR_RNDN);
        mpfr_div(r49609, r49606, r49608, MPFR_RNDN);
        mpfr_sub(r49610, r49594, r49609, MPFR_RNDN);
        ;
        mpfr_set_si(r49612, mpfr_cmp(r49602, r49611) <= 0, MPFR_RNDN);
        mpfr_mul(r49613, r49595, r49593, MPFR_RNDN);
        mpfr_div(r49614, r49613, r49596, MPFR_RNDN);
        mpfr_add(r49615, r49614, r49592, MPFR_RNDN);
        if (mpfr_get_si(r49612, MPFR_RNDN)) { mpfr_set(r49616, r49615, MPFR_RNDN); } else { mpfr_set(r49616, r49610, MPFR_RNDN); };
        if (mpfr_get_si(r49604, MPFR_RNDN)) { mpfr_set(r49617, r49610, MPFR_RNDN); } else { mpfr_set(r49617, r49616, MPFR_RNDN); };
        return mpfr_get_d(r49617, MPFR_RNDN);
}

static mpfr_t r49618, r49619, r49620, r49621, r49622, r49623, r49624, r49625, r49626, r49627, r49628, r49629, r49630, r49631, r49632, r49633, r49634, r49635, r49636, r49637, r49638, r49639, r49640, r49641, r49642, r49643;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1936);
        mpfr_init(r49618);
        mpfr_init(r49619);
        mpfr_init(r49620);
        mpfr_init(r49621);
        mpfr_init(r49622);
        mpfr_init(r49623);
        mpfr_init(r49624);
        mpfr_init(r49625);
        mpfr_init(r49626);
        mpfr_init(r49627);
        mpfr_init(r49628);
        mpfr_init_set_str(r49629, "-5.630417899394863e-287", 10, MPFR_RNDN);
        mpfr_init(r49630);
        mpfr_init(r49631);
        mpfr_init(r49632);
        mpfr_init(r49633);
        mpfr_init(r49634);
        mpfr_init(r49635);
        mpfr_init(r49636);
        mpfr_init_set_str(r49637, "7.38922058035238e-171", 10, MPFR_RNDN);
        mpfr_init(r49638);
        mpfr_init(r49639);
        mpfr_init(r49640);
        mpfr_init(r49641);
        mpfr_init(r49642);
        mpfr_init(r49643);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49618, x, MPFR_RNDN);
        mpfr_set_d(r49619, y, MPFR_RNDN);
        mpfr_add(r49620, r49618, r49619, MPFR_RNDN);
        mpfr_set_d(r49621, z, MPFR_RNDN);
        mpfr_set_d(r49622, t, MPFR_RNDN);
        mpfr_sub(r49623, r49621, r49622, MPFR_RNDN);
        mpfr_mul(r49624, r49623, r49619, MPFR_RNDN);
        mpfr_set_d(r49625, a, MPFR_RNDN);
        mpfr_sub(r49626, r49625, r49622, MPFR_RNDN);
        mpfr_div(r49627, r49624, r49626, MPFR_RNDN);
        mpfr_sub(r49628, r49620, r49627, MPFR_RNDN);
        ;
        mpfr_set_si(r49630, mpfr_cmp(r49628, r49629) <= 0, MPFR_RNDN);
        mpfr_cbrt(r49631, r49623, MPFR_RNDN);
        mpfr_mul(r49632, r49631, r49631, MPFR_RNDN);
        mpfr_div(r49633, r49626, r49619, MPFR_RNDN);
        mpfr_div(r49634, r49633, r49631, MPFR_RNDN);
        mpfr_div(r49635, r49632, r49634, MPFR_RNDN);
        mpfr_sub(r49636, r49620, r49635, MPFR_RNDN);
        ;
        mpfr_set_si(r49638, mpfr_cmp(r49628, r49637) <= 0, MPFR_RNDN);
        mpfr_mul(r49639, r49621, r49619, MPFR_RNDN);
        mpfr_div(r49640, r49639, r49622, MPFR_RNDN);
        mpfr_add(r49641, r49640, r49618, MPFR_RNDN);
        if (mpfr_get_si(r49638, MPFR_RNDN)) { mpfr_set(r49642, r49641, MPFR_RNDN); } else { mpfr_set(r49642, r49636, MPFR_RNDN); };
        if (mpfr_get_si(r49630, MPFR_RNDN)) { mpfr_set(r49643, r49636, MPFR_RNDN); } else { mpfr_set(r49643, r49642, MPFR_RNDN); };
        return mpfr_get_d(r49643, MPFR_RNDN);
}

