#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 r33146 = x;
        float r33147 = 1;
        float r33148 = r33146 + r33147;
        float r33149 = r33148 * r33148;
        float r33150 = r33149 - r33147;
        return r33150;
}

double f_id(double x) {
        double r33151 = x;
        double r33152 = 1;
        double r33153 = r33151 + r33152;
        double r33154 = r33153 * r33153;
        double r33155 = r33154 - r33152;
        return r33155;
}


double f_of(float x) {
        float r33156 = 2;
        float r33157 = x;
        float r33158 = r33156 + r33157;
        float r33159 = r33158 * r33157;
        return r33159;
}

double f_od(double x) {
        double r33160 = 2;
        double r33161 = x;
        double r33162 = r33160 + r33161;
        double r33163 = r33162 * r33161;
        return r33163;
}

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 r33164, r33165, r33166, r33167, r33168;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r33164);
        mpfr_init_set_str(r33165, "1", 10, MPFR_RNDN);
        mpfr_init(r33166);
        mpfr_init(r33167);
        mpfr_init(r33168);
}

double f_im(double x) {
        mpfr_set_d(r33164, x, MPFR_RNDN);
        ;
        mpfr_add(r33166, r33164, r33165, MPFR_RNDN);
        mpfr_mul(r33167, r33166, r33166, MPFR_RNDN);
        mpfr_sub(r33168, r33167, r33165, MPFR_RNDN);
        return mpfr_get_d(r33168, MPFR_RNDN);
}

static mpfr_t r33169, r33170, r33171, r33172;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r33169, "2", 10, MPFR_RNDN);
        mpfr_init(r33170);
        mpfr_init(r33171);
        mpfr_init(r33172);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r33170, x, MPFR_RNDN);
        mpfr_add(r33171, r33169, r33170, MPFR_RNDN);
        mpfr_mul(r33172, r33171, r33170, MPFR_RNDN);
        return mpfr_get_d(r33172, MPFR_RNDN);
}

static mpfr_t r33173, r33174, r33175, r33176;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r33173, "2", 10, MPFR_RNDN);
        mpfr_init(r33174);
        mpfr_init(r33175);
        mpfr_init(r33176);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r33174, x, MPFR_RNDN);
        mpfr_add(r33175, r33173, r33174, MPFR_RNDN);
        mpfr_mul(r33176, r33175, r33174, MPFR_RNDN);
        return mpfr_get_d(r33176, MPFR_RNDN);
}

