#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 r49264 = x;
        float r49265 = y;
        float r49266 = r49264 + r49265;
        float r49267 = z;
        float r49268 = t;
        float r49269 = r49267 - r49268;
        float r49270 = r49269 * r49265;
        float r49271 = a;
        float r49272 = r49271 - r49268;
        float r49273 = r49270 / r49272;
        float r49274 = r49266 - r49273;
        return r49274;
}

double f_id(double x, double y, double z, double t, double a) {
        double r49275 = x;
        double r49276 = y;
        double r49277 = r49275 + r49276;
        double r49278 = z;
        double r49279 = t;
        double r49280 = r49278 - r49279;
        double r49281 = r49280 * r49276;
        double r49282 = a;
        double r49283 = r49282 - r49279;
        double r49284 = r49281 / r49283;
        double r49285 = r49277 - r49284;
        return r49285;
}


double f_of(float x, float y, float z, float t, float a) {
        float r49286 = a;
        float r49287 = -3.3197420561768994e-165;
        bool r49288 = r49286 <= r49287;
        float r49289 = x;
        float r49290 = y;
        float r49291 = r49289 + r49290;
        float r49292 = z;
        float r49293 = t;
        float r49294 = r49292 - r49293;
        float r49295 = cbrt(r49294);
        float r49296 = r49295 * r49295;
        float r49297 = 1;
        float r49298 = r49296 / r49297;
        float r49299 = r49286 - r49293;
        float r49300 = r49299 / r49290;
        float r49301 = r49295 / r49300;
        float r49302 = r49298 * r49301;
        float r49303 = r49291 - r49302;
        float r49304 = 2.1459458012784685e-239;
        bool r49305 = r49286 <= r49304;
        float r49306 = r49292 * r49290;
        float r49307 = r49306 / r49293;
        float r49308 = r49307 + r49289;
        float r49309 = r49290 + r49289;
        float r49310 = r49290 / r49299;
        float r49311 = r49294 * r49310;
        float r49312 = r49309 - r49311;
        float r49313 = r49305 ? r49308 : r49312;
        float r49314 = r49288 ? r49303 : r49313;
        return r49314;
}

double f_od(double x, double y, double z, double t, double a) {
        double r49315 = a;
        double r49316 = -3.3197420561768994e-165;
        bool r49317 = r49315 <= r49316;
        double r49318 = x;
        double r49319 = y;
        double r49320 = r49318 + r49319;
        double r49321 = z;
        double r49322 = t;
        double r49323 = r49321 - r49322;
        double r49324 = cbrt(r49323);
        double r49325 = r49324 * r49324;
        double r49326 = 1;
        double r49327 = r49325 / r49326;
        double r49328 = r49315 - r49322;
        double r49329 = r49328 / r49319;
        double r49330 = r49324 / r49329;
        double r49331 = r49327 * r49330;
        double r49332 = r49320 - r49331;
        double r49333 = 2.1459458012784685e-239;
        bool r49334 = r49315 <= r49333;
        double r49335 = r49321 * r49319;
        double r49336 = r49335 / r49322;
        double r49337 = r49336 + r49318;
        double r49338 = r49319 + r49318;
        double r49339 = r49319 / r49328;
        double r49340 = r49323 * r49339;
        double r49341 = r49338 - r49340;
        double r49342 = r49334 ? r49337 : r49341;
        double r49343 = r49317 ? r49332 : r49342;
        return r49343;
}

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 r49344, r49345, r49346, r49347, r49348, r49349, r49350, r49351, r49352, r49353, r49354;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1936);
        mpfr_init(r49344);
        mpfr_init(r49345);
        mpfr_init(r49346);
        mpfr_init(r49347);
        mpfr_init(r49348);
        mpfr_init(r49349);
        mpfr_init(r49350);
        mpfr_init(r49351);
        mpfr_init(r49352);
        mpfr_init(r49353);
        mpfr_init(r49354);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49344, x, MPFR_RNDN);
        mpfr_set_d(r49345, y, MPFR_RNDN);
        mpfr_add(r49346, r49344, r49345, MPFR_RNDN);
        mpfr_set_d(r49347, z, MPFR_RNDN);
        mpfr_set_d(r49348, t, MPFR_RNDN);
        mpfr_sub(r49349, r49347, r49348, MPFR_RNDN);
        mpfr_mul(r49350, r49349, r49345, MPFR_RNDN);
        mpfr_set_d(r49351, a, MPFR_RNDN);
        mpfr_sub(r49352, r49351, r49348, MPFR_RNDN);
        mpfr_div(r49353, r49350, r49352, MPFR_RNDN);
        mpfr_sub(r49354, r49346, r49353, MPFR_RNDN);
        return mpfr_get_d(r49354, MPFR_RNDN);
}

