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

char *name = "Jmat.Real.gamma, branch z less than 0.5";

double f_if(float z) {
        float r21002 = atan2(1.0, 0.0);
        float r21003 = z;
        float r21004 = r21002 * r21003;
        float r21005 = sin(r21004);
        float r21006 = r21002 / r21005;
        float r21007 = 2.0f;
        float r21008 = r21002 * r21007;
        float r21009 = sqrt(r21008);
        float r21010 = 1.0f;
        float r21011 = r21010 - r21003;
        float r21012 = r21011 - r21010;
        float r21013 = 7.0f;
        float r21014 = r21012 + r21013;
        float r21015 = 0.5f;
        float r21016 = r21014 + r21015;
        float r21017 = r21012 + r21015;
        float r21018 = pow(r21016, r21017);
        float r21019 = r21009 * r21018;
        float r21020 = -r21016;
        float r21021 = exp(r21020);
        float r21022 = r21019 * r21021;
        float r21023 = 0.9999999999998099f;
        float r21024 = 676.5203681218851f;
        float r21025 = r21012 + r21010;
        float r21026 = r21024 / r21025;
        float r21027 = r21023 + r21026;
        float r21028 = -1259.1392167224028f;
        float r21029 = r21012 + r21007;
        float r21030 = r21028 / r21029;
        float r21031 = r21027 + r21030;
        float r21032 = 771.3234287776531f;
        float r21033 = 3.0f;
        float r21034 = r21012 + r21033;
        float r21035 = r21032 / r21034;
        float r21036 = r21031 + r21035;
        float r21037 = -176.6150291621406f;
        float r21038 = 4.0f;
        float r21039 = r21012 + r21038;
        float r21040 = r21037 / r21039;
        float r21041 = r21036 + r21040;
        float r21042 = 12.507343278686905f;
        float r21043 = 5.0f;
        float r21044 = r21012 + r21043;
        float r21045 = r21042 / r21044;
        float r21046 = r21041 + r21045;
        float r21047 = -0.13857109526572012f;
        float r21048 = 6.0f;
        float r21049 = r21012 + r21048;
        float r21050 = r21047 / r21049;
        float r21051 = r21046 + r21050;
        float r21052 = 9.984369578019572e-06f;
        float r21053 = r21052 / r21014;
        float r21054 = r21051 + r21053;
        float r21055 = 1.5056327351493116e-07f;
        float r21056 = 8.0f;
        float r21057 = r21012 + r21056;
        float r21058 = r21055 / r21057;
        float r21059 = r21054 + r21058;
        float r21060 = r21022 * r21059;
        float r21061 = r21006 * r21060;
        return r21061;
}

double f_id(double z) {
        double r21062 = atan2(1.0, 0.0);
        double r21063 = z;
        double r21064 = r21062 * r21063;
        double r21065 = sin(r21064);
        double r21066 = r21062 / r21065;
        double r21067 = 2.0;
        double r21068 = r21062 * r21067;
        double r21069 = sqrt(r21068);
        double r21070 = 1.0;
        double r21071 = r21070 - r21063;
        double r21072 = r21071 - r21070;
        double r21073 = 7.0;
        double r21074 = r21072 + r21073;
        double r21075 = 0.5;
        double r21076 = r21074 + r21075;
        double r21077 = r21072 + r21075;
        double r21078 = pow(r21076, r21077);
        double r21079 = r21069 * r21078;
        double r21080 = -r21076;
        double r21081 = exp(r21080);
        double r21082 = r21079 * r21081;
        double r21083 = 0.9999999999998099;
        double r21084 = 676.5203681218851;
        double r21085 = r21072 + r21070;
        double r21086 = r21084 / r21085;
        double r21087 = r21083 + r21086;
        double r21088 = -1259.1392167224028;
        double r21089 = r21072 + r21067;
        double r21090 = r21088 / r21089;
        double r21091 = r21087 + r21090;
        double r21092 = 771.3234287776531;
        double r21093 = 3.0;
        double r21094 = r21072 + r21093;
        double r21095 = r21092 / r21094;
        double r21096 = r21091 + r21095;
        double r21097 = -176.6150291621406;
        double r21098 = 4.0;
        double r21099 = r21072 + r21098;
        double r21100 = r21097 / r21099;
        double r21101 = r21096 + r21100;
        double r21102 = 12.507343278686905;
        double r21103 = 5.0;
        double r21104 = r21072 + r21103;
        double r21105 = r21102 / r21104;
        double r21106 = r21101 + r21105;
        double r21107 = -0.13857109526572012;
        double r21108 = 6.0;
        double r21109 = r21072 + r21108;
        double r21110 = r21107 / r21109;
        double r21111 = r21106 + r21110;
        double r21112 = 9.984369578019572e-06;
        double r21113 = r21112 / r21074;
        double r21114 = r21111 + r21113;
        double r21115 = 1.5056327351493116e-07;
        double r21116 = 8.0;
        double r21117 = r21072 + r21116;
        double r21118 = r21115 / r21117;
        double r21119 = r21114 + r21118;
        double r21120 = r21082 * r21119;
        double r21121 = r21066 * r21120;
        return r21121;
}


