#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 r22186 = atan2(1.0, 0.0);
        float r22187 = z;
        float r22188 = r22186 * r22187;
        float r22189 = sin(r22188);
        float r22190 = r22186 / r22189;
        float r22191 = 2;
        float r22192 = r22186 * r22191;
        float r22193 = sqrt(r22192);
        float r22194 = 1;
        float r22195 = r22194 - r22187;
        float r22196 = r22195 - r22194;
        float r22197 = 7;
        float r22198 = r22196 + r22197;
        float r22199 = 0.5;
        float r22200 = r22198 + r22199;
        float r22201 = r22196 + r22199;
        float r22202 = pow(r22200, r22201);
        float r22203 = r22193 * r22202;
        float r22204 = -r22200;
        float r22205 = exp(r22204);
        float r22206 = r22203 * r22205;
        float r22207 = 0.9999999999998099;
        float r22208 = 676.5203681218851;
        float r22209 = r22196 + r22194;
        float r22210 = r22208 / r22209;
        float r22211 = r22207 + r22210;
        float r22212 = -1259.1392167224028;
        float r22213 = r22196 + r22191;
        float r22214 = r22212 / r22213;
        float r22215 = r22211 + r22214;
        float r22216 = 771.3234287776531;
        float r22217 = 3;
        float r22218 = r22196 + r22217;
        float r22219 = r22216 / r22218;
        float r22220 = r22215 + r22219;
        float r22221 = -176.6150291621406;
        float r22222 = 4;
        float r22223 = r22196 + r22222;
        float r22224 = r22221 / r22223;
        float r22225 = r22220 + r22224;
        float r22226 = 12.507343278686905;
        float r22227 = 5;
        float r22228 = r22196 + r22227;
        float r22229 = r22226 / r22228;
        float r22230 = r22225 + r22229;
        float r22231 = -0.13857109526572012;
        float r22232 = 6;
        float r22233 = r22196 + r22232;
        float r22234 = r22231 / r22233;
        float r22235 = r22230 + r22234;
        float r22236 = 9.984369578019572e-06;
        float r22237 = r22236 / r22198;
        float r22238 = r22235 + r22237;
        float r22239 = 1.5056327351493116e-07;
        float r22240 = 8;
        float r22241 = r22196 + r22240;
        float r22242 = r22239 / r22241;
        float r22243 = r22238 + r22242;
        float r22244 = r22206 * r22243;
        float r22245 = r22190 * r22244;
        return r22245;
}

double f_id(double z) {
        double r22246 = atan2(1.0, 0.0);
        double r22247 = z;
        double r22248 = r22246 * r22247;
        double r22249 = sin(r22248);
        double r22250 = r22246 / r22249;
        double r22251 = 2;
        double r22252 = r22246 * r22251;
        double r22253 = sqrt(r22252);
        double r22254 = 1;
        double r22255 = r22254 - r22247;
        double r22256 = r22255 - r22254;
        double r22257 = 7;
        double r22258 = r22256 + r22257;
        double r22259 = 0.5;
        double r22260 = r22258 + r22259;
        double r22261 = r22256 + r22259;
        double r22262 = pow(r22260, r22261);
        double r22263 = r22253 * r22262;
        double r22264 = -r22260;
        double r22265 = exp(r22264);
        double r22266 = r22263 * r22265;
        double r22267 = 0.9999999999998099;
        double r22268 = 676.5203681218851;
        double r22269 = r22256 + r22254;
        double r22270 = r22268 / r22269;
        double r22271 = r22267 + r22270;
        double r22272 = -1259.1392167224028;
        double r22273 = r22256 + r22251;
        double r22274 = r22272 / r22273;
        double r22275 = r22271 + r22274;
        double r22276 = 771.3234287776531;
        double r22277 = 3;
        double r22278 = r22256 + r22277;
        double r22279 = r22276 / r22278;
        double r22280 = r22275 + r22279;
        double r22281 = -176.6150291621406;
        double r22282 = 4;
        double r22283 = r22256 + r22282;
        double r22284 = r22281 / r22283;
        double r22285 = r22280 + r22284;
        double r22286 = 12.507343278686905;
        double r22287 = 5;
        double r22288 = r22256 + r22287;
        double r22289 = r22286 / r22288;
        double r22290 = r22285 + r22289;
        double r22291 = -0.13857109526572012;
        double r22292 = 6;
        double r22293 = r22256 + r22292;
        double r22294 = r22291 / r22293;
        double r22295 = r22290 + r22294;
        double r22296 = 9.984369578019572e-06;
        double r22297 = r22296 / r22258;
        double r22298 = r22295 + r22297;
        double r22299 = 1.5056327351493116e-07;
        double r22300 = 8;
        double r22301 = r22256 + r22300;
        double r22302 = r22299 / r22301;
        double r22303 = r22298 + r22302;
        double r22304 = r22266 * r22303;
        double r22305 = r22250 * r22304;
        return r22305;
}


