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

char *name = "Jmat.Real.erfi, branch x less than or equal to 0.5";

double f_if(float x) {
        float r10094 = 1.0f;
        float r10095 = atan2(1.0, 0.0);
        float r10096 = sqrt(r10095);
        float r10097 = r10094 / r10096;
        float r10098 = 2.0f;
        float r10099 = x;
        float r10100 = fabs(r10099);
        float r10101 = r10098 * r10100;
        float r10102 = 3.0f;
        float r10103 = r10098 / r10102;
        float r10104 = r10100 * r10100;
        float r10105 = r10104 * r10100;
        float r10106 = r10103 * r10105;
        float r10107 = r10101 + r10106;
        float r10108 = 5.0f;
        float r10109 = r10094 / r10108;
        float r10110 = r10105 * r10100;
        float r10111 = r10110 * r10100;
        float r10112 = r10109 * r10111;
        float r10113 = r10107 + r10112;
        float r10114 = 21.0f;
        float r10115 = r10094 / r10114;
        float r10116 = r10111 * r10100;
        float r10117 = r10116 * r10100;
        float r10118 = r10115 * r10117;
        float r10119 = r10113 + r10118;
        float r10120 = r10097 * r10119;
        float r10121 = fabs(r10120);
        return r10121;
}

double f_id(double x) {
        double r10122 = 1.0;
        double r10123 = atan2(1.0, 0.0);
        double r10124 = sqrt(r10123);
        double r10125 = r10122 / r10124;
        double r10126 = 2.0;
        double r10127 = x;
        double r10128 = fabs(r10127);
        double r10129 = r10126 * r10128;
        double r10130 = 3.0;
        double r10131 = r10126 / r10130;
        double r10132 = r10128 * r10128;
        double r10133 = r10132 * r10128;
        double r10134 = r10131 * r10133;
        double r10135 = r10129 + r10134;
        double r10136 = 5.0;
        double r10137 = r10122 / r10136;
        double r10138 = r10133 * r10128;
        double r10139 = r10138 * r10128;
        double r10140 = r10137 * r10139;
        double r10141 = r10135 + r10140;
        double r10142 = 21.0;
        double r10143 = r10122 / r10142;
        double r10144 = r10139 * r10128;
        double r10145 = r10144 * r10128;
        double r10146 = r10143 * r10145;
        double r10147 = r10141 + r10146;
        double r10148 = r10125 * r10147;
        double r10149 = fabs(r10148);
        return r10149;
}


double f_of(float x) {
        float r10150 = 1.0f;
        float r10151 = atan2(1.0, 0.0);
        float r10152 = sqrt(r10151);
        float r10153 = r10150 / r10152;
        float r10154 = 5.0f;
        float r10155 = r10150 / r10154;
        float r10156 = x;
        float r10157 = fabs(r10156);
        float r10158 = r10157 * r10157;
        float r10159 = r10158 * r10157;
        float r10160 = r10159 * r10157;
        float r10161 = r10157 * r10160;
        float r10162 = r10155 * r10161;
        float r10163 = 2.0f;
        float r10164 = r10157 * r10163;
        float r10165 = 3.0f;
        float r10166 = r10163 / r10165;
        float r10167 = r10159 * r10166;
        float r10168 = r10164 + r10167;
        float r10169 = r10162 + r10168;
        float r10170 = r10157 * r10161;
        float r10171 = r10157 * r10170;
        float r10172 = 21.0f;
        float r10173 = r10150 / r10172;
        float r10174 = r10171 * r10173;
        float r10175 = r10169 + r10174;
        float r10176 = r10153 * r10175;
        float r10177 = fabs(r10176);
        return r10177;
}

