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

char *name = "Rosa's DopplerBench";

double f_if(float u, float v, float t1) {
        float r7925 = t1;
        float r7926 = -r7925;
        float r7927 = v;
        float r7928 = r7926 * r7927;
        float r7929 = u;
        float r7930 = r7925 + r7929;
        float r7931 = r7930 * r7930;
        float r7932 = r7928 / r7931;
        return r7932;
}

double f_id(double u, double v, double t1) {
        double r7933 = t1;
        double r7934 = -r7933;
        double r7935 = v;
        double r7936 = r7934 * r7935;
        double r7937 = u;
        double r7938 = r7933 + r7937;
        double r7939 = r7938 * r7938;
        double r7940 = r7936 / r7939;
        return r7940;
}


double f_of(float u, float v, float t1) {
        float r7941 = t1;
        float r7942 = u;
        float r7943 = r7941 + r7942;
        float r7944 = r7941 / r7943;
        float r7945 = v;
        float r7946 = -r7945;
        float r7947 = r7946 / r7943;
        float r7948 = r7944 * r7947;
        return r7948;
}

double f_od(double u, double v, double t1) {
        double r7949 = t1;
        double r7950 = u;
        double r7951 = r7949 + r7950;
        double r7952 = r7949 / r7951;
        double r7953 = v;
        double r7954 = -r7953;
        double r7955 = r7954 / r7951;
        double r7956 = r7952 * r7955;
        return r7956;
}

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 r7957, r7958, r7959, r7960, r7961, r7962, r7963, r7964;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r7957);
        mpfr_init(r7958);
        mpfr_init(r7959);
        mpfr_init(r7960);
        mpfr_init(r7961);
        mpfr_init(r7962);
        mpfr_init(r7963);
        mpfr_init(r7964);
}

double f_im(double u, double v, double t1) {
        mpfr_set_d(r7957, t1, MPFR_RNDN);
        mpfr_neg(r7958, r7957, MPFR_RNDN);
        mpfr_set_d(r7959, v, MPFR_RNDN);
        mpfr_mul(r7960, r7958, r7959, MPFR_RNDN);
        mpfr_set_d(r7961, u, MPFR_RNDN);
        mpfr_add(r7962, r7957, r7961, MPFR_RNDN);
        mpfr_mul(r7963, r7962, r7962, MPFR_RNDN);
        mpfr_div(r7964, r7960, r7963, MPFR_RNDN);
        return mpfr_get_d(r7964, MPFR_RNDN);
}

static mpfr_t r7965, r7966, r7967, r7968, r7969, r7970, r7971, r7972;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r7965);
        mpfr_init(r7966);
        mpfr_init(r7967);
        mpfr_init(r7968);
        mpfr_init(r7969);
        mpfr_init(r7970);
        mpfr_init(r7971);
        mpfr_init(r7972);
}

double f_fm(double u, double v, double t1) {
        mpfr_set_d(r7965, t1, MPFR_RNDN);
        mpfr_set_d(r7966, u, MPFR_RNDN);
        mpfr_add(r7967, r7965, r7966, MPFR_RNDN);
        mpfr_div(r7968, r7965, r7967, MPFR_RNDN);
        mpfr_set_d(r7969, v, MPFR_RNDN);
        mpfr_neg(r7970, r7969, MPFR_RNDN);
        mpfr_div(r7971, r7970, r7967, MPFR_RNDN);
        mpfr_mul(r7972, r7968, r7971, MPFR_RNDN);
        return mpfr_get_d(r7972, MPFR_RNDN);
}

static mpfr_t r7973, r7974, r7975, r7976, r7977, r7978, r7979, r7980;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r7973);
        mpfr_init(r7974);
        mpfr_init(r7975);
        mpfr_init(r7976);
        mpfr_init(r7977);
        mpfr_init(r7978);
        mpfr_init(r7979);
        mpfr_init(r7980);
}

double f_dm(double u, double v, double t1) {
        mpfr_set_d(r7973, t1, MPFR_RNDN);
        mpfr_set_d(r7974, u, MPFR_RNDN);
        mpfr_add(r7975, r7973, r7974, MPFR_RNDN);
        mpfr_div(r7976, r7973, r7975, MPFR_RNDN);
        mpfr_set_d(r7977, v, MPFR_RNDN);
        mpfr_neg(r7978, r7977, MPFR_RNDN);
        mpfr_div(r7979, r7978, r7975, MPFR_RNDN);
        mpfr_mul(r7980, r7976, r7979, MPFR_RNDN);
        return mpfr_get_d(r7980, MPFR_RNDN);
}