double f_of(float z) {
        float r22306 = atan2(1.0, 0.0);
        float r22307 = r22306 + r22306;
        float r22308 = sqrt(r22307);
        float r22309 = z;
        float r22310 = r22309 * r22306;
        float r22311 = sin(r22310);
        float r22312 = r22306 / r22311;
        float r22313 = r22308 * r22312;
        float r22314 = 0.5;
        float r22315 = 7;
        float r22316 = 1;
        float r22317 = r22315 + r22316;
        float r22318 = r22316 + r22309;
        float r22319 = r22317 - r22318;
        float r22320 = r22314 + r22319;
        float r22321 = r22314 + r22316;
        float r22322 = r22321 - r22318;
        float r22323 = pow(r22320, r22322);
        float r22324 = r22313 * r22323;
        float r22325 = exp(r22320);
        float r22326 = r22324 / r22325;
        float r22327 = 9.984369578019572e-06;
        float r22328 = r22327 / r22319;
        float r22329 = 1.5056327351493116e-07;
        float r22330 = r22316 - r22309;
        float r22331 = 8;
        float r22332 = r22316 - r22331;
        float r22333 = r22330 - r22332;
        float r22334 = r22329 / r22333;
        float r22335 = r22328 + r22334;
        float r22336 = -0.13857109526572012;
        float r22337 = 6;
        float r22338 = r22337 + r22316;
        float r22339 = r22338 - r22318;
        float r22340 = r22336 / r22339;
        float r22341 = 12.507343278686905;
        float r22342 = 5;
        float r22343 = r22316 - r22342;
        float r22344 = r22330 - r22343;
        float r22345 = r22341 / r22344;
        float r22346 = r22340 + r22345;
        float r22347 = 771.3234287776531;
        float r22348 = 3;
        float r22349 = r22316 - r22348;
        float r22350 = r22330 - r22349;
        float r22351 = r22347 / r22350;
        float r22352 = -176.6150291621406;
        float r22353 = 4;
        float r22354 = r22353 + r22316;
        float r22355 = r22354 - r22318;
        float r22356 = r22352 / r22355;
        float r22357 = r22351 + r22356;
        float r22358 = r22346 + r22357;
        float r22359 = 0.9999999999998099;
        float r22360 = -1259.1392167224028;
        float r22361 = 2;
        float r22362 = r22361 - r22309;
        float r22363 = r22360 / r22362;
        float r22364 = r22359 - r22363;
        float r22365 = 676.5203681218851;
        float r22366 = r22330 * r22359;
        float r22367 = r22365 + r22366;
        float r22368 = r22330 * r22360;
        float r22369 = r22368 / r22362;
        float r22370 = r22367 + r22369;
        float r22371 = cbrt(r22370);
        float r22372 = r22371 * r22371;
        float r22373 = r22372 * r22371;
        float r22374 = r22364 * r22373;
        float r22375 = r22330 * r22364;
        float r22376 = r22374 / r22375;
        float r22377 = r22358 + r22376;
        float r22378 = r22335 + r22377;
        float r22379 = r22326 * r22378;
        return r22379;
}

