#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 r17215 = atan2(1.0, 0.0);
        float r17216 = z;
        float r17217 = r17215 * r17216;
        float r17218 = sin(r17217);
        float r17219 = r17215 / r17218;
        float r17220 = 2.0f;
        float r17221 = r17215 * r17220;
        float r17222 = sqrt(r17221);
        float r17223 = 1.0f;
        float r17224 = r17223 - r17216;
        float r17225 = r17224 - r17223;
        float r17226 = 7.0f;
        float r17227 = r17225 + r17226;
        float r17228 = 0.5f;
        float r17229 = r17227 + r17228;
        float r17230 = r17225 + r17228;
        float r17231 = pow(r17229, r17230);
        float r17232 = r17222 * r17231;
        float r17233 = -r17229;
        float r17234 = exp(r17233);
        float r17235 = r17232 * r17234;
        float r17236 = 0.9999999999998099f;
        float r17237 = 676.5203681218851f;
        float r17238 = r17225 + r17223;
        float r17239 = r17237 / r17238;
        float r17240 = r17236 + r17239;
        float r17241 = -1259.1392167224028f;
        float r17242 = r17225 + r17220;
        float r17243 = r17241 / r17242;
        float r17244 = r17240 + r17243;
        float r17245 = 771.3234287776531f;
        float r17246 = 3.0f;
        float r17247 = r17225 + r17246;
        float r17248 = r17245 / r17247;
        float r17249 = r17244 + r17248;
        float r17250 = -176.6150291621406f;
        float r17251 = 4.0f;
        float r17252 = r17225 + r17251;
        float r17253 = r17250 / r17252;
        float r17254 = r17249 + r17253;
        float r17255 = 12.507343278686905f;
        float r17256 = 5.0f;
        float r17257 = r17225 + r17256;
        float r17258 = r17255 / r17257;
        float r17259 = r17254 + r17258;
        float r17260 = -0.13857109526572012f;
        float r17261 = 6.0f;
        float r17262 = r17225 + r17261;
        float r17263 = r17260 / r17262;
        float r17264 = r17259 + r17263;
        float r17265 = 9.984369578019572e-06f;
        float r17266 = r17265 / r17227;
        float r17267 = r17264 + r17266;
        float r17268 = 1.5056327351493116e-07f;
        float r17269 = 8.0f;
        float r17270 = r17225 + r17269;
        float r17271 = r17268 / r17270;
        float r17272 = r17267 + r17271;
        float r17273 = r17235 * r17272;
        float r17274 = r17219 * r17273;
        return r17274;
}

double f_id(double z) {
        double r17275 = atan2(1.0, 0.0);
        double r17276 = z;
        double r17277 = r17275 * r17276;
        double r17278 = sin(r17277);
        double r17279 = r17275 / r17278;
        double r17280 = 2.0;
        double r17281 = r17275 * r17280;
        double r17282 = sqrt(r17281);
        double r17283 = 1.0;
        double r17284 = r17283 - r17276;
        double r17285 = r17284 - r17283;
        double r17286 = 7.0;
        double r17287 = r17285 + r17286;
        double r17288 = 0.5;
        double r17289 = r17287 + r17288;
        double r17290 = r17285 + r17288;
        double r17291 = pow(r17289, r17290);
        double r17292 = r17282 * r17291;
        double r17293 = -r17289;
        double r17294 = exp(r17293);
        double r17295 = r17292 * r17294;
        double r17296 = 0.9999999999998099;
        double r17297 = 676.5203681218851;
        double r17298 = r17285 + r17283;
        double r17299 = r17297 / r17298;
        double r17300 = r17296 + r17299;
        double r17301 = -1259.1392167224028;
        double r17302 = r17285 + r17280;
        double r17303 = r17301 / r17302;
        double r17304 = r17300 + r17303;
        double r17305 = 771.3234287776531;
        double r17306 = 3.0;
        double r17307 = r17285 + r17306;
        double r17308 = r17305 / r17307;
        double r17309 = r17304 + r17308;
        double r17310 = -176.6150291621406;
        double r17311 = 4.0;
        double r17312 = r17285 + r17311;
        double r17313 = r17310 / r17312;
        double r17314 = r17309 + r17313;
        double r17315 = 12.507343278686905;
        double r17316 = 5.0;
        double r17317 = r17285 + r17316;
        double r17318 = r17315 / r17317;
        double r17319 = r17314 + r17318;
        double r17320 = -0.13857109526572012;
        double r17321 = 6.0;
        double r17322 = r17285 + r17321;
        double r17323 = r17320 / r17322;
        double r17324 = r17319 + r17323;
        double r17325 = 9.984369578019572e-06;
        double r17326 = r17325 / r17287;
        double r17327 = r17324 + r17326;
        double r17328 = 1.5056327351493116e-07;
        double r17329 = 8.0;
        double r17330 = r17285 + r17329;
        double r17331 = r17328 / r17330;
        double r17332 = r17327 + r17331;
        double r17333 = r17295 * r17332;
        double r17334 = r17279 * r17333;
        return r17334;
}