double f_od(double x) {
        double r10178 = 1.0;
        double r10179 = atan2(1.0, 0.0);
        double r10180 = sqrt(r10179);
        double r10181 = r10178 / r10180;
        double r10182 = 5.0;
        double r10183 = r10178 / r10182;
        double r10184 = x;
        double r10185 = fabs(r10184);
        double r10186 = r10185 * r10185;
        double r10187 = r10186 * r10185;
        double r10188 = r10187 * r10185;
        double r10189 = r10185 * r10188;
        double r10190 = r10183 * r10189;
        double r10191 = 2.0;
        double r10192 = r10185 * r10191;
        double r10193 = 3.0;
        double r10194 = r10191 / r10193;
        double r10195 = r10187 * r10194;
        double r10196 = r10192 + r10195;
        double r10197 = r10190 + r10196;
        double r10198 = r10185 * r10189;
        double r10199 = r10185 * r10198;
        double r10200 = 21.0;
        double r10201 = r10178 / r10200;
        double r10202 = r10199 * r10201;
        double r10203 = r10197 + r10202;
        double r10204 = r10181 * r10203;
        double r10205 = fabs(r10204);
        return r10205;
}

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 r10206, r10207, r10208, r10209, r10210, r10211, r10212, r10213, r10214, r10215, r10216, r10217, r10218, r10219, r10220, r10221, r10222, r10223, r10224, r10225, r10226, r10227, r10228, r10229, r10230, r10231, r10232, r10233;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10206, "1", 10, MPFR_RNDN);
        mpfr_init(r10207);
        mpfr_init(r10208);
        mpfr_init(r10209);
        mpfr_init_set_str(r10210, "2", 10, MPFR_RNDN);
        mpfr_init(r10211);
        mpfr_init(r10212);
        mpfr_init(r10213);
        mpfr_init_set_str(r10214, "3", 10, MPFR_RNDN);
        mpfr_init(r10215);
        mpfr_init(r10216);
        mpfr_init(r10217);
        mpfr_init(r10218);
        mpfr_init(r10219);
        mpfr_init_set_str(r10220, "5", 10, MPFR_RNDN);
        mpfr_init(r10221);
        mpfr_init(r10222);
        mpfr_init(r10223);
        mpfr_init(r10224);
        mpfr_init(r10225);
        mpfr_init_set_str(r10226, "21", 10, MPFR_RNDN);
        mpfr_init(r10227);
        mpfr_init(r10228);
        mpfr_init(r10229);
        mpfr_init(r10230);
        mpfr_init(r10231);
        mpfr_init(r10232);
        mpfr_init(r10233);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r10207, MPFR_RNDN);
        mpfr_sqrt(r10208, r10207, MPFR_RNDN);
        mpfr_div(r10209, r10206, r10208, MPFR_RNDN);
        ;
        mpfr_set_d(r10211, x, MPFR_RNDN);
        mpfr_abs(r10212, r10211, MPFR_RNDN);
        mpfr_mul(r10213, r10210, r10212, MPFR_RNDN);
        ;
        mpfr_div(r10215, r10210, r10214, MPFR_RNDN);
        mpfr_mul(r10216, r10212, r10212, MPFR_RNDN);
        mpfr_mul(r10217, r10216, r10212, MPFR_RNDN);
        mpfr_mul(r10218, r10215, r10217, MPFR_RNDN);
        mpfr_add(r10219, r10213, r10218, MPFR_RNDN);
        ;
        mpfr_div(r10221, r10206, r10220, MPFR_RNDN);
        mpfr_mul(r10222, r10217, r10212, MPFR_RNDN);
        mpfr_mul(r10223, r10222, r10212, MPFR_RNDN);
        mpfr_mul(r10224, r10221, r10223, MPFR_RNDN);
        mpfr_add(r10225, r10219, r10224, MPFR_RNDN);
        ;
        mpfr_div(r10227, r10206, r10226, MPFR_RNDN);
        mpfr_mul(r10228, r10223, r10212, MPFR_RNDN);
        mpfr_mul(r10229, r10228, r10212, MPFR_RNDN);
        mpfr_mul(r10230, r10227, r10229, MPFR_RNDN);
        mpfr_add(r10231, r10225, r10230, MPFR_RNDN);
        mpfr_mul(r10232, r10209, r10231, MPFR_RNDN);
        mpfr_abs(r10233, r10232, MPFR_RNDN);
        return mpfr_get_d(r10233, MPFR_RNDN);
}

static mpfr_t r10234, r10235, r10236, r10237, r10238, r10239, r10240, r10241, r10242, r10243, r10244, r10245, r10246, r10247, r10248, r10249, r10250, r10251, r10252, r10253, r10254, r10255, r10256, r10257, r10258, r10259, r10260, r10261;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10234, "1", 10, MPFR_RNDN);
        mpfr_init(r10235);
        mpfr_init(r10236);
        mpfr_init(r10237);
        mpfr_init_set_str(r10238, "5", 10, MPFR_RNDN);
        mpfr_init(r10239);
        mpfr_init(r10240);
        mpfr_init(r10241);
        mpfr_init(r10242);
        mpfr_init(r10243);
        mpfr_init(r10244);
        mpfr_init(r10245);
        mpfr_init(r10246);
        mpfr_init_set_str(r10247, "2", 10, MPFR_RNDN);
        mpfr_init(r10248);
        mpfr_init_set_str(r10249, "3", 10, MPFR_RNDN);
        mpfr_init(r10250);
        mpfr_init(r10251);
        mpfr_init(r10252);
        mpfr_init(r10253);
        mpfr_init(r10254);
        mpfr_init(r10255);
        mpfr_init_set_str(r10256, "21", 10, MPFR_RNDN);
        mpfr_init(r10257);
        mpfr_init(r10258);
        mpfr_init(r10259);
        mpfr_init(r10260);
        mpfr_init(r10261);
}

