#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 r40743 = 1.0;
        float r40744 = x;
        float r40745 = r40743 / r40744;
        float r40746 = y;
        float r40747 = z;
        float r40748 = r40747 * r40747;
        float r40749 = r40743 + r40748;
        float r40750 = r40746 * r40749;
        float r40751 = r40745 / r40750;
        return r40751;
}

double f_id(double x, double y, double z) {
        double r40752 = 1.0;
        double r40753 = x;
        double r40754 = r40752 / r40753;
        double r40755 = y;
        double r40756 = z;
        double r40757 = r40756 * r40756;
        double r40758 = r40752 + r40757;
        double r40759 = r40755 * r40758;
        double r40760 = r40754 / r40759;
        return r40760;
}


double f_of(float x, float y, float z) {
        float r40761 = 1.0;
        float r40762 = y;
        float r40763 = r40761 / r40762;
        float r40764 = z;
        float r40765 = r40764 * r40764;
        float r40766 = r40761 + r40765;
        float r40767 = r40763 / r40766;
        float r40768 = x;
        float r40769 = r40767 / r40768;
        return r40769;
}

double f_od(double x, double y, double z) {
        double r40770 = 1.0;
        double r40771 = y;
        double r40772 = r40770 / r40771;
        double r40773 = z;
        double r40774 = r40773 * r40773;
        double r40775 = r40770 + r40774;
        double r40776 = r40772 / r40775;
        double r40777 = x;
        double r40778 = r40776 / r40777;
        return r40778;
}

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 r40779, r40780, r40781, r40782, r40783, r40784, r40785, r40786, r40787;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r40779, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40780);
        mpfr_init(r40781);
        mpfr_init(r40782);
        mpfr_init(r40783);
        mpfr_init(r40784);
        mpfr_init(r40785);
        mpfr_init(r40786);
        mpfr_init(r40787);
}

double f_im(double x, double y, double z) {
        ;
        mpfr_set_d(r40780, x, MPFR_RNDN);
        mpfr_div(r40781, r40779, r40780, MPFR_RNDN);
        mpfr_set_d(r40782, y, MPFR_RNDN);
        mpfr_set_d(r40783, z, MPFR_RNDN);
        mpfr_mul(r40784, r40783, r40783, MPFR_RNDN);
        mpfr_add(r40785, r40779, r40784, MPFR_RNDN);
        mpfr_mul(r40786, r40782, r40785, MPFR_RNDN);
        mpfr_div(r40787, r40781, r40786, MPFR_RNDN);
        return mpfr_get_d(r40787, MPFR_RNDN);
}

static mpfr_t r40788, r40789, r40790, r40791, r40792, r40793, r40794, r40795, r40796;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r40788, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40789);
        mpfr_init(r40790);
        mpfr_init(r40791);
        mpfr_init(r40792);
        mpfr_init(r40793);
        mpfr_init(r40794);
        mpfr_init(r40795);
        mpfr_init(r40796);
}

double f_fm(double x, double y, double z) {
        ;
        mpfr_set_d(r40789, y, MPFR_RNDN);
        mpfr_div(r40790, r40788, r40789, MPFR_RNDN);
        mpfr_set_d(r40791, z, MPFR_RNDN);
        mpfr_mul(r40792, r40791, r40791, MPFR_RNDN);
        mpfr_add(r40793, r40788, r40792, MPFR_RNDN);
        mpfr_div(r40794, r40790, r40793, MPFR_RNDN);
        mpfr_set_d(r40795, x, MPFR_RNDN);
        mpfr_div(r40796, r40794, r40795, MPFR_RNDN);
        return mpfr_get_d(r40796, MPFR_RNDN);
}

static mpfr_t r40797, r40798, r40799, r40800, r40801, r40802, r40803, r40804, r40805;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r40797, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40798);
        mpfr_init(r40799);
        mpfr_init(r40800);
        mpfr_init(r40801);
        mpfr_init(r40802);
        mpfr_init(r40803);
        mpfr_init(r40804);
        mpfr_init(r40805);
}

double f_dm(double x, double y, double z) {
        ;
        mpfr_set_d(r40798, y, MPFR_RNDN);
        mpfr_div(r40799, r40797, r40798, MPFR_RNDN);
        mpfr_set_d(r40800, z, MPFR_RNDN);
        mpfr_mul(r40801, r40800, r40800, MPFR_RNDN);
        mpfr_add(r40802, r40797, r40801, MPFR_RNDN);
        mpfr_div(r40803, r40799, r40802, MPFR_RNDN);
        mpfr_set_d(r40804, x, MPFR_RNDN);
        mpfr_div(r40805, r40803, r40804, MPFR_RNDN);
        return mpfr_get_d(r40805, MPFR_RNDN);
}

