#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 r17195 = atan2(1.0, 0.0);
        float r17196 = z;
        float r17197 = r17195 * r17196;
        float r17198 = sin(r17197);
        float r17199 = r17195 / r17198;
        float r17200 = 2.0f;
        float r17201 = r17195 * r17200;
        float r17202 = sqrt(r17201);
        float r17203 = 1.0f;
        float r17204 = r17203 - r17196;
        float r17205 = r17204 - r17203;
        float r17206 = 7.0f;
        float r17207 = r17205 + r17206;
        float r17208 = 0.5f;
        float r17209 = r17207 + r17208;
        float r17210 = r17205 + r17208;
        float r17211 = pow(r17209, r17210);
        float r17212 = r17202 * r17211;
        float r17213 = -r17209;
        float r17214 = exp(r17213);
        float r17215 = r17212 * r17214;
        float r17216 = 0.9999999999998099f;
        float r17217 = 676.5203681218851f;
        float r17218 = r17205 + r17203;
        float r17219 = r17217 / r17218;
        float r17220 = r17216 + r17219;
        float r17221 = -1259.1392167224028f;
        float r17222 = r17205 + r17200;
        float r17223 = r17221 / r17222;
        float r17224 = r17220 + r17223;
        float r17225 = 771.3234287776531f;
        float r17226 = 3.0f;
        float r17227 = r17205 + r17226;
        float r17228 = r17225 / r17227;
        float r17229 = r17224 + r17228;
        float r17230 = -176.6150291621406f;
        float r17231 = 4.0f;
        float r17232 = r17205 + r17231;
        float r17233 = r17230 / r17232;
        float r17234 = r17229 + r17233;
        float r17235 = 12.507343278686905f;
        float r17236 = 5.0f;
        float r17237 = r17205 + r17236;
        float r17238 = r17235 / r17237;
        float r17239 = r17234 + r17238;
        float r17240 = -0.13857109526572012f;
        float r17241 = 6.0f;
        float r17242 = r17205 + r17241;
        float r17243 = r17240 / r17242;
        float r17244 = r17239 + r17243;
        float r17245 = 9.984369578019572e-06f;
        float r17246 = r17245 / r17207;
        float r17247 = r17244 + r17246;
        float r17248 = 1.5056327351493116e-07f;
        float r17249 = 8.0f;
        float r17250 = r17205 + r17249;
        float r17251 = r17248 / r17250;
        float r17252 = r17247 + r17251;
        float r17253 = r17215 * r17252;
        float r17254 = r17199 * r17253;
        return r17254;
}

double f_id(double z) {
        double r17255 = atan2(1.0, 0.0);
        double r17256 = z;
        double r17257 = r17255 * r17256;
        double r17258 = sin(r17257);
        double r17259 = r17255 / r17258;
        double r17260 = 2.0;
        double r17261 = r17255 * r17260;
        double r17262 = sqrt(r17261);
        double r17263 = 1.0;
        double r17264 = r17263 - r17256;
        double r17265 = r17264 - r17263;
        double r17266 = 7.0;
        double r17267 = r17265 + r17266;
        double r17268 = 0.5;
        double r17269 = r17267 + r17268;
        double r17270 = r17265 + r17268;
        double r17271 = pow(r17269, r17270);
        double r17272 = r17262 * r17271;
        double r17273 = -r17269;
        double r17274 = exp(r17273);
        double r17275 = r17272 * r17274;
        double r17276 = 0.9999999999998099;
        double r17277 = 676.5203681218851;
        double r17278 = r17265 + r17263;
        double r17279 = r17277 / r17278;
        double r17280 = r17276 + r17279;
        double r17281 = -1259.1392167224028;
        double r17282 = r17265 + r17260;
        double r17283 = r17281 / r17282;
        double r17284 = r17280 + r17283;
        double r17285 = 771.3234287776531;
        double r17286 = 3.0;
        double r17287 = r17265 + r17286;
        double r17288 = r17285 / r17287;
        double r17289 = r17284 + r17288;
        double r17290 = -176.6150291621406;
        double r17291 = 4.0;
        double r17292 = r17265 + r17291;
        double r17293 = r17290 / r17292;
        double r17294 = r17289 + r17293;
        double r17295 = 12.507343278686905;
        double r17296 = 5.0;
        double r17297 = r17265 + r17296;
        double r17298 = r17295 / r17297;
        double r17299 = r17294 + r17298;
        double r17300 = -0.13857109526572012;
        double r17301 = 6.0;
        double r17302 = r17265 + r17301;
        double r17303 = r17300 / r17302;
        double r17304 = r17299 + r17303;
        double r17305 = 9.984369578019572e-06;
        double r17306 = r17305 / r17267;
        double r17307 = r17304 + r17306;
        double r17308 = 1.5056327351493116e-07;
        double r17309 = 8.0;
        double r17310 = r17265 + r17309;
        double r17311 = r17308 / r17310;
        double r17312 = r17307 + r17311;
        double r17313 = r17275 * r17312;
        double r17314 = r17259 * r17313;
        return r17314;
}