double f_od(double z) {
        double r22380 = atan2(1.0, 0.0);
        double r22381 = r22380 + r22380;
        double r22382 = sqrt(r22381);
        double r22383 = z;
        double r22384 = r22383 * r22380;
        double r22385 = sin(r22384);
        double r22386 = r22380 / r22385;
        double r22387 = r22382 * r22386;
        double r22388 = 0.5;
        double r22389 = 7;
        double r22390 = 1;
        double r22391 = r22389 + r22390;
        double r22392 = r22390 + r22383;
        double r22393 = r22391 - r22392;
        double r22394 = r22388 + r22393;
        double r22395 = r22388 + r22390;
        double r22396 = r22395 - r22392;
        double r22397 = pow(r22394, r22396);
        double r22398 = r22387 * r22397;
        double r22399 = exp(r22394);
        double r22400 = r22398 / r22399;
        double r22401 = 9.984369578019572e-06;
        double r22402 = r22401 / r22393;
        double r22403 = 1.5056327351493116e-07;
        double r22404 = r22390 - r22383;
        double r22405 = 8;
        double r22406 = r22390 - r22405;
        double r22407 = r22404 - r22406;
        double r22408 = r22403 / r22407;
        double r22409 = r22402 + r22408;
        double r22410 = -0.13857109526572012;
        double r22411 = 6;
        double r22412 = r22411 + r22390;
        double r22413 = r22412 - r22392;
        double r22414 = r22410 / r22413;
        double r22415 = 12.507343278686905;
        double r22416 = 5;
        double r22417 = r22390 - r22416;
        double r22418 = r22404 - r22417;
        double r22419 = r22415 / r22418;
        double r22420 = r22414 + r22419;
        double r22421 = 771.3234287776531;
        double r22422 = 3;
        double r22423 = r22390 - r22422;
        double r22424 = r22404 - r22423;
        double r22425 = r22421 / r22424;
        double r22426 = -176.6150291621406;
        double r22427 = 4;
        double r22428 = r22427 + r22390;
        double r22429 = r22428 - r22392;
        double r22430 = r22426 / r22429;
        double r22431 = r22425 + r22430;
        double r22432 = r22420 + r22431;
        double r22433 = 0.9999999999998099;
        double r22434 = -1259.1392167224028;
        double r22435 = 2;
        double r22436 = r22435 - r22383;
        double r22437 = r22434 / r22436;
        double r22438 = r22433 - r22437;
        double r22439 = 676.5203681218851;
        double r22440 = r22404 * r22433;
        double r22441 = r22439 + r22440;
        double r22442 = r22404 * r22434;
        double r22443 = r22442 / r22436;
        double r22444 = r22441 + r22443;
        double r22445 = cbrt(r22444);
        double r22446 = r22445 * r22445;
        double r22447 = r22446 * r22445;
        double r22448 = r22438 * r22447;
        double r22449 = r22404 * r22438;
        double r22450 = r22448 / r22449;
        double r22451 = r22432 + r22450;
        double r22452 = r22409 + r22451;
        double r22453 = r22400 * r22452;
        return r22453;
}

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 r22454, r22455, r22456, r22457, r22458, r22459, r22460, r22461, r22462, r22463, r22464, r22465, r22466, r22467, r22468, r22469, r22470, r22471, r22472, r22473, r22474, r22475, r22476, r22477, r22478, r22479, r22480, r22481, r22482, r22483, r22484, r22485, r22486, r22487, r22488, r22489, r22490, r22491, r22492, r22493, r22494, r22495, r22496, r22497, r22498, r22499, r22500, r22501, r22502, r22503, r22504, r22505, r22506, r22507, r22508, r22509, r22510, r22511, r22512, r22513;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r22454);
        mpfr_init(r22455);
        mpfr_init(r22456);
        mpfr_init(r22457);
        mpfr_init(r22458);
        mpfr_init_set_str(r22459, "2", 10, MPFR_RNDN);
        mpfr_init(r22460);
        mpfr_init(r22461);
        mpfr_init_set_str(r22462, "1", 10, MPFR_RNDN);
        mpfr_init(r22463);
        mpfr_init(r22464);
        mpfr_init_set_str(r22465, "7", 10, MPFR_RNDN);
        mpfr_init(r22466);
        mpfr_init_set_str(r22467, "0.5", 10, MPFR_RNDN);
        mpfr_init(r22468);
        mpfr_init(r22469);
        mpfr_init(r22470);
        mpfr_init(r22471);
        mpfr_init(r22472);
        mpfr_init(r22473);
        mpfr_init(r22474);
        mpfr_init_set_str(r22475, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r22476, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r22477);
        mpfr_init(r22478);
        mpfr_init(r22479);
        mpfr_init_set_str(r22480, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r22481);
        mpfr_init(r22482);
        mpfr_init(r22483);
        mpfr_init_set_str(r22484, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r22485, "3", 10, MPFR_RNDN);
        mpfr_init(r22486);
        mpfr_init(r22487);
        mpfr_init(r22488);
        mpfr_init_set_str(r22489, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r22490, "4", 10, MPFR_RNDN);
        mpfr_init(r22491);
        mpfr_init(r22492);
        mpfr_init(r22493);
        mpfr_init_set_str(r22494, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r22495, "5", 10, MPFR_RNDN);
        mpfr_init(r22496);
        mpfr_init(r22497);
        mpfr_init(r22498);
        mpfr_init_set_str(r22499, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r22500, "6", 10, MPFR_RNDN);
        mpfr_init(r22501);
        mpfr_init(r22502);
        mpfr_init(r22503);
        mpfr_init_set_str(r22504, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r22505);
        mpfr_init(r22506);
        mpfr_init_set_str(r22507, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r22508, "8", 10, MPFR_RNDN);
        mpfr_init(r22509);
        mpfr_init(r22510);
        mpfr_init(r22511);
        mpfr_init(r22512);
        mpfr_init(r22513);
}