static mpfr_t r49355, r49356, r49357, r49358, r49359, r49360, r49361, r49362, r49363, r49364, r49365, r49366, r49367, r49368, r49369, r49370, r49371, r49372, r49373, r49374, r49375, r49376, r49377, r49378, r49379, r49380, r49381, r49382, r49383;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1936);
        mpfr_init(r49355);
        mpfr_init_set_str(r49356, "-3.3197420561768994e-165", 10, MPFR_RNDN);
        mpfr_init(r49357);
        mpfr_init(r49358);
        mpfr_init(r49359);
        mpfr_init(r49360);
        mpfr_init(r49361);
        mpfr_init(r49362);
        mpfr_init(r49363);
        mpfr_init(r49364);
        mpfr_init(r49365);
        mpfr_init_set_str(r49366, "1", 10, MPFR_RNDN);
        mpfr_init(r49367);
        mpfr_init(r49368);
        mpfr_init(r49369);
        mpfr_init(r49370);
        mpfr_init(r49371);
        mpfr_init(r49372);
        mpfr_init_set_str(r49373, "2.1459458012784685e-239", 10, MPFR_RNDN);
        mpfr_init(r49374);
        mpfr_init(r49375);
        mpfr_init(r49376);
        mpfr_init(r49377);
        mpfr_init(r49378);
        mpfr_init(r49379);
        mpfr_init(r49380);
        mpfr_init(r49381);
        mpfr_init(r49382);
        mpfr_init(r49383);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49355, a, MPFR_RNDN);
        ;
        mpfr_set_si(r49357, mpfr_cmp(r49355, r49356) <= 0, MPFR_RNDN);
        mpfr_set_d(r49358, x, MPFR_RNDN);
        mpfr_set_d(r49359, y, MPFR_RNDN);
        mpfr_add(r49360, r49358, r49359, MPFR_RNDN);
        mpfr_set_d(r49361, z, MPFR_RNDN);
        mpfr_set_d(r49362, t, MPFR_RNDN);
        mpfr_sub(r49363, r49361, r49362, MPFR_RNDN);
        mpfr_cbrt(r49364, r49363, MPFR_RNDN);
        mpfr_mul(r49365, r49364, r49364, MPFR_RNDN);
        ;
        mpfr_div(r49367, r49365, r49366, MPFR_RNDN);
        mpfr_sub(r49368, r49355, r49362, MPFR_RNDN);
        mpfr_div(r49369, r49368, r49359, MPFR_RNDN);
        mpfr_div(r49370, r49364, r49369, MPFR_RNDN);
        mpfr_mul(r49371, r49367, r49370, MPFR_RNDN);
        mpfr_sub(r49372, r49360, r49371, MPFR_RNDN);
        ;
        mpfr_set_si(r49374, mpfr_cmp(r49355, r49373) <= 0, MPFR_RNDN);
        mpfr_mul(r49375, r49361, r49359, MPFR_RNDN);
        mpfr_div(r49376, r49375, r49362, MPFR_RNDN);
        mpfr_add(r49377, r49376, r49358, MPFR_RNDN);
        mpfr_add(r49378, r49359, r49358, MPFR_RNDN);
        mpfr_div(r49379, r49359, r49368, MPFR_RNDN);
        mpfr_mul(r49380, r49363, r49379, MPFR_RNDN);
        mpfr_sub(r49381, r49378, r49380, MPFR_RNDN);
        if (mpfr_get_si(r49374, MPFR_RNDN)) { mpfr_set(r49382, r49377, MPFR_RNDN); } else { mpfr_set(r49382, r49381, MPFR_RNDN); };
        if (mpfr_get_si(r49357, MPFR_RNDN)) { mpfr_set(r49383, r49372, MPFR_RNDN); } else { mpfr_set(r49383, r49382, MPFR_RNDN); };
        return mpfr_get_d(r49383, MPFR_RNDN);
}