double f_fm(double x) {
        ;
        mpfr_const_pi(r10235, MPFR_RNDN);
        mpfr_sqrt(r10236, r10235, MPFR_RNDN);
        mpfr_div(r10237, r10234, r10236, MPFR_RNDN);
        ;
        mpfr_div(r10239, r10234, r10238, MPFR_RNDN);
        mpfr_set_d(r10240, x, MPFR_RNDN);
        mpfr_abs(r10241, r10240, MPFR_RNDN);
        mpfr_mul(r10242, r10241, r10241, MPFR_RNDN);
        mpfr_mul(r10243, r10242, r10241, MPFR_RNDN);
        mpfr_mul(r10244, r10243, r10241, MPFR_RNDN);
        mpfr_mul(r10245, r10241, r10244, MPFR_RNDN);
        mpfr_mul(r10246, r10239, r10245, MPFR_RNDN);
        ;
        mpfr_mul(r10248, r10241, r10247, MPFR_RNDN);
        ;
        mpfr_div(r10250, r10247, r10249, MPFR_RNDN);
        mpfr_mul(r10251, r10243, r10250, MPFR_RNDN);
        mpfr_add(r10252, r10248, r10251, MPFR_RNDN);
        mpfr_add(r10253, r10246, r10252, MPFR_RNDN);
        mpfr_mul(r10254, r10241, r10245, MPFR_RNDN);
        mpfr_mul(r10255, r10241, r10254, MPFR_RNDN);
        ;
        mpfr_div(r10257, r10234, r10256, MPFR_RNDN);
        mpfr_mul(r10258, r10255, r10257, MPFR_RNDN);
        mpfr_add(r10259, r10253, r10258, MPFR_RNDN);
        mpfr_mul(r10260, r10237, r10259, MPFR_RNDN);
        mpfr_abs(r10261, r10260, MPFR_RNDN);
        return mpfr_get_d(r10261, MPFR_RNDN);
}

static mpfr_t r10262, r10263, r10264, r10265, r10266, r10267, r10268, r10269, r10270, r10271, r10272, r10273, r10274, r10275, r10276, r10277, r10278, r10279, r10280, r10281, r10282, r10283, r10284, r10285, r10286, r10287, r10288, r10289;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10262, "1", 10, MPFR_RNDN);
        mpfr_init(r10263);
        mpfr_init(r10264);
        mpfr_init(r10265);
        mpfr_init_set_str(r10266, "5", 10, MPFR_RNDN);
        mpfr_init(r10267);
        mpfr_init(r10268);
        mpfr_init(r10269);
        mpfr_init(r10270);
        mpfr_init(r10271);
        mpfr_init(r10272);
        mpfr_init(r10273);
        mpfr_init(r10274);
        mpfr_init_set_str(r10275, "2", 10, MPFR_RNDN);
        mpfr_init(r10276);
        mpfr_init_set_str(r10277, "3", 10, MPFR_RNDN);
        mpfr_init(r10278);
        mpfr_init(r10279);
        mpfr_init(r10280);
        mpfr_init(r10281);
        mpfr_init(r10282);
        mpfr_init(r10283);
        mpfr_init_set_str(r10284, "21", 10, MPFR_RNDN);
        mpfr_init(r10285);
        mpfr_init(r10286);
        mpfr_init(r10287);
        mpfr_init(r10288);
        mpfr_init(r10289);
}

double f_dm(double x) {
        ;
        mpfr_const_pi(r10263, MPFR_RNDN);
        mpfr_sqrt(r10264, r10263, MPFR_RNDN);
        mpfr_div(r10265, r10262, r10264, MPFR_RNDN);
        ;
        mpfr_div(r10267, r10262, r10266, MPFR_RNDN);
        mpfr_set_d(r10268, x, MPFR_RNDN);
        mpfr_abs(r10269, r10268, MPFR_RNDN);
        mpfr_mul(r10270, r10269, r10269, MPFR_RNDN);
        mpfr_mul(r10271, r10270, r10269, MPFR_RNDN);
        mpfr_mul(r10272, r10271, r10269, MPFR_RNDN);
        mpfr_mul(r10273, r10269, r10272, MPFR_RNDN);
        mpfr_mul(r10274, r10267, r10273, MPFR_RNDN);
        ;
        mpfr_mul(r10276, r10269, r10275, MPFR_RNDN);
        ;
        mpfr_div(r10278, r10275, r10277, MPFR_RNDN);
        mpfr_mul(r10279, r10271, r10278, MPFR_RNDN);
        mpfr_add(r10280, r10276, r10279, MPFR_RNDN);
        mpfr_add(r10281, r10274, r10280, MPFR_RNDN);
        mpfr_mul(r10282, r10269, r10273, MPFR_RNDN);
        mpfr_mul(r10283, r10269, r10282, MPFR_RNDN);
        ;
        mpfr_div(r10285, r10262, r10284, MPFR_RNDN);
        mpfr_mul(r10286, r10283, r10285, MPFR_RNDN);
        mpfr_add(r10287, r10281, r10286, MPFR_RNDN);
        mpfr_mul(r10288, r10265, r10287, MPFR_RNDN);
        mpfr_abs(r10289, r10288, MPFR_RNDN);
        return mpfr_get_d(r10289, MPFR_RNDN);
}