double f_of(float z) {
        float r17335 = atan2(1.0, 0.0);
        float r17336 = 2.0f;
        float r17337 = r17335 * r17336;
        float r17338 = sqrt(r17337);
        float r17339 = r17335 * r17338;
        float r17340 = log1p(r17339);
        float r17341 = expm1(r17340);
        float r17342 = z;
        float r17343 = r17342 * r17335;
        float r17344 = sin(r17343);
        float r17345 = r17341 / r17344;
        float r17346 = 0.5f;
        float r17347 = 7.0f;
        float r17348 = r17346 + r17347;
        float r17349 = 1.0f;
        float r17350 = r17349 + r17342;
        float r17351 = r17349 - r17350;
        float r17352 = r17348 + r17351;
        float r17353 = r17349 + r17346;
        float r17354 = r17353 - r17350;
        float r17355 = pow(r17352, r17354);
        float r17356 = -r17342;
        float r17357 = exp(r17356);
        float r17358 = log(r17357);
        float r17359 = r17348 + r17358;
        float r17360 = exp(r17359);
        float r17361 = r17355 / r17360;
        float r17362 = r17345 * r17361;
        float r17363 = 1.5056327351493116e-07f;
        float r17364 = 8.0f;
        float r17365 = r17349 + r17364;
        float r17366 = r17365 - r17350;
        float r17367 = r17363 / r17366;
        float r17368 = -0.13857109526572012f;
        float r17369 = r17349 - r17342;
        float r17370 = 6.0f;
        float r17371 = r17349 - r17370;
        float r17372 = r17369 - r17371;
        float r17373 = r17368 / r17372;
        float r17374 = 9.984369578019572e-06f;
        float r17375 = -1.0f;
        float r17376 = fma(r17342, r17375, r17347);
        float r17377 = r17374 / r17376;
        float r17378 = r17373 + r17377;
        float r17379 = r17367 + r17378;
        float r17380 = -176.6150291621406f;
        float r17381 = 4.0f;
        float r17382 = r17349 - r17381;
        float r17383 = r17369 - r17382;
        float r17384 = r17380 / r17383;
        float r17385 = 12.507343278686905f;
        float r17386 = 5.0f;
        float r17387 = r17349 + r17386;
        float r17388 = r17387 - r17350;
        float r17389 = r17385 / r17388;
        float r17390 = r17384 + r17389;
        float r17391 = 0.9999999999998099f;
        float r17392 = 676.5203681218851f;
        float r17393 = 0.0f;
        float r17394 = r17369 - r17393;
        float r17395 = r17392 / r17394;
        float r17396 = r17391 + r17395;
        float r17397 = r17390 + r17396;
        float r17398 = 771.3234287776531f;
        float r17399 = 3.0f;
        float r17400 = r17349 + r17399;
        float r17401 = r17400 - r17350;
        float r17402 = r17398 / r17401;
        float r17403 = -1259.1392167224028f;
        float r17404 = r17349 - r17336;
        float r17405 = r17369 - r17404;
        float r17406 = r17403 / r17405;
        float r17407 = r17402 + r17406;
        float r17408 = r17397 + r17407;
        float r17409 = r17379 + r17408;
        float r17410 = r17362 * r17409;
        return r17410;
}

