#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 r40531 = 1.0;
        float r40532 = x;
        float r40533 = r40531 / r40532;
        float r40534 = y;
        float r40535 = z;
        float r40536 = r40535 * r40535;
        float r40537 = r40531 + r40536;
        float r40538 = r40534 * r40537;
        float r40539 = r40533 / r40538;
        return r40539;
}

double f_id(double x, double y, double z) {
        double r40540 = 1.0;
        double r40541 = x;
        double r40542 = r40540 / r40541;
        double r40543 = y;
        double r40544 = z;
        double r40545 = r40544 * r40544;
        double r40546 = r40540 + r40545;
        double r40547 = r40543 * r40546;
        double r40548 = r40542 / r40547;
        return r40548;
}


double f_of(float x, float y, float z) {
        float r40549 = 1.0;
        float r40550 = y;
        float r40551 = z;
        float r40552 = r40551 * r40551;
        float r40553 = r40549 + r40552;
        float r40554 = r40550 * r40553;
        float r40555 = x;
        float r40556 = r40554 * r40555;
        float r40557 = r40549 / r40556;
        return r40557;
}

double f_od(double x, double y, double z) {
        double r40558 = 1.0;
        double r40559 = y;
        double r40560 = z;
        double r40561 = r40560 * r40560;
        double r40562 = r40558 + r40561;
        double r40563 = r40559 * r40562;
        double r40564 = x;
        double r40565 = r40563 * r40564;
        double r40566 = r40558 / r40565;
        return r40566;
}

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 r40567, r40568, r40569, r40570, r40571, r40572, r40573, r40574, r40575;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r40567, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40568);
        mpfr_init(r40569);
        mpfr_init(r40570);
        mpfr_init(r40571);
        mpfr_init(r40572);
        mpfr_init(r40573);
        mpfr_init(r40574);
        mpfr_init(r40575);
}

double f_im(double x, double y, double z) {
        ;
        mpfr_set_d(r40568, x, MPFR_RNDN);
        mpfr_div(r40569, r40567, r40568, MPFR_RNDN);
        mpfr_set_d(r40570, y, MPFR_RNDN);
        mpfr_set_d(r40571, z, MPFR_RNDN);
        mpfr_mul(r40572, r40571, r40571, MPFR_RNDN);
        mpfr_add(r40573, r40567, r40572, MPFR_RNDN);
        mpfr_mul(r40574, r40570, r40573, MPFR_RNDN);
        mpfr_div(r40575, r40569, r40574, MPFR_RNDN);
        return mpfr_get_d(r40575, MPFR_RNDN);
}

static mpfr_t r40576, r40577, r40578, r40579, r40580, r40581, r40582, r40583, r40584;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r40576, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40577);
        mpfr_init(r40578);
        mpfr_init(r40579);
        mpfr_init(r40580);
        mpfr_init(r40581);
        mpfr_init(r40582);
        mpfr_init(r40583);
        mpfr_init(r40584);
}

double f_fm(double x, double y, double z) {
        ;
        mpfr_set_d(r40577, y, MPFR_RNDN);
        mpfr_set_d(r40578, z, MPFR_RNDN);
        mpfr_mul(r40579, r40578, r40578, MPFR_RNDN);
        mpfr_add(r40580, r40576, r40579, MPFR_RNDN);
        mpfr_mul(r40581, r40577, r40580, MPFR_RNDN);
        mpfr_set_d(r40582, x, MPFR_RNDN);
        mpfr_mul(r40583, r40581, r40582, MPFR_RNDN);
        mpfr_div(r40584, r40576, r40583, MPFR_RNDN);
        return mpfr_get_d(r40584, MPFR_RNDN);
}

static mpfr_t r40585, r40586, r40587, r40588, r40589, r40590, r40591, r40592, r40593;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r40585, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40586);
        mpfr_init(r40587);
        mpfr_init(r40588);
        mpfr_init(r40589);
        mpfr_init(r40590);
        mpfr_init(r40591);
        mpfr_init(r40592);
        mpfr_init(r40593);
}

double f_dm(double x, double y, double z) {
        ;
        mpfr_set_d(r40586, y, MPFR_RNDN);
        mpfr_set_d(r40587, z, MPFR_RNDN);
        mpfr_mul(r40588, r40587, r40587, MPFR_RNDN);
        mpfr_add(r40589, r40585, r40588, MPFR_RNDN);
        mpfr_mul(r40590, r40586, r40589, MPFR_RNDN);
        mpfr_set_d(r40591, x, MPFR_RNDN);
        mpfr_mul(r40592, r40590, r40591, MPFR_RNDN);
        mpfr_div(r40593, r40585, r40592, MPFR_RNDN);
        return mpfr_get_d(r40593, MPFR_RNDN);
}