static mpfr_t r49384, r49385, r49386, r49387, r49388, r49389, r49390, r49391, r49392, r49393, r49394, r49395, r49396, r49397, r49398, r49399, r49400, r49401, r49402, r49403, r49404, r49405, r49406, r49407, r49408, r49409, r49410, r49411, r49412;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1936);
        mpfr_init(r49384);
        mpfr_init_set_str(r49385, "-3.3197420561768994e-165", 10, MPFR_RNDN);
        mpfr_init(r49386);
        mpfr_init(r49387);
        mpfr_init(r49388);
        mpfr_init(r49389);
        mpfr_init(r49390);
        mpfr_init(r49391);
        mpfr_init(r49392);
        mpfr_init(r49393);
        mpfr_init(r49394);
        mpfr_init_set_str(r49395, "1", 10, MPFR_RNDN);
        mpfr_init(r49396);
        mpfr_init(r49397);
        mpfr_init(r49398);
        mpfr_init(r49399);
        mpfr_init(r49400);
        mpfr_init(r49401);
        mpfr_init_set_str(r49402, "2.1459458012784685e-239", 10, MPFR_RNDN);
        mpfr_init(r49403);
        mpfr_init(r49404);
        mpfr_init(r49405);
        mpfr_init(r49406);
        mpfr_init(r49407);
        mpfr_init(r49408);
        mpfr_init(r49409);
        mpfr_init(r49410);
        mpfr_init(r49411);
        mpfr_init(r49412);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49384, a, MPFR_RNDN);
        ;
        mpfr_set_si(r49386, mpfr_cmp(r49384, r49385) <= 0, MPFR_RNDN);
        mpfr_set_d(r49387, x, MPFR_RNDN);
        mpfr_set_d(r49388, y, MPFR_RNDN);
        mpfr_add(r49389, r49387, r49388, MPFR_RNDN);
        mpfr_set_d(r49390, z, MPFR_RNDN);
        mpfr_set_d(r49391, t, MPFR_RNDN);
        mpfr_sub(r49392, r49390, r49391, MPFR_RNDN);
        mpfr_cbrt(r49393, r49392, MPFR_RNDN);
        mpfr_mul(r49394, r49393, r49393, MPFR_RNDN);
        ;
        mpfr_div(r49396, r49394, r49395, MPFR_RNDN);
        mpfr_sub(r49397, r49384, r49391, MPFR_RNDN);
        mpfr_div(r49398, r49397, r49388, MPFR_RNDN);
        mpfr_div(r49399, r49393, r49398, MPFR_RNDN);
        mpfr_mul(r49400, r49396, r49399, MPFR_RNDN);
        mpfr_sub(r49401, r49389, r49400, MPFR_RNDN);
        ;
        mpfr_set_si(r49403, mpfr_cmp(r49384, r49402) <= 0, MPFR_RNDN);
        mpfr_mul(r49404, r49390, r49388, MPFR_RNDN);
        mpfr_div(r49405, r49404, r49391, MPFR_RNDN);
        mpfr_add(r49406, r49405, r49387, MPFR_RNDN);
        mpfr_add(r49407, r49388, r49387, MPFR_RNDN);
        mpfr_div(r49408, r49388, r49397, MPFR_RNDN);
        mpfr_mul(r49409, r49392, r49408, MPFR_RNDN);
        mpfr_sub(r49410, r49407, r49409, MPFR_RNDN);
        if (mpfr_get_si(r49403, MPFR_RNDN)) { mpfr_set(r49411, r49406, MPFR_RNDN); } else { mpfr_set(r49411, r49410, MPFR_RNDN); };
        if (mpfr_get_si(r49386, MPFR_RNDN)) { mpfr_set(r49412, r49401, MPFR_RNDN); } else { mpfr_set(r49412, r49411, MPFR_RNDN); };
        return mpfr_get_d(r49412, MPFR_RNDN);
}

