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

char *name = "Data.Number.Erf:$cinvnormcdf from erf-2.0.0.0, A";

double f_if(float x, float y, float z, float t) {
        float r54924 = x;
        float r54925 = 0.5;
        float r54926 = r54924 * r54925;
        float r54927 = y;
        float r54928 = r54926 - r54927;
        float r54929 = z;
        float r54930 = 2.0;
        float r54931 = r54929 * r54930;
        float r54932 = sqrt(r54931);
        float r54933 = r54928 * r54932;
        float r54934 = t;
        float r54935 = r54934 * r54934;
        float r54936 = r54935 / r54930;
        float r54937 = exp(r54936);
        float r54938 = r54933 * r54937;
        return r54938;
}

double f_id(double x, double y, double z, double t) {
        double r54939 = x;
        double r54940 = 0.5;
        double r54941 = r54939 * r54940;
        double r54942 = y;
        double r54943 = r54941 - r54942;
        double r54944 = z;
        double r54945 = 2.0;
        double r54946 = r54944 * r54945;
        double r54947 = sqrt(r54946);
        double r54948 = r54943 * r54947;
        double r54949 = t;
        double r54950 = r54949 * r54949;
        double r54951 = r54950 / r54945;
        double r54952 = exp(r54951);
        double r54953 = r54948 * r54952;
        return r54953;
}


double f_of(float x, float y, float z, float t) {
        float r54954 = x;
        float r54955 = 0.5;
        float r54956 = r54954 * r54955;
        float r54957 = y;
        float r54958 = r54956 - r54957;
        float r54959 = z;
        float r54960 = 2.0;
        float r54961 = r54959 * r54960;
        float r54962 = sqrt(r54961);
        float r54963 = r54958 * r54962;
        float r54964 = t;
        float r54965 = r54964 * r54964;
        float r54966 = r54965 / r54960;
        float r54967 = exp(r54966);
        float r54968 = r54963 * r54967;
        return r54968;
}

double f_od(double x, double y, double z, double t) {
        double r54969 = x;
        double r54970 = 0.5;
        double r54971 = r54969 * r54970;
        double r54972 = y;
        double r54973 = r54971 - r54972;
        double r54974 = z;
        double r54975 = 2.0;
        double r54976 = r54974 * r54975;
        double r54977 = sqrt(r54976);
        double r54978 = r54973 * r54977;
        double r54979 = t;
        double r54980 = r54979 * r54979;
        double r54981 = r54980 / r54975;
        double r54982 = exp(r54981);
        double r54983 = r54978 * r54982;
        return r54983;
}

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 r54984, r54985, r54986, r54987, r54988, r54989, r54990, r54991, r54992, r54993, r54994, r54995, r54996, r54997, r54998;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r54984);
        mpfr_init_set_str(r54985, "0.5", 10, MPFR_RNDN);
        mpfr_init(r54986);
        mpfr_init(r54987);
        mpfr_init(r54988);
        mpfr_init(r54989);
        mpfr_init_set_str(r54990, "2.0", 10, MPFR_RNDN);
        mpfr_init(r54991);
        mpfr_init(r54992);
        mpfr_init(r54993);
        mpfr_init(r54994);
        mpfr_init(r54995);
        mpfr_init(r54996);
        mpfr_init(r54997);
        mpfr_init(r54998);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r54984, x, MPFR_RNDN);
        ;
        mpfr_mul(r54986, r54984, r54985, MPFR_RNDN);
        mpfr_set_d(r54987, y, MPFR_RNDN);
        mpfr_sub(r54988, r54986, r54987, MPFR_RNDN);
        mpfr_set_d(r54989, z, MPFR_RNDN);
        ;
        mpfr_mul(r54991, r54989, r54990, MPFR_RNDN);
        mpfr_sqrt(r54992, r54991, MPFR_RNDN);
        mpfr_mul(r54993, r54988, r54992, MPFR_RNDN);
        mpfr_set_d(r54994, t, MPFR_RNDN);
        mpfr_mul(r54995, r54994, r54994, MPFR_RNDN);
        mpfr_div(r54996, r54995, r54990, MPFR_RNDN);
        mpfr_exp(r54997, r54996, MPFR_RNDN);
        mpfr_mul(r54998, r54993, r54997, MPFR_RNDN);
        return mpfr_get_d(r54998, MPFR_RNDN);
}

