#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, B";

double f_if(float x, float y) {
        float r52905 = x;
        float r52906 = y;
        float r52907 = r52905 * r52906;
        float r52908 = 1.0;
        float r52909 = r52906 + r52908;
        float r52910 = r52907 / r52909;
        return r52910;
}

double f_id(double x, double y) {
        double r52911 = x;
        double r52912 = y;
        double r52913 = r52911 * r52912;
        double r52914 = 1.0;
        double r52915 = r52912 + r52914;
        double r52916 = r52913 / r52915;
        return r52916;
}


double f_of(float x, float y) {
        float r52917 = y;
        float r52918 = -411930.8608633218;
        bool r52919 = r52917 <= r52918;
        float r52920 = x;
        float r52921 = 1.0;
        float r52922 = r52921 / r52917;
        float r52923 = r52922 - r52921;
        float r52924 = r52920 / r52917;
        float r52925 = r52923 * r52924;
        float r52926 = r52920 + r52925;
        float r52927 = 282709.3197423372;
        bool r52928 = r52917 <= r52927;
        float r52929 = r52920 * r52917;
        float r52930 = r52917 + r52921;
        float r52931 = r52929 / r52930;
        float r52932 = r52928 ? r52931 : r52926;
        float r52933 = r52919 ? r52926 : r52932;
        return r52933;
}

double f_od(double x, double y) {
        double r52934 = y;
        double r52935 = -411930.8608633218;
        bool r52936 = r52934 <= r52935;
        double r52937 = x;
        double r52938 = 1.0;
        double r52939 = r52938 / r52934;
        double r52940 = r52939 - r52938;
        double r52941 = r52937 / r52934;
        double r52942 = r52940 * r52941;
        double r52943 = r52937 + r52942;
        double r52944 = 282709.3197423372;
        bool r52945 = r52934 <= r52944;
        double r52946 = r52937 * r52934;
        double r52947 = r52934 + r52938;
        double r52948 = r52946 / r52947;
        double r52949 = r52945 ? r52948 : r52943;
        double r52950 = r52936 ? r52943 : r52949;
        return r52950;
}

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 r52951, r52952, r52953, r52954, r52955, r52956;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r52951);
        mpfr_init(r52952);
        mpfr_init(r52953);
        mpfr_init_set_str(r52954, "1.0", 10, MPFR_RNDN);
        mpfr_init(r52955);
        mpfr_init(r52956);
}

double f_im(double x, double y) {
        mpfr_set_d(r52951, x, MPFR_RNDN);
        mpfr_set_d(r52952, y, MPFR_RNDN);
        mpfr_mul(r52953, r52951, r52952, MPFR_RNDN);
        ;
        mpfr_add(r52955, r52952, r52954, MPFR_RNDN);
        mpfr_div(r52956, r52953, r52955, MPFR_RNDN);
        return mpfr_get_d(r52956, MPFR_RNDN);
}

static mpfr_t r52957, r52958, r52959, r52960, r52961, r52962, r52963, r52964, r52965, r52966, r52967, r52968, r52969, r52970, r52971, r52972, r52973;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r52957);
        mpfr_init_set_str(r52958, "-411930.8608633218", 10, MPFR_RNDN);
        mpfr_init(r52959);
        mpfr_init(r52960);
        mpfr_init_set_str(r52961, "1.0", 10, MPFR_RNDN);
        mpfr_init(r52962);
        mpfr_init(r52963);
        mpfr_init(r52964);
        mpfr_init(r52965);
        mpfr_init(r52966);
        mpfr_init_set_str(r52967, "282709.3197423372", 10, MPFR_RNDN);
        mpfr_init(r52968);
        mpfr_init(r52969);
        mpfr_init(r52970);
        mpfr_init(r52971);
        mpfr_init(r52972);
        mpfr_init(r52973);
}

