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

char *name = "Statistics.Distribution.CauchyLorentz:$cdensity from math-functions-0.1.5.2";

double f_if(float x, float y, float z) {
        float r36949 = 1.0f;
        float r36950 = x;
        float r36951 = r36949 / r36950;
        float r36952 = y;
        float r36953 = z;
        float r36954 = r36953 * r36953;
        float r36955 = r36949 + r36954;
        float r36956 = r36952 * r36955;
        float r36957 = r36951 / r36956;
        return r36957;
}

double f_id(double x, double y, double z) {
        double r36958 = 1.0;
        double r36959 = x;
        double r36960 = r36958 / r36959;
        double r36961 = y;
        double r36962 = z;
        double r36963 = r36962 * r36962;
        double r36964 = r36958 + r36963;
        double r36965 = r36961 * r36964;
        double r36966 = r36960 / r36965;
        return r36966;
}


double f_of(float x, float y, float z) {
        float r36967 = x;
        float r36968 = -2.92303571655044e+87f;
        bool r36969 = r36967 <= r36968;
        float r36970 = 1.0f;
        float r36971 = r36970 / r36967;
        float r36972 = y;
        float r36973 = z;
        float r36974 = r36973 * r36973;
        float r36975 = r36970 + r36974;
        float r36976 = r36972 * r36975;
        float r36977 = r36971 / r36976;
        float r36978 = 1.0f;
        float r36979 = r36978 / r36972;
        float r36980 = r36971 / r36975;
        float r36981 = r36979 * r36980;
        float r36982 = r36969 ? r36977 : r36981;
        return r36982;
}

double f_od(double x, double y, double z) {
        double r36983 = x;
        double r36984 = -2.92303571655044e+87;
        bool r36985 = r36983 <= r36984;
        double r36986 = 1.0;
        double r36987 = r36986 / r36983;
        double r36988 = y;
        double r36989 = z;
        double r36990 = r36989 * r36989;
        double r36991 = r36986 + r36990;
        double r36992 = r36988 * r36991;
        double r36993 = r36987 / r36992;
        double r36994 = 1.0;
        double r36995 = r36994 / r36988;
        double r36996 = r36987 / r36991;
        double r36997 = r36995 * r36996;
        double r36998 = r36985 ? r36993 : r36997;
        return r36998;
}

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 r36999, r37000, r37001, r37002, r37003, r37004, r37005, r37006, r37007;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r36999, "1.0", 10, MPFR_RNDN);
        mpfr_init(r37000);
        mpfr_init(r37001);
        mpfr_init(r37002);
        mpfr_init(r37003);
        mpfr_init(r37004);
        mpfr_init(r37005);
        mpfr_init(r37006);
        mpfr_init(r37007);
}

double f_im(double x, double y, double z) {
        ;
        mpfr_set_d(r37000, x, MPFR_RNDN);
        mpfr_div(r37001, r36999, r37000, MPFR_RNDN);
        mpfr_set_d(r37002, y, MPFR_RNDN);
        mpfr_set_d(r37003, z, MPFR_RNDN);
        mpfr_mul(r37004, r37003, r37003, MPFR_RNDN);
        mpfr_add(r37005, r36999, r37004, MPFR_RNDN);
        mpfr_mul(r37006, r37002, r37005, MPFR_RNDN);
        mpfr_div(r37007, r37001, r37006, MPFR_RNDN);
        return mpfr_get_d(r37007, MPFR_RNDN);
}

static mpfr_t r37008, r37009, r37010, r37011, r37012, r37013, r37014, r37015, r37016, r37017, r37018, r37019, r37020, r37021, r37022, r37023;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r37008);
        mpfr_init_set_str(r37009, "-2.92303571655044e+87", 10, MPFR_RNDN);
        mpfr_init(r37010);
        mpfr_init_set_str(r37011, "1.0", 10, MPFR_RNDN);
        mpfr_init(r37012);
        mpfr_init(r37013);
        mpfr_init(r37014);
        mpfr_init(r37015);
        mpfr_init(r37016);
        mpfr_init(r37017);
        mpfr_init(r37018);
        mpfr_init_set_str(r37019, "1", 10, MPFR_RNDN);
        mpfr_init(r37020);
        mpfr_init(r37021);
        mpfr_init(r37022);
        mpfr_init(r37023);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r37008, x, MPFR_RNDN);
        ;
        mpfr_set_si(r37010, mpfr_cmp(r37008, r37009) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r37012, r37011, r37008, MPFR_RNDN);
        mpfr_set_d(r37013, y, MPFR_RNDN);
        mpfr_set_d(r37014, z, MPFR_RNDN);
        mpfr_mul(r37015, r37014, r37014, MPFR_RNDN);
        mpfr_add(r37016, r37011, r37015, MPFR_RNDN);
        mpfr_mul(r37017, r37013, r37016, MPFR_RNDN);
        mpfr_div(r37018, r37012, r37017, MPFR_RNDN);
        ;
        mpfr_div(r37020, r37019, r37013, MPFR_RNDN);
        mpfr_div(r37021, r37012, r37016, MPFR_RNDN);
        mpfr_mul(r37022, r37020, r37021, MPFR_RNDN);
        if (mpfr_get_si(r37010, MPFR_RNDN)) { mpfr_set(r37023, r37018, MPFR_RNDN); } else { mpfr_set(r37023, r37022, MPFR_RNDN); };
        return mpfr_get_d(r37023, MPFR_RNDN);
}

static mpfr_t r37024, r37025, r37026, r37027, r37028, r37029, r37030, r37031, r37032, r37033, r37034, r37035, r37036, r37037, r37038, r37039;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r37024);
        mpfr_init_set_str(r37025, "-2.92303571655044e+87", 10, MPFR_RNDN);
        mpfr_init(r37026);
        mpfr_init_set_str(r37027, "1.0", 10, MPFR_RNDN);
        mpfr_init(r37028);
        mpfr_init(r37029);
        mpfr_init(r37030);
        mpfr_init(r37031);
        mpfr_init(r37032);
        mpfr_init(r37033);
        mpfr_init(r37034);
        mpfr_init_set_str(r37035, "1", 10, MPFR_RNDN);
        mpfr_init(r37036);
        mpfr_init(r37037);
        mpfr_init(r37038);
        mpfr_init(r37039);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r37024, x, MPFR_RNDN);
        ;
        mpfr_set_si(r37026, mpfr_cmp(r37024, r37025) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r37028, r37027, r37024, MPFR_RNDN);
        mpfr_set_d(r37029, y, MPFR_RNDN);
        mpfr_set_d(r37030, z, MPFR_RNDN);
        mpfr_mul(r37031, r37030, r37030, MPFR_RNDN);
        mpfr_add(r37032, r37027, r37031, MPFR_RNDN);
        mpfr_mul(r37033, r37029, r37032, MPFR_RNDN);
        mpfr_div(r37034, r37028, r37033, MPFR_RNDN);
        ;
        mpfr_div(r37036, r37035, r37029, MPFR_RNDN);
        mpfr_div(r37037, r37028, r37032, MPFR_RNDN);
        mpfr_mul(r37038, r37036, r37037, MPFR_RNDN);
        if (mpfr_get_si(r37026, MPFR_RNDN)) { mpfr_set(r37039, r37034, MPFR_RNDN); } else { mpfr_set(r37039, r37038, MPFR_RNDN); };
        return mpfr_get_d(r37039, MPFR_RNDN);
}

