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

char *name = "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1";

double f_if(float x, float y, float z, float t) {
        float r26516 = x;
        float r26517 = y;
        float r26518 = z;
        float r26519 = r26517 / r26518;
        float r26520 = t;
        float r26521 = r26519 * r26520;
        float r26522 = r26521 / r26520;
        float r26523 = r26516 * r26522;
        return r26523;
}

double f_id(double x, double y, double z, double t) {
        double r26524 = x;
        double r26525 = y;
        double r26526 = z;
        double r26527 = r26525 / r26526;
        double r26528 = t;
        double r26529 = r26527 * r26528;
        double r26530 = r26529 / r26528;
        double r26531 = r26524 * r26530;
        return r26531;
}


double f_of(float x, float y, float z, float __attribute__((unused)) t) {
        float r26532 = y;
        float r26533 = x;
        float r26534 = r26532 * r26533;
        float r26535 = -5.856186853950634e+206;
        bool r26536 = r26534 <= r26535;
        float r26537 = z;
        float r26538 = r26532 / r26537;
        float r26539 = r26533 * r26538;
        float r26540 = -8.229232975891601e-171;
        bool r26541 = r26534 <= r26540;
        float r26542 = r26534 / r26537;
        float r26543 = 4.829633011818158e-230;
        bool r26544 = r26534 <= r26543;
        float r26545 = 2.2050564879853263e+235;
        bool r26546 = r26534 <= r26545;
        float r26547 = r26537 / r26533;
        float r26548 = r26532 / r26547;
        float r26549 = r26546 ? r26542 : r26548;
        float r26550 = r26544 ? r26539 : r26549;
        float r26551 = r26541 ? r26542 : r26550;
        float r26552 = r26536 ? r26539 : r26551;
        return r26552;
}

double f_od(double x, double y, double z, double __attribute__((unused)) t) {
        double r26553 = y;
        double r26554 = x;
        double r26555 = r26553 * r26554;
        double r26556 = -5.856186853950634e+206;
        bool r26557 = r26555 <= r26556;
        double r26558 = z;
        double r26559 = r26553 / r26558;
        double r26560 = r26554 * r26559;
        double r26561 = -8.229232975891601e-171;
        bool r26562 = r26555 <= r26561;
        double r26563 = r26555 / r26558;
        double r26564 = 4.829633011818158e-230;
        bool r26565 = r26555 <= r26564;
        double r26566 = 2.2050564879853263e+235;
        bool r26567 = r26555 <= r26566;
        double r26568 = r26558 / r26554;
        double r26569 = r26553 / r26568;
        double r26570 = r26567 ? r26563 : r26569;
        double r26571 = r26565 ? r26560 : r26570;
        double r26572 = r26562 ? r26563 : r26571;
        double r26573 = r26557 ? r26560 : r26572;
        return r26573;
}

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 r26574, r26575, r26576, r26577, r26578, r26579, r26580, r26581;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26574);
        mpfr_init(r26575);
        mpfr_init(r26576);
        mpfr_init(r26577);
        mpfr_init(r26578);
        mpfr_init(r26579);
        mpfr_init(r26580);
        mpfr_init(r26581);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r26574, x, MPFR_RNDN);
        mpfr_set_d(r26575, y, MPFR_RNDN);
        mpfr_set_d(r26576, z, MPFR_RNDN);
        mpfr_div(r26577, r26575, r26576, MPFR_RNDN);
        mpfr_set_d(r26578, t, MPFR_RNDN);
        mpfr_mul(r26579, r26577, r26578, MPFR_RNDN);
        mpfr_div(r26580, r26579, r26578, MPFR_RNDN);
        mpfr_mul(r26581, r26574, r26580, MPFR_RNDN);
        return mpfr_get_d(r26581, MPFR_RNDN);
}

static mpfr_t r26582, r26583, r26584, r26585, r26586, r26587, r26588, r26589, r26590, r26591, r26592, r26593, r26594, r26595, r26596, r26597, r26598, r26599, r26600, r26601, r26602;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26582);
        mpfr_init(r26583);
        mpfr_init(r26584);
        mpfr_init_set_str(r26585, "-5.856186853950634e+206", 10, MPFR_RNDN);
        mpfr_init(r26586);
        mpfr_init(r26587);
        mpfr_init(r26588);
        mpfr_init(r26589);
        mpfr_init_set_str(r26590, "-8.229232975891601e-171", 10, MPFR_RNDN);
        mpfr_init(r26591);
        mpfr_init(r26592);
        mpfr_init_set_str(r26593, "4.829633011818158e-230", 10, MPFR_RNDN);
        mpfr_init(r26594);
        mpfr_init_set_str(r26595, "2.2050564879853263e+235", 10, MPFR_RNDN);
        mpfr_init(r26596);
        mpfr_init(r26597);
        mpfr_init(r26598);
        mpfr_init(r26599);
        mpfr_init(r26600);
        mpfr_init(r26601);
        mpfr_init(r26602);
}