double f_od(double z) {
        double r17411 = atan2(1.0, 0.0);
        double r17412 = 2.0;
        double r17413 = r17411 * r17412;
        double r17414 = sqrt(r17413);
        double r17415 = r17411 * r17414;
        double r17416 = log1p(r17415);
        double r17417 = expm1(r17416);
        double r17418 = z;
        double r17419 = r17418 * r17411;
        double r17420 = sin(r17419);
        double r17421 = r17417 / r17420;
        double r17422 = 0.5;
        double r17423 = 7.0;
        double r17424 = r17422 + r17423;
        double r17425 = 1.0;
        double r17426 = r17425 + r17418;
        double r17427 = r17425 - r17426;
        double r17428 = r17424 + r17427;
        double r17429 = r17425 + r17422;
        double r17430 = r17429 - r17426;
        double r17431 = pow(r17428, r17430);
        double r17432 = -r17418;
        double r17433 = exp(r17432);
        double r17434 = log(r17433);
        double r17435 = r17424 + r17434;
        double r17436 = exp(r17435);
        double r17437 = r17431 / r17436;
        double r17438 = r17421 * r17437;
        double r17439 = 1.5056327351493116e-07;
        double r17440 = 8.0;
        double r17441 = r17425 + r17440;
        double r17442 = r17441 - r17426;
        double r17443 = r17439 / r17442;
        double r17444 = -0.13857109526572012;
        double r17445 = r17425 - r17418;
        double r17446 = 6.0;
        double r17447 = r17425 - r17446;
        double r17448 = r17445 - r17447;
        double r17449 = r17444 / r17448;
        double r17450 = 9.984369578019572e-06;
        double r17451 = -1.0;
        double r17452 = fma(r17418, r17451, r17423);
        double r17453 = r17450 / r17452;
        double r17454 = r17449 + r17453;
        double r17455 = r17443 + r17454;
        double r17456 = -176.6150291621406;
        double r17457 = 4.0;
        double r17458 = r17425 - r17457;
        double r17459 = r17445 - r17458;
        double r17460 = r17456 / r17459;
        double r17461 = 12.507343278686905;
        double r17462 = 5.0;
        double r17463 = r17425 + r17462;
        double r17464 = r17463 - r17426;
        double r17465 = r17461 / r17464;
        double r17466 = r17460 + r17465;
        double r17467 = 0.9999999999998099;
        double r17468 = 676.5203681218851;
        double r17469 = 0.0;
        double r17470 = r17445 - r17469;
        double r17471 = r17468 / r17470;
        double r17472 = r17467 + r17471;
        double r17473 = r17466 + r17472;
        double r17474 = 771.3234287776531;
        double r17475 = 3.0;
        double r17476 = r17425 + r17475;
        double r17477 = r17476 - r17426;
        double r17478 = r17474 / r17477;
        double r17479 = -1259.1392167224028;
        double r17480 = r17425 - r17412;
        double r17481 = r17445 - r17480;
        double r17482 = r17479 / r17481;
        double r17483 = r17478 + r17482;
        double r17484 = r17473 + r17483;
        double r17485 = r17455 + r17484;
        double r17486 = r17438 * r17485;
        return r17486;
}

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 r17487, r17488, r17489, r17490, r17491, r17492, r17493, r17494, r17495, r17496, r17497, r17498, r17499, r17500, r17501, r17502, r17503, r17504, r17505, r17506, r17507, r17508, r17509, r17510, r17511, r17512, r17513, r17514, r17515, r17516, r17517, r17518, r17519, r17520, r17521, r17522, r17523, r17524, r17525, r17526, r17527, r17528, r17529, r17530, r17531, r17532, r17533, r17534, r17535, r17536, r17537, r17538, r17539, r17540, r17541, r17542, r17543, r17544, r17545, r17546;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r17487);
        mpfr_init(r17488);
        mpfr_init(r17489);
        mpfr_init(r17490);
        mpfr_init(r17491);
        mpfr_init_set_str(r17492, "2", 10, MPFR_RNDN);
        mpfr_init(r17493);
        mpfr_init(r17494);
        mpfr_init_set_str(r17495, "1", 10, MPFR_RNDN);
        mpfr_init(r17496);
        mpfr_init(r17497);
        mpfr_init_set_str(r17498, "7", 10, MPFR_RNDN);
        mpfr_init(r17499);
        mpfr_init_set_str(r17500, "0.5", 10, MPFR_RNDN);
        mpfr_init(r17501);
        mpfr_init(r17502);
        mpfr_init(r17503);
        mpfr_init(r17504);
        mpfr_init(r17505);
        mpfr_init(r17506);
        mpfr_init(r17507);
        mpfr_init_set_str(r17508, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r17509, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r17510);
        mpfr_init(r17511);
        mpfr_init(r17512);
        mpfr_init_set_str(r17513, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r17514);
        mpfr_init(r17515);
        mpfr_init(r17516);
        mpfr_init_set_str(r17517, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r17518, "3", 10, MPFR_RNDN);
        mpfr_init(r17519);
        mpfr_init(r17520);
        mpfr_init(r17521);
        mpfr_init_set_str(r17522, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r17523, "4", 10, MPFR_RNDN);
        mpfr_init(r17524);
        mpfr_init(r17525);
        mpfr_init(r17526);
        mpfr_init_set_str(r17527, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r17528, "5", 10, MPFR_RNDN);
        mpfr_init(r17529);
        mpfr_init(r17530);
        mpfr_init(r17531);
        mpfr_init_set_str(r17532, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r17533, "6", 10, MPFR_RNDN);
        mpfr_init(r17534);
        mpfr_init(r17535);
        mpfr_init(r17536);
        mpfr_init_set_str(r17537, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r17538);
        mpfr_init(r17539);
        mpfr_init_set_str(r17540, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r17541, "8", 10, MPFR_RNDN);
        mpfr_init(r17542);
        mpfr_init(r17543);
        mpfr_init(r17544);
        mpfr_init(r17545);
        mpfr_init(r17546);
}