double f_of(float z) {
        float r21122 = atan2(1.0, 0.0);
        float r21123 = r21122 + r21122;
        float r21124 = sqrt(r21123);
        float r21125 = z;
        float r21126 = r21125 * r21122;
        float r21127 = sin(r21126);
        float r21128 = r21122 / r21127;
        float r21129 = r21124 * r21128;
        float r21130 = 0.5f;
        float r21131 = 7.0f;
        float r21132 = 1.0f;
        float r21133 = r21131 + r21132;
        float r21134 = r21132 + r21125;
        float r21135 = r21133 - r21134;
        float r21136 = r21130 + r21135;
        float r21137 = r21130 + r21132;
        float r21138 = r21137 - r21134;
        float r21139 = pow(r21136, r21138);
        float r21140 = r21129 * r21139;
        float r21141 = exp(r21136);
        float r21142 = r21140 / r21141;
        float r21143 = 9.984369578019572e-06f;
        float r21144 = r21143 / r21135;
        float r21145 = 1.5056327351493116e-07f;
        float r21146 = r21132 - r21125;
        float r21147 = 8.0f;
        float r21148 = r21132 - r21147;
        float r21149 = r21146 - r21148;
        float r21150 = r21145 / r21149;
        float r21151 = r21144 + r21150;
        float r21152 = -0.13857109526572012f;
        float r21153 = 6.0f;
        float r21154 = r21153 + r21132;
        float r21155 = r21154 - r21134;
        float r21156 = r21152 / r21155;
        float r21157 = 12.507343278686905f;
        float r21158 = 5.0f;
        float r21159 = r21132 - r21158;
        float r21160 = r21146 - r21159;
        float r21161 = r21157 / r21160;
        float r21162 = r21156 + r21161;
        float r21163 = 771.3234287776531f;
        float r21164 = 3.0f;
        float r21165 = r21132 - r21164;
        float r21166 = r21146 - r21165;
        float r21167 = r21163 / r21166;
        float r21168 = -176.6150291621406f;
        float r21169 = 4.0f;
        float r21170 = r21169 + r21132;
        float r21171 = r21170 - r21134;
        float r21172 = r21168 / r21171;
        float r21173 = r21167 + r21172;
        float r21174 = r21162 + r21173;
        float r21175 = 0.9999999999998099f;
        float r21176 = -1259.1392167224028f;
        float r21177 = 2.0f;
        float r21178 = r21177 - r21125;
        float r21179 = r21176 / r21178;
        float r21180 = r21175 - r21179;
        float r21181 = 676.5203681218851f;
        float r21182 = r21146 * r21175;
        float r21183 = r21181 + r21182;
        float r21184 = r21146 * r21179;
        float r21185 = r21183 + r21184;
        float r21186 = r21180 * r21185;
        float r21187 = r21146 * r21180;
        float r21188 = r21186 / r21187;
        float r21189 = r21174 + r21188;
        float r21190 = r21151 + r21189;
        float r21191 = r21142 * r21190;
        return r21191;
}