double f_fm(double x, double y) {
        mpfr_set_d(r52957, y, MPFR_RNDN);
        ;
        mpfr_set_si(r52959, mpfr_cmp(r52957, r52958) <= 0, MPFR_RNDN);
        mpfr_set_d(r52960, x, MPFR_RNDN);
        ;
        mpfr_div(r52962, r52961, r52957, MPFR_RNDN);
        mpfr_sub(r52963, r52962, r52961, MPFR_RNDN);
        mpfr_div(r52964, r52960, r52957, MPFR_RNDN);
        mpfr_mul(r52965, r52963, r52964, MPFR_RNDN);
        mpfr_add(r52966, r52960, r52965, MPFR_RNDN);
        ;
        mpfr_set_si(r52968, mpfr_cmp(r52957, r52967) <= 0, MPFR_RNDN);
        mpfr_mul(r52969, r52960, r52957, MPFR_RNDN);
        mpfr_add(r52970, r52957, r52961, MPFR_RNDN);
        mpfr_div(r52971, r52969, r52970, MPFR_RNDN);
        if (mpfr_get_si(r52968, MPFR_RNDN)) { mpfr_set(r52972, r52971, MPFR_RNDN); } else { mpfr_set(r52972, r52966, MPFR_RNDN); };
        if (mpfr_get_si(r52959, MPFR_RNDN)) { mpfr_set(r52973, r52966, MPFR_RNDN); } else { mpfr_set(r52973, r52972, MPFR_RNDN); };
        return mpfr_get_d(r52973, MPFR_RNDN);
}

static mpfr_t r52974, r52975, r52976, r52977, r52978, r52979, r52980, r52981, r52982, r52983, r52984, r52985, r52986, r52987, r52988, r52989, r52990;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r52974);
        mpfr_init_set_str(r52975, "-411930.8608633218", 10, MPFR_RNDN);
        mpfr_init(r52976);
        mpfr_init(r52977);
        mpfr_init_set_str(r52978, "1.0", 10, MPFR_RNDN);
        mpfr_init(r52979);
        mpfr_init(r52980);
        mpfr_init(r52981);
        mpfr_init(r52982);
        mpfr_init(r52983);
        mpfr_init_set_str(r52984, "282709.3197423372", 10, MPFR_RNDN);
        mpfr_init(r52985);
        mpfr_init(r52986);
        mpfr_init(r52987);
        mpfr_init(r52988);
        mpfr_init(r52989);
        mpfr_init(r52990);
}

double f_dm(double x, double y) {
        mpfr_set_d(r52974, y, MPFR_RNDN);
        ;
        mpfr_set_si(r52976, mpfr_cmp(r52974, r52975) <= 0, MPFR_RNDN);
        mpfr_set_d(r52977, x, MPFR_RNDN);
        ;
        mpfr_div(r52979, r52978, r52974, MPFR_RNDN);
        mpfr_sub(r52980, r52979, r52978, MPFR_RNDN);
        mpfr_div(r52981, r52977, r52974, MPFR_RNDN);
        mpfr_mul(r52982, r52980, r52981, MPFR_RNDN);
        mpfr_add(r52983, r52977, r52982, MPFR_RNDN);
        ;
        mpfr_set_si(r52985, mpfr_cmp(r52974, r52984) <= 0, MPFR_RNDN);
        mpfr_mul(r52986, r52977, r52974, MPFR_RNDN);
        mpfr_add(r52987, r52974, r52978, MPFR_RNDN);
        mpfr_div(r52988, r52986, r52987, MPFR_RNDN);
        if (mpfr_get_si(r52985, MPFR_RNDN)) { mpfr_set(r52989, r52988, MPFR_RNDN); } else { mpfr_set(r52989, r52983, MPFR_RNDN); };
        if (mpfr_get_si(r52976, MPFR_RNDN)) { mpfr_set(r52990, r52983, MPFR_RNDN); } else { mpfr_set(r52990, r52989, MPFR_RNDN); };
        return mpfr_get_d(r52990, MPFR_RNDN);
}

