#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 r56177 = x;
        float r56178 = 0.5;
        float r56179 = r56177 * r56178;
        float r56180 = y;
        float r56181 = r56179 - r56180;
        float r56182 = z;
        float r56183 = 2.0;
        float r56184 = r56182 * r56183;
        float r56185 = sqrt(r56184);
        float r56186 = r56181 * r56185;
        float r56187 = t;
        float r56188 = r56187 * r56187;
        float r56189 = r56188 / r56183;
        float r56190 = exp(r56189);
        float r56191 = r56186 * r56190;
        return r56191;
}

double f_id(double x, double y, double z, double t) {
        double r56192 = x;
        double r56193 = 0.5;
        double r56194 = r56192 * r56193;
        double r56195 = y;
        double r56196 = r56194 - r56195;
        double r56197 = z;
        double r56198 = 2.0;
        double r56199 = r56197 * r56198;
        double r56200 = sqrt(r56199);
        double r56201 = r56196 * r56200;
        double r56202 = t;
        double r56203 = r56202 * r56202;
        double r56204 = r56203 / r56198;
        double r56205 = exp(r56204);
        double r56206 = r56201 * r56205;
        return r56206;
}


double f_of(float x, float y, float z, float t) {
        float r56207 = x;
        float r56208 = 0.5;
        float r56209 = r56207 * r56208;
        float r56210 = y;
        float r56211 = r56209 - r56210;
        float r56212 = z;
        float r56213 = 2.0;
        float r56214 = r56212 * r56213;
        float r56215 = sqrt(r56214);
        float r56216 = r56211 * r56215;
        float r56217 = t;
        float r56218 = r56217 * r56217;
        float r56219 = r56218 / r56213;
        float r56220 = exp(r56219);
        float r56221 = r56216 * r56220;
        return r56221;
}

double f_od(double x, double y, double z, double t) {
        double r56222 = x;
        double r56223 = 0.5;
        double r56224 = r56222 * r56223;
        double r56225 = y;
        double r56226 = r56224 - r56225;
        double r56227 = z;
        double r56228 = 2.0;
        double r56229 = r56227 * r56228;
        double r56230 = sqrt(r56229);
        double r56231 = r56226 * r56230;
        double r56232 = t;
        double r56233 = r56232 * r56232;
        double r56234 = r56233 / r56228;
        double r56235 = exp(r56234);
        double r56236 = r56231 * r56235;
        return r56236;
}

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 r56237, r56238, r56239, r56240, r56241, r56242, r56243, r56244, r56245, r56246, r56247, r56248, r56249, r56250, r56251;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r56237);
        mpfr_init_set_str(r56238, "0.5", 10, MPFR_RNDN);
        mpfr_init(r56239);
        mpfr_init(r56240);
        mpfr_init(r56241);
        mpfr_init(r56242);
        mpfr_init_set_str(r56243, "2.0", 10, MPFR_RNDN);
        mpfr_init(r56244);
        mpfr_init(r56245);
        mpfr_init(r56246);
        mpfr_init(r56247);
        mpfr_init(r56248);
        mpfr_init(r56249);
        mpfr_init(r56250);
        mpfr_init(r56251);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r56237, x, MPFR_RNDN);
        ;
        mpfr_mul(r56239, r56237, r56238, MPFR_RNDN);
        mpfr_set_d(r56240, y, MPFR_RNDN);
        mpfr_sub(r56241, r56239, r56240, MPFR_RNDN);
        mpfr_set_d(r56242, z, MPFR_RNDN);
        ;
        mpfr_mul(r56244, r56242, r56243, MPFR_RNDN);
        mpfr_sqrt(r56245, r56244, MPFR_RNDN);
        mpfr_mul(r56246, r56241, r56245, MPFR_RNDN);
        mpfr_set_d(r56247, t, MPFR_RNDN);
        mpfr_mul(r56248, r56247, r56247, MPFR_RNDN);
        mpfr_div(r56249, r56248, r56243, MPFR_RNDN);
        mpfr_exp(r56250, r56249, MPFR_RNDN);
        mpfr_mul(r56251, r56246, r56250, MPFR_RNDN);
        return mpfr_get_d(r56251, MPFR_RNDN);
}

