#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 r53809 = 1.0;
        float r53810 = 8.0;
        float r53811 = r53809 / r53810;
        float r53812 = x;
        float r53813 = r53811 * r53812;
        float r53814 = y;
        float r53815 = z;
        float r53816 = r53814 * r53815;
        float r53817 = 2.0;
        float r53818 = r53816 / r53817;
        float r53819 = r53813 - r53818;
        float r53820 = t;
        float r53821 = r53819 + r53820;
        return r53821;
}

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


double f_of(float x, float y, float z, float t) {
        float r53835 = 1.0;
        float r53836 = 8.0;
        float r53837 = r53835 / r53836;
        float r53838 = x;
        float r53839 = r53837 * r53838;
        float r53840 = y;
        float r53841 = z;
        float r53842 = r53840 * r53841;
        float r53843 = 2.0;
        float r53844 = r53842 / r53843;
        float r53845 = r53839 - r53844;
        float r53846 = t;
        float r53847 = r53845 + r53846;
        return r53847;
}

double f_od(double x, double y, double z, double t) {
        double r53848 = 1.0;
        double r53849 = 8.0;
        double r53850 = r53848 / r53849;
        double r53851 = x;
        double r53852 = r53850 * r53851;
        double r53853 = y;
        double r53854 = z;
        double r53855 = r53853 * r53854;
        double r53856 = 2.0;
        double r53857 = r53855 / r53856;
        double r53858 = r53852 - r53857;
        double r53859 = t;
        double r53860 = r53858 + r53859;
        return r53860;
}

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 r53861, r53862, r53863, r53864, r53865, r53866, r53867, r53868, r53869, r53870, r53871, r53872, r53873;

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

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

static mpfr_t r53874, r53875, r53876, r53877, r53878, r53879, r53880, r53881, r53882, r53883, r53884, r53885, r53886;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r53874, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r53875, "8.0", 10, MPFR_RNDN);
        mpfr_init(r53876);
        mpfr_init(r53877);
        mpfr_init(r53878);
        mpfr_init(r53879);
        mpfr_init(r53880);
        mpfr_init(r53881);
        mpfr_init_set_str(r53882, "2.0", 10, MPFR_RNDN);
        mpfr_init(r53883);
        mpfr_init(r53884);
        mpfr_init(r53885);
        mpfr_init(r53886);
}

double f_fm(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r53876, r53874, r53875, MPFR_RNDN);
        mpfr_set_d(r53877, x, MPFR_RNDN);
        mpfr_mul(r53878, r53876, r53877, MPFR_RNDN);
        mpfr_set_d(r53879, y, MPFR_RNDN);
        mpfr_set_d(r53880, z, MPFR_RNDN);
        mpfr_mul(r53881, r53879, r53880, MPFR_RNDN);
        ;
        mpfr_div(r53883, r53881, r53882, MPFR_RNDN);
        mpfr_sub(r53884, r53878, r53883, MPFR_RNDN);
        mpfr_set_d(r53885, t, MPFR_RNDN);
        mpfr_add(r53886, r53884, r53885, MPFR_RNDN);
        return mpfr_get_d(r53886, MPFR_RNDN);
}

static mpfr_t r53887, r53888, r53889, r53890, r53891, r53892, r53893, r53894, r53895, r53896, r53897, r53898, r53899;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r53887, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r53888, "8.0", 10, MPFR_RNDN);
        mpfr_init(r53889);
        mpfr_init(r53890);
        mpfr_init(r53891);
        mpfr_init(r53892);
        mpfr_init(r53893);
        mpfr_init(r53894);
        mpfr_init_set_str(r53895, "2.0", 10, MPFR_RNDN);
        mpfr_init(r53896);
        mpfr_init(r53897);
        mpfr_init(r53898);
        mpfr_init(r53899);
}

double f_dm(double x, double y, double z, double t) {
        ;
        ;
        mpfr_div(r53889, r53887, r53888, MPFR_RNDN);
        mpfr_set_d(r53890, x, MPFR_RNDN);
        mpfr_mul(r53891, r53889, r53890, MPFR_RNDN);
        mpfr_set_d(r53892, y, MPFR_RNDN);
        mpfr_set_d(r53893, z, MPFR_RNDN);
        mpfr_mul(r53894, r53892, r53893, MPFR_RNDN);
        ;
        mpfr_div(r53896, r53894, r53895, MPFR_RNDN);
        mpfr_sub(r53897, r53891, r53896, MPFR_RNDN);
        mpfr_set_d(r53898, t, MPFR_RNDN);
        mpfr_add(r53899, r53897, r53898, MPFR_RNDN);
        return mpfr_get_d(r53899, MPFR_RNDN);
}