double f_od(double z) {
        double r21192 = atan2(1.0, 0.0);
        double r21193 = r21192 + r21192;
        double r21194 = sqrt(r21193);
        double r21195 = z;
        double r21196 = r21195 * r21192;
        double r21197 = sin(r21196);
        double r21198 = r21192 / r21197;
        double r21199 = r21194 * r21198;
        double r21200 = 0.5;
        double r21201 = 7.0;
        double r21202 = 1.0;
        double r21203 = r21201 + r21202;
        double r21204 = r21202 + r21195;
        double r21205 = r21203 - r21204;
        double r21206 = r21200 + r21205;
        double r21207 = r21200 + r21202;
        double r21208 = r21207 - r21204;
        double r21209 = pow(r21206, r21208);
        double r21210 = r21199 * r21209;
        double r21211 = exp(r21206);
        double r21212 = r21210 / r21211;
        double r21213 = 9.984369578019572e-06;
        double r21214 = r21213 / r21205;
        double r21215 = 1.5056327351493116e-07;
        double r21216 = r21202 - r21195;
        double r21217 = 8.0;
        double r21218 = r21202 - r21217;
        double r21219 = r21216 - r21218;
        double r21220 = r21215 / r21219;
        double r21221 = r21214 + r21220;
        double r21222 = -0.13857109526572012;
        double r21223 = 6.0;
        double r21224 = r21223 + r21202;
        double r21225 = r21224 - r21204;
        double r21226 = r21222 / r21225;
        double r21227 = 12.507343278686905;
        double r21228 = 5.0;
        double r21229 = r21202 - r21228;
        double r21230 = r21216 - r21229;
        double r21231 = r21227 / r21230;
        double r21232 = r21226 + r21231;
        double r21233 = 771.3234287776531;
        double r21234 = 3.0;
        double r21235 = r21202 - r21234;
        double r21236 = r21216 - r21235;
        double r21237 = r21233 / r21236;
        double r21238 = -176.6150291621406;
        double r21239 = 4.0;
        double r21240 = r21239 + r21202;
        double r21241 = r21240 - r21204;
        double r21242 = r21238 / r21241;
        double r21243 = r21237 + r21242;
        double r21244 = r21232 + r21243;
        double r21245 = 0.9999999999998099;
        double r21246 = -1259.1392167224028;
        double r21247 = 2.0;
        double r21248 = r21247 - r21195;
        double r21249 = r21246 / r21248;
        double r21250 = r21245 - r21249;
        double r21251 = 676.5203681218851;
        double r21252 = r21216 * r21245;
        double r21253 = r21251 + r21252;
        double r21254 = r21216 * r21249;
        double r21255 = r21253 + r21254;
        double r21256 = r21250 * r21255;
        double r21257 = r21216 * r21250;
        double r21258 = r21256 / r21257;
        double r21259 = r21244 + r21258;
        double r21260 = r21221 + r21259;
        double r21261 = r21212 * r21260;
        return r21261;
}

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 r21262, r21263, r21264, r21265, r21266, r21267, r21268, r21269, r21270, r21271, r21272, r21273, r21274, r21275, r21276, r21277, r21278, r21279, r21280, r21281, r21282, r21283, r21284, r21285, r21286, r21287, r21288, r21289, r21290, r21291, r21292, r21293, r21294, r21295, r21296, r21297, r21298, r21299, r21300, r21301, r21302, r21303, r21304, r21305, r21306, r21307, r21308, r21309, r21310, r21311, r21312, r21313, r21314, r21315, r21316, r21317, r21318, r21319, r21320, r21321;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r21262);
        mpfr_init(r21263);
        mpfr_init(r21264);
        mpfr_init(r21265);
        mpfr_init(r21266);
        mpfr_init_set_str(r21267, "2", 10, MPFR_RNDN);
        mpfr_init(r21268);
        mpfr_init(r21269);
        mpfr_init_set_str(r21270, "1", 10, MPFR_RNDN);
        mpfr_init(r21271);
        mpfr_init(r21272);
        mpfr_init_set_str(r21273, "7", 10, MPFR_RNDN);
        mpfr_init(r21274);
        mpfr_init_set_str(r21275, "0.5", 10, MPFR_RNDN);
        mpfr_init(r21276);
        mpfr_init(r21277);
        mpfr_init(r21278);
        mpfr_init(r21279);
        mpfr_init(r21280);
        mpfr_init(r21281);
        mpfr_init(r21282);
        mpfr_init_set_str(r21283, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r21284, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r21285);
        mpfr_init(r21286);
        mpfr_init(r21287);
        mpfr_init_set_str(r21288, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r21289);
        mpfr_init(r21290);
        mpfr_init(r21291);
        mpfr_init_set_str(r21292, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r21293, "3", 10, MPFR_RNDN);
        mpfr_init(r21294);
        mpfr_init(r21295);
        mpfr_init(r21296);
        mpfr_init_set_str(r21297, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r21298, "4", 10, MPFR_RNDN);
        mpfr_init(r21299);
        mpfr_init(r21300);
        mpfr_init(r21301);
        mpfr_init_set_str(r21302, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r21303, "5", 10, MPFR_RNDN);
        mpfr_init(r21304);
        mpfr_init(r21305);
        mpfr_init(r21306);
        mpfr_init_set_str(r21307, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r21308, "6", 10, MPFR_RNDN);
        mpfr_init(r21309);
        mpfr_init(r21310);
        mpfr_init(r21311);
        mpfr_init_set_str(r21312, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r21313);
        mpfr_init(r21314);
        mpfr_init_set_str(r21315, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r21316, "8", 10, MPFR_RNDN);
        mpfr_init(r21317);
        mpfr_init(r21318);
        mpfr_init(r21319);
        mpfr_init(r21320);
        mpfr_init(r21321);
}