double f_im(double z) {
        mpfr_const_pi(r22454, MPFR_RNDN);
        mpfr_set_d(r22455, z, MPFR_RNDN);
        mpfr_mul(r22456, r22454, r22455, MPFR_RNDN);
        mpfr_sin(r22457, r22456, MPFR_RNDN);
        mpfr_div(r22458, r22454, r22457, MPFR_RNDN);
        ;
        mpfr_mul(r22460, r22454, r22459, MPFR_RNDN);
        mpfr_sqrt(r22461, r22460, MPFR_RNDN);
        ;
        mpfr_sub(r22463, r22462, r22455, MPFR_RNDN);
        mpfr_sub(r22464, r22463, r22462, MPFR_RNDN);
        ;
        mpfr_add(r22466, r22464, r22465, MPFR_RNDN);
        ;
        mpfr_add(r22468, r22466, r22467, MPFR_RNDN);
        mpfr_add(r22469, r22464, r22467, MPFR_RNDN);
        mpfr_pow(r22470, r22468, r22469, MPFR_RNDN);
        mpfr_mul(r22471, r22461, r22470, MPFR_RNDN);
        mpfr_neg(r22472, r22468, MPFR_RNDN);
        mpfr_exp(r22473, r22472, MPFR_RNDN);
        mpfr_mul(r22474, r22471, r22473, MPFR_RNDN);
        ;
        ;
        mpfr_add(r22477, r22464, r22462, MPFR_RNDN);
        mpfr_div(r22478, r22476, r22477, MPFR_RNDN);
        mpfr_add(r22479, r22475, r22478, MPFR_RNDN);
        ;
        mpfr_add(r22481, r22464, r22459, MPFR_RNDN);
        mpfr_div(r22482, r22480, r22481, MPFR_RNDN);
        mpfr_add(r22483, r22479, r22482, MPFR_RNDN);
        ;
        ;
        mpfr_add(r22486, r22464, r22485, MPFR_RNDN);
        mpfr_div(r22487, r22484, r22486, MPFR_RNDN);
        mpfr_add(r22488, r22483, r22487, MPFR_RNDN);
        ;
        ;
        mpfr_add(r22491, r22464, r22490, MPFR_RNDN);
        mpfr_div(r22492, r22489, r22491, MPFR_RNDN);
        mpfr_add(r22493, r22488, r22492, MPFR_RNDN);
        ;
        ;
        mpfr_add(r22496, r22464, r22495, MPFR_RNDN);
        mpfr_div(r22497, r22494, r22496, MPFR_RNDN);
        mpfr_add(r22498, r22493, r22497, MPFR_RNDN);
        ;
        ;
        mpfr_add(r22501, r22464, r22500, MPFR_RNDN);
        mpfr_div(r22502, r22499, r22501, MPFR_RNDN);
        mpfr_add(r22503, r22498, r22502, MPFR_RNDN);
        ;
        mpfr_div(r22505, r22504, r22466, MPFR_RNDN);
        mpfr_add(r22506, r22503, r22505, MPFR_RNDN);
        ;
        ;
        mpfr_add(r22509, r22464, r22508, MPFR_RNDN);
        mpfr_div(r22510, r22507, r22509, MPFR_RNDN);
        mpfr_add(r22511, r22506, r22510, MPFR_RNDN);
        mpfr_mul(r22512, r22474, r22511, MPFR_RNDN);
        mpfr_mul(r22513, r22458, r22512, MPFR_RNDN);
        return mpfr_get_d(r22513, MPFR_RNDN);
}