double f_im(double z) {
        mpfr_const_pi(r17487, MPFR_RNDN);
        mpfr_set_d(r17488, z, MPFR_RNDN);
        mpfr_mul(r17489, r17487, r17488, MPFR_RNDN);
        mpfr_sin(r17490, r17489, MPFR_RNDN);
        mpfr_div(r17491, r17487, r17490, MPFR_RNDN);
        ;
        mpfr_mul(r17493, r17487, r17492, MPFR_RNDN);
        mpfr_sqrt(r17494, r17493, MPFR_RNDN);
        ;
        mpfr_sub(r17496, r17495, r17488, MPFR_RNDN);
        mpfr_sub(r17497, r17496, r17495, MPFR_RNDN);
        ;
        mpfr_add(r17499, r17497, r17498, MPFR_RNDN);
        ;
        mpfr_add(r17501, r17499, r17500, MPFR_RNDN);
        mpfr_add(r17502, r17497, r17500, MPFR_RNDN);
        mpfr_pow(r17503, r17501, r17502, MPFR_RNDN);
        mpfr_mul(r17504, r17494, r17503, MPFR_RNDN);
        mpfr_neg(r17505, r17501, MPFR_RNDN);
        mpfr_exp(r17506, r17505, MPFR_RNDN);
        mpfr_mul(r17507, r17504, r17506, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17510, r17497, r17495, MPFR_RNDN);
        mpfr_div(r17511, r17509, r17510, MPFR_RNDN);
        mpfr_add(r17512, r17508, r17511, MPFR_RNDN);
        ;
        mpfr_add(r17514, r17497, r17492, MPFR_RNDN);
        mpfr_div(r17515, r17513, r17514, MPFR_RNDN);
        mpfr_add(r17516, r17512, r17515, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17519, r17497, r17518, MPFR_RNDN);
        mpfr_div(r17520, r17517, r17519, MPFR_RNDN);
        mpfr_add(r17521, r17516, r17520, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17524, r17497, r17523, MPFR_RNDN);
        mpfr_div(r17525, r17522, r17524, MPFR_RNDN);
        mpfr_add(r17526, r17521, r17525, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17529, r17497, r17528, MPFR_RNDN);
        mpfr_div(r17530, r17527, r17529, MPFR_RNDN);
        mpfr_add(r17531, r17526, r17530, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17534, r17497, r17533, MPFR_RNDN);
        mpfr_div(r17535, r17532, r17534, MPFR_RNDN);
        mpfr_add(r17536, r17531, r17535, MPFR_RNDN);
        ;
        mpfr_div(r17538, r17537, r17499, MPFR_RNDN);
        mpfr_add(r17539, r17536, r17538, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17542, r17497, r17541, MPFR_RNDN);
        mpfr_div(r17543, r17540, r17542, MPFR_RNDN);
        mpfr_add(r17544, r17539, r17543, MPFR_RNDN);
        mpfr_mul(r17545, r17507, r17544, MPFR_RNDN);
        mpfr_mul(r17546, r17491, r17545, MPFR_RNDN);
        return mpfr_get_d(r17546, MPFR_RNDN);
}