double f_fm(double x, double y, double z, double __attribute__((unused)) t) {
        mpfr_set_d(r26582, y, MPFR_RNDN);
        mpfr_set_d(r26583, x, MPFR_RNDN);
        mpfr_mul(r26584, r26582, r26583, MPFR_RNDN);
        ;
        mpfr_set_si(r26586, mpfr_cmp(r26584, r26585) <= 0, MPFR_RNDN);
        mpfr_set_d(r26587, z, MPFR_RNDN);
        mpfr_div(r26588, r26582, r26587, MPFR_RNDN);
        mpfr_mul(r26589, r26583, r26588, MPFR_RNDN);
        ;
        mpfr_set_si(r26591, mpfr_cmp(r26584, r26590) <= 0, MPFR_RNDN);
        mpfr_div(r26592, r26584, r26587, MPFR_RNDN);
        ;
        mpfr_set_si(r26594, mpfr_cmp(r26584, r26593) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26596, mpfr_cmp(r26584, r26595) <= 0, MPFR_RNDN);
        mpfr_div(r26597, r26587, r26583, MPFR_RNDN);
        mpfr_div(r26598, r26582, r26597, MPFR_RNDN);
        if (mpfr_get_si(r26596, MPFR_RNDN)) { mpfr_set(r26599, r26592, MPFR_RNDN); } else { mpfr_set(r26599, r26598, MPFR_RNDN); };
        if (mpfr_get_si(r26594, MPFR_RNDN)) { mpfr_set(r26600, r26589, MPFR_RNDN); } else { mpfr_set(r26600, r26599, MPFR_RNDN); };
        if (mpfr_get_si(r26591, MPFR_RNDN)) { mpfr_set(r26601, r26592, MPFR_RNDN); } else { mpfr_set(r26601, r26600, MPFR_RNDN); };
        if (mpfr_get_si(r26586, MPFR_RNDN)) { mpfr_set(r26602, r26589, MPFR_RNDN); } else { mpfr_set(r26602, r26601, MPFR_RNDN); };
        return mpfr_get_d(r26602, MPFR_RNDN);
}

static mpfr_t r26603, r26604, r26605, r26606, r26607, r26608, r26609, r26610, r26611, r26612, r26613, r26614, r26615, r26616, r26617, r26618, r26619, r26620, r26621, r26622, r26623;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26603);
        mpfr_init(r26604);
        mpfr_init(r26605);
        mpfr_init_set_str(r26606, "-5.856186853950634e+206", 10, MPFR_RNDN);
        mpfr_init(r26607);
        mpfr_init(r26608);
        mpfr_init(r26609);
        mpfr_init(r26610);
        mpfr_init_set_str(r26611, "-8.229232975891601e-171", 10, MPFR_RNDN);
        mpfr_init(r26612);
        mpfr_init(r26613);
        mpfr_init_set_str(r26614, "4.829633011818158e-230", 10, MPFR_RNDN);
        mpfr_init(r26615);
        mpfr_init_set_str(r26616, "2.2050564879853263e+235", 10, MPFR_RNDN);
        mpfr_init(r26617);
        mpfr_init(r26618);
        mpfr_init(r26619);
        mpfr_init(r26620);
        mpfr_init(r26621);
        mpfr_init(r26622);
        mpfr_init(r26623);
}

double f_dm(double x, double y, double z, double __attribute__((unused)) t) {
        mpfr_set_d(r26603, y, MPFR_RNDN);
        mpfr_set_d(r26604, x, MPFR_RNDN);
        mpfr_mul(r26605, r26603, r26604, MPFR_RNDN);
        ;
        mpfr_set_si(r26607, mpfr_cmp(r26605, r26606) <= 0, MPFR_RNDN);
        mpfr_set_d(r26608, z, MPFR_RNDN);
        mpfr_div(r26609, r26603, r26608, MPFR_RNDN);
        mpfr_mul(r26610, r26604, r26609, MPFR_RNDN);
        ;
        mpfr_set_si(r26612, mpfr_cmp(r26605, r26611) <= 0, MPFR_RNDN);
        mpfr_div(r26613, r26605, r26608, MPFR_RNDN);
        ;
        mpfr_set_si(r26615, mpfr_cmp(r26605, r26614) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26617, mpfr_cmp(r26605, r26616) <= 0, MPFR_RNDN);
        mpfr_div(r26618, r26608, r26604, MPFR_RNDN);
        mpfr_div(r26619, r26603, r26618, MPFR_RNDN);
        if (mpfr_get_si(r26617, MPFR_RNDN)) { mpfr_set(r26620, r26613, MPFR_RNDN); } else { mpfr_set(r26620, r26619, MPFR_RNDN); };
        if (mpfr_get_si(r26615, MPFR_RNDN)) { mpfr_set(r26621, r26610, MPFR_RNDN); } else { mpfr_set(r26621, r26620, MPFR_RNDN); };
        if (mpfr_get_si(r26612, MPFR_RNDN)) { mpfr_set(r26622, r26613, MPFR_RNDN); } else { mpfr_set(r26622, r26621, MPFR_RNDN); };
        if (mpfr_get_si(r26607, MPFR_RNDN)) { mpfr_set(r26623, r26610, MPFR_RNDN); } else { mpfr_set(r26623, r26622, MPFR_RNDN); };
        return mpfr_get_d(r26623, MPFR_RNDN);
}

