#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 r44467 = 0.70711;
        float r44468 = 2.30753;
        float r44469 = x;
        float r44470 = 0.27061;
        float r44471 = r44469 * r44470;
        float r44472 = r44468 + r44471;
        float r44473 = 1.0;
        float r44474 = 0.99229;
        float r44475 = 0.04481;
        float r44476 = r44469 * r44475;
        float r44477 = r44474 + r44476;
        float r44478 = r44469 * r44477;
        float r44479 = r44473 + r44478;
        float r44480 = r44472 / r44479;
        float r44481 = r44480 - r44469;
        float r44482 = r44467 * r44481;
        return r44482;
}

double f_id(double x) {
        double r44483 = 0.70711;
        double r44484 = 2.30753;
        double r44485 = x;
        double r44486 = 0.27061;
        double r44487 = r44485 * r44486;
        double r44488 = r44484 + r44487;
        double r44489 = 1.0;
        double r44490 = 0.99229;
        double r44491 = 0.04481;
        double r44492 = r44485 * r44491;
        double r44493 = r44490 + r44492;
        double r44494 = r44485 * r44493;
        double r44495 = r44489 + r44494;
        double r44496 = r44488 / r44495;
        double r44497 = r44496 - r44485;
        double r44498 = r44483 * r44497;
        return r44498;
}


double f_of(float x) {
        float r44499 = 0.70711;
        float r44500 = 2.30753;
        float r44501 = x;
        float r44502 = 0.27061;
        float r44503 = r44501 * r44502;
        float r44504 = r44500 + r44503;
        float r44505 = 1.0;
        float r44506 = 0.99229;
        float r44507 = 0.04481;
        float r44508 = r44501 * r44507;
        float r44509 = r44506 + r44508;
        float r44510 = r44501 * r44509;
        float r44511 = r44505 + r44510;
        float r44512 = r44504 / r44511;
        float r44513 = r44512 - r44501;
        float r44514 = r44499 * r44513;
        return r44514;
}

double f_od(double x) {
        double r44515 = 0.70711;
        double r44516 = 2.30753;
        double r44517 = x;
        double r44518 = 0.27061;
        double r44519 = r44517 * r44518;
        double r44520 = r44516 + r44519;
        double r44521 = 1.0;
        double r44522 = 0.99229;
        double r44523 = 0.04481;
        double r44524 = r44517 * r44523;
        double r44525 = r44522 + r44524;
        double r44526 = r44517 * r44525;
        double r44527 = r44521 + r44526;
        double r44528 = r44520 / r44527;
        double r44529 = r44528 - r44517;
        double r44530 = r44515 * r44529;
        return r44530;
}

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 r44531, r44532, r44533, r44534, r44535, r44536, r44537, r44538, r44539, r44540, r44541, r44542, r44543, r44544, r44545, r44546;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44531, "0.70711", 10, MPFR_RNDN);
        mpfr_init_set_str(r44532, "2.30753", 10, MPFR_RNDN);
        mpfr_init(r44533);
        mpfr_init_set_str(r44534, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r44535);
        mpfr_init(r44536);
        mpfr_init_set_str(r44537, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44538, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r44539, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r44540);
        mpfr_init(r44541);
        mpfr_init(r44542);
        mpfr_init(r44543);
        mpfr_init(r44544);
        mpfr_init(r44545);
        mpfr_init(r44546);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r44533, x, MPFR_RNDN);
        ;
        mpfr_mul(r44535, r44533, r44534, MPFR_RNDN);
        mpfr_add(r44536, r44532, r44535, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r44540, r44533, r44539, MPFR_RNDN);
        mpfr_add(r44541, r44538, r44540, MPFR_RNDN);
        mpfr_mul(r44542, r44533, r44541, MPFR_RNDN);
        mpfr_add(r44543, r44537, r44542, MPFR_RNDN);
        mpfr_div(r44544, r44536, r44543, MPFR_RNDN);
        mpfr_sub(r44545, r44544, r44533, MPFR_RNDN);
        mpfr_mul(r44546, r44531, r44545, MPFR_RNDN);
        return mpfr_get_d(r44546, MPFR_RNDN);
}

static mpfr_t r44547, r44548, r44549, r44550, r44551, r44552, r44553, r44554, r44555, r44556, r44557, r44558, r44559, r44560, r44561, r44562;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44547, "0.70711", 10, MPFR_RNDN);
        mpfr_init_set_str(r44548, "2.30753", 10, MPFR_RNDN);
        mpfr_init(r44549);
        mpfr_init_set_str(r44550, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r44551);
        mpfr_init(r44552);
        mpfr_init_set_str(r44553, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44554, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r44555, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r44556);
        mpfr_init(r44557);
        mpfr_init(r44558);
        mpfr_init(r44559);
        mpfr_init(r44560);
        mpfr_init(r44561);
        mpfr_init(r44562);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r44549, x, MPFR_RNDN);
        ;
        mpfr_mul(r44551, r44549, r44550, MPFR_RNDN);
        mpfr_add(r44552, r44548, r44551, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r44556, r44549, r44555, MPFR_RNDN);
        mpfr_add(r44557, r44554, r44556, MPFR_RNDN);
        mpfr_mul(r44558, r44549, r44557, MPFR_RNDN);
        mpfr_add(r44559, r44553, r44558, MPFR_RNDN);
        mpfr_div(r44560, r44552, r44559, MPFR_RNDN);
        mpfr_sub(r44561, r44560, r44549, MPFR_RNDN);
        mpfr_mul(r44562, r44547, r44561, MPFR_RNDN);
        return mpfr_get_d(r44562, MPFR_RNDN);
}

static mpfr_t r44563, r44564, r44565, r44566, r44567, r44568, r44569, r44570, r44571, r44572, r44573, r44574, r44575, r44576, r44577, r44578;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44563, "0.70711", 10, MPFR_RNDN);
        mpfr_init_set_str(r44564, "2.30753", 10, MPFR_RNDN);
        mpfr_init(r44565);
        mpfr_init_set_str(r44566, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r44567);
        mpfr_init(r44568);
        mpfr_init_set_str(r44569, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44570, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r44571, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r44572);
        mpfr_init(r44573);
        mpfr_init(r44574);
        mpfr_init(r44575);
        mpfr_init(r44576);
        mpfr_init(r44577);
        mpfr_init(r44578);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r44565, x, MPFR_RNDN);
        ;
        mpfr_mul(r44567, r44565, r44566, MPFR_RNDN);
        mpfr_add(r44568, r44564, r44567, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r44572, r44565, r44571, MPFR_RNDN);
        mpfr_add(r44573, r44570, r44572, MPFR_RNDN);
        mpfr_mul(r44574, r44565, r44573, MPFR_RNDN);
        mpfr_add(r44575, r44569, r44574, MPFR_RNDN);
        mpfr_div(r44576, r44568, r44575, MPFR_RNDN);
        mpfr_sub(r44577, r44576, r44565, MPFR_RNDN);
        mpfr_mul(r44578, r44563, r44577, MPFR_RNDN);
        return mpfr_get_d(r44578, MPFR_RNDN);
}