double f_of(float z) {
        float r17315 = atan2(1.0, 0.0);
        float r17316 = 2.0f;
        float r17317 = r17315 * r17316;
        float r17318 = sqrt(r17317);
        float r17319 = r17315 * r17318;
        float r17320 = log1p(r17319);
        float r17321 = expm1(r17320);
        float r17322 = z;
        float r17323 = r17322 * r17315;
        float r17324 = sin(r17323);
        float r17325 = r17321 / r17324;
        float r17326 = 0.5f;
        float r17327 = 7.0f;
        float r17328 = r17326 + r17327;
        float r17329 = 1.0f;
        float r17330 = r17329 + r17322;
        float r17331 = r17329 - r17330;
        float r17332 = r17328 + r17331;
        float r17333 = r17329 + r17326;
        float r17334 = r17333 - r17330;
        float r17335 = pow(r17332, r17334);
        float r17336 = exp(r17332);
        float r17337 = r17335 / r17336;
        float r17338 = r17325 * r17337;
        float r17339 = 1.5056327351493116e-07f;
        float r17340 = 8.0f;
        float r17341 = r17329 + r17340;
        float r17342 = r17341 - r17330;
        float r17343 = r17339 / r17342;
        float r17344 = -0.13857109526572012f;
        float r17345 = r17329 - r17322;
        float r17346 = 6.0f;
        float r17347 = r17329 - r17346;
        float r17348 = r17345 - r17347;
        float r17349 = r17344 / r17348;
        float r17350 = 9.984369578019572e-06f;
        float r17351 = -1.0f;
        float r17352 = fma(r17322, r17351, r17327);
        float r17353 = r17350 / r17352;
        float r17354 = r17349 + r17353;
        float r17355 = r17343 + r17354;
        float r17356 = -176.6150291621406f;
        float r17357 = 4.0f;
        float r17358 = r17329 - r17357;
        float r17359 = r17345 - r17358;
        float r17360 = r17356 / r17359;
        float r17361 = 12.507343278686905f;
        float r17362 = 5.0f;
        float r17363 = r17329 + r17362;
        float r17364 = r17363 - r17330;
        float r17365 = r17361 / r17364;
        float r17366 = r17360 + r17365;
        float r17367 = 0.9999999999998099f;
        float r17368 = 676.5203681218851f;
        float r17369 = 0.0f;
        float r17370 = r17345 - r17369;
        float r17371 = r17368 / r17370;
        float r17372 = r17367 + r17371;
        float r17373 = r17366 + r17372;
        float r17374 = 771.3234287776531f;
        float r17375 = 3.0f;
        float r17376 = r17329 + r17375;
        float r17377 = r17376 - r17330;
        float r17378 = r17374 / r17377;
        float r17379 = -1259.1392167224028f;
        float r17380 = r17329 - r17316;
        float r17381 = r17345 - r17380;
        float r17382 = r17379 / r17381;
        float r17383 = r17378 + r17382;
        float r17384 = r17373 + r17383;
        float r17385 = r17355 + r17384;
        float r17386 = r17338 * r17385;
        return r17386;
}