static mpfr_t r17547, r17548, r17549, r17550, r17551, r17552, r17553, r17554, r17555, r17556, r17557, r17558, r17559, r17560, r17561, r17562, r17563, r17564, r17565, r17566, r17567, r17568, r17569, r17570, r17571, r17572, r17573, r17574, r17575, r17576, r17577, r17578, r17579, r17580, r17581, r17582, r17583, r17584, r17585, r17586, r17587, r17588, r17589, r17590, r17591, r17592, r17593, r17594, r17595, r17596, r17597, r17598, r17599, r17600, r17601, r17602, r17603, r17604, r17605, r17606, r17607, r17608, r17609, r17610, r17611, r17612, r17613, r17614, r17615, r17616, r17617, r17618, r17619, r17620, r17621, r17622;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17547);
        mpfr_init_set_str(r17548, "2", 10, MPFR_RNDN);
        mpfr_init(r17549);
        mpfr_init(r17550);
        mpfr_init(r17551);
        mpfr_init(r17552);
        mpfr_init(r17553);
        mpfr_init(r17554);
        mpfr_init(r17555);
        mpfr_init(r17556);
        mpfr_init(r17557);
        mpfr_init_set_str(r17558, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r17559, "7", 10, MPFR_RNDN);
        mpfr_init(r17560);
        mpfr_init_set_str(r17561, "1", 10, MPFR_RNDN);
        mpfr_init(r17562);
        mpfr_init(r17563);
        mpfr_init(r17564);
        mpfr_init(r17565);
        mpfr_init(r17566);
        mpfr_init(r17567);
        mpfr_init(r17568);
        mpfr_init(r17569);
        mpfr_init(r17570);
        mpfr_init(r17571);
        mpfr_init(r17572);
        mpfr_init(r17573);
        mpfr_init(r17574);
        mpfr_init_set_str(r17575, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r17576, "8", 10, MPFR_RNDN);
        mpfr_init(r17577);
        mpfr_init(r17578);
        mpfr_init(r17579);
        mpfr_init_set_str(r17580, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init(r17581);
        mpfr_init_set_str(r17582, "6", 10, MPFR_RNDN);
        mpfr_init(r17583);
        mpfr_init(r17584);
        mpfr_init(r17585);
        mpfr_init_set_str(r17586, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init_set_str(r17587, "-1", 10, MPFR_RNDN);
        mpfr_init(r17588);
        mpfr_init(r17589);
        mpfr_init(r17590);
        mpfr_init(r17591);
        mpfr_init_set_str(r17592, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r17593, "4", 10, MPFR_RNDN);
        mpfr_init(r17594);
        mpfr_init(r17595);
        mpfr_init(r17596);
        mpfr_init_set_str(r17597, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r17598, "5", 10, MPFR_RNDN);
        mpfr_init(r17599);
        mpfr_init(r17600);
        mpfr_init(r17601);
        mpfr_init(r17602);
        mpfr_init_set_str(r17603, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r17604, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init_set_str(r17605, "0", 10, MPFR_RNDN);
        mpfr_init(r17606);
        mpfr_init(r17607);
        mpfr_init(r17608);
        mpfr_init(r17609);
        mpfr_init_set_str(r17610, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r17611, "3", 10, MPFR_RNDN);
        mpfr_init(r17612);
        mpfr_init(r17613);
        mpfr_init(r17614);
        mpfr_init_set_str(r17615, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r17616);
        mpfr_init(r17617);
        mpfr_init(r17618);
        mpfr_init(r17619);
        mpfr_init(r17620);
        mpfr_init(r17621);
        mpfr_init(r17622);
}

double f_fm(double z) {
        mpfr_const_pi(r17547, MPFR_RNDN);
        ;
        mpfr_mul(r17549, r17547, r17548, MPFR_RNDN);
        mpfr_sqrt(r17550, r17549, MPFR_RNDN);
        mpfr_mul(r17551, r17547, r17550, MPFR_RNDN);
        mpfr_log1p(r17552, r17551, MPFR_RNDN);
        mpfr_expm1(r17553, r17552, MPFR_RNDN);
        mpfr_set_d(r17554, z, MPFR_RNDN);
        mpfr_mul(r17555, r17554, r17547, MPFR_RNDN);
        mpfr_sin(r17556, r17555, MPFR_RNDN);
        mpfr_div(r17557, r17553, r17556, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17560, r17558, r17559, MPFR_RNDN);
        ;
        mpfr_add(r17562, r17561, r17554, MPFR_RNDN);
        mpfr_sub(r17563, r17561, r17562, MPFR_RNDN);
        mpfr_add(r17564, r17560, r17563, MPFR_RNDN);
        mpfr_add(r17565, r17561, r17558, MPFR_RNDN);
        mpfr_sub(r17566, r17565, r17562, MPFR_RNDN);
        mpfr_pow(r17567, r17564, r17566, MPFR_RNDN);
        mpfr_neg(r17568, r17554, MPFR_RNDN);
        mpfr_exp(r17569, r17568, MPFR_RNDN);
        mpfr_log(r17570, r17569, MPFR_RNDN);
        mpfr_add(r17571, r17560, r17570, MPFR_RNDN);
        mpfr_exp(r17572, r17571, MPFR_RNDN);
        mpfr_div(r17573, r17567, r17572, MPFR_RNDN);
        mpfr_mul(r17574, r17557, r17573, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17577, r17561, r17576, MPFR_RNDN);
        mpfr_sub(r17578, r17577, r17562, MPFR_RNDN);
        mpfr_div(r17579, r17575, r17578, MPFR_RNDN);
        ;
        mpfr_sub(r17581, r17561, r17554, MPFR_RNDN);
        ;
        mpfr_sub(r17583, r17561, r17582, MPFR_RNDN);
        mpfr_sub(r17584, r17581, r17583, MPFR_RNDN);
        mpfr_div(r17585, r17580, r17584, MPFR_RNDN);
        ;
        ;
        mpfr_fma(r17588, r17554, r17587, r17559, MPFR_RNDN);
        mpfr_div(r17589, r17586, r17588, MPFR_RNDN);
        mpfr_add(r17590, r17585, r17589, MPFR_RNDN);
        mpfr_add(r17591, r17579, r17590, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r17594, r17561, r17593, MPFR_RNDN);
        mpfr_sub(r17595, r17581, r17594, MPFR_RNDN);
        mpfr_div(r17596, r17592, r17595, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17599, r17561, r17598, MPFR_RNDN);
        mpfr_sub(r17600, r17599, r17562, MPFR_RNDN);
        mpfr_div(r17601, r17597, r17600, MPFR_RNDN);
        mpfr_add(r17602, r17596, r17601, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_sub(r17606, r17581, r17605, MPFR_RNDN);
        mpfr_div(r17607, r17604, r17606, MPFR_RNDN);
        mpfr_add(r17608, r17603, r17607, MPFR_RNDN);
        mpfr_add(r17609, r17602, r17608, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17612, r17561, r17611, MPFR_RNDN);
        mpfr_sub(r17613, r17612, r17562, MPFR_RNDN);
        mpfr_div(r17614, r17610, r17613, MPFR_RNDN);
        ;
        mpfr_sub(r17616, r17561, r17548, MPFR_RNDN);
        mpfr_sub(r17617, r17581, r17616, MPFR_RNDN);
        mpfr_div(r17618, r17615, r17617, MPFR_RNDN);
        mpfr_add(r17619, r17614, r17618, MPFR_RNDN);
        mpfr_add(r17620, r17609, r17619, MPFR_RNDN);
        mpfr_add(r17621, r17591, r17620, MPFR_RNDN);
        mpfr_mul(r17622, r17574, r17621, MPFR_RNDN);
        return mpfr_get_d(r17622, MPFR_RNDN);
}

static mpfr_t r17623, r17624, r17625, r17626, r17627, r17628, r17629, r17630, r17631, r17632, r17633, r17634, r17635, r17636, r17637, r17638, r17639, r17640, r17641, r17642, r17643, r17644, r17645, r17646, r17647, r17648, r17649, r17650, r17651, r17652, r17653, r17654, r17655, r17656, r17657, r17658, r17659, r17660, r17661, r17662, r17663, r17664, r17665, r17666, r17667, r17668, r17669, r17670, r17671, r17672, r17673, r17674, r17675, r17676, r17677, r17678, r17679, r17680, r17681, r17682, r17683, r17684, r17685, r17686, r17687, r17688, r17689, r17690, r17691, r17692, r17693, r17694, r17695, r17696, r17697, r17698;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17623);
        mpfr_init_set_str(r17624, "2", 10, MPFR_RNDN);
        mpfr_init(r17625);
        mpfr_init(r17626);
        mpfr_init(r17627);
        mpfr_init(r17628);
        mpfr_init(r17629);
        mpfr_init(r17630);
        mpfr_init(r17631);
        mpfr_init(r17632);
        mpfr_init(r17633);
        mpfr_init_set_str(r17634, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r17635, "7", 10, MPFR_RNDN);
        mpfr_init(r17636);
        mpfr_init_set_str(r17637, "1", 10, MPFR_RNDN);
        mpfr_init(r17638);
        mpfr_init(r17639);
        mpfr_init(r17640);
        mpfr_init(r17641);
        mpfr_init(r17642);
        mpfr_init(r17643);
        mpfr_init(r17644);
        mpfr_init(r17645);
        mpfr_init(r17646);
        mpfr_init(r17647);
        mpfr_init(r17648);
        mpfr_init(r17649);
        mpfr_init(r17650);
        mpfr_init_set_str(r17651, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r17652, "8", 10, MPFR_RNDN);
        mpfr_init(r17653);
        mpfr_init(r17654);
        mpfr_init(r17655);
        mpfr_init_set_str(r17656, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init(r17657);
        mpfr_init_set_str(r17658, "6", 10, MPFR_RNDN);
        mpfr_init(r17659);
        mpfr_init(r17660);
        mpfr_init(r17661);
        mpfr_init_set_str(r17662, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init_set_str(r17663, "-1", 10, MPFR_RNDN);
        mpfr_init(r17664);
        mpfr_init(r17665);
        mpfr_init(r17666);
        mpfr_init(r17667);
        mpfr_init_set_str(r17668, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r17669, "4", 10, MPFR_RNDN);
        mpfr_init(r17670);
        mpfr_init(r17671);
        mpfr_init(r17672);
        mpfr_init_set_str(r17673, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r17674, "5", 10, MPFR_RNDN);
        mpfr_init(r17675);
        mpfr_init(r17676);
        mpfr_init(r17677);
        mpfr_init(r17678);
        mpfr_init_set_str(r17679, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r17680, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init_set_str(r17681, "0", 10, MPFR_RNDN);
        mpfr_init(r17682);
        mpfr_init(r17683);
        mpfr_init(r17684);
        mpfr_init(r17685);
        mpfr_init_set_str(r17686, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r17687, "3", 10, MPFR_RNDN);
        mpfr_init(r17688);
        mpfr_init(r17689);
        mpfr_init(r17690);
        mpfr_init_set_str(r17691, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r17692);
        mpfr_init(r17693);
        mpfr_init(r17694);
        mpfr_init(r17695);
        mpfr_init(r17696);
        mpfr_init(r17697);
        mpfr_init(r17698);
}

double f_dm(double z) {
        mpfr_const_pi(r17623, MPFR_RNDN);
        ;
        mpfr_mul(r17625, r17623, r17624, MPFR_RNDN);
        mpfr_sqrt(r17626, r17625, MPFR_RNDN);
        mpfr_mul(r17627, r17623, r17626, MPFR_RNDN);
        mpfr_log1p(r17628, r17627, MPFR_RNDN);
        mpfr_expm1(r17629, r17628, MPFR_RNDN);
        mpfr_set_d(r17630, z, MPFR_RNDN);
        mpfr_mul(r17631, r17630, r17623, MPFR_RNDN);
        mpfr_sin(r17632, r17631, MPFR_RNDN);
        mpfr_div(r17633, r17629, r17632, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17636, r17634, r17635, MPFR_RNDN);
        ;
        mpfr_add(r17638, r17637, r17630, MPFR_RNDN);
        mpfr_sub(r17639, r17637, r17638, MPFR_RNDN);
        mpfr_add(r17640, r17636, r17639, MPFR_RNDN);
        mpfr_add(r17641, r17637, r17634, MPFR_RNDN);
        mpfr_sub(r17642, r17641, r17638, MPFR_RNDN);
        mpfr_pow(r17643, r17640, r17642, MPFR_RNDN);
        mpfr_neg(r17644, r17630, MPFR_RNDN);
        mpfr_exp(r17645, r17644, MPFR_RNDN);
        mpfr_log(r17646, r17645, MPFR_RNDN);
        mpfr_add(r17647, r17636, r17646, MPFR_RNDN);
        mpfr_exp(r17648, r17647, MPFR_RNDN);
        mpfr_div(r17649, r17643, r17648, MPFR_RNDN);
        mpfr_mul(r17650, r17633, r17649, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17653, r17637, r17652, MPFR_RNDN);
        mpfr_sub(r17654, r17653, r17638, MPFR_RNDN);
        mpfr_div(r17655, r17651, r17654, MPFR_RNDN);
        ;
        mpfr_sub(r17657, r17637, r17630, MPFR_RNDN);
        ;
        mpfr_sub(r17659, r17637, r17658, MPFR_RNDN);
        mpfr_sub(r17660, r17657, r17659, MPFR_RNDN);
        mpfr_div(r17661, r17656, r17660, MPFR_RNDN);
        ;
        ;
        mpfr_fma(r17664, r17630, r17663, r17635, MPFR_RNDN);
        mpfr_div(r17665, r17662, r17664, MPFR_RNDN);
        mpfr_add(r17666, r17661, r17665, MPFR_RNDN);
        mpfr_add(r17667, r17655, r17666, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r17670, r17637, r17669, MPFR_RNDN);
        mpfr_sub(r17671, r17657, r17670, MPFR_RNDN);
        mpfr_div(r17672, r17668, r17671, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17675, r17637, r17674, MPFR_RNDN);
        mpfr_sub(r17676, r17675, r17638, MPFR_RNDN);
        mpfr_div(r17677, r17673, r17676, MPFR_RNDN);
        mpfr_add(r17678, r17672, r17677, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_sub(r17682, r17657, r17681, MPFR_RNDN);
        mpfr_div(r17683, r17680, r17682, MPFR_RNDN);
        mpfr_add(r17684, r17679, r17683, MPFR_RNDN);
        mpfr_add(r17685, r17678, r17684, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17688, r17637, r17687, MPFR_RNDN);
        mpfr_sub(r17689, r17688, r17638, MPFR_RNDN);
        mpfr_div(r17690, r17686, r17689, MPFR_RNDN);
        ;
        mpfr_sub(r17692, r17637, r17624, MPFR_RNDN);
        mpfr_sub(r17693, r17657, r17692, MPFR_RNDN);
        mpfr_div(r17694, r17691, r17693, MPFR_RNDN);
        mpfr_add(r17695, r17690, r17694, MPFR_RNDN);
        mpfr_add(r17696, r17685, r17695, MPFR_RNDN);
        mpfr_add(r17697, r17667, r17696, MPFR_RNDN);
        mpfr_mul(r17698, r17650, r17697, MPFR_RNDN);
        return mpfr_get_d(r17698, MPFR_RNDN);
}

