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

char *name = "Development.Shake.Progress:message from shake-0.15.5";

double f_if(float x, float y) {
        float r54208 = x;
        float r54209 = 100.0;
        float r54210 = r54208 * r54209;
        float r54211 = y;
        float r54212 = r54208 + r54211;
        float r54213 = r54210 / r54212;
        return r54213;
}

double f_id(double x, double y) {
        double r54214 = x;
        double r54215 = 100.0;
        double r54216 = r54214 * r54215;
        double r54217 = y;
        double r54218 = r54214 + r54217;
        double r54219 = r54216 / r54218;
        return r54219;
}


double f_of(float x, float y) {
        float r54220 = x;
        float r54221 = y;
        float r54222 = r54220 + r54221;
        float r54223 = 100.0;
        float r54224 = r54222 / r54223;
        float r54225 = r54220 / r54224;
        return r54225;
}

double f_od(double x, double y) {
        double r54226 = x;
        double r54227 = y;
        double r54228 = r54226 + r54227;
        double r54229 = 100.0;
        double r54230 = r54228 / r54229;
        double r54231 = r54226 / r54230;
        return r54231;
}

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 r54232, r54233, r54234, r54235, r54236, r54237;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r54232);
        mpfr_init_set_str(r54233, "100.0", 10, MPFR_RNDN);
        mpfr_init(r54234);
        mpfr_init(r54235);
        mpfr_init(r54236);
        mpfr_init(r54237);
}

double f_im(double x, double y) {
        mpfr_set_d(r54232, x, MPFR_RNDN);
        ;
        mpfr_mul(r54234, r54232, r54233, MPFR_RNDN);
        mpfr_set_d(r54235, y, MPFR_RNDN);
        mpfr_add(r54236, r54232, r54235, MPFR_RNDN);
        mpfr_div(r54237, r54234, r54236, MPFR_RNDN);
        return mpfr_get_d(r54237, MPFR_RNDN);
}

static mpfr_t r54238, r54239, r54240, r54241, r54242, r54243;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r54238);
        mpfr_init(r54239);
        mpfr_init(r54240);
        mpfr_init_set_str(r54241, "100.0", 10, MPFR_RNDN);
        mpfr_init(r54242);
        mpfr_init(r54243);
}

double f_fm(double x, double y) {
        mpfr_set_d(r54238, x, MPFR_RNDN);
        mpfr_set_d(r54239, y, MPFR_RNDN);
        mpfr_add(r54240, r54238, r54239, MPFR_RNDN);
        ;
        mpfr_div(r54242, r54240, r54241, MPFR_RNDN);
        mpfr_div(r54243, r54238, r54242, MPFR_RNDN);
        return mpfr_get_d(r54243, MPFR_RNDN);
}

static mpfr_t r54244, r54245, r54246, r54247, r54248, r54249;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r54244);
        mpfr_init(r54245);
        mpfr_init(r54246);
        mpfr_init_set_str(r54247, "100.0", 10, MPFR_RNDN);
        mpfr_init(r54248);
        mpfr_init(r54249);
}

double f_dm(double x, double y) {
        mpfr_set_d(r54244, x, MPFR_RNDN);
        mpfr_set_d(r54245, y, MPFR_RNDN);
        mpfr_add(r54246, r54244, r54245, MPFR_RNDN);
        ;
        mpfr_div(r54248, r54246, r54247, MPFR_RNDN);
        mpfr_div(r54249, r54244, r54248, MPFR_RNDN);
        return mpfr_get_d(r54249, MPFR_RNDN);
}

