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

char *name = "test05_nonlin1, test2";

double f_if(float x) {
        float r20819 = 1.0f;
        float r20820 = x;
        float r20821 = r20820 + r20819;
        float r20822 = r20819 / r20821;
        return r20822;
}

double f_id(double x) {
        double r20823 = 1.0;
        double r20824 = x;
        double r20825 = r20824 + r20823;
        double r20826 = r20823 / r20825;
        return r20826;
}


double f_of(float x) {
        float r20827 = 1.0f;
        float r20828 = x;
        float r20829 = r20828 + r20827;
        float r20830 = r20827 / r20829;
        return r20830;
}

double f_od(double x) {
        double r20831 = 1.0;
        double r20832 = x;
        double r20833 = r20832 + r20831;
        double r20834 = r20831 / r20833;
        return r20834;
}

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 r20835, r20836, r20837, r20838;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r20835, "1", 10, MPFR_RNDN);
        mpfr_init(r20836);
        mpfr_init(r20837);
        mpfr_init(r20838);
}

double f_im(double x) {
        ;
        mpfr_set_d(r20836, x, MPFR_RNDN);
        mpfr_add(r20837, r20836, r20835, MPFR_RNDN);
        mpfr_div(r20838, r20835, r20837, MPFR_RNDN);
        return mpfr_get_d(r20838, MPFR_RNDN);
}

static mpfr_t r20839, r20840, r20841, r20842;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r20839, "1", 10, MPFR_RNDN);
        mpfr_init(r20840);
        mpfr_init(r20841);
        mpfr_init(r20842);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r20840, x, MPFR_RNDN);
        mpfr_add(r20841, r20840, r20839, MPFR_RNDN);
        mpfr_div(r20842, r20839, r20841, MPFR_RNDN);
        return mpfr_get_d(r20842, MPFR_RNDN);
}

static mpfr_t r20843, r20844, r20845, r20846;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r20843, "1", 10, MPFR_RNDN);
        mpfr_init(r20844);
        mpfr_init(r20845);
        mpfr_init(r20846);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r20844, x, MPFR_RNDN);
        mpfr_add(r20845, r20844, r20843, MPFR_RNDN);
        mpfr_div(r20846, r20843, r20845, MPFR_RNDN);
        return mpfr_get_d(r20846, MPFR_RNDN);
}