double f_im(double z) {
        mpfr_const_pi(r21262, MPFR_RNDN);
        mpfr_set_d(r21263, z, MPFR_RNDN);
        mpfr_mul(r21264, r21262, r21263, MPFR_RNDN);
        mpfr_sin(r21265, r21264, MPFR_RNDN);
        mpfr_div(r21266, r21262, r21265, MPFR_RNDN);
        ;
        mpfr_mul(r21268, r21262, r21267, MPFR_RNDN);
        mpfr_sqrt(r21269, r21268, MPFR_RNDN);
        ;
        mpfr_sub(r21271, r21270, r21263, MPFR_RNDN);
        mpfr_sub(r21272, r21271, r21270, MPFR_RNDN);
        ;
        mpfr_add(r21274, r21272, r21273, MPFR_RNDN);
        ;
        mpfr_add(r21276, r21274, r21275, MPFR_RNDN);
        mpfr_add(r21277, r21272, r21275, MPFR_RNDN);
        mpfr_pow(r21278, r21276, r21277, MPFR_RNDN);
        mpfr_mul(r21279, r21269, r21278, MPFR_RNDN);
        mpfr_neg(r21280, r21276, MPFR_RNDN);
        mpfr_exp(r21281, r21280, MPFR_RNDN);
        mpfr_mul(r21282, r21279, r21281, MPFR_RNDN);
        ;
        ;
        mpfr_add(r21285, r21272, r21270, MPFR_RNDN);
        mpfr_div(r21286, r21284, r21285, MPFR_RNDN);
        mpfr_add(r21287, r21283, r21286, MPFR_RNDN);
        ;
        mpfr_add(r21289, r21272, r21267, MPFR_RNDN);
        mpfr_div(r21290, r21288, r21289, MPFR_RNDN);
        mpfr_add(r21291, r21287, r21290, MPFR_RNDN);
        ;
        ;
        mpfr_add(r21294, r21272, r21293, MPFR_RNDN);
        mpfr_div(r21295, r21292, r21294, MPFR_RNDN);
        mpfr_add(r21296, r21291, r21295, MPFR_RNDN);
        ;
        ;
        mpfr_add(r21299, r21272, r21298, MPFR_RNDN);
        mpfr_div(r21300, r21297, r21299, MPFR_RNDN);
        mpfr_add(r21301, r21296, r21300, MPFR_RNDN);
        ;
        ;
        mpfr_add(r21304, r21272, r21303, MPFR_RNDN);
        mpfr_div(r21305, r21302, r21304, MPFR_RNDN);
        mpfr_add(r21306, r21301, r21305, MPFR_RNDN);
        ;
        ;
        mpfr_add(r21309, r21272, r21308, MPFR_RNDN);
        mpfr_div(r21310, r21307, r21309, MPFR_RNDN);
        mpfr_add(r21311, r21306, r21310, MPFR_RNDN);
        ;
        mpfr_div(r21313, r21312, r21274, MPFR_RNDN);
        mpfr_add(r21314, r21311, r21313, MPFR_RNDN);
        ;
        ;
        mpfr_add(r21317, r21272, r21316, MPFR_RNDN);
        mpfr_div(r21318, r21315, r21317, MPFR_RNDN);
        mpfr_add(r21319, r21314, r21318, MPFR_RNDN);
        mpfr_mul(r21320, r21282, r21319, MPFR_RNDN);
        mpfr_mul(r21321, r21266, r21320, MPFR_RNDN);
        return mpfr_get_d(r21321, MPFR_RNDN);
}

