#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 r49500 = x;
        float r49501 = y;
        float r49502 = r49500 + r49501;
        float r49503 = z;
        float r49504 = t;
        float r49505 = r49503 - r49504;
        float r49506 = r49505 * r49501;
        float r49507 = a;
        float r49508 = r49507 - r49504;
        float r49509 = r49506 / r49508;
        float r49510 = r49502 - r49509;
        return r49510;
}

double f_id(double x, double y, double z, double t, double a) {
        double r49511 = x;
        double r49512 = y;
        double r49513 = r49511 + r49512;
        double r49514 = z;
        double r49515 = t;
        double r49516 = r49514 - r49515;
        double r49517 = r49516 * r49512;
        double r49518 = a;
        double r49519 = r49518 - r49515;
        double r49520 = r49517 / r49519;
        double r49521 = r49513 - r49520;
        return r49521;
}


double f_of(float x, float y, float z, float t, float a) {
        float r49522 = a;
        float r49523 = -3.3197420561768994e-165;
        bool r49524 = r49522 <= r49523;
        float r49525 = x;
        float r49526 = y;
        float r49527 = r49525 + r49526;
        float r49528 = z;
        float r49529 = t;
        float r49530 = r49528 - r49529;
        float r49531 = cbrt(r49530);
        float r49532 = r49531 * r49531;
        float r49533 = 1;
        float r49534 = r49532 / r49533;
        float r49535 = r49522 - r49529;
        float r49536 = r49535 / r49526;
        float r49537 = r49531 / r49536;
        float r49538 = r49534 * r49537;
        float r49539 = r49527 - r49538;
        float r49540 = 2.1459458012784685e-239;
        bool r49541 = r49522 <= r49540;
        float r49542 = r49528 * r49526;
        float r49543 = r49542 / r49529;
        float r49544 = r49543 + r49525;
        float r49545 = r49526 + r49525;
        float r49546 = r49526 / r49535;
        float r49547 = r49530 * r49546;
        float r49548 = r49545 - r49547;
        float r49549 = r49541 ? r49544 : r49548;
        float r49550 = r49524 ? r49539 : r49549;
        return r49550;
}

double f_od(double x, double y, double z, double t, double a) {
        double r49551 = a;
        double r49552 = -3.3197420561768994e-165;
        bool r49553 = r49551 <= r49552;
        double r49554 = x;
        double r49555 = y;
        double r49556 = r49554 + r49555;
        double r49557 = z;
        double r49558 = t;
        double r49559 = r49557 - r49558;
        double r49560 = cbrt(r49559);
        double r49561 = r49560 * r49560;
        double r49562 = 1;
        double r49563 = r49561 / r49562;
        double r49564 = r49551 - r49558;
        double r49565 = r49564 / r49555;
        double r49566 = r49560 / r49565;
        double r49567 = r49563 * r49566;
        double r49568 = r49556 - r49567;
        double r49569 = 2.1459458012784685e-239;
        bool r49570 = r49551 <= r49569;
        double r49571 = r49557 * r49555;
        double r49572 = r49571 / r49558;
        double r49573 = r49572 + r49554;
        double r49574 = r49555 + r49554;
        double r49575 = r49555 / r49564;
        double r49576 = r49559 * r49575;
        double r49577 = r49574 - r49576;
        double r49578 = r49570 ? r49573 : r49577;
        double r49579 = r49553 ? r49568 : r49578;
        return r49579;
}

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

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1936);
        mpfr_init(r49580);
        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);
}

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

static mpfr_t r49591, 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, r49618, r49619;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1936);
        mpfr_init(r49591);
        mpfr_init_set_str(r49592, "-3.3197420561768994e-165", 10, MPFR_RNDN);
        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_set_str(r49602, "1", 10, MPFR_RNDN);
        mpfr_init(r49603);
        mpfr_init(r49604);
        mpfr_init(r49605);
        mpfr_init(r49606);
        mpfr_init(r49607);
        mpfr_init(r49608);
        mpfr_init_set_str(r49609, "2.1459458012784685e-239", 10, MPFR_RNDN);
        mpfr_init(r49610);
        mpfr_init(r49611);
        mpfr_init(r49612);
        mpfr_init(r49613);
        mpfr_init(r49614);
        mpfr_init(r49615);
        mpfr_init(r49616);
        mpfr_init(r49617);
        mpfr_init(r49618);
        mpfr_init(r49619);
}

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

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

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1936);
        mpfr_init(r49620);
        mpfr_init_set_str(r49621, "-3.3197420561768994e-165", 10, MPFR_RNDN);
        mpfr_init(r49622);
        mpfr_init(r49623);
        mpfr_init(r49624);
        mpfr_init(r49625);
        mpfr_init(r49626);
        mpfr_init(r49627);
        mpfr_init(r49628);
        mpfr_init(r49629);
        mpfr_init(r49630);
        mpfr_init_set_str(r49631, "1", 10, MPFR_RNDN);
        mpfr_init(r49632);
        mpfr_init(r49633);
        mpfr_init(r49634);
        mpfr_init(r49635);
        mpfr_init(r49636);
        mpfr_init(r49637);
        mpfr_init_set_str(r49638, "2.1459458012784685e-239", 10, MPFR_RNDN);
        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);
        mpfr_init(r49648);
}

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

