#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 r53549 = 1.0;
        float r53550 = 8.0;
        float r53551 = r53549 / r53550;
        float r53552 = x;
        float r53553 = r53551 * r53552;
        float r53554 = y;
        float r53555 = z;
        float r53556 = r53554 * r53555;
        float r53557 = 2.0;
        float r53558 = r53556 / r53557;
        float r53559 = r53553 - r53558;
        float r53560 = t;
        float r53561 = r53559 + r53560;
        return r53561;
}

double f_id(double x, double y, double z, double t) {
        double r53562 = 1.0;
        double r53563 = 8.0;
        double r53564 = r53562 / r53563;
        double r53565 = x;
        double r53566 = r53564 * r53565;
        double r53567 = y;
        double r53568 = z;
        double r53569 = r53567 * r53568;
        double r53570 = 2.0;
        double r53571 = r53569 / r53570;
        double r53572 = r53566 - r53571;
        double r53573 = t;
        double r53574 = r53572 + r53573;
        return r53574;
}


double f_of(float x, float y, float z, float t) {
        float r53575 = 1.0;
        float r53576 = 8.0;
        float r53577 = r53575 / r53576;
        float r53578 = x;
        float r53579 = r53577 * r53578;
        float r53580 = y;
        float r53581 = z;
        float r53582 = r53580 * r53581;
        float r53583 = 2.0;
        float r53584 = r53582 / r53583;
        float r53585 = r53579 - r53584;
        float r53586 = t;
        float r53587 = r53585 + r53586;
        return r53587;
}

double f_od(double x, double y, double z, double t) {
        double r53588 = 1.0;
        double r53589 = 8.0;
        double r53590 = r53588 / r53589;
        double r53591 = x;
        double r53592 = r53590 * r53591;
        double r53593 = y;
        double r53594 = z;
        double r53595 = r53593 * r53594;
        double r53596 = 2.0;
        double r53597 = r53595 / r53596;
        double r53598 = r53592 - r53597;
        double r53599 = t;
        double r53600 = r53598 + r53599;
        return r53600;
}

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 r53601, r53602, r53603, r53604, r53605, r53606, r53607, r53608, r53609, r53610, r53611, r53612, r53613;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r53601, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r53602, "8.0", 10, MPFR_RNDN);
        mpfr_init(r53603);
        mpfr_init(r53604);
        mpfr_init(r53605);
        mpfr_init(r53606);
        mpfr_init(r53607);
        mpfr_init(r53608);
        mpfr_init_set_str(r53609, "2.0", 10, MPFR_RNDN);
        mpfr_init(r53610);
        mpfr_init(r53611);
        mpfr_init(r53612);
        mpfr_init(r53613);
}

double f_im(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r53603, r53601, r53602, MPFR_RNDN);
        mpfr_set_d(r53604, x, MPFR_RNDN);
        mpfr_mul(r53605, r53603, r53604, MPFR_RNDN);
        mpfr_set_d(r53606, y, MPFR_RNDN);
        mpfr_set_d(r53607, z, MPFR_RNDN);
        mpfr_mul(r53608, r53606, r53607, MPFR_RNDN);
        ;
        mpfr_div(r53610, r53608, r53609, MPFR_RNDN);
        mpfr_sub(r53611, r53605, r53610, MPFR_RNDN);
        mpfr_set_d(r53612, t, MPFR_RNDN);
        mpfr_add(r53613, r53611, r53612, MPFR_RNDN);
        return mpfr_get_d(r53613, MPFR_RNDN);
}

static mpfr_t r53614, r53615, r53616, r53617, r53618, r53619, r53620, r53621, r53622, r53623, r53624, r53625, r53626;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r53614, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r53615, "8.0", 10, MPFR_RNDN);
        mpfr_init(r53616);
        mpfr_init(r53617);
        mpfr_init(r53618);
        mpfr_init(r53619);
        mpfr_init(r53620);
        mpfr_init(r53621);
        mpfr_init_set_str(r53622, "2.0", 10, MPFR_RNDN);
        mpfr_init(r53623);
        mpfr_init(r53624);
        mpfr_init(r53625);
        mpfr_init(r53626);
}

double f_fm(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r53616, r53614, r53615, MPFR_RNDN);
        mpfr_set_d(r53617, x, MPFR_RNDN);
        mpfr_mul(r53618, r53616, r53617, MPFR_RNDN);
        mpfr_set_d(r53619, y, MPFR_RNDN);
        mpfr_set_d(r53620, z, MPFR_RNDN);
        mpfr_mul(r53621, r53619, r53620, MPFR_RNDN);
        ;
        mpfr_div(r53623, r53621, r53622, MPFR_RNDN);
        mpfr_sub(r53624, r53618, r53623, MPFR_RNDN);
        mpfr_set_d(r53625, t, MPFR_RNDN);
        mpfr_add(r53626, r53624, r53625, MPFR_RNDN);
        return mpfr_get_d(r53626, MPFR_RNDN);
}

static mpfr_t r53627, r53628, r53629, r53630, r53631, r53632, r53633, r53634, r53635, r53636, r53637, r53638, r53639;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r53627, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r53628, "8.0", 10, MPFR_RNDN);
        mpfr_init(r53629);
        mpfr_init(r53630);
        mpfr_init(r53631);
        mpfr_init(r53632);
        mpfr_init(r53633);
        mpfr_init(r53634);
        mpfr_init_set_str(r53635, "2.0", 10, MPFR_RNDN);
        mpfr_init(r53636);
        mpfr_init(r53637);
        mpfr_init(r53638);
        mpfr_init(r53639);
}

double f_dm(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r53629, r53627, r53628, MPFR_RNDN);
        mpfr_set_d(r53630, x, MPFR_RNDN);
        mpfr_mul(r53631, r53629, r53630, MPFR_RNDN);
        mpfr_set_d(r53632, y, MPFR_RNDN);
        mpfr_set_d(r53633, z, MPFR_RNDN);
        mpfr_mul(r53634, r53632, r53633, MPFR_RNDN);
        ;
        mpfr_div(r53636, r53634, r53635, MPFR_RNDN);
        mpfr_sub(r53637, r53631, r53636, MPFR_RNDN);
        mpfr_set_d(r53638, t, MPFR_RNDN);
        mpfr_add(r53639, r53637, r53638, MPFR_RNDN);
        return mpfr_get_d(r53639, MPFR_RNDN);
}

