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

char *name = "Numeric.SpecFunctions:invErfc from math-functions-0.1.5.2, B";

double f_if(float x) {
        float r41209 = 0.70711f;
        float r41210 = 2.30753f;
        float r41211 = x;
        float r41212 = 0.27061f;
        float r41213 = r41211 * r41212;
        float r41214 = r41210 + r41213;
        float r41215 = 1.0f;
        float r41216 = 0.99229f;
        float r41217 = 0.04481f;
        float r41218 = r41211 * r41217;
        float r41219 = r41216 + r41218;
        float r41220 = r41211 * r41219;
        float r41221 = r41215 + r41220;
        float r41222 = r41214 / r41221;
        float r41223 = r41222 - r41211;
        float r41224 = r41209 * r41223;
        return r41224;
}

double f_id(double x) {
        double r41225 = 0.70711;
        double r41226 = 2.30753;
        double r41227 = x;
        double r41228 = 0.27061;
        double r41229 = r41227 * r41228;
        double r41230 = r41226 + r41229;
        double r41231 = 1.0;
        double r41232 = 0.99229;
        double r41233 = 0.04481;
        double r41234 = r41227 * r41233;
        double r41235 = r41232 + r41234;
        double r41236 = r41227 * r41235;
        double r41237 = r41231 + r41236;
        double r41238 = r41230 / r41237;
        double r41239 = r41238 - r41227;
        double r41240 = r41225 * r41239;
        return r41240;
}


double f_of(float x) {
        float r41241 = 0.70711f;
        float r41242 = 2.30753f;
        float r41243 = x;
        float r41244 = 0.27061f;
        float r41245 = r41243 * r41244;
        float r41246 = r41242 + r41245;
        float r41247 = 1.0f;
        float r41248 = 0.99229f;
        float r41249 = 0.04481f;
        float r41250 = r41243 * r41249;
        float r41251 = r41248 + r41250;
        float r41252 = r41243 * r41251;
        float r41253 = r41247 + r41252;
        float r41254 = r41246 / r41253;
        float r41255 = r41254 - r41243;
        float r41256 = r41241 * r41255;
        return r41256;
}

double f_od(double x) {
        double r41257 = 0.70711;
        double r41258 = 2.30753;
        double r41259 = x;
        double r41260 = 0.27061;
        double r41261 = r41259 * r41260;
        double r41262 = r41258 + r41261;
        double r41263 = 1.0;
        double r41264 = 0.99229;
        double r41265 = 0.04481;
        double r41266 = r41259 * r41265;
        double r41267 = r41264 + r41266;
        double r41268 = r41259 * r41267;
        double r41269 = r41263 + r41268;
        double r41270 = r41262 / r41269;
        double r41271 = r41270 - r41259;
        double r41272 = r41257 * r41271;
        return r41272;
}

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 r41273, r41274, r41275, r41276, r41277, r41278, r41279, r41280, r41281, r41282, r41283, r41284, r41285, r41286, r41287, r41288;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r41273, "0.70711", 10, MPFR_RNDN);
        mpfr_init_set_str(r41274, "2.30753", 10, MPFR_RNDN);
        mpfr_init(r41275);
        mpfr_init_set_str(r41276, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r41277);
        mpfr_init(r41278);
        mpfr_init_set_str(r41279, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r41280, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r41281, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r41282);
        mpfr_init(r41283);
        mpfr_init(r41284);
        mpfr_init(r41285);
        mpfr_init(r41286);
        mpfr_init(r41287);
        mpfr_init(r41288);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r41275, x, MPFR_RNDN);
        ;
        mpfr_mul(r41277, r41275, r41276, MPFR_RNDN);
        mpfr_add(r41278, r41274, r41277, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r41282, r41275, r41281, MPFR_RNDN);
        mpfr_add(r41283, r41280, r41282, MPFR_RNDN);
        mpfr_mul(r41284, r41275, r41283, MPFR_RNDN);
        mpfr_add(r41285, r41279, r41284, MPFR_RNDN);
        mpfr_div(r41286, r41278, r41285, MPFR_RNDN);
        mpfr_sub(r41287, r41286, r41275, MPFR_RNDN);
        mpfr_mul(r41288, r41273, r41287, MPFR_RNDN);
        return mpfr_get_d(r41288, MPFR_RNDN);
}

static mpfr_t r41289, r41290, r41291, r41292, r41293, r41294, r41295, r41296, r41297, r41298, r41299, r41300, r41301, r41302, r41303, r41304;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r41289, "0.70711", 10, MPFR_RNDN);
        mpfr_init_set_str(r41290, "2.30753", 10, MPFR_RNDN);
        mpfr_init(r41291);
        mpfr_init_set_str(r41292, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r41293);
        mpfr_init(r41294);
        mpfr_init_set_str(r41295, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r41296, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r41297, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r41298);
        mpfr_init(r41299);
        mpfr_init(r41300);
        mpfr_init(r41301);
        mpfr_init(r41302);
        mpfr_init(r41303);
        mpfr_init(r41304);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r41291, x, MPFR_RNDN);
        ;
        mpfr_mul(r41293, r41291, r41292, MPFR_RNDN);
        mpfr_add(r41294, r41290, r41293, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r41298, r41291, r41297, MPFR_RNDN);
        mpfr_add(r41299, r41296, r41298, MPFR_RNDN);
        mpfr_mul(r41300, r41291, r41299, MPFR_RNDN);
        mpfr_add(r41301, r41295, r41300, MPFR_RNDN);
        mpfr_div(r41302, r41294, r41301, MPFR_RNDN);
        mpfr_sub(r41303, r41302, r41291, MPFR_RNDN);
        mpfr_mul(r41304, r41289, r41303, MPFR_RNDN);
        return mpfr_get_d(r41304, MPFR_RNDN);
}

static mpfr_t r41305, r41306, r41307, r41308, r41309, r41310, r41311, r41312, r41313, r41314, r41315, r41316, r41317, r41318, r41319, r41320;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r41305, "0.70711", 10, MPFR_RNDN);
        mpfr_init_set_str(r41306, "2.30753", 10, MPFR_RNDN);
        mpfr_init(r41307);
        mpfr_init_set_str(r41308, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r41309);
        mpfr_init(r41310);
        mpfr_init_set_str(r41311, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r41312, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r41313, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r41314);
        mpfr_init(r41315);
        mpfr_init(r41316);
        mpfr_init(r41317);
        mpfr_init(r41318);
        mpfr_init(r41319);
        mpfr_init(r41320);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r41307, x, MPFR_RNDN);
        ;
        mpfr_mul(r41309, r41307, r41308, MPFR_RNDN);
        mpfr_add(r41310, r41306, r41309, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r41314, r41307, r41313, MPFR_RNDN);
        mpfr_add(r41315, r41312, r41314, MPFR_RNDN);
        mpfr_mul(r41316, r41307, r41315, MPFR_RNDN);
        mpfr_add(r41317, r41311, r41316, MPFR_RNDN);
        mpfr_div(r41318, r41310, r41317, MPFR_RNDN);
        mpfr_sub(r41319, r41318, r41307, MPFR_RNDN);
        mpfr_mul(r41320, r41305, r41319, MPFR_RNDN);
        return mpfr_get_d(r41320, MPFR_RNDN);
}

