#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 r40297 = 1.0;
        float r40298 = x;
        float r40299 = r40297 / r40298;
        float r40300 = y;
        float r40301 = z;
        float r40302 = r40301 * r40301;
        float r40303 = r40297 + r40302;
        float r40304 = r40300 * r40303;
        float r40305 = r40299 / r40304;
        return r40305;
}

double f_id(double x, double y, double z) {
        double r40306 = 1.0;
        double r40307 = x;
        double r40308 = r40306 / r40307;
        double r40309 = y;
        double r40310 = z;
        double r40311 = r40310 * r40310;
        double r40312 = r40306 + r40311;
        double r40313 = r40309 * r40312;
        double r40314 = r40308 / r40313;
        return r40314;
}


double f_of(float x, float y, float z) {
        float r40315 = 1.0;
        float r40316 = y;
        float r40317 = z;
        float r40318 = r40317 * r40317;
        float r40319 = r40315 + r40318;
        float r40320 = r40316 * r40319;
        float r40321 = x;
        float r40322 = r40320 * r40321;
        float r40323 = r40315 / r40322;
        return r40323;
}

double f_od(double x, double y, double z) {
        double r40324 = 1.0;
        double r40325 = y;
        double r40326 = z;
        double r40327 = r40326 * r40326;
        double r40328 = r40324 + r40327;
        double r40329 = r40325 * r40328;
        double r40330 = x;
        double r40331 = r40329 * r40330;
        double r40332 = r40324 / r40331;
        return r40332;
}

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 r40333, r40334, r40335, r40336, r40337, r40338, r40339, r40340, r40341;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r40333, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40334);
        mpfr_init(r40335);
        mpfr_init(r40336);
        mpfr_init(r40337);
        mpfr_init(r40338);
        mpfr_init(r40339);
        mpfr_init(r40340);
        mpfr_init(r40341);
}

double f_im(double x, double y, double z) {
        ;
        mpfr_set_d(r40334, x, MPFR_RNDN);
        mpfr_div(r40335, r40333, r40334, MPFR_RNDN);
        mpfr_set_d(r40336, y, MPFR_RNDN);
        mpfr_set_d(r40337, z, MPFR_RNDN);
        mpfr_mul(r40338, r40337, r40337, MPFR_RNDN);
        mpfr_add(r40339, r40333, r40338, MPFR_RNDN);
        mpfr_mul(r40340, r40336, r40339, MPFR_RNDN);
        mpfr_div(r40341, r40335, r40340, MPFR_RNDN);
        return mpfr_get_d(r40341, MPFR_RNDN);
}

static mpfr_t r40342, r40343, r40344, r40345, r40346, r40347, r40348, r40349, r40350;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r40342, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40343);
        mpfr_init(r40344);
        mpfr_init(r40345);
        mpfr_init(r40346);
        mpfr_init(r40347);
        mpfr_init(r40348);
        mpfr_init(r40349);
        mpfr_init(r40350);
}

double f_fm(double x, double y, double z) {
        ;
        mpfr_set_d(r40343, y, MPFR_RNDN);
        mpfr_set_d(r40344, z, MPFR_RNDN);
        mpfr_mul(r40345, r40344, r40344, MPFR_RNDN);
        mpfr_add(r40346, r40342, r40345, MPFR_RNDN);
        mpfr_mul(r40347, r40343, r40346, MPFR_RNDN);
        mpfr_set_d(r40348, x, MPFR_RNDN);
        mpfr_mul(r40349, r40347, r40348, MPFR_RNDN);
        mpfr_div(r40350, r40342, r40349, MPFR_RNDN);
        return mpfr_get_d(r40350, MPFR_RNDN);
}

static mpfr_t r40351, r40352, r40353, r40354, r40355, r40356, r40357, r40358, r40359;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r40351, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40352);
        mpfr_init(r40353);
        mpfr_init(r40354);
        mpfr_init(r40355);
        mpfr_init(r40356);
        mpfr_init(r40357);
        mpfr_init(r40358);
        mpfr_init(r40359);
}

double f_dm(double x, double y, double z) {
        ;
        mpfr_set_d(r40352, y, MPFR_RNDN);
        mpfr_set_d(r40353, z, MPFR_RNDN);
        mpfr_mul(r40354, r40353, r40353, MPFR_RNDN);
        mpfr_add(r40355, r40351, r40354, MPFR_RNDN);
        mpfr_mul(r40356, r40352, r40355, MPFR_RNDN);
        mpfr_set_d(r40357, x, MPFR_RNDN);
        mpfr_mul(r40358, r40356, r40357, MPFR_RNDN);
        mpfr_div(r40359, r40351, r40358, MPFR_RNDN);
        return mpfr_get_d(r40359, MPFR_RNDN);
}