double f_od(double z) {
        double r17387 = atan2(1.0, 0.0);
        double r17388 = 2.0;
        double r17389 = r17387 * r17388;
        double r17390 = sqrt(r17389);
        double r17391 = r17387 * r17390;
        double r17392 = log1p(r17391);
        double r17393 = expm1(r17392);
        double r17394 = z;
        double r17395 = r17394 * r17387;
        double r17396 = sin(r17395);
        double r17397 = r17393 / r17396;
        double r17398 = 0.5;
        double r17399 = 7.0;
        double r17400 = r17398 + r17399;
        double r17401 = 1.0;
        double r17402 = r17401 + r17394;
        double r17403 = r17401 - r17402;
        double r17404 = r17400 + r17403;
        double r17405 = r17401 + r17398;
        double r17406 = r17405 - r17402;
        double r17407 = pow(r17404, r17406);
        double r17408 = exp(r17404);
        double r17409 = r17407 / r17408;
        double r17410 = r17397 * r17409;
        double r17411 = 1.5056327351493116e-07;
        double r17412 = 8.0;
        double r17413 = r17401 + r17412;
        double r17414 = r17413 - r17402;
        double r17415 = r17411 / r17414;
        double r17416 = -0.13857109526572012;
        double r17417 = r17401 - r17394;
        double r17418 = 6.0;
        double r17419 = r17401 - r17418;
        double r17420 = r17417 - r17419;
        double r17421 = r17416 / r17420;
        double r17422 = 9.984369578019572e-06;
        double r17423 = -1.0;
        double r17424 = fma(r17394, r17423, r17399);
        double r17425 = r17422 / r17424;
        double r17426 = r17421 + r17425;
        double r17427 = r17415 + r17426;
        double r17428 = -176.6150291621406;
        double r17429 = 4.0;
        double r17430 = r17401 - r17429;
        double r17431 = r17417 - r17430;
        double r17432 = r17428 / r17431;
        double r17433 = 12.507343278686905;
        double r17434 = 5.0;
        double r17435 = r17401 + r17434;
        double r17436 = r17435 - r17402;
        double r17437 = r17433 / r17436;
        double r17438 = r17432 + r17437;
        double r17439 = 0.9999999999998099;
        double r17440 = 676.5203681218851;
        double r17441 = 0.0;
        double r17442 = r17417 - r17441;
        double r17443 = r17440 / r17442;
        double r17444 = r17439 + r17443;
        double r17445 = r17438 + r17444;
        double r17446 = 771.3234287776531;
        double r17447 = 3.0;
        double r17448 = r17401 + r17447;
        double r17449 = r17448 - r17402;
        double r17450 = r17446 / r17449;
        double r17451 = -1259.1392167224028;
        double r17452 = r17401 - r17388;
        double r17453 = r17417 - r17452;
        double r17454 = r17451 / r17453;
        double r17455 = r17450 + r17454;
        double r17456 = r17445 + r17455;
        double r17457 = r17427 + r17456;
        double r17458 = r17410 * r17457;
        return r17458;
}

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 r17459, r17460, r17461, r17462, r17463, r17464, r17465, r17466, r17467, r17468, r17469, r17470, r17471, r17472, r17473, r17474, r17475, r17476, r17477, r17478, r17479, r17480, r17481, r17482, r17483, r17484, r17485, r17486, 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;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r17459);
        mpfr_init(r17460);
        mpfr_init(r17461);
        mpfr_init(r17462);
        mpfr_init(r17463);
        mpfr_init_set_str(r17464, "2", 10, MPFR_RNDN);
        mpfr_init(r17465);
        mpfr_init(r17466);
        mpfr_init_set_str(r17467, "1", 10, MPFR_RNDN);
        mpfr_init(r17468);
        mpfr_init(r17469);
        mpfr_init_set_str(r17470, "7", 10, MPFR_RNDN);
        mpfr_init(r17471);
        mpfr_init_set_str(r17472, "0.5", 10, MPFR_RNDN);
        mpfr_init(r17473);
        mpfr_init(r17474);
        mpfr_init(r17475);
        mpfr_init(r17476);
        mpfr_init(r17477);
        mpfr_init(r17478);
        mpfr_init(r17479);
        mpfr_init_set_str(r17480, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r17481, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r17482);
        mpfr_init(r17483);
        mpfr_init(r17484);
        mpfr_init_set_str(r17485, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r17486);
        mpfr_init(r17487);
        mpfr_init(r17488);
        mpfr_init_set_str(r17489, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r17490, "3", 10, MPFR_RNDN);
        mpfr_init(r17491);
        mpfr_init(r17492);
        mpfr_init(r17493);
        mpfr_init_set_str(r17494, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r17495, "4", 10, MPFR_RNDN);
        mpfr_init(r17496);
        mpfr_init(r17497);
        mpfr_init(r17498);
        mpfr_init_set_str(r17499, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r17500, "5", 10, MPFR_RNDN);
        mpfr_init(r17501);
        mpfr_init(r17502);
        mpfr_init(r17503);
        mpfr_init_set_str(r17504, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r17505, "6", 10, MPFR_RNDN);
        mpfr_init(r17506);
        mpfr_init(r17507);
        mpfr_init(r17508);
        mpfr_init_set_str(r17509, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r17510);
        mpfr_init(r17511);
        mpfr_init_set_str(r17512, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r17513, "8", 10, MPFR_RNDN);
        mpfr_init(r17514);
        mpfr_init(r17515);
        mpfr_init(r17516);
        mpfr_init(r17517);
        mpfr_init(r17518);
}

