#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 r40451 = 1.0;
        float r40452 = x;
        float r40453 = r40451 / r40452;
        float r40454 = y;
        float r40455 = z;
        float r40456 = r40455 * r40455;
        float r40457 = r40451 + r40456;
        float r40458 = r40454 * r40457;
        float r40459 = r40453 / r40458;
        return r40459;
}

double f_id(double x, double y, double z) {
        double r40460 = 1.0;
        double r40461 = x;
        double r40462 = r40460 / r40461;
        double r40463 = y;
        double r40464 = z;
        double r40465 = r40464 * r40464;
        double r40466 = r40460 + r40465;
        double r40467 = r40463 * r40466;
        double r40468 = r40462 / r40467;
        return r40468;
}


double f_of(float x, float y, float z) {
        float r40469 = 1.0;
        float r40470 = y;
        float r40471 = r40469 / r40470;
        float r40472 = z;
        float r40473 = r40472 * r40472;
        float r40474 = r40469 + r40473;
        float r40475 = r40471 / r40474;
        float r40476 = x;
        float r40477 = r40475 / r40476;
        return r40477;
}

double f_od(double x, double y, double z) {
        double r40478 = 1.0;
        double r40479 = y;
        double r40480 = r40478 / r40479;
        double r40481 = z;
        double r40482 = r40481 * r40481;
        double r40483 = r40478 + r40482;
        double r40484 = r40480 / r40483;
        double r40485 = x;
        double r40486 = r40484 / r40485;
        return r40486;
}

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 r40487, r40488, r40489, r40490, r40491, r40492, r40493, r40494, r40495;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r40487, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40488);
        mpfr_init(r40489);
        mpfr_init(r40490);
        mpfr_init(r40491);
        mpfr_init(r40492);
        mpfr_init(r40493);
        mpfr_init(r40494);
        mpfr_init(r40495);
}

double f_im(double x, double y, double z) {
        ;
        mpfr_set_d(r40488, x, MPFR_RNDN);
        mpfr_div(r40489, r40487, r40488, MPFR_RNDN);
        mpfr_set_d(r40490, y, MPFR_RNDN);
        mpfr_set_d(r40491, z, MPFR_RNDN);
        mpfr_mul(r40492, r40491, r40491, MPFR_RNDN);
        mpfr_add(r40493, r40487, r40492, MPFR_RNDN);
        mpfr_mul(r40494, r40490, r40493, MPFR_RNDN);
        mpfr_div(r40495, r40489, r40494, MPFR_RNDN);
        return mpfr_get_d(r40495, MPFR_RNDN);
}

static mpfr_t r40496, r40497, r40498, r40499, r40500, r40501, r40502, r40503, r40504;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r40496, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40497);
        mpfr_init(r40498);
        mpfr_init(r40499);
        mpfr_init(r40500);
        mpfr_init(r40501);
        mpfr_init(r40502);
        mpfr_init(r40503);
        mpfr_init(r40504);
}

double f_fm(double x, double y, double z) {
        ;
        mpfr_set_d(r40497, y, MPFR_RNDN);
        mpfr_div(r40498, r40496, r40497, MPFR_RNDN);
        mpfr_set_d(r40499, z, MPFR_RNDN);
        mpfr_mul(r40500, r40499, r40499, MPFR_RNDN);
        mpfr_add(r40501, r40496, r40500, MPFR_RNDN);
        mpfr_div(r40502, r40498, r40501, MPFR_RNDN);
        mpfr_set_d(r40503, x, MPFR_RNDN);
        mpfr_div(r40504, r40502, r40503, MPFR_RNDN);
        return mpfr_get_d(r40504, MPFR_RNDN);
}

static mpfr_t r40505, r40506, r40507, r40508, r40509, r40510, r40511, r40512, r40513;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r40505, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40506);
        mpfr_init(r40507);
        mpfr_init(r40508);
        mpfr_init(r40509);
        mpfr_init(r40510);
        mpfr_init(r40511);
        mpfr_init(r40512);
        mpfr_init(r40513);
}

double f_dm(double x, double y, double z) {
        ;
        mpfr_set_d(r40506, y, MPFR_RNDN);
        mpfr_div(r40507, r40505, r40506, MPFR_RNDN);
        mpfr_set_d(r40508, z, MPFR_RNDN);
        mpfr_mul(r40509, r40508, r40508, MPFR_RNDN);
        mpfr_add(r40510, r40505, r40509, MPFR_RNDN);
        mpfr_div(r40511, r40507, r40510, MPFR_RNDN);
        mpfr_set_d(r40512, x, MPFR_RNDN);
        mpfr_div(r40513, r40511, r40512, MPFR_RNDN);
        return mpfr_get_d(r40513, MPFR_RNDN);
}