static mpfr_t r56252, r56253, r56254, r56255, r56256, r56257, r56258, r56259, r56260, r56261, r56262, r56263, r56264, r56265, r56266;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r56252);
        mpfr_init_set_str(r56253, "0.5", 10, MPFR_RNDN);
        mpfr_init(r56254);
        mpfr_init(r56255);
        mpfr_init(r56256);
        mpfr_init(r56257);
        mpfr_init_set_str(r56258, "2.0", 10, MPFR_RNDN);
        mpfr_init(r56259);
        mpfr_init(r56260);
        mpfr_init(r56261);
        mpfr_init(r56262);
        mpfr_init(r56263);
        mpfr_init(r56264);
        mpfr_init(r56265);
        mpfr_init(r56266);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r56252, x, MPFR_RNDN);
        ;
        mpfr_mul(r56254, r56252, r56253, MPFR_RNDN);
        mpfr_set_d(r56255, y, MPFR_RNDN);
        mpfr_sub(r56256, r56254, r56255, MPFR_RNDN);
        mpfr_set_d(r56257, z, MPFR_RNDN);
        ;
        mpfr_mul(r56259, r56257, r56258, MPFR_RNDN);
        mpfr_sqrt(r56260, r56259, MPFR_RNDN);
        mpfr_mul(r56261, r56256, r56260, MPFR_RNDN);
        mpfr_set_d(r56262, t, MPFR_RNDN);
        mpfr_mul(r56263, r56262, r56262, MPFR_RNDN);
        mpfr_div(r56264, r56263, r56258, MPFR_RNDN);
        mpfr_exp(r56265, r56264, MPFR_RNDN);
        mpfr_mul(r56266, r56261, r56265, MPFR_RNDN);
        return mpfr_get_d(r56266, MPFR_RNDN);
}

static mpfr_t r56267, r56268, r56269, r56270, r56271, r56272, r56273, r56274, r56275, r56276, r56277, r56278, r56279, r56280, r56281;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r56267);
        mpfr_init_set_str(r56268, "0.5", 10, MPFR_RNDN);
        mpfr_init(r56269);
        mpfr_init(r56270);
        mpfr_init(r56271);
        mpfr_init(r56272);
        mpfr_init_set_str(r56273, "2.0", 10, MPFR_RNDN);
        mpfr_init(r56274);
        mpfr_init(r56275);
        mpfr_init(r56276);
        mpfr_init(r56277);
        mpfr_init(r56278);
        mpfr_init(r56279);
        mpfr_init(r56280);
        mpfr_init(r56281);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r56267, x, MPFR_RNDN);
        ;
        mpfr_mul(r56269, r56267, r56268, MPFR_RNDN);
        mpfr_set_d(r56270, y, MPFR_RNDN);
        mpfr_sub(r56271, r56269, r56270, MPFR_RNDN);
        mpfr_set_d(r56272, z, MPFR_RNDN);
        ;
        mpfr_mul(r56274, r56272, r56273, MPFR_RNDN);
        mpfr_sqrt(r56275, r56274, MPFR_RNDN);
        mpfr_mul(r56276, r56271, r56275, MPFR_RNDN);
        mpfr_set_d(r56277, t, MPFR_RNDN);
        mpfr_mul(r56278, r56277, r56277, MPFR_RNDN);
        mpfr_div(r56279, r56278, r56273, MPFR_RNDN);
        mpfr_exp(r56280, r56279, MPFR_RNDN);
        mpfr_mul(r56281, r56276, r56280, MPFR_RNDN);
        return mpfr_get_d(r56281, MPFR_RNDN);
}

