#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 r52708 = 1.0;
        float r52709 = 8.0;
        float r52710 = r52708 / r52709;
        float r52711 = x;
        float r52712 = r52710 * r52711;
        float r52713 = y;
        float r52714 = z;
        float r52715 = r52713 * r52714;
        float r52716 = 2.0;
        float r52717 = r52715 / r52716;
        float r52718 = r52712 - r52717;
        float r52719 = t;
        float r52720 = r52718 + r52719;
        return r52720;
}

double f_id(double x, double y, double z, double t) {
        double r52721 = 1.0;
        double r52722 = 8.0;
        double r52723 = r52721 / r52722;
        double r52724 = x;
        double r52725 = r52723 * r52724;
        double r52726 = y;
        double r52727 = z;
        double r52728 = r52726 * r52727;
        double r52729 = 2.0;
        double r52730 = r52728 / r52729;
        double r52731 = r52725 - r52730;
        double r52732 = t;
        double r52733 = r52731 + r52732;
        return r52733;
}


double f_of(float x, float y, float z, float t) {
        float r52734 = 1.0;
        float r52735 = 8.0;
        float r52736 = r52734 / r52735;
        float r52737 = x;
        float r52738 = r52736 * r52737;
        float r52739 = y;
        float r52740 = z;
        float r52741 = r52739 * r52740;
        float r52742 = 2.0;
        float r52743 = r52741 / r52742;
        float r52744 = r52738 - r52743;
        float r52745 = t;
        float r52746 = r52744 + r52745;
        return r52746;
}

double f_od(double x, double y, double z, double t) {
        double r52747 = 1.0;
        double r52748 = 8.0;
        double r52749 = r52747 / r52748;
        double r52750 = x;
        double r52751 = r52749 * r52750;
        double r52752 = y;
        double r52753 = z;
        double r52754 = r52752 * r52753;
        double r52755 = 2.0;
        double r52756 = r52754 / r52755;
        double r52757 = r52751 - r52756;
        double r52758 = t;
        double r52759 = r52757 + r52758;
        return r52759;
}

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 r52760, r52761, r52762, r52763, r52764, r52765, r52766, r52767, r52768, r52769, r52770, r52771, r52772;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r52760, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r52761, "8.0", 10, MPFR_RNDN);
        mpfr_init(r52762);
        mpfr_init(r52763);
        mpfr_init(r52764);
        mpfr_init(r52765);
        mpfr_init(r52766);
        mpfr_init(r52767);
        mpfr_init_set_str(r52768, "2.0", 10, MPFR_RNDN);
        mpfr_init(r52769);
        mpfr_init(r52770);
        mpfr_init(r52771);
        mpfr_init(r52772);
}

double f_im(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r52762, r52760, r52761, MPFR_RNDN);
        mpfr_set_d(r52763, x, MPFR_RNDN);
        mpfr_mul(r52764, r52762, r52763, MPFR_RNDN);
        mpfr_set_d(r52765, y, MPFR_RNDN);
        mpfr_set_d(r52766, z, MPFR_RNDN);
        mpfr_mul(r52767, r52765, r52766, MPFR_RNDN);
        ;
        mpfr_div(r52769, r52767, r52768, MPFR_RNDN);
        mpfr_sub(r52770, r52764, r52769, MPFR_RNDN);
        mpfr_set_d(r52771, t, MPFR_RNDN);
        mpfr_add(r52772, r52770, r52771, MPFR_RNDN);
        return mpfr_get_d(r52772, MPFR_RNDN);
}

static mpfr_t r52773, r52774, r52775, r52776, r52777, r52778, r52779, r52780, r52781, r52782, r52783, r52784, r52785;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r52773, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r52774, "8.0", 10, MPFR_RNDN);
        mpfr_init(r52775);
        mpfr_init(r52776);
        mpfr_init(r52777);
        mpfr_init(r52778);
        mpfr_init(r52779);
        mpfr_init(r52780);
        mpfr_init_set_str(r52781, "2.0", 10, MPFR_RNDN);
        mpfr_init(r52782);
        mpfr_init(r52783);
        mpfr_init(r52784);
        mpfr_init(r52785);
}

double f_fm(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r52775, r52773, r52774, MPFR_RNDN);
        mpfr_set_d(r52776, x, MPFR_RNDN);
        mpfr_mul(r52777, r52775, r52776, MPFR_RNDN);
        mpfr_set_d(r52778, y, MPFR_RNDN);
        mpfr_set_d(r52779, z, MPFR_RNDN);
        mpfr_mul(r52780, r52778, r52779, MPFR_RNDN);
        ;
        mpfr_div(r52782, r52780, r52781, MPFR_RNDN);
        mpfr_sub(r52783, r52777, r52782, MPFR_RNDN);
        mpfr_set_d(r52784, t, MPFR_RNDN);
        mpfr_add(r52785, r52783, r52784, MPFR_RNDN);
        return mpfr_get_d(r52785, MPFR_RNDN);
}

static mpfr_t r52786, r52787, r52788, r52789, r52790, r52791, r52792, r52793, r52794, r52795, r52796, r52797, r52798;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r52786, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r52787, "8.0", 10, MPFR_RNDN);
        mpfr_init(r52788);
        mpfr_init(r52789);
        mpfr_init(r52790);
        mpfr_init(r52791);
        mpfr_init(r52792);
        mpfr_init(r52793);
        mpfr_init_set_str(r52794, "2.0", 10, MPFR_RNDN);
        mpfr_init(r52795);
        mpfr_init(r52796);
        mpfr_init(r52797);
        mpfr_init(r52798);
}

double f_dm(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r52788, r52786, r52787, MPFR_RNDN);
        mpfr_set_d(r52789, x, MPFR_RNDN);
        mpfr_mul(r52790, r52788, r52789, MPFR_RNDN);
        mpfr_set_d(r52791, y, MPFR_RNDN);
        mpfr_set_d(r52792, z, MPFR_RNDN);
        mpfr_mul(r52793, r52791, r52792, MPFR_RNDN);
        ;
        mpfr_div(r52795, r52793, r52794, MPFR_RNDN);
        mpfr_sub(r52796, r52790, r52795, MPFR_RNDN);
        mpfr_set_d(r52797, t, MPFR_RNDN);
        mpfr_add(r52798, r52796, r52797, MPFR_RNDN);
        return mpfr_get_d(r52798, MPFR_RNDN);
}