static mpfr_t r21322, r21323, r21324, r21325, r21326, r21327, r21328, r21329, r21330, r21331, r21332, r21333, r21334, r21335, r21336, r21337, r21338, r21339, r21340, r21341, r21342, r21343, r21344, r21345, r21346, r21347, r21348, r21349, r21350, r21351, r21352, r21353, r21354, r21355, r21356, r21357, r21358, r21359, r21360, r21361, r21362, r21363, r21364, r21365, r21366, r21367, r21368, r21369, r21370, r21371, r21372, r21373, r21374, r21375, r21376, r21377, r21378, r21379, r21380, r21381, r21382, r21383, r21384, r21385, r21386, r21387, r21388, r21389, r21390, r21391;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r21322);
        mpfr_init(r21323);
        mpfr_init(r21324);
        mpfr_init(r21325);
        mpfr_init(r21326);
        mpfr_init(r21327);
        mpfr_init(r21328);
        mpfr_init(r21329);
        mpfr_init_set_str(r21330, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r21331, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r21332, "1", 10, MPFR_RNDN);
        mpfr_init(r21333);
        mpfr_init(r21334);
        mpfr_init(r21335);
        mpfr_init(r21336);
        mpfr_init(r21337);
        mpfr_init(r21338);
        mpfr_init(r21339);
        mpfr_init(r21340);
        mpfr_init(r21341);
        mpfr_init(r21342);
        mpfr_init_set_str(r21343, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r21344);
        mpfr_init_set_str(r21345, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init(r21346);
        mpfr_init_set_str(r21347, "8", 10, MPFR_RNDN);
        mpfr_init(r21348);
        mpfr_init(r21349);
        mpfr_init(r21350);
        mpfr_init(r21351);
        mpfr_init_set_str(r21352, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r21353, "6", 10, MPFR_RNDN);
        mpfr_init(r21354);
        mpfr_init(r21355);
        mpfr_init(r21356);
        mpfr_init_set_str(r21357, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r21358, "5", 10, MPFR_RNDN);
        mpfr_init(r21359);
        mpfr_init(r21360);
        mpfr_init(r21361);
        mpfr_init(r21362);
        mpfr_init_set_str(r21363, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r21364, "3", 10, MPFR_RNDN);
        mpfr_init(r21365);
        mpfr_init(r21366);
        mpfr_init(r21367);
        mpfr_init_set_str(r21368, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r21369, "4", 10, MPFR_RNDN);
        mpfr_init(r21370);
        mpfr_init(r21371);
        mpfr_init(r21372);
        mpfr_init(r21373);
        mpfr_init(r21374);
        mpfr_init_set_str(r21375, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r21376, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init_set_str(r21377, "2", 10, MPFR_RNDN);
        mpfr_init(r21378);
        mpfr_init(r21379);
        mpfr_init(r21380);
        mpfr_init_set_str(r21381, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r21382);
        mpfr_init(r21383);
        mpfr_init(r21384);
        mpfr_init(r21385);
        mpfr_init(r21386);
        mpfr_init(r21387);
        mpfr_init(r21388);
        mpfr_init(r21389);
        mpfr_init(r21390);
        mpfr_init(r21391);
}

double f_fm(double z) {
        mpfr_const_pi(r21322, MPFR_RNDN);
        mpfr_add(r21323, r21322, r21322, MPFR_RNDN);
        mpfr_sqrt(r21324, r21323, MPFR_RNDN);
        mpfr_set_d(r21325, z, MPFR_RNDN);
        mpfr_mul(r21326, r21325, r21322, MPFR_RNDN);
        mpfr_sin(r21327, r21326, MPFR_RNDN);
        mpfr_div(r21328, r21322, r21327, MPFR_RNDN);
        mpfr_mul(r21329, r21324, r21328, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_add(r21333, r21331, r21332, MPFR_RNDN);
        mpfr_add(r21334, r21332, r21325, MPFR_RNDN);
        mpfr_sub(r21335, r21333, r21334, MPFR_RNDN);
        mpfr_add(r21336, r21330, r21335, MPFR_RNDN);
        mpfr_add(r21337, r21330, r21332, MPFR_RNDN);
        mpfr_sub(r21338, r21337, r21334, MPFR_RNDN);
        mpfr_pow(r21339, r21336, r21338, MPFR_RNDN);
        mpfr_mul(r21340, r21329, r21339, MPFR_RNDN);
        mpfr_exp(r21341, r21336, MPFR_RNDN);
        mpfr_div(r21342, r21340, r21341, MPFR_RNDN);
        ;
        mpfr_div(r21344, r21343, r21335, MPFR_RNDN);
        ;
        mpfr_sub(r21346, r21332, r21325, MPFR_RNDN);
        ;
        mpfr_sub(r21348, r21332, r21347, MPFR_RNDN);
        mpfr_sub(r21349, r21346, r21348, MPFR_RNDN);
        mpfr_div(r21350, r21345, r21349, MPFR_RNDN);
        mpfr_add(r21351, r21344, r21350, MPFR_RNDN);
        ;
        ;
        mpfr_add(r21354, r21353, r21332, MPFR_RNDN);
        mpfr_sub(r21355, r21354, r21334, MPFR_RNDN);
        mpfr_div(r21356, r21352, r21355, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r21359, r21332, r21358, MPFR_RNDN);
        mpfr_sub(r21360, r21346, r21359, MPFR_RNDN);
        mpfr_div(r21361, r21357, r21360, MPFR_RNDN);
        mpfr_add(r21362, r21356, r21361, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r21365, r21332, r21364, MPFR_RNDN);
        mpfr_sub(r21366, r21346, r21365, MPFR_RNDN);
        mpfr_div(r21367, r21363, r21366, MPFR_RNDN);
        ;
        ;
        mpfr_add(r21370, r21369, r21332, MPFR_RNDN);
        mpfr_sub(r21371, r21370, r21334, MPFR_RNDN);
        mpfr_div(r21372, r21368, r21371, MPFR_RNDN);
        mpfr_add(r21373, r21367, r21372, MPFR_RNDN);
        mpfr_add(r21374, r21362, r21373, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_sub(r21378, r21377, r21325, MPFR_RNDN);
        mpfr_div(r21379, r21376, r21378, MPFR_RNDN);
        mpfr_sub(r21380, r21375, r21379, MPFR_RNDN);
        ;
        mpfr_mul(r21382, r21346, r21375, MPFR_RNDN);
        mpfr_add(r21383, r21381, r21382, MPFR_RNDN);
        mpfr_mul(r21384, r21346, r21379, MPFR_RNDN);
        mpfr_add(r21385, r21383, r21384, MPFR_RNDN);
        mpfr_mul(r21386, r21380, r21385, MPFR_RNDN);
        mpfr_mul(r21387, r21346, r21380, MPFR_RNDN);
        mpfr_div(r21388, r21386, r21387, MPFR_RNDN);
        mpfr_add(r21389, r21374, r21388, MPFR_RNDN);
        mpfr_add(r21390, r21351, r21389, MPFR_RNDN);
        mpfr_mul(r21391, r21342, r21390, MPFR_RNDN);
        return mpfr_get_d(r21391, MPFR_RNDN);
}

static mpfr_t r21392, r21393, r21394, r21395, r21396, r21397, r21398, r21399, r21400, r21401, r21402, r21403, r21404, r21405, r21406, r21407, r21408, r21409, r21410, r21411, r21412, r21413, r21414, r21415, r21416, r21417, r21418, r21419, r21420, r21421, r21422, r21423, r21424, r21425, r21426, r21427, r21428, r21429, r21430, r21431, r21432, r21433, r21434, r21435, r21436, r21437, r21438, r21439, r21440, r21441, r21442, r21443, r21444, r21445, r21446, r21447, r21448, r21449, r21450, r21451, r21452, r21453, r21454, r21455, r21456, r21457, r21458, r21459, r21460, r21461;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r21392);
        mpfr_init(r21393);
        mpfr_init(r21394);
        mpfr_init(r21395);
        mpfr_init(r21396);
        mpfr_init(r21397);
        mpfr_init(r21398);
        mpfr_init(r21399);
        mpfr_init_set_str(r21400, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r21401, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r21402, "1", 10, MPFR_RNDN);
        mpfr_init(r21403);
        mpfr_init(r21404);
        mpfr_init(r21405);
        mpfr_init(r21406);
        mpfr_init(r21407);
        mpfr_init(r21408);
        mpfr_init(r21409);
        mpfr_init(r21410);
        mpfr_init(r21411);
        mpfr_init(r21412);
        mpfr_init_set_str(r21413, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r21414);
        mpfr_init_set_str(r21415, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init(r21416);
        mpfr_init_set_str(r21417, "8", 10, MPFR_RNDN);
        mpfr_init(r21418);
        mpfr_init(r21419);
        mpfr_init(r21420);
        mpfr_init(r21421);
        mpfr_init_set_str(r21422, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r21423, "6", 10, MPFR_RNDN);
        mpfr_init(r21424);
        mpfr_init(r21425);
        mpfr_init(r21426);
        mpfr_init_set_str(r21427, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r21428, "5", 10, MPFR_RNDN);
        mpfr_init(r21429);
        mpfr_init(r21430);
        mpfr_init(r21431);
        mpfr_init(r21432);
        mpfr_init_set_str(r21433, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r21434, "3", 10, MPFR_RNDN);
        mpfr_init(r21435);
        mpfr_init(r21436);
        mpfr_init(r21437);
        mpfr_init_set_str(r21438, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r21439, "4", 10, MPFR_RNDN);
        mpfr_init(r21440);
        mpfr_init(r21441);
        mpfr_init(r21442);
        mpfr_init(r21443);
        mpfr_init(r21444);
        mpfr_init_set_str(r21445, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r21446, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init_set_str(r21447, "2", 10, MPFR_RNDN);
        mpfr_init(r21448);
        mpfr_init(r21449);
        mpfr_init(r21450);
        mpfr_init_set_str(r21451, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r21452);
        mpfr_init(r21453);
        mpfr_init(r21454);
        mpfr_init(r21455);
        mpfr_init(r21456);
        mpfr_init(r21457);
        mpfr_init(r21458);
        mpfr_init(r21459);
        mpfr_init(r21460);
        mpfr_init(r21461);
}

double f_dm(double z) {
        mpfr_const_pi(r21392, MPFR_RNDN);
        mpfr_add(r21393, r21392, r21392, MPFR_RNDN);
        mpfr_sqrt(r21394, r21393, MPFR_RNDN);
        mpfr_set_d(r21395, z, MPFR_RNDN);
        mpfr_mul(r21396, r21395, r21392, MPFR_RNDN);
        mpfr_sin(r21397, r21396, MPFR_RNDN);
        mpfr_div(r21398, r21392, r21397, MPFR_RNDN);
        mpfr_mul(r21399, r21394, r21398, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_add(r21403, r21401, r21402, MPFR_RNDN);
        mpfr_add(r21404, r21402, r21395, MPFR_RNDN);
        mpfr_sub(r21405, r21403, r21404, MPFR_RNDN);
        mpfr_add(r21406, r21400, r21405, MPFR_RNDN);
        mpfr_add(r21407, r21400, r21402, MPFR_RNDN);
        mpfr_sub(r21408, r21407, r21404, MPFR_RNDN);
        mpfr_pow(r21409, r21406, r21408, MPFR_RNDN);
        mpfr_mul(r21410, r21399, r21409, MPFR_RNDN);
        mpfr_exp(r21411, r21406, MPFR_RNDN);
        mpfr_div(r21412, r21410, r21411, MPFR_RNDN);
        ;
        mpfr_div(r21414, r21413, r21405, MPFR_RNDN);
        ;
        mpfr_sub(r21416, r21402, r21395, MPFR_RNDN);
        ;
        mpfr_sub(r21418, r21402, r21417, MPFR_RNDN);
        mpfr_sub(r21419, r21416, r21418, MPFR_RNDN);
        mpfr_div(r21420, r21415, r21419, MPFR_RNDN);
        mpfr_add(r21421, r21414, r21420, MPFR_RNDN);
        ;
        ;
        mpfr_add(r21424, r21423, r21402, MPFR_RNDN);
        mpfr_sub(r21425, r21424, r21404, MPFR_RNDN);
        mpfr_div(r21426, r21422, r21425, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r21429, r21402, r21428, MPFR_RNDN);
        mpfr_sub(r21430, r21416, r21429, MPFR_RNDN);
        mpfr_div(r21431, r21427, r21430, MPFR_RNDN);
        mpfr_add(r21432, r21426, r21431, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r21435, r21402, r21434, MPFR_RNDN);
        mpfr_sub(r21436, r21416, r21435, MPFR_RNDN);
        mpfr_div(r21437, r21433, r21436, MPFR_RNDN);
        ;
        ;
        mpfr_add(r21440, r21439, r21402, MPFR_RNDN);
        mpfr_sub(r21441, r21440, r21404, MPFR_RNDN);
        mpfr_div(r21442, r21438, r21441, MPFR_RNDN);
        mpfr_add(r21443, r21437, r21442, MPFR_RNDN);
        mpfr_add(r21444, r21432, r21443, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_sub(r21448, r21447, r21395, MPFR_RNDN);
        mpfr_div(r21449, r21446, r21448, MPFR_RNDN);
        mpfr_sub(r21450, r21445, r21449, MPFR_RNDN);
        ;
        mpfr_mul(r21452, r21416, r21445, MPFR_RNDN);
        mpfr_add(r21453, r21451, r21452, MPFR_RNDN);
        mpfr_mul(r21454, r21416, r21449, MPFR_RNDN);
        mpfr_add(r21455, r21453, r21454, MPFR_RNDN);
        mpfr_mul(r21456, r21450, r21455, MPFR_RNDN);
        mpfr_mul(r21457, r21416, r21450, MPFR_RNDN);
        mpfr_div(r21458, r21456, r21457, MPFR_RNDN);
        mpfr_add(r21459, r21444, r21458, MPFR_RNDN);
        mpfr_add(r21460, r21421, r21459, MPFR_RNDN);
        mpfr_mul(r21461, r21412, r21460, MPFR_RNDN);
        return mpfr_get_d(r21461, MPFR_RNDN);
}