static mpfr_t r54999, r55000, r55001, r55002, r55003, r55004, r55005, r55006, r55007, r55008, r55009, r55010, r55011, r55012, r55013;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r54999);
        mpfr_init_set_str(r55000, "0.5", 10, MPFR_RNDN);
        mpfr_init(r55001);
        mpfr_init(r55002);
        mpfr_init(r55003);
        mpfr_init(r55004);
        mpfr_init_set_str(r55005, "2.0", 10, MPFR_RNDN);
        mpfr_init(r55006);
        mpfr_init(r55007);
        mpfr_init(r55008);
        mpfr_init(r55009);
        mpfr_init(r55010);
        mpfr_init(r55011);
        mpfr_init(r55012);
        mpfr_init(r55013);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r54999, x, MPFR_RNDN);
        ;
        mpfr_mul(r55001, r54999, r55000, MPFR_RNDN);
        mpfr_set_d(r55002, y, MPFR_RNDN);
        mpfr_sub(r55003, r55001, r55002, MPFR_RNDN);
        mpfr_set_d(r55004, z, MPFR_RNDN);
        ;
        mpfr_mul(r55006, r55004, r55005, MPFR_RNDN);
        mpfr_sqrt(r55007, r55006, MPFR_RNDN);
        mpfr_mul(r55008, r55003, r55007, MPFR_RNDN);
        mpfr_set_d(r55009, t, MPFR_RNDN);
        mpfr_mul(r55010, r55009, r55009, MPFR_RNDN);
        mpfr_div(r55011, r55010, r55005, MPFR_RNDN);
        mpfr_exp(r55012, r55011, MPFR_RNDN);
        mpfr_mul(r55013, r55008, r55012, MPFR_RNDN);
        return mpfr_get_d(r55013, MPFR_RNDN);
}

static mpfr_t r55014, r55015, r55016, r55017, r55018, r55019, r55020, r55021, r55022, r55023, r55024, r55025, r55026, r55027, r55028;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55014);
        mpfr_init_set_str(r55015, "0.5", 10, MPFR_RNDN);
        mpfr_init(r55016);
        mpfr_init(r55017);
        mpfr_init(r55018);
        mpfr_init(r55019);
        mpfr_init_set_str(r55020, "2.0", 10, MPFR_RNDN);
        mpfr_init(r55021);
        mpfr_init(r55022);
        mpfr_init(r55023);
        mpfr_init(r55024);
        mpfr_init(r55025);
        mpfr_init(r55026);
        mpfr_init(r55027);
        mpfr_init(r55028);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r55014, x, MPFR_RNDN);
        ;
        mpfr_mul(r55016, r55014, r55015, MPFR_RNDN);
        mpfr_set_d(r55017, y, MPFR_RNDN);
        mpfr_sub(r55018, r55016, r55017, MPFR_RNDN);
        mpfr_set_d(r55019, z, MPFR_RNDN);
        ;
        mpfr_mul(r55021, r55019, r55020, MPFR_RNDN);
        mpfr_sqrt(r55022, r55021, MPFR_RNDN);
        mpfr_mul(r55023, r55018, r55022, MPFR_RNDN);
        mpfr_set_d(r55024, t, MPFR_RNDN);
        mpfr_mul(r55025, r55024, r55024, MPFR_RNDN);
        mpfr_div(r55026, r55025, r55020, MPFR_RNDN);
        mpfr_exp(r55027, r55026, MPFR_RNDN);
        mpfr_mul(r55028, r55023, r55027, MPFR_RNDN);
        return mpfr_get_d(r55028, MPFR_RNDN);
}

