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

char *name = "Diagrams.Trail:splitAtParam  from diagrams-lib-1.3.0.3, C";

double f_if(float x, float y) {
        float r34089 = x;
        float r34090 = y;
        float r34091 = r34089 - r34090;
        float r34092 = 1.0;
        float r34093 = r34092 - r34090;
        float r34094 = r34091 / r34093;
        return r34094;
}

double f_id(double x, double y) {
        double r34095 = x;
        double r34096 = y;
        double r34097 = r34095 - r34096;
        double r34098 = 1.0;
        double r34099 = r34098 - r34096;
        double r34100 = r34097 / r34099;
        return r34100;
}


double f_of(float x, float y) {
        float r34101 = x;
        float r34102 = y;
        float r34103 = r34101 - r34102;
        float r34104 = 1.0;
        float r34105 = r34104 - r34102;
        float r34106 = r34103 / r34105;
        return r34106;
}

double f_od(double x, double y) {
        double r34107 = x;
        double r34108 = y;
        double r34109 = r34107 - r34108;
        double r34110 = 1.0;
        double r34111 = r34110 - r34108;
        double r34112 = r34109 / r34111;
        return r34112;
}

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 r34113, r34114, r34115, r34116, r34117, r34118;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r34113);
        mpfr_init(r34114);
        mpfr_init(r34115);
        mpfr_init_set_str(r34116, "1.0", 10, MPFR_RNDN);
        mpfr_init(r34117);
        mpfr_init(r34118);
}

double f_im(double x, double y) {
        mpfr_set_d(r34113, x, MPFR_RNDN);
        mpfr_set_d(r34114, y, MPFR_RNDN);
        mpfr_sub(r34115, r34113, r34114, MPFR_RNDN);
        ;
        mpfr_sub(r34117, r34116, r34114, MPFR_RNDN);
        mpfr_div(r34118, r34115, r34117, MPFR_RNDN);
        return mpfr_get_d(r34118, MPFR_RNDN);
}

static mpfr_t r34119, r34120, r34121, r34122, r34123, r34124;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r34119);
        mpfr_init(r34120);
        mpfr_init(r34121);
        mpfr_init_set_str(r34122, "1.0", 10, MPFR_RNDN);
        mpfr_init(r34123);
        mpfr_init(r34124);
}

double f_fm(double x, double y) {
        mpfr_set_d(r34119, x, MPFR_RNDN);
        mpfr_set_d(r34120, y, MPFR_RNDN);
        mpfr_sub(r34121, r34119, r34120, MPFR_RNDN);
        ;
        mpfr_sub(r34123, r34122, r34120, MPFR_RNDN);
        mpfr_div(r34124, r34121, r34123, MPFR_RNDN);
        return mpfr_get_d(r34124, MPFR_RNDN);
}

static mpfr_t r34125, r34126, r34127, r34128, r34129, r34130;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r34125);
        mpfr_init(r34126);
        mpfr_init(r34127);
        mpfr_init_set_str(r34128, "1.0", 10, MPFR_RNDN);
        mpfr_init(r34129);
        mpfr_init(r34130);
}

double f_dm(double x, double y) {
        mpfr_set_d(r34125, x, MPFR_RNDN);
        mpfr_set_d(r34126, y, MPFR_RNDN);
        mpfr_sub(r34127, r34125, r34126, MPFR_RNDN);
        ;
        mpfr_sub(r34129, r34128, r34126, MPFR_RNDN);
        mpfr_div(r34130, r34127, r34129, MPFR_RNDN);
        return mpfr_get_d(r34130, MPFR_RNDN);
}

