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

char *name = "Expression 2, p15";

double f_if(float x) {
        float r51757 = x;
        float r51758 = r51757 * r51757;
        float r51759 = r51757 + r51758;
        return r51759;
}

double f_id(double x) {
        double r51760 = x;
        double r51761 = r51760 * r51760;
        double r51762 = r51760 + r51761;
        return r51762;
}


double f_of(float x) {
        float r51763 = x;
        float r51764 = r51763 * r51763;
        float r51765 = r51763 + r51764;
        return r51765;
}

double f_od(double x) {
        double r51766 = x;
        double r51767 = r51766 * r51766;
        double r51768 = r51766 + r51767;
        return r51768;
}

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 r51769, r51770, r51771;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r51769);
        mpfr_init(r51770);
        mpfr_init(r51771);
}

double f_im(double x) {
        mpfr_set_d(r51769, x, MPFR_RNDN);
        mpfr_mul(r51770, r51769, r51769, MPFR_RNDN);
        mpfr_add(r51771, r51769, r51770, MPFR_RNDN);
        return mpfr_get_d(r51771, MPFR_RNDN);
}

static mpfr_t r51772, r51773, r51774;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r51772);
        mpfr_init(r51773);
        mpfr_init(r51774);
}

double f_fm(double x) {
        mpfr_set_d(r51772, x, MPFR_RNDN);
        mpfr_mul(r51773, r51772, r51772, MPFR_RNDN);
        mpfr_add(r51774, r51772, r51773, MPFR_RNDN);
        return mpfr_get_d(r51774, MPFR_RNDN);
}

static mpfr_t r51775, r51776, r51777;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r51775);
        mpfr_init(r51776);
        mpfr_init(r51777);
}

double f_dm(double x) {
        mpfr_set_d(r51775, x, MPFR_RNDN);
        mpfr_mul(r51776, r51775, r51775, MPFR_RNDN);
        mpfr_add(r51777, r51775, r51776, MPFR_RNDN);
        return mpfr_get_d(r51777, MPFR_RNDN);
}

