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

char *name = "Diagrams.Solve.Polynomial:quartForm  from diagrams-solve-0.1, B";

double f_if(float x, float y, float z, float t) {
        float r53460 = 1.0;
        float r53461 = 8.0;
        float r53462 = r53460 / r53461;
        float r53463 = x;
        float r53464 = r53462 * r53463;
        float r53465 = y;
        float r53466 = z;
        float r53467 = r53465 * r53466;
        float r53468 = 2.0;
        float r53469 = r53467 / r53468;
        float r53470 = r53464 - r53469;
        float r53471 = t;
        float r53472 = r53470 + r53471;
        return r53472;
}

double f_id(double x, double y, double z, double t) {
        double r53473 = 1.0;
        double r53474 = 8.0;
        double r53475 = r53473 / r53474;
        double r53476 = x;
        double r53477 = r53475 * r53476;
        double r53478 = y;
        double r53479 = z;
        double r53480 = r53478 * r53479;
        double r53481 = 2.0;
        double r53482 = r53480 / r53481;
        double r53483 = r53477 - r53482;
        double r53484 = t;
        double r53485 = r53483 + r53484;
        return r53485;
}


double f_of(float x, float y, float z, float t) {
        float r53486 = 1.0;
        float r53487 = 8.0;
        float r53488 = r53486 / r53487;
        float r53489 = x;
        float r53490 = r53488 * r53489;
        float r53491 = y;
        float r53492 = z;
        float r53493 = r53491 * r53492;
        float r53494 = 2.0;
        float r53495 = r53493 / r53494;
        float r53496 = r53490 - r53495;
        float r53497 = t;
        float r53498 = r53496 + r53497;
        return r53498;
}

double f_od(double x, double y, double z, double t) {
        double r53499 = 1.0;
        double r53500 = 8.0;
        double r53501 = r53499 / r53500;
        double r53502 = x;
        double r53503 = r53501 * r53502;
        double r53504 = y;
        double r53505 = z;
        double r53506 = r53504 * r53505;
        double r53507 = 2.0;
        double r53508 = r53506 / r53507;
        double r53509 = r53503 - r53508;
        double r53510 = t;
        double r53511 = r53509 + r53510;
        return r53511;
}

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 r53512, r53513, r53514, r53515, r53516, r53517, r53518, r53519, r53520, r53521, r53522, r53523, r53524;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r53512, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r53513, "8.0", 10, MPFR_RNDN);
        mpfr_init(r53514);
        mpfr_init(r53515);
        mpfr_init(r53516);
        mpfr_init(r53517);
        mpfr_init(r53518);
        mpfr_init(r53519);
        mpfr_init_set_str(r53520, "2.0", 10, MPFR_RNDN);
        mpfr_init(r53521);
        mpfr_init(r53522);
        mpfr_init(r53523);
        mpfr_init(r53524);
}

double f_im(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r53514, r53512, r53513, MPFR_RNDN);
        mpfr_set_d(r53515, x, MPFR_RNDN);
        mpfr_mul(r53516, r53514, r53515, MPFR_RNDN);
        mpfr_set_d(r53517, y, MPFR_RNDN);
        mpfr_set_d(r53518, z, MPFR_RNDN);
        mpfr_mul(r53519, r53517, r53518, MPFR_RNDN);
        ;
        mpfr_div(r53521, r53519, r53520, MPFR_RNDN);
        mpfr_sub(r53522, r53516, r53521, MPFR_RNDN);
        mpfr_set_d(r53523, t, MPFR_RNDN);
        mpfr_add(r53524, r53522, r53523, MPFR_RNDN);
        return mpfr_get_d(r53524, MPFR_RNDN);
}

static mpfr_t r53525, r53526, r53527, r53528, r53529, r53530, r53531, r53532, r53533, r53534, r53535, r53536, r53537;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r53525, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r53526, "8.0", 10, MPFR_RNDN);
        mpfr_init(r53527);
        mpfr_init(r53528);
        mpfr_init(r53529);
        mpfr_init(r53530);
        mpfr_init(r53531);
        mpfr_init(r53532);
        mpfr_init_set_str(r53533, "2.0", 10, MPFR_RNDN);
        mpfr_init(r53534);
        mpfr_init(r53535);
        mpfr_init(r53536);
        mpfr_init(r53537);
}

double f_fm(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r53527, r53525, r53526, MPFR_RNDN);
        mpfr_set_d(r53528, x, MPFR_RNDN);
        mpfr_mul(r53529, r53527, r53528, MPFR_RNDN);
        mpfr_set_d(r53530, y, MPFR_RNDN);
        mpfr_set_d(r53531, z, MPFR_RNDN);
        mpfr_mul(r53532, r53530, r53531, MPFR_RNDN);
        ;
        mpfr_div(r53534, r53532, r53533, MPFR_RNDN);
        mpfr_sub(r53535, r53529, r53534, MPFR_RNDN);
        mpfr_set_d(r53536, t, MPFR_RNDN);
        mpfr_add(r53537, r53535, r53536, MPFR_RNDN);
        return mpfr_get_d(r53537, MPFR_RNDN);
}

static mpfr_t r53538, r53539, r53540, r53541, r53542, r53543, r53544, r53545, r53546, r53547, r53548, r53549, r53550;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r53538, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r53539, "8.0", 10, MPFR_RNDN);
        mpfr_init(r53540);
        mpfr_init(r53541);
        mpfr_init(r53542);
        mpfr_init(r53543);
        mpfr_init(r53544);
        mpfr_init(r53545);
        mpfr_init_set_str(r53546, "2.0", 10, MPFR_RNDN);
        mpfr_init(r53547);
        mpfr_init(r53548);
        mpfr_init(r53549);
        mpfr_init(r53550);
}

double f_dm(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r53540, r53538, r53539, MPFR_RNDN);
        mpfr_set_d(r53541, x, MPFR_RNDN);
        mpfr_mul(r53542, r53540, r53541, MPFR_RNDN);
        mpfr_set_d(r53543, y, MPFR_RNDN);
        mpfr_set_d(r53544, z, MPFR_RNDN);
        mpfr_mul(r53545, r53543, r53544, MPFR_RNDN);
        ;
        mpfr_div(r53547, r53545, r53546, MPFR_RNDN);
        mpfr_sub(r53548, r53542, r53547, MPFR_RNDN);
        mpfr_set_d(r53549, t, MPFR_RNDN);
        mpfr_add(r53550, r53548, r53549, MPFR_RNDN);
        return mpfr_get_d(r53550, MPFR_RNDN);
}