static mpfr_t r22514, r22515, r22516, r22517, r22518, r22519, r22520, r22521, r22522, r22523, r22524, r22525, r22526, r22527, r22528, r22529, r22530, r22531, r22532, r22533, r22534, r22535, r22536, r22537, r22538, r22539, r22540, r22541, r22542, r22543, r22544, r22545, r22546, r22547, r22548, r22549, r22550, r22551, r22552, r22553, r22554, r22555, r22556, r22557, r22558, r22559, r22560, r22561, r22562, r22563, r22564, r22565, r22566, r22567, r22568, r22569, r22570, r22571, r22572, r22573, r22574, r22575, r22576, r22577, r22578, r22579, r22580, r22581, r22582, r22583, r22584, r22585, r22586, r22587;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r22514);
        mpfr_init(r22515);
        mpfr_init(r22516);
        mpfr_init(r22517);
        mpfr_init(r22518);
        mpfr_init(r22519);
        mpfr_init(r22520);
        mpfr_init(r22521);
        mpfr_init_set_str(r22522, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r22523, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r22524, "1", 10, MPFR_RNDN);
        mpfr_init(r22525);
        mpfr_init(r22526);
        mpfr_init(r22527);
        mpfr_init(r22528);
        mpfr_init(r22529);
        mpfr_init(r22530);
        mpfr_init(r22531);
        mpfr_init(r22532);
        mpfr_init(r22533);
        mpfr_init(r22534);
        mpfr_init_set_str(r22535, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r22536);
        mpfr_init_set_str(r22537, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init(r22538);
        mpfr_init_set_str(r22539, "8", 10, MPFR_RNDN);
        mpfr_init(r22540);
        mpfr_init(r22541);
        mpfr_init(r22542);
        mpfr_init(r22543);
        mpfr_init_set_str(r22544, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r22545, "6", 10, MPFR_RNDN);
        mpfr_init(r22546);
        mpfr_init(r22547);
        mpfr_init(r22548);
        mpfr_init_set_str(r22549, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r22550, "5", 10, MPFR_RNDN);
        mpfr_init(r22551);
        mpfr_init(r22552);
        mpfr_init(r22553);
        mpfr_init(r22554);
        mpfr_init_set_str(r22555, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r22556, "3", 10, MPFR_RNDN);
        mpfr_init(r22557);
        mpfr_init(r22558);
        mpfr_init(r22559);
        mpfr_init_set_str(r22560, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r22561, "4", 10, MPFR_RNDN);
        mpfr_init(r22562);
        mpfr_init(r22563);
        mpfr_init(r22564);
        mpfr_init(r22565);
        mpfr_init(r22566);
        mpfr_init_set_str(r22567, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r22568, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init_set_str(r22569, "2", 10, MPFR_RNDN);
        mpfr_init(r22570);
        mpfr_init(r22571);
        mpfr_init(r22572);
        mpfr_init_set_str(r22573, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r22574);
        mpfr_init(r22575);
        mpfr_init(r22576);
        mpfr_init(r22577);
        mpfr_init(r22578);
        mpfr_init(r22579);
        mpfr_init(r22580);
        mpfr_init(r22581);
        mpfr_init(r22582);
        mpfr_init(r22583);
        mpfr_init(r22584);
        mpfr_init(r22585);
        mpfr_init(r22586);
        mpfr_init(r22587);
}

double f_fm(double z) {
        mpfr_const_pi(r22514, MPFR_RNDN);
        mpfr_add(r22515, r22514, r22514, MPFR_RNDN);
        mpfr_sqrt(r22516, r22515, MPFR_RNDN);
        mpfr_set_d(r22517, z, MPFR_RNDN);
        mpfr_mul(r22518, r22517, r22514, MPFR_RNDN);
        mpfr_sin(r22519, r22518, MPFR_RNDN);
        mpfr_div(r22520, r22514, r22519, MPFR_RNDN);
        mpfr_mul(r22521, r22516, r22520, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_add(r22525, r22523, r22524, MPFR_RNDN);
        mpfr_add(r22526, r22524, r22517, MPFR_RNDN);
        mpfr_sub(r22527, r22525, r22526, MPFR_RNDN);
        mpfr_add(r22528, r22522, r22527, MPFR_RNDN);
        mpfr_add(r22529, r22522, r22524, MPFR_RNDN);
        mpfr_sub(r22530, r22529, r22526, MPFR_RNDN);
        mpfr_pow(r22531, r22528, r22530, MPFR_RNDN);
        mpfr_mul(r22532, r22521, r22531, MPFR_RNDN);
        mpfr_exp(r22533, r22528, MPFR_RNDN);
        mpfr_div(r22534, r22532, r22533, MPFR_RNDN);
        ;
        mpfr_div(r22536, r22535, r22527, MPFR_RNDN);
        ;
        mpfr_sub(r22538, r22524, r22517, MPFR_RNDN);
        ;
        mpfr_sub(r22540, r22524, r22539, MPFR_RNDN);
        mpfr_sub(r22541, r22538, r22540, MPFR_RNDN);
        mpfr_div(r22542, r22537, r22541, MPFR_RNDN);
        mpfr_add(r22543, r22536, r22542, MPFR_RNDN);
        ;
        ;
        mpfr_add(r22546, r22545, r22524, MPFR_RNDN);
        mpfr_sub(r22547, r22546, r22526, MPFR_RNDN);
        mpfr_div(r22548, r22544, r22547, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r22551, r22524, r22550, MPFR_RNDN);
        mpfr_sub(r22552, r22538, r22551, MPFR_RNDN);
        mpfr_div(r22553, r22549, r22552, MPFR_RNDN);
        mpfr_add(r22554, r22548, r22553, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r22557, r22524, r22556, MPFR_RNDN);
        mpfr_sub(r22558, r22538, r22557, MPFR_RNDN);
        mpfr_div(r22559, r22555, r22558, MPFR_RNDN);
        ;
        ;
        mpfr_add(r22562, r22561, r22524, MPFR_RNDN);
        mpfr_sub(r22563, r22562, r22526, MPFR_RNDN);
        mpfr_div(r22564, r22560, r22563, MPFR_RNDN);
        mpfr_add(r22565, r22559, r22564, MPFR_RNDN);
        mpfr_add(r22566, r22554, r22565, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_sub(r22570, r22569, r22517, MPFR_RNDN);
        mpfr_div(r22571, r22568, r22570, MPFR_RNDN);
        mpfr_sub(r22572, r22567, r22571, MPFR_RNDN);
        ;
        mpfr_mul(r22574, r22538, r22567, MPFR_RNDN);
        mpfr_add(r22575, r22573, r22574, MPFR_RNDN);
        mpfr_mul(r22576, r22538, r22568, MPFR_RNDN);
        mpfr_div(r22577, r22576, r22570, MPFR_RNDN);
        mpfr_add(r22578, r22575, r22577, MPFR_RNDN);
        mpfr_cbrt(r22579, r22578, MPFR_RNDN);
        mpfr_mul(r22580, r22579, r22579, MPFR_RNDN);
        mpfr_mul(r22581, r22580, r22579, MPFR_RNDN);
        mpfr_mul(r22582, r22572, r22581, MPFR_RNDN);
        mpfr_mul(r22583, r22538, r22572, MPFR_RNDN);
        mpfr_div(r22584, r22582, r22583, MPFR_RNDN);
        mpfr_add(r22585, r22566, r22584, MPFR_RNDN);
        mpfr_add(r22586, r22543, r22585, MPFR_RNDN);
        mpfr_mul(r22587, r22534, r22586, MPFR_RNDN);
        return mpfr_get_d(r22587, MPFR_RNDN);
}

static mpfr_t r22588, r22589, r22590, r22591, r22592, r22593, r22594, r22595, r22596, r22597, r22598, r22599, r22600, r22601, r22602, r22603, r22604, r22605, r22606, r22607, r22608, r22609, r22610, r22611, r22612, r22613, r22614, r22615, r22616, r22617, r22618, r22619, r22620, r22621, r22622, r22623, r22624, r22625, r22626, r22627, r22628, r22629, r22630, r22631, r22632, r22633, r22634, r22635, r22636, r22637, r22638, r22639, r22640, r22641, r22642, r22643, r22644, r22645, r22646, r22647, r22648, r22649, r22650, r22651, r22652, r22653, r22654, r22655, r22656, r22657, r22658, r22659, r22660, r22661;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r22588);
        mpfr_init(r22589);
        mpfr_init(r22590);
        mpfr_init(r22591);
        mpfr_init(r22592);
        mpfr_init(r22593);
        mpfr_init(r22594);
        mpfr_init(r22595);
        mpfr_init_set_str(r22596, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r22597, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r22598, "1", 10, MPFR_RNDN);
        mpfr_init(r22599);
        mpfr_init(r22600);
        mpfr_init(r22601);
        mpfr_init(r22602);
        mpfr_init(r22603);
        mpfr_init(r22604);
        mpfr_init(r22605);
        mpfr_init(r22606);
        mpfr_init(r22607);
        mpfr_init(r22608);
        mpfr_init_set_str(r22609, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r22610);
        mpfr_init_set_str(r22611, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init(r22612);
        mpfr_init_set_str(r22613, "8", 10, MPFR_RNDN);
        mpfr_init(r22614);
        mpfr_init(r22615);
        mpfr_init(r22616);
        mpfr_init(r22617);
        mpfr_init_set_str(r22618, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r22619, "6", 10, MPFR_RNDN);
        mpfr_init(r22620);
        mpfr_init(r22621);
        mpfr_init(r22622);
        mpfr_init_set_str(r22623, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r22624, "5", 10, MPFR_RNDN);
        mpfr_init(r22625);
        mpfr_init(r22626);
        mpfr_init(r22627);
        mpfr_init(r22628);
        mpfr_init_set_str(r22629, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r22630, "3", 10, MPFR_RNDN);
        mpfr_init(r22631);
        mpfr_init(r22632);
        mpfr_init(r22633);
        mpfr_init_set_str(r22634, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r22635, "4", 10, MPFR_RNDN);
        mpfr_init(r22636);
        mpfr_init(r22637);
        mpfr_init(r22638);
        mpfr_init(r22639);
        mpfr_init(r22640);
        mpfr_init_set_str(r22641, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r22642, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init_set_str(r22643, "2", 10, MPFR_RNDN);
        mpfr_init(r22644);
        mpfr_init(r22645);
        mpfr_init(r22646);
        mpfr_init_set_str(r22647, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r22648);
        mpfr_init(r22649);
        mpfr_init(r22650);
        mpfr_init(r22651);
        mpfr_init(r22652);
        mpfr_init(r22653);
        mpfr_init(r22654);
        mpfr_init(r22655);
        mpfr_init(r22656);
        mpfr_init(r22657);
        mpfr_init(r22658);
        mpfr_init(r22659);
        mpfr_init(r22660);
        mpfr_init(r22661);
}

double f_dm(double z) {
        mpfr_const_pi(r22588, MPFR_RNDN);
        mpfr_add(r22589, r22588, r22588, MPFR_RNDN);
        mpfr_sqrt(r22590, r22589, MPFR_RNDN);
        mpfr_set_d(r22591, z, MPFR_RNDN);
        mpfr_mul(r22592, r22591, r22588, MPFR_RNDN);
        mpfr_sin(r22593, r22592, MPFR_RNDN);
        mpfr_div(r22594, r22588, r22593, MPFR_RNDN);
        mpfr_mul(r22595, r22590, r22594, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_add(r22599, r22597, r22598, MPFR_RNDN);
        mpfr_add(r22600, r22598, r22591, MPFR_RNDN);
        mpfr_sub(r22601, r22599, r22600, MPFR_RNDN);
        mpfr_add(r22602, r22596, r22601, MPFR_RNDN);
        mpfr_add(r22603, r22596, r22598, MPFR_RNDN);
        mpfr_sub(r22604, r22603, r22600, MPFR_RNDN);
        mpfr_pow(r22605, r22602, r22604, MPFR_RNDN);
        mpfr_mul(r22606, r22595, r22605, MPFR_RNDN);
        mpfr_exp(r22607, r22602, MPFR_RNDN);
        mpfr_div(r22608, r22606, r22607, MPFR_RNDN);
        ;
        mpfr_div(r22610, r22609, r22601, MPFR_RNDN);
        ;
        mpfr_sub(r22612, r22598, r22591, MPFR_RNDN);
        ;
        mpfr_sub(r22614, r22598, r22613, MPFR_RNDN);
        mpfr_sub(r22615, r22612, r22614, MPFR_RNDN);
        mpfr_div(r22616, r22611, r22615, MPFR_RNDN);
        mpfr_add(r22617, r22610, r22616, MPFR_RNDN);
        ;
        ;
        mpfr_add(r22620, r22619, r22598, MPFR_RNDN);
        mpfr_sub(r22621, r22620, r22600, MPFR_RNDN);
        mpfr_div(r22622, r22618, r22621, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r22625, r22598, r22624, MPFR_RNDN);
        mpfr_sub(r22626, r22612, r22625, MPFR_RNDN);
        mpfr_div(r22627, r22623, r22626, MPFR_RNDN);
        mpfr_add(r22628, r22622, r22627, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r22631, r22598, r22630, MPFR_RNDN);
        mpfr_sub(r22632, r22612, r22631, MPFR_RNDN);
        mpfr_div(r22633, r22629, r22632, MPFR_RNDN);
        ;
        ;
        mpfr_add(r22636, r22635, r22598, MPFR_RNDN);
        mpfr_sub(r22637, r22636, r22600, MPFR_RNDN);
        mpfr_div(r22638, r22634, r22637, MPFR_RNDN);
        mpfr_add(r22639, r22633, r22638, MPFR_RNDN);
        mpfr_add(r22640, r22628, r22639, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_sub(r22644, r22643, r22591, MPFR_RNDN);
        mpfr_div(r22645, r22642, r22644, MPFR_RNDN);
        mpfr_sub(r22646, r22641, r22645, MPFR_RNDN);
        ;
        mpfr_mul(r22648, r22612, r22641, MPFR_RNDN);
        mpfr_add(r22649, r22647, r22648, MPFR_RNDN);
        mpfr_mul(r22650, r22612, r22642, MPFR_RNDN);
        mpfr_div(r22651, r22650, r22644, MPFR_RNDN);
        mpfr_add(r22652, r22649, r22651, MPFR_RNDN);
        mpfr_cbrt(r22653, r22652, MPFR_RNDN);
        mpfr_mul(r22654, r22653, r22653, MPFR_RNDN);
        mpfr_mul(r22655, r22654, r22653, MPFR_RNDN);
        mpfr_mul(r22656, r22646, r22655, MPFR_RNDN);
        mpfr_mul(r22657, r22612, r22646, MPFR_RNDN);
        mpfr_div(r22658, r22656, r22657, MPFR_RNDN);
        mpfr_add(r22659, r22640, r22658, MPFR_RNDN);
        mpfr_add(r22660, r22617, r22659, MPFR_RNDN);
        mpfr_mul(r22661, r22608, r22660, MPFR_RNDN);
        return mpfr_get_d(r22661, MPFR_RNDN);
}

