#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 r53579 = 1.0;
        float r53580 = 8.0;
        float r53581 = r53579 / r53580;
        float r53582 = x;
        float r53583 = r53581 * r53582;
        float r53584 = y;
        float r53585 = z;
        float r53586 = r53584 * r53585;
        float r53587 = 2.0;
        float r53588 = r53586 / r53587;
        float r53589 = r53583 - r53588;
        float r53590 = t;
        float r53591 = r53589 + r53590;
        return r53591;
}

double f_id(double x, double y, double z, double t) {
        double r53592 = 1.0;
        double r53593 = 8.0;
        double r53594 = r53592 / r53593;
        double r53595 = x;
        double r53596 = r53594 * r53595;
        double r53597 = y;
        double r53598 = z;
        double r53599 = r53597 * r53598;
        double r53600 = 2.0;
        double r53601 = r53599 / r53600;
        double r53602 = r53596 - r53601;
        double r53603 = t;
        double r53604 = r53602 + r53603;
        return r53604;
}


double f_of(float x, float y, float z, float t) {
        float r53605 = 1.0;
        float r53606 = 8.0;
        float r53607 = r53605 / r53606;
        float r53608 = x;
        float r53609 = r53607 * r53608;
        float r53610 = y;
        float r53611 = z;
        float r53612 = r53610 * r53611;
        float r53613 = 2.0;
        float r53614 = r53612 / r53613;
        float r53615 = r53609 - r53614;
        float r53616 = t;
        float r53617 = r53615 + r53616;
        return r53617;
}

double f_od(double x, double y, double z, double t) {
        double r53618 = 1.0;
        double r53619 = 8.0;
        double r53620 = r53618 / r53619;
        double r53621 = x;
        double r53622 = r53620 * r53621;
        double r53623 = y;
        double r53624 = z;
        double r53625 = r53623 * r53624;
        double r53626 = 2.0;
        double r53627 = r53625 / r53626;
        double r53628 = r53622 - r53627;
        double r53629 = t;
        double r53630 = r53628 + r53629;
        return r53630;
}

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 r53631, r53632, r53633, r53634, r53635, r53636, r53637, r53638, r53639, r53640, r53641, r53642, r53643;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r53631, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r53632, "8.0", 10, MPFR_RNDN);
        mpfr_init(r53633);
        mpfr_init(r53634);
        mpfr_init(r53635);
        mpfr_init(r53636);
        mpfr_init(r53637);
        mpfr_init(r53638);
        mpfr_init_set_str(r53639, "2.0", 10, MPFR_RNDN);
        mpfr_init(r53640);
        mpfr_init(r53641);
        mpfr_init(r53642);
        mpfr_init(r53643);
}

double f_im(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r53633, r53631, r53632, MPFR_RNDN);
        mpfr_set_d(r53634, x, MPFR_RNDN);
        mpfr_mul(r53635, r53633, r53634, MPFR_RNDN);
        mpfr_set_d(r53636, y, MPFR_RNDN);
        mpfr_set_d(r53637, z, MPFR_RNDN);
        mpfr_mul(r53638, r53636, r53637, MPFR_RNDN);
        ;
        mpfr_div(r53640, r53638, r53639, MPFR_RNDN);
        mpfr_sub(r53641, r53635, r53640, MPFR_RNDN);
        mpfr_set_d(r53642, t, MPFR_RNDN);
        mpfr_add(r53643, r53641, r53642, MPFR_RNDN);
        return mpfr_get_d(r53643, MPFR_RNDN);
}

static mpfr_t r53644, r53645, r53646, r53647, r53648, r53649, r53650, r53651, r53652, r53653, r53654, r53655, r53656;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r53644, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r53645, "8.0", 10, MPFR_RNDN);
        mpfr_init(r53646);
        mpfr_init(r53647);
        mpfr_init(r53648);
        mpfr_init(r53649);
        mpfr_init(r53650);
        mpfr_init(r53651);
        mpfr_init_set_str(r53652, "2.0", 10, MPFR_RNDN);
        mpfr_init(r53653);
        mpfr_init(r53654);
        mpfr_init(r53655);
        mpfr_init(r53656);
}

double f_fm(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r53646, r53644, r53645, MPFR_RNDN);
        mpfr_set_d(r53647, x, MPFR_RNDN);
        mpfr_mul(r53648, r53646, r53647, MPFR_RNDN);
        mpfr_set_d(r53649, y, MPFR_RNDN);
        mpfr_set_d(r53650, z, MPFR_RNDN);
        mpfr_mul(r53651, r53649, r53650, MPFR_RNDN);
        ;
        mpfr_div(r53653, r53651, r53652, MPFR_RNDN);
        mpfr_sub(r53654, r53648, r53653, MPFR_RNDN);
        mpfr_set_d(r53655, t, MPFR_RNDN);
        mpfr_add(r53656, r53654, r53655, MPFR_RNDN);
        return mpfr_get_d(r53656, MPFR_RNDN);
}

static mpfr_t r53657, r53658, r53659, r53660, r53661, r53662, r53663, r53664, r53665, r53666, r53667, r53668, r53669;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r53657, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r53658, "8.0", 10, MPFR_RNDN);
        mpfr_init(r53659);
        mpfr_init(r53660);
        mpfr_init(r53661);
        mpfr_init(r53662);
        mpfr_init(r53663);
        mpfr_init(r53664);
        mpfr_init_set_str(r53665, "2.0", 10, MPFR_RNDN);
        mpfr_init(r53666);
        mpfr_init(r53667);
        mpfr_init(r53668);
        mpfr_init(r53669);
}

double f_dm(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r53659, r53657, r53658, MPFR_RNDN);
        mpfr_set_d(r53660, x, MPFR_RNDN);
        mpfr_mul(r53661, r53659, r53660, MPFR_RNDN);
        mpfr_set_d(r53662, y, MPFR_RNDN);
        mpfr_set_d(r53663, z, MPFR_RNDN);
        mpfr_mul(r53664, r53662, r53663, MPFR_RNDN);
        ;
        mpfr_div(r53666, r53664, r53665, MPFR_RNDN);
        mpfr_sub(r53667, r53661, r53666, MPFR_RNDN);
        mpfr_set_d(r53668, t, MPFR_RNDN);
        mpfr_add(r53669, r53667, r53668, MPFR_RNDN);
        return mpfr_get_d(r53669, MPFR_RNDN);
}

