#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 r53781 = 1.0;
        float r53782 = 8.0;
        float r53783 = r53781 / r53782;
        float r53784 = x;
        float r53785 = r53783 * r53784;
        float r53786 = y;
        float r53787 = z;
        float r53788 = r53786 * r53787;
        float r53789 = 2.0;
        float r53790 = r53788 / r53789;
        float r53791 = r53785 - r53790;
        float r53792 = t;
        float r53793 = r53791 + r53792;
        return r53793;
}

double f_id(double x, double y, double z, double t) {
        double r53794 = 1.0;
        double r53795 = 8.0;
        double r53796 = r53794 / r53795;
        double r53797 = x;
        double r53798 = r53796 * r53797;
        double r53799 = y;
        double r53800 = z;
        double r53801 = r53799 * r53800;
        double r53802 = 2.0;
        double r53803 = r53801 / r53802;
        double r53804 = r53798 - r53803;
        double r53805 = t;
        double r53806 = r53804 + r53805;
        return r53806;
}


double f_of(float x, float y, float z, float t) {
        float r53807 = 1.0;
        float r53808 = 8.0;
        float r53809 = r53807 / r53808;
        float r53810 = x;
        float r53811 = r53809 * r53810;
        float r53812 = y;
        float r53813 = z;
        float r53814 = r53812 * r53813;
        float r53815 = 2.0;
        float r53816 = r53814 / r53815;
        float r53817 = r53811 - r53816;
        float r53818 = t;
        float r53819 = r53817 + r53818;
        return r53819;
}

double f_od(double x, double y, double z, double t) {
        double r53820 = 1.0;
        double r53821 = 8.0;
        double r53822 = r53820 / r53821;
        double r53823 = x;
        double r53824 = r53822 * r53823;
        double r53825 = y;
        double r53826 = z;
        double r53827 = r53825 * r53826;
        double r53828 = 2.0;
        double r53829 = r53827 / r53828;
        double r53830 = r53824 - r53829;
        double r53831 = t;
        double r53832 = r53830 + r53831;
        return r53832;
}

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 r53833, r53834, r53835, r53836, r53837, r53838, r53839, r53840, r53841, r53842, r53843, r53844, r53845;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r53833, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r53834, "8.0", 10, MPFR_RNDN);
        mpfr_init(r53835);
        mpfr_init(r53836);
        mpfr_init(r53837);
        mpfr_init(r53838);
        mpfr_init(r53839);
        mpfr_init(r53840);
        mpfr_init_set_str(r53841, "2.0", 10, MPFR_RNDN);
        mpfr_init(r53842);
        mpfr_init(r53843);
        mpfr_init(r53844);
        mpfr_init(r53845);
}

double f_im(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r53835, r53833, r53834, MPFR_RNDN);
        mpfr_set_d(r53836, x, MPFR_RNDN);
        mpfr_mul(r53837, r53835, r53836, MPFR_RNDN);
        mpfr_set_d(r53838, y, MPFR_RNDN);
        mpfr_set_d(r53839, z, MPFR_RNDN);
        mpfr_mul(r53840, r53838, r53839, MPFR_RNDN);
        ;
        mpfr_div(r53842, r53840, r53841, MPFR_RNDN);
        mpfr_sub(r53843, r53837, r53842, MPFR_RNDN);
        mpfr_set_d(r53844, t, MPFR_RNDN);
        mpfr_add(r53845, r53843, r53844, MPFR_RNDN);
        return mpfr_get_d(r53845, MPFR_RNDN);
}

static mpfr_t r53846, r53847, r53848, r53849, r53850, r53851, r53852, r53853, r53854, r53855, r53856, r53857, r53858;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r53846, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r53847, "8.0", 10, MPFR_RNDN);
        mpfr_init(r53848);
        mpfr_init(r53849);
        mpfr_init(r53850);
        mpfr_init(r53851);
        mpfr_init(r53852);
        mpfr_init(r53853);
        mpfr_init_set_str(r53854, "2.0", 10, MPFR_RNDN);
        mpfr_init(r53855);
        mpfr_init(r53856);
        mpfr_init(r53857);
        mpfr_init(r53858);
}

double f_fm(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r53848, r53846, r53847, MPFR_RNDN);
        mpfr_set_d(r53849, x, MPFR_RNDN);
        mpfr_mul(r53850, r53848, r53849, MPFR_RNDN);
        mpfr_set_d(r53851, y, MPFR_RNDN);
        mpfr_set_d(r53852, z, MPFR_RNDN);
        mpfr_mul(r53853, r53851, r53852, MPFR_RNDN);
        ;
        mpfr_div(r53855, r53853, r53854, MPFR_RNDN);
        mpfr_sub(r53856, r53850, r53855, MPFR_RNDN);
        mpfr_set_d(r53857, t, MPFR_RNDN);
        mpfr_add(r53858, r53856, r53857, MPFR_RNDN);
        return mpfr_get_d(r53858, MPFR_RNDN);
}

static mpfr_t r53859, r53860, r53861, r53862, r53863, r53864, r53865, r53866, r53867, r53868, r53869, r53870, r53871;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r53859, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r53860, "8.0", 10, MPFR_RNDN);
        mpfr_init(r53861);
        mpfr_init(r53862);
        mpfr_init(r53863);
        mpfr_init(r53864);
        mpfr_init(r53865);
        mpfr_init(r53866);
        mpfr_init_set_str(r53867, "2.0", 10, MPFR_RNDN);
        mpfr_init(r53868);
        mpfr_init(r53869);
        mpfr_init(r53870);
        mpfr_init(r53871);
}

double f_dm(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r53861, r53859, r53860, MPFR_RNDN);
        mpfr_set_d(r53862, x, MPFR_RNDN);
        mpfr_mul(r53863, r53861, r53862, MPFR_RNDN);
        mpfr_set_d(r53864, y, MPFR_RNDN);
        mpfr_set_d(r53865, z, MPFR_RNDN);
        mpfr_mul(r53866, r53864, r53865, MPFR_RNDN);
        ;
        mpfr_div(r53868, r53866, r53867, MPFR_RNDN);
        mpfr_sub(r53869, r53863, r53868, MPFR_RNDN);
        mpfr_set_d(r53870, t, MPFR_RNDN);
        mpfr_add(r53871, r53869, r53870, MPFR_RNDN);
        return mpfr_get_d(r53871, MPFR_RNDN);
}

