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

char *name = "Expanding a square";

double f_if(float x) {
        float r19756 = x;
        float r19757 = 1;
        float r19758 = r19756 + r19757;
        float r19759 = r19758 * r19758;
        float r19760 = r19759 - r19757;
        return r19760;
}

double f_id(double x) {
        double r19761 = x;
        double r19762 = 1;
        double r19763 = r19761 + r19762;
        double r19764 = r19763 * r19763;
        double r19765 = r19764 - r19762;
        return r19765;
}


double f_of(float x) {
        float r19766 = 2;
        float r19767 = x;
        float r19768 = r19766 + r19767;
        float r19769 = r19768 * r19767;
        return r19769;
}

double f_od(double x) {
        double r19770 = 2;
        double r19771 = x;
        double r19772 = r19770 + r19771;
        double r19773 = r19772 * r19771;
        return r19773;
}

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 r19774, r19775, r19776, r19777, r19778;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r19774);
        mpfr_init_set_str(r19775, "1", 10, MPFR_RNDN);
        mpfr_init(r19776);
        mpfr_init(r19777);
        mpfr_init(r19778);
}

double f_im(double x) {
        mpfr_set_d(r19774, x, MPFR_RNDN);
        ;
        mpfr_add(r19776, r19774, r19775, MPFR_RNDN);
        mpfr_mul(r19777, r19776, r19776, MPFR_RNDN);
        mpfr_sub(r19778, r19777, r19775, MPFR_RNDN);
        return mpfr_get_d(r19778, MPFR_RNDN);
}

static mpfr_t r19779, r19780, r19781, r19782;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r19779, "2", 10, MPFR_RNDN);
        mpfr_init(r19780);
        mpfr_init(r19781);
        mpfr_init(r19782);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r19780, x, MPFR_RNDN);
        mpfr_add(r19781, r19779, r19780, MPFR_RNDN);
        mpfr_mul(r19782, r19781, r19780, MPFR_RNDN);
        return mpfr_get_d(r19782, MPFR_RNDN);
}

static mpfr_t r19783, r19784, r19785, r19786;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r19783, "2", 10, MPFR_RNDN);
        mpfr_init(r19784);
        mpfr_init(r19785);
        mpfr_init(r19786);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r19784, x, MPFR_RNDN);
        mpfr_add(r19785, r19783, r19784, MPFR_RNDN);
        mpfr_mul(r19786, r19785, r19784, MPFR_RNDN);
        return mpfr_get_d(r19786, MPFR_RNDN);
}