double f_im(double z) {
        mpfr_const_pi(r17459, MPFR_RNDN);
        mpfr_set_d(r17460, z, MPFR_RNDN);
        mpfr_mul(r17461, r17459, r17460, MPFR_RNDN);
        mpfr_sin(r17462, r17461, MPFR_RNDN);
        mpfr_div(r17463, r17459, r17462, MPFR_RNDN);
        ;
        mpfr_mul(r17465, r17459, r17464, MPFR_RNDN);
        mpfr_sqrt(r17466, r17465, MPFR_RNDN);
        ;
        mpfr_sub(r17468, r17467, r17460, MPFR_RNDN);
        mpfr_sub(r17469, r17468, r17467, MPFR_RNDN);
        ;
        mpfr_add(r17471, r17469, r17470, MPFR_RNDN);
        ;
        mpfr_add(r17473, r17471, r17472, MPFR_RNDN);
        mpfr_add(r17474, r17469, r17472, MPFR_RNDN);
        mpfr_pow(r17475, r17473, r17474, MPFR_RNDN);
        mpfr_mul(r17476, r17466, r17475, MPFR_RNDN);
        mpfr_neg(r17477, r17473, MPFR_RNDN);
        mpfr_exp(r17478, r17477, MPFR_RNDN);
        mpfr_mul(r17479, r17476, r17478, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17482, r17469, r17467, MPFR_RNDN);
        mpfr_div(r17483, r17481, r17482, MPFR_RNDN);
        mpfr_add(r17484, r17480, r17483, MPFR_RNDN);
        ;
        mpfr_add(r17486, r17469, r17464, MPFR_RNDN);
        mpfr_div(r17487, r17485, r17486, MPFR_RNDN);
        mpfr_add(r17488, r17484, r17487, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17491, r17469, r17490, MPFR_RNDN);
        mpfr_div(r17492, r17489, r17491, MPFR_RNDN);
        mpfr_add(r17493, r17488, r17492, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17496, r17469, r17495, MPFR_RNDN);
        mpfr_div(r17497, r17494, r17496, MPFR_RNDN);
        mpfr_add(r17498, r17493, r17497, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17501, r17469, r17500, MPFR_RNDN);
        mpfr_div(r17502, r17499, r17501, MPFR_RNDN);
        mpfr_add(r17503, r17498, r17502, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17506, r17469, r17505, MPFR_RNDN);
        mpfr_div(r17507, r17504, r17506, MPFR_RNDN);
        mpfr_add(r17508, r17503, r17507, MPFR_RNDN);
        ;
        mpfr_div(r17510, r17509, r17471, MPFR_RNDN);
        mpfr_add(r17511, r17508, r17510, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17514, r17469, r17513, MPFR_RNDN);
        mpfr_div(r17515, r17512, r17514, MPFR_RNDN);
        mpfr_add(r17516, r17511, r17515, MPFR_RNDN);
        mpfr_mul(r17517, r17479, r17516, MPFR_RNDN);
        mpfr_mul(r17518, r17463, r17517, MPFR_RNDN);
        return mpfr_get_d(r17518, MPFR_RNDN);
}

