#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, C";

double f_if(float x, float y) {
        float r54739 = x;
        float r54740 = y;
        float r54741 = 3.0;
        float r54742 = r54740 * r54741;
        float r54743 = r54739 / r54742;
        return r54743;
}

double f_id(double x, double y) {
        double r54744 = x;
        double r54745 = y;
        double r54746 = 3.0;
        double r54747 = r54745 * r54746;
        double r54748 = r54744 / r54747;
        return r54748;
}


double f_of(float x, float y) {
        float r54749 = x;
        float r54750 = y;
        float r54751 = 3.0;
        float r54752 = r54750 * r54751;
        float r54753 = r54749 / r54752;
        return r54753;
}

double f_od(double x, double y) {
        double r54754 = x;
        double r54755 = y;
        double r54756 = 3.0;
        double r54757 = r54755 * r54756;
        double r54758 = r54754 / r54757;
        return r54758;
}

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 r54759, r54760, r54761, r54762, r54763;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r54759);
        mpfr_init(r54760);
        mpfr_init_set_str(r54761, "3.0", 10, MPFR_RNDN);
        mpfr_init(r54762);
        mpfr_init(r54763);
}

double f_im(double x, double y) {
        mpfr_set_d(r54759, x, MPFR_RNDN);
        mpfr_set_d(r54760, y, MPFR_RNDN);
        ;
        mpfr_mul(r54762, r54760, r54761, MPFR_RNDN);
        mpfr_div(r54763, r54759, r54762, MPFR_RNDN);
        return mpfr_get_d(r54763, MPFR_RNDN);
}

static mpfr_t r54764, r54765, r54766, r54767, r54768;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r54764);
        mpfr_init(r54765);
        mpfr_init_set_str(r54766, "3.0", 10, MPFR_RNDN);
        mpfr_init(r54767);
        mpfr_init(r54768);
}

double f_fm(double x, double y) {
        mpfr_set_d(r54764, x, MPFR_RNDN);
        mpfr_set_d(r54765, y, MPFR_RNDN);
        ;
        mpfr_mul(r54767, r54765, r54766, MPFR_RNDN);
        mpfr_div(r54768, r54764, r54767, MPFR_RNDN);
        return mpfr_get_d(r54768, MPFR_RNDN);
}

static mpfr_t r54769, r54770, r54771, r54772, r54773;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r54769);
        mpfr_init(r54770);
        mpfr_init_set_str(r54771, "3.0", 10, MPFR_RNDN);
        mpfr_init(r54772);
        mpfr_init(r54773);
}

double f_dm(double x, double y) {
        mpfr_set_d(r54769, x, MPFR_RNDN);
        mpfr_set_d(r54770, y, MPFR_RNDN);
        ;
        mpfr_mul(r54772, r54770, r54771, MPFR_RNDN);
        mpfr_div(r54773, r54769, r54772, MPFR_RNDN);
        return mpfr_get_d(r54773, MPFR_RNDN);
}

