#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, F";

double f_if(float x, float y) {
        float r34829 = x;
        float r34830 = 27.0;
        float r34831 = r34829 * r34830;
        float r34832 = y;
        float r34833 = r34831 * r34832;
        return r34833;
}

double f_id(double x, double y) {
        double r34834 = x;
        double r34835 = 27.0;
        double r34836 = r34834 * r34835;
        double r34837 = y;
        double r34838 = r34836 * r34837;
        return r34838;
}


double f_of(float x, float y) {
        float r34839 = x;
        float r34840 = 27.0;
        float r34841 = y;
        float r34842 = r34840 * r34841;
        float r34843 = r34839 * r34842;
        return r34843;
}

double f_od(double x, double y) {
        double r34844 = x;
        double r34845 = 27.0;
        double r34846 = y;
        double r34847 = r34845 * r34846;
        double r34848 = r34844 * r34847;
        return r34848;
}

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 r34849, r34850, r34851, r34852, r34853;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r34849);
        mpfr_init_set_str(r34850, "27.0", 10, MPFR_RNDN);
        mpfr_init(r34851);
        mpfr_init(r34852);
        mpfr_init(r34853);
}

double f_im(double x, double y) {
        mpfr_set_d(r34849, x, MPFR_RNDN);
        ;
        mpfr_mul(r34851, r34849, r34850, MPFR_RNDN);
        mpfr_set_d(r34852, y, MPFR_RNDN);
        mpfr_mul(r34853, r34851, r34852, MPFR_RNDN);
        return mpfr_get_d(r34853, MPFR_RNDN);
}

static mpfr_t r34854, r34855, r34856, r34857, r34858;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r34854);
        mpfr_init_set_str(r34855, "27.0", 10, MPFR_RNDN);
        mpfr_init(r34856);
        mpfr_init(r34857);
        mpfr_init(r34858);
}

double f_fm(double x, double y) {
        mpfr_set_d(r34854, x, MPFR_RNDN);
        ;
        mpfr_set_d(r34856, y, MPFR_RNDN);
        mpfr_mul(r34857, r34855, r34856, MPFR_RNDN);
        mpfr_mul(r34858, r34854, r34857, MPFR_RNDN);
        return mpfr_get_d(r34858, MPFR_RNDN);
}

static mpfr_t r34859, r34860, r34861, r34862, r34863;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r34859);
        mpfr_init_set_str(r34860, "27.0", 10, MPFR_RNDN);
        mpfr_init(r34861);
        mpfr_init(r34862);
        mpfr_init(r34863);
}

double f_dm(double x, double y) {
        mpfr_set_d(r34859, x, MPFR_RNDN);
        ;
        mpfr_set_d(r34861, y, MPFR_RNDN);
        mpfr_mul(r34862, r34860, r34861, MPFR_RNDN);
        mpfr_mul(r34863, r34859, r34862, MPFR_RNDN);
        return mpfr_get_d(r34863, MPFR_RNDN);
}