static mpfr_t 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, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17519);
        mpfr_init_set_str(r17520, "2", 10, MPFR_RNDN);
        mpfr_init(r17521);
        mpfr_init(r17522);
        mpfr_init(r17523);
        mpfr_init(r17524);
        mpfr_init(r17525);
        mpfr_init(r17526);
        mpfr_init(r17527);
        mpfr_init(r17528);
        mpfr_init(r17529);
        mpfr_init_set_str(r17530, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r17531, "7", 10, MPFR_RNDN);
        mpfr_init(r17532);
        mpfr_init_set_str(r17533, "1", 10, MPFR_RNDN);
        mpfr_init(r17534);
        mpfr_init(r17535);
        mpfr_init(r17536);
        mpfr_init(r17537);
        mpfr_init(r17538);
        mpfr_init(r17539);
        mpfr_init(r17540);
        mpfr_init(r17541);
        mpfr_init(r17542);
        mpfr_init_set_str(r17543, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r17544, "8", 10, MPFR_RNDN);
        mpfr_init(r17545);
        mpfr_init(r17546);
        mpfr_init(r17547);
        mpfr_init_set_str(r17548, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init(r17549);
        mpfr_init_set_str(r17550, "6", 10, MPFR_RNDN);
        mpfr_init(r17551);
        mpfr_init(r17552);
        mpfr_init(r17553);
        mpfr_init_set_str(r17554, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init_set_str(r17555, "-1", 10, MPFR_RNDN);
        mpfr_init(r17556);
        mpfr_init(r17557);
        mpfr_init(r17558);
        mpfr_init(r17559);
        mpfr_init_set_str(r17560, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r17561, "4", 10, MPFR_RNDN);
        mpfr_init(r17562);
        mpfr_init(r17563);
        mpfr_init(r17564);
        mpfr_init_set_str(r17565, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r17566, "5", 10, MPFR_RNDN);
        mpfr_init(r17567);
        mpfr_init(r17568);
        mpfr_init(r17569);
        mpfr_init(r17570);
        mpfr_init_set_str(r17571, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r17572, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init_set_str(r17573, "0", 10, MPFR_RNDN);
        mpfr_init(r17574);
        mpfr_init(r17575);
        mpfr_init(r17576);
        mpfr_init(r17577);
        mpfr_init_set_str(r17578, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r17579, "3", 10, MPFR_RNDN);
        mpfr_init(r17580);
        mpfr_init(r17581);
        mpfr_init(r17582);
        mpfr_init_set_str(r17583, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r17584);
        mpfr_init(r17585);
        mpfr_init(r17586);
        mpfr_init(r17587);
        mpfr_init(r17588);
        mpfr_init(r17589);
        mpfr_init(r17590);
}

double f_fm(double z) {
        mpfr_const_pi(r17519, MPFR_RNDN);
        ;
        mpfr_mul(r17521, r17519, r17520, MPFR_RNDN);
        mpfr_sqrt(r17522, r17521, MPFR_RNDN);
        mpfr_mul(r17523, r17519, r17522, MPFR_RNDN);
        mpfr_log1p(r17524, r17523, MPFR_RNDN);
        mpfr_expm1(r17525, r17524, MPFR_RNDN);
        mpfr_set_d(r17526, z, MPFR_RNDN);
        mpfr_mul(r17527, r17526, r17519, MPFR_RNDN);
        mpfr_sin(r17528, r17527, MPFR_RNDN);
        mpfr_div(r17529, r17525, r17528, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17532, r17530, r17531, MPFR_RNDN);
        ;
        mpfr_add(r17534, r17533, r17526, MPFR_RNDN);
        mpfr_sub(r17535, r17533, r17534, MPFR_RNDN);
        mpfr_add(r17536, r17532, r17535, MPFR_RNDN);
        mpfr_add(r17537, r17533, r17530, MPFR_RNDN);
        mpfr_sub(r17538, r17537, r17534, MPFR_RNDN);
        mpfr_pow(r17539, r17536, r17538, MPFR_RNDN);
        mpfr_exp(r17540, r17536, MPFR_RNDN);
        mpfr_div(r17541, r17539, r17540, MPFR_RNDN);
        mpfr_mul(r17542, r17529, r17541, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17545, r17533, r17544, MPFR_RNDN);
        mpfr_sub(r17546, r17545, r17534, MPFR_RNDN);
        mpfr_div(r17547, r17543, r17546, MPFR_RNDN);
        ;
        mpfr_sub(r17549, r17533, r17526, MPFR_RNDN);
        ;
        mpfr_sub(r17551, r17533, r17550, MPFR_RNDN);
        mpfr_sub(r17552, r17549, r17551, MPFR_RNDN);
        mpfr_div(r17553, r17548, r17552, MPFR_RNDN);
        ;
        ;
        mpfr_fma(r17556, r17526, r17555, r17531, MPFR_RNDN);
        mpfr_div(r17557, r17554, r17556, MPFR_RNDN);
        mpfr_add(r17558, r17553, r17557, MPFR_RNDN);
        mpfr_add(r17559, r17547, r17558, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r17562, r17533, r17561, MPFR_RNDN);
        mpfr_sub(r17563, r17549, r17562, MPFR_RNDN);
        mpfr_div(r17564, r17560, r17563, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17567, r17533, r17566, MPFR_RNDN);
        mpfr_sub(r17568, r17567, r17534, MPFR_RNDN);
        mpfr_div(r17569, r17565, r17568, MPFR_RNDN);
        mpfr_add(r17570, r17564, r17569, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_sub(r17574, r17549, r17573, MPFR_RNDN);
        mpfr_div(r17575, r17572, r17574, MPFR_RNDN);
        mpfr_add(r17576, r17571, r17575, MPFR_RNDN);
        mpfr_add(r17577, r17570, r17576, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17580, r17533, r17579, MPFR_RNDN);
        mpfr_sub(r17581, r17580, r17534, MPFR_RNDN);
        mpfr_div(r17582, r17578, r17581, MPFR_RNDN);
        ;
        mpfr_sub(r17584, r17533, r17520, MPFR_RNDN);
        mpfr_sub(r17585, r17549, r17584, MPFR_RNDN);
        mpfr_div(r17586, r17583, r17585, MPFR_RNDN);
        mpfr_add(r17587, r17582, r17586, MPFR_RNDN);
        mpfr_add(r17588, r17577, r17587, MPFR_RNDN);
        mpfr_add(r17589, r17559, r17588, MPFR_RNDN);
        mpfr_mul(r17590, r17542, r17589, MPFR_RNDN);
        return mpfr_get_d(r17590, MPFR_RNDN);
}

static mpfr_t 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, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17591);
        mpfr_init_set_str(r17592, "2", 10, MPFR_RNDN);
        mpfr_init(r17593);
        mpfr_init(r17594);
        mpfr_init(r17595);
        mpfr_init(r17596);
        mpfr_init(r17597);
        mpfr_init(r17598);
        mpfr_init(r17599);
        mpfr_init(r17600);
        mpfr_init(r17601);
        mpfr_init_set_str(r17602, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r17603, "7", 10, MPFR_RNDN);
        mpfr_init(r17604);
        mpfr_init_set_str(r17605, "1", 10, MPFR_RNDN);
        mpfr_init(r17606);
        mpfr_init(r17607);
        mpfr_init(r17608);
        mpfr_init(r17609);
        mpfr_init(r17610);
        mpfr_init(r17611);
        mpfr_init(r17612);
        mpfr_init(r17613);
        mpfr_init(r17614);
        mpfr_init_set_str(r17615, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r17616, "8", 10, MPFR_RNDN);
        mpfr_init(r17617);
        mpfr_init(r17618);
        mpfr_init(r17619);
        mpfr_init_set_str(r17620, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init(r17621);
        mpfr_init_set_str(r17622, "6", 10, MPFR_RNDN);
        mpfr_init(r17623);
        mpfr_init(r17624);
        mpfr_init(r17625);
        mpfr_init_set_str(r17626, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init_set_str(r17627, "-1", 10, MPFR_RNDN);
        mpfr_init(r17628);
        mpfr_init(r17629);
        mpfr_init(r17630);
        mpfr_init(r17631);
        mpfr_init_set_str(r17632, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r17633, "4", 10, MPFR_RNDN);
        mpfr_init(r17634);
        mpfr_init(r17635);
        mpfr_init(r17636);
        mpfr_init_set_str(r17637, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r17638, "5", 10, MPFR_RNDN);
        mpfr_init(r17639);
        mpfr_init(r17640);
        mpfr_init(r17641);
        mpfr_init(r17642);
        mpfr_init_set_str(r17643, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r17644, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init_set_str(r17645, "0", 10, MPFR_RNDN);
        mpfr_init(r17646);
        mpfr_init(r17647);
        mpfr_init(r17648);
        mpfr_init(r17649);
        mpfr_init_set_str(r17650, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r17651, "3", 10, MPFR_RNDN);
        mpfr_init(r17652);
        mpfr_init(r17653);
        mpfr_init(r17654);
        mpfr_init_set_str(r17655, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r17656);
        mpfr_init(r17657);
        mpfr_init(r17658);
        mpfr_init(r17659);
        mpfr_init(r17660);
        mpfr_init(r17661);
        mpfr_init(r17662);
}

double f_dm(double z) {
        mpfr_const_pi(r17591, MPFR_RNDN);
        ;
        mpfr_mul(r17593, r17591, r17592, MPFR_RNDN);
        mpfr_sqrt(r17594, r17593, MPFR_RNDN);
        mpfr_mul(r17595, r17591, r17594, MPFR_RNDN);
        mpfr_log1p(r17596, r17595, MPFR_RNDN);
        mpfr_expm1(r17597, r17596, MPFR_RNDN);
        mpfr_set_d(r17598, z, MPFR_RNDN);
        mpfr_mul(r17599, r17598, r17591, MPFR_RNDN);
        mpfr_sin(r17600, r17599, MPFR_RNDN);
        mpfr_div(r17601, r17597, r17600, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17604, r17602, r17603, MPFR_RNDN);
        ;
        mpfr_add(r17606, r17605, r17598, MPFR_RNDN);
        mpfr_sub(r17607, r17605, r17606, MPFR_RNDN);
        mpfr_add(r17608, r17604, r17607, MPFR_RNDN);
        mpfr_add(r17609, r17605, r17602, MPFR_RNDN);
        mpfr_sub(r17610, r17609, r17606, MPFR_RNDN);
        mpfr_pow(r17611, r17608, r17610, MPFR_RNDN);
        mpfr_exp(r17612, r17608, MPFR_RNDN);
        mpfr_div(r17613, r17611, r17612, MPFR_RNDN);
        mpfr_mul(r17614, r17601, r17613, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17617, r17605, r17616, MPFR_RNDN);
        mpfr_sub(r17618, r17617, r17606, MPFR_RNDN);
        mpfr_div(r17619, r17615, r17618, MPFR_RNDN);
        ;
        mpfr_sub(r17621, r17605, r17598, MPFR_RNDN);
        ;
        mpfr_sub(r17623, r17605, r17622, MPFR_RNDN);
        mpfr_sub(r17624, r17621, r17623, MPFR_RNDN);
        mpfr_div(r17625, r17620, r17624, MPFR_RNDN);
        ;
        ;
        mpfr_fma(r17628, r17598, r17627, r17603, MPFR_RNDN);
        mpfr_div(r17629, r17626, r17628, MPFR_RNDN);
        mpfr_add(r17630, r17625, r17629, MPFR_RNDN);
        mpfr_add(r17631, r17619, r17630, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r17634, r17605, r17633, MPFR_RNDN);
        mpfr_sub(r17635, r17621, r17634, MPFR_RNDN);
        mpfr_div(r17636, r17632, r17635, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17639, r17605, r17638, MPFR_RNDN);
        mpfr_sub(r17640, r17639, r17606, MPFR_RNDN);
        mpfr_div(r17641, r17637, r17640, MPFR_RNDN);
        mpfr_add(r17642, r17636, r17641, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_sub(r17646, r17621, r17645, MPFR_RNDN);
        mpfr_div(r17647, r17644, r17646, MPFR_RNDN);
        mpfr_add(r17648, r17643, r17647, MPFR_RNDN);
        mpfr_add(r17649, r17642, r17648, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17652, r17605, r17651, MPFR_RNDN);
        mpfr_sub(r17653, r17652, r17606, MPFR_RNDN);
        mpfr_div(r17654, r17650, r17653, MPFR_RNDN);
        ;
        mpfr_sub(r17656, r17605, r17592, MPFR_RNDN);
        mpfr_sub(r17657, r17621, r17656, MPFR_RNDN);
        mpfr_div(r17658, r17655, r17657, MPFR_RNDN);
        mpfr_add(r17659, r17654, r17658, MPFR_RNDN);
        mpfr_add(r17660, r17649, r17659, MPFR_RNDN);
        mpfr_add(r17661, r17631, r17660, MPFR_RNDN);
        mpfr_mul(r17662, r17614, r17661, MPFR_RNDN);
        return mpfr_get_d(r17662, MPFR_RNDN);
}

