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

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

double f_if(float z) {
        float r17411 = atan2(1.0, 0.0);
        float r17412 = 2.0f;
        float r17413 = r17411 * r17412;
        float r17414 = sqrt(r17413);
        float r17415 = z;
        float r17416 = 1.0f;
        float r17417 = r17415 - r17416;
        float r17418 = 7.0f;
        float r17419 = r17417 + r17418;
        float r17420 = 0.5f;
        float r17421 = r17419 + r17420;
        float r17422 = r17417 + r17420;
        float r17423 = pow(r17421, r17422);
        float r17424 = r17414 * r17423;
        float r17425 = -r17421;
        float r17426 = exp(r17425);
        float r17427 = r17424 * r17426;
        float r17428 = 1.0f;
        float r17429 = 676.5203857421875f;
        float r17430 = r17417 + r17416;
        float r17431 = r17429 / r17430;
        float r17432 = r17428 + r17431;
        float r17433 = -1259.13916015625f;
        float r17434 = r17417 + r17412;
        float r17435 = r17433 / r17434;
        float r17436 = r17432 + r17435;
        float r17437 = 771.3234252929688f;
        float r17438 = 3.0f;
        float r17439 = r17417 + r17438;
        float r17440 = r17437 / r17439;
        float r17441 = r17436 + r17440;
        float r17442 = -176.6150360107422f;
        float r17443 = 4.0f;
        float r17444 = r17417 + r17443;
        float r17445 = r17442 / r17444;
        float r17446 = r17441 + r17445;
        float r17447 = 12.507343292236328f;
        float r17448 = 5.0f;
        float r17449 = r17417 + r17448;
        float r17450 = r17447 / r17449;
        float r17451 = r17446 + r17450;
        float r17452 = -0.138571098446846f;
        float r17453 = 6.0f;
        float r17454 = r17417 + r17453;
        float r17455 = r17452 / r17454;
        float r17456 = r17451 + r17455;
        float r17457 = 9.984369171434082e-06f;
        float r17458 = r17457 / r17419;
        float r17459 = r17456 + r17458;
        float r17460 = 1.5056326674312004e-07f;
        float r17461 = 8.0f;
        float r17462 = r17417 + r17461;
        float r17463 = r17460 / r17462;
        float r17464 = r17459 + r17463;
        float r17465 = r17427 * r17464;
        return r17465;
}

double f_id(double z) {
        double r17466 = atan2(1.0, 0.0);
        double r17467 = 2.0;
        double r17468 = r17466 * r17467;
        double r17469 = sqrt(r17468);
        double r17470 = z;
        double r17471 = 1.0;
        double r17472 = r17470 - r17471;
        double r17473 = 7.0;
        double r17474 = r17472 + r17473;
        double r17475 = 0.5;
        double r17476 = r17474 + r17475;
        double r17477 = r17472 + r17475;
        double r17478 = pow(r17476, r17477);
        double r17479 = r17469 * r17478;
        double r17480 = -r17476;
        double r17481 = exp(r17480);
        double r17482 = r17479 * r17481;
        double r17483 = 1.0;
        double r17484 = 676.5203857421875;
        double r17485 = r17472 + r17471;
        double r17486 = r17484 / r17485;
        double r17487 = r17483 + r17486;
        double r17488 = -1259.13916015625;
        double r17489 = r17472 + r17467;
        double r17490 = r17488 / r17489;
        double r17491 = r17487 + r17490;
        double r17492 = 771.3234252929688;
        double r17493 = 3.0;
        double r17494 = r17472 + r17493;
        double r17495 = r17492 / r17494;
        double r17496 = r17491 + r17495;
        double r17497 = -176.6150360107422;
        double r17498 = 4.0;
        double r17499 = r17472 + r17498;
        double r17500 = r17497 / r17499;
        double r17501 = r17496 + r17500;
        double r17502 = 12.507343292236328;
        double r17503 = 5.0;
        double r17504 = r17472 + r17503;
        double r17505 = r17502 / r17504;
        double r17506 = r17501 + r17505;
        double r17507 = -0.138571098446846;
        double r17508 = 6.0;
        double r17509 = r17472 + r17508;
        double r17510 = r17507 / r17509;
        double r17511 = r17506 + r17510;
        double r17512 = 9.984369171434082e-06;
        double r17513 = r17512 / r17474;
        double r17514 = r17511 + r17513;
        double r17515 = 1.5056326674312004e-07;
        double r17516 = 8.0;
        double r17517 = r17472 + r17516;
        double r17518 = r17515 / r17517;
        double r17519 = r17514 + r17518;
        double r17520 = r17482 * r17519;
        return r17520;
}


double f_of(float z) {
        float r17521 = z;
        float r17522 = 0.019028428941965103f;
        bool r17523 = r17521 <= r17522;
        float r17524 = 2.0f;
        float r17525 = sqrt(r17524);
        float r17526 = -1.0f;
        float r17527 = 7.5f;
        float r17528 = r17526 + r17527;
        float r17529 = exp(r17528);
        float r17530 = r17529 * r17521;
        float r17531 = r17525 / r17530;
        float r17532 = 1.0f;
        float r17533 = 6.5f;
        float r17534 = 1.0f;
        float r17535 = pow(r17533, r17534);
        float r17536 = r17532 / r17535;
        float r17537 = 0.5f;
        float r17538 = pow(r17536, r17537);
        float r17539 = r17531 * r17538;
        float r17540 = atan2(1.0, 0.0);
        float r17541 = sqrt(r17540);
        float r17542 = 676.5203857421875f;
        float r17543 = r17541 * r17542;
        float r17544 = 338.26019287109375f;
        float r17545 = r17544 * r17541;
        float r17546 = r17525 * r17521;
        float r17547 = log(r17533);
        float r17548 = r17547 * r17547;
        float r17549 = r17546 * r17548;
        float r17550 = r17549 * r17538;
        float r17551 = r17550 / r17529;
        float r17552 = 2585.19482421875f;
        float r17553 = r17541 * r17552;
        float r17554 = r17553 * r17546;
        float r17555 = r17554 * r17538;
        float r17556 = r17555 / r17529;
        float r17557 = fma(r17545, r17551, r17556);
        float r17558 = fma(r17539, r17543, r17557);
        float r17559 = 1656.8104248046875f;
        float r17560 = r17541 * r17559;
        float r17561 = r17521 * r17547;
        float r17562 = r17525 * r17561;
        float r17563 = r17562 / r17529;
        float r17564 = r17525 / r17529;
        float r17565 = r17564 * r17538;
        float r17566 = fma(r17538, r17563, r17565);
        float r17567 = r17560 * r17566;
        float r17568 = r17525 * r17547;
        float r17569 = r17568 / r17529;
        float r17570 = r17569 * r17538;
        float r17571 = r17570 * r17543;
        float r17572 = r17567 - r17571;
        float r17573 = r17558 - r17572;
        float r17574 = -176.6150360107422f;
        float r17575 = 4.0f;
        float r17576 = r17521 + r17575;
        float r17577 = r17576 - r17532;
        float r17578 = r17574 / r17577;
        float r17579 = 1.0f;
        float r17580 = 0.0f;
        float r17581 = r17521 - r17580;
        float r17582 = r17542 / r17581;
        float r17583 = r17579 + r17582;
        float r17584 = r17578 + r17583;
        float r17585 = -1259.13916015625f;
        float r17586 = r17521 - r17532;
        float r17587 = r17524 + r17586;
        float r17588 = r17585 / r17587;
        float r17589 = 771.3234252929688f;
        float r17590 = 3.0f;
        float r17591 = r17590 + r17586;
        float r17592 = r17589 / r17591;
        float r17593 = r17588 + r17592;
        float r17594 = r17584 + r17593;
        float r17595 = 12.507343292236328f;
        float r17596 = 5.0f;
        float r17597 = r17521 + r17596;
        float r17598 = r17597 - r17532;
        float r17599 = r17595 / r17598;
        float r17600 = 9.984369171434082e-06f;
        float r17601 = 7.0f;
        float r17602 = r17586 + r17601;
        float r17603 = r17600 / r17602;
        float r17604 = r17599 + r17603;
        float r17605 = 1.5056326674312004e-07f;
        float r17606 = 8.0f;
        float r17607 = r17586 + r17606;
        float r17608 = r17605 / r17607;
        float r17609 = -0.138571098446846f;
        float r17610 = 6.0f;
        float r17611 = r17610 + r17586;
        float r17612 = r17609 / r17611;
        float r17613 = r17608 + r17612;
        float r17614 = r17604 + r17613;
        float r17615 = r17594 + r17614;
        float r17616 = log(r17615);
        float r17617 = r17586 + r17537;
        float r17618 = r17601 + r17521;
        float r17619 = r17532 - r17537;
        float r17620 = r17618 - r17619;
        float r17621 = log(r17620);
        float r17622 = r17540 * r17524;
        float r17623 = sqrt(r17622);
        float r17624 = log(r17623);
        float r17625 = fma(r17617, r17621, r17624);
        float r17626 = r17625 - r17620;
        float r17627 = r17616 + r17626;
        float r17628 = exp(r17627);
        float r17629 = r17523 ? r17573 : r17628;
        return r17629;
}

double f_od(double z) {
        double r17630 = z;
        double r17631 = 0.019028428941965103;
        bool r17632 = r17630 <= r17631;
        double r17633 = 2.0;
        double r17634 = sqrt(r17633);
        double r17635 = -1.0;
        double r17636 = 7.5;
        double r17637 = r17635 + r17636;
        double r17638 = exp(r17637);
        double r17639 = r17638 * r17630;
        double r17640 = r17634 / r17639;
        double r17641 = 1.0;
        double r17642 = 6.5;
        double r17643 = 1.0;
        double r17644 = pow(r17642, r17643);
        double r17645 = r17641 / r17644;
        double r17646 = 0.5;
        double r17647 = pow(r17645, r17646);
        double r17648 = r17640 * r17647;
        double r17649 = atan2(1.0, 0.0);
        double r17650 = sqrt(r17649);
        double r17651 = 676.5203857421875;
        double r17652 = r17650 * r17651;
        double r17653 = 338.26019287109375;
        double r17654 = r17653 * r17650;
        double r17655 = r17634 * r17630;
        double r17656 = log(r17642);
        double r17657 = r17656 * r17656;
        double r17658 = r17655 * r17657;
        double r17659 = r17658 * r17647;
        double r17660 = r17659 / r17638;
        double r17661 = 2585.19482421875;
        double r17662 = r17650 * r17661;
        double r17663 = r17662 * r17655;
        double r17664 = r17663 * r17647;
        double r17665 = r17664 / r17638;
        double r17666 = fma(r17654, r17660, r17665);
        double r17667 = fma(r17648, r17652, r17666);
        double r17668 = 1656.8104248046875;
        double r17669 = r17650 * r17668;
        double r17670 = r17630 * r17656;
        double r17671 = r17634 * r17670;
        double r17672 = r17671 / r17638;
        double r17673 = r17634 / r17638;
        double r17674 = r17673 * r17647;
        double r17675 = fma(r17647, r17672, r17674);
        double r17676 = r17669 * r17675;
        double r17677 = r17634 * r17656;
        double r17678 = r17677 / r17638;
        double r17679 = r17678 * r17647;
        double r17680 = r17679 * r17652;
        double r17681 = r17676 - r17680;
        double r17682 = r17667 - r17681;
        double r17683 = -176.6150360107422;
        double r17684 = 4.0;
        double r17685 = r17630 + r17684;
        double r17686 = r17685 - r17641;
        double r17687 = r17683 / r17686;
        double r17688 = 1.0;
        double r17689 = 0.0;
        double r17690 = r17630 - r17689;
        double r17691 = r17651 / r17690;
        double r17692 = r17688 + r17691;
        double r17693 = r17687 + r17692;
        double r17694 = -1259.13916015625;
        double r17695 = r17630 - r17641;
        double r17696 = r17633 + r17695;
        double r17697 = r17694 / r17696;
        double r17698 = 771.3234252929688;
        double r17699 = 3.0;
        double r17700 = r17699 + r17695;
        double r17701 = r17698 / r17700;
        double r17702 = r17697 + r17701;
        double r17703 = r17693 + r17702;
        double r17704 = 12.507343292236328;
        double r17705 = 5.0;
        double r17706 = r17630 + r17705;
        double r17707 = r17706 - r17641;
        double r17708 = r17704 / r17707;
        double r17709 = 9.984369171434082e-06;
        double r17710 = 7.0;
        double r17711 = r17695 + r17710;
        double r17712 = r17709 / r17711;
        double r17713 = r17708 + r17712;
        double r17714 = 1.5056326674312004e-07;
        double r17715 = 8.0;
        double r17716 = r17695 + r17715;
        double r17717 = r17714 / r17716;
        double r17718 = -0.138571098446846;
        double r17719 = 6.0;
        double r17720 = r17719 + r17695;
        double r17721 = r17718 / r17720;
        double r17722 = r17717 + r17721;
        double r17723 = r17713 + r17722;
        double r17724 = r17703 + r17723;
        double r17725 = log(r17724);
        double r17726 = r17695 + r17646;
        double r17727 = r17710 + r17630;
        double r17728 = r17641 - r17646;
        double r17729 = r17727 - r17728;
        double r17730 = log(r17729);
        double r17731 = r17649 * r17633;
        double r17732 = sqrt(r17731);
        double r17733 = log(r17732);
        double r17734 = fma(r17726, r17730, r17733);
        double r17735 = r17734 - r17729;
        double r17736 = r17725 + r17735;
        double r17737 = exp(r17736);
        double r17738 = r17632 ? r17682 : r17737;
        return r17738;
}

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 r17739, r17740, r17741, r17742, r17743, r17744, r17745, r17746, r17747, r17748, r17749, r17750, r17751, r17752, r17753, r17754, r17755, r17756, r17757, r17758, r17759, r17760, r17761, r17762, r17763, r17764, r17765, r17766, r17767, r17768, r17769, r17770, r17771, r17772, r17773, r17774, r17775, r17776, r17777, r17778, r17779, r17780, r17781, r17782, r17783, r17784, r17785, r17786, r17787, r17788, r17789, r17790, r17791, r17792, r17793;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r17739);
        mpfr_init_set_str(r17740, "2", 10, MPFR_RNDN);
        mpfr_init(r17741);
        mpfr_init(r17742);
        mpfr_init(r17743);
        mpfr_init_set_str(r17744, "1", 10, MPFR_RNDN);
        mpfr_init(r17745);
        mpfr_init_set_str(r17746, "7", 10, MPFR_RNDN);
        mpfr_init(r17747);
        mpfr_init_set_str(r17748, "0.5", 10, MPFR_RNDN);
        mpfr_init(r17749);
        mpfr_init(r17750);
        mpfr_init(r17751);
        mpfr_init(r17752);
        mpfr_init(r17753);
        mpfr_init(r17754);
        mpfr_init(r17755);
        mpfr_init_set_str(r17756, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r17757, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r17758);
        mpfr_init(r17759);
        mpfr_init(r17760);
        mpfr_init_set_str(r17761, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r17762);
        mpfr_init(r17763);
        mpfr_init(r17764);
        mpfr_init_set_str(r17765, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r17766, "3", 10, MPFR_RNDN);
        mpfr_init(r17767);
        mpfr_init(r17768);
        mpfr_init(r17769);
        mpfr_init_set_str(r17770, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r17771, "4", 10, MPFR_RNDN);
        mpfr_init(r17772);
        mpfr_init(r17773);
        mpfr_init(r17774);
        mpfr_init_set_str(r17775, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r17776, "5", 10, MPFR_RNDN);
        mpfr_init(r17777);
        mpfr_init(r17778);
        mpfr_init(r17779);
        mpfr_init_set_str(r17780, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r17781, "6", 10, MPFR_RNDN);
        mpfr_init(r17782);
        mpfr_init(r17783);
        mpfr_init(r17784);
        mpfr_init_set_str(r17785, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r17786);
        mpfr_init(r17787);
        mpfr_init_set_str(r17788, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r17789, "8", 10, MPFR_RNDN);
        mpfr_init(r17790);
        mpfr_init(r17791);
        mpfr_init(r17792);
        mpfr_init(r17793);
}

double f_im(double z) {
        mpfr_const_pi(r17739, MPFR_RNDN);
        ;
        mpfr_mul(r17741, r17739, r17740, MPFR_RNDN);
        mpfr_sqrt(r17742, r17741, MPFR_RNDN);
        mpfr_set_d(r17743, z, MPFR_RNDN);
        ;
        mpfr_sub(r17745, r17743, r17744, MPFR_RNDN);
        ;
        mpfr_add(r17747, r17745, r17746, MPFR_RNDN);
        ;
        mpfr_add(r17749, r17747, r17748, MPFR_RNDN);
        mpfr_add(r17750, r17745, r17748, MPFR_RNDN);
        mpfr_pow(r17751, r17749, r17750, MPFR_RNDN);
        mpfr_mul(r17752, r17742, r17751, MPFR_RNDN);
        mpfr_neg(r17753, r17749, MPFR_RNDN);
        mpfr_exp(r17754, r17753, MPFR_RNDN);
        mpfr_mul(r17755, r17752, r17754, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17758, r17745, r17744, MPFR_RNDN);
        mpfr_div(r17759, r17757, r17758, MPFR_RNDN);
        mpfr_add(r17760, r17756, r17759, MPFR_RNDN);
        ;
        mpfr_add(r17762, r17745, r17740, MPFR_RNDN);
        mpfr_div(r17763, r17761, r17762, MPFR_RNDN);
        mpfr_add(r17764, r17760, r17763, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17767, r17745, r17766, MPFR_RNDN);
        mpfr_div(r17768, r17765, r17767, MPFR_RNDN);
        mpfr_add(r17769, r17764, r17768, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17772, r17745, r17771, MPFR_RNDN);
        mpfr_div(r17773, r17770, r17772, MPFR_RNDN);
        mpfr_add(r17774, r17769, r17773, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17777, r17745, r17776, MPFR_RNDN);
        mpfr_div(r17778, r17775, r17777, MPFR_RNDN);
        mpfr_add(r17779, r17774, r17778, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17782, r17745, r17781, MPFR_RNDN);
        mpfr_div(r17783, r17780, r17782, MPFR_RNDN);
        mpfr_add(r17784, r17779, r17783, MPFR_RNDN);
        ;
        mpfr_div(r17786, r17785, r17747, MPFR_RNDN);
        mpfr_add(r17787, r17784, r17786, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17790, r17745, r17789, MPFR_RNDN);
        mpfr_div(r17791, r17788, r17790, MPFR_RNDN);
        mpfr_add(r17792, r17787, r17791, MPFR_RNDN);
        mpfr_mul(r17793, r17755, r17792, MPFR_RNDN);
        return mpfr_get_d(r17793, MPFR_RNDN);
}

static mpfr_t r17794, r17795, r17796, r17797, r17798, r17799, r17800, r17801, r17802, r17803, r17804, r17805, r17806, r17807, r17808, r17809, r17810, r17811, r17812, r17813, r17814, r17815, r17816, r17817, r17818, r17819, r17820, r17821, r17822, r17823, r17824, r17825, r17826, r17827, r17828, r17829, r17830, r17831, r17832, r17833, r17834, r17835, r17836, r17837, r17838, r17839, r17840, r17841, r17842, r17843, r17844, r17845, r17846, r17847, r17848, r17849, r17850, r17851, r17852, r17853, r17854, r17855, r17856, r17857, r17858, r17859, r17860, r17861, r17862, r17863, r17864, r17865, r17866, r17867, r17868, r17869, r17870, r17871, r17872, r17873, r17874, r17875, r17876, r17877, r17878, r17879, r17880, r17881, r17882, r17883, r17884, r17885, r17886, r17887, r17888, r17889, r17890, r17891, r17892, r17893, r17894, r17895, r17896, r17897, r17898, r17899, r17900, r17901, r17902;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17794);
        mpfr_init_set_str(r17795, "0.019028429f0", 10, MPFR_RNDN);
        mpfr_init(r17796);
        mpfr_init_set_str(r17797, "2", 10, MPFR_RNDN);
        mpfr_init(r17798);
        mpfr_init_set_str(r17799, "-1", 10, MPFR_RNDN);
        mpfr_init_set_str(r17800, "7.5", 10, MPFR_RNDN);
        mpfr_init(r17801);
        mpfr_init(r17802);
        mpfr_init(r17803);
        mpfr_init(r17804);
        mpfr_init_set_str(r17805, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r17806, "6.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r17807, "1.0", 10, MPFR_RNDN);
        mpfr_init(r17808);
        mpfr_init(r17809);
        mpfr_init_set_str(r17810, "0.5", 10, MPFR_RNDN);
        mpfr_init(r17811);
        mpfr_init(r17812);
        mpfr_init(r17813);
        mpfr_init(r17814);
        mpfr_init_set_str(r17815, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r17816);
        mpfr_init_set_str(r17817, "338.26018406094255", 10, MPFR_RNDN);
        mpfr_init(r17818);
        mpfr_init(r17819);
        mpfr_init(r17820);
        mpfr_init(r17821);
        mpfr_init(r17822);
        mpfr_init(r17823);
        mpfr_init(r17824);
        mpfr_init_set_str(r17825, "2585.1948787825354", 10, MPFR_RNDN);
        mpfr_init(r17826);
        mpfr_init(r17827);
        mpfr_init(r17828);
        mpfr_init(r17829);
        mpfr_init(r17830);
        mpfr_init(r17831);
        mpfr_init_set_str(r17832, "1656.8104518737205", 10, MPFR_RNDN);
        mpfr_init(r17833);
        mpfr_init(r17834);
        mpfr_init(r17835);
        mpfr_init(r17836);
        mpfr_init(r17837);
        mpfr_init(r17838);
        mpfr_init(r17839);
        mpfr_init(r17840);
        mpfr_init(r17841);
        mpfr_init(r17842);
        mpfr_init(r17843);
        mpfr_init(r17844);
        mpfr_init(r17845);
        mpfr_init(r17846);
        mpfr_init_set_str(r17847, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r17848, "4", 10, MPFR_RNDN);
        mpfr_init(r17849);
        mpfr_init(r17850);
        mpfr_init(r17851);
        mpfr_init_set_str(r17852, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r17853, "0", 10, MPFR_RNDN);
        mpfr_init(r17854);
        mpfr_init(r17855);
        mpfr_init(r17856);
        mpfr_init(r17857);
        mpfr_init_set_str(r17858, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r17859);
        mpfr_init(r17860);
        mpfr_init(r17861);
        mpfr_init_set_str(r17862, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r17863, "3", 10, MPFR_RNDN);
        mpfr_init(r17864);
        mpfr_init(r17865);
        mpfr_init(r17866);
        mpfr_init(r17867);
        mpfr_init_set_str(r17868, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r17869, "5", 10, MPFR_RNDN);
        mpfr_init(r17870);
        mpfr_init(r17871);
        mpfr_init(r17872);
        mpfr_init_set_str(r17873, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init_set_str(r17874, "7", 10, MPFR_RNDN);
        mpfr_init(r17875);
        mpfr_init(r17876);
        mpfr_init(r17877);
        mpfr_init_set_str(r17878, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r17879, "8", 10, MPFR_RNDN);
        mpfr_init(r17880);
        mpfr_init(r17881);
        mpfr_init_set_str(r17882, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r17883, "6", 10, MPFR_RNDN);
        mpfr_init(r17884);
        mpfr_init(r17885);
        mpfr_init(r17886);
        mpfr_init(r17887);
        mpfr_init(r17888);
        mpfr_init(r17889);
        mpfr_init(r17890);
        mpfr_init(r17891);
        mpfr_init(r17892);
        mpfr_init(r17893);
        mpfr_init(r17894);
        mpfr_init(r17895);
        mpfr_init(r17896);
        mpfr_init(r17897);
        mpfr_init(r17898);
        mpfr_init(r17899);
        mpfr_init(r17900);
        mpfr_init(r17901);
        mpfr_init(r17902);
}

double f_fm(double z) {
        mpfr_set_d(r17794, z, MPFR_RNDN);
        ;
        mpfr_set_si(r17796, mpfr_cmp(r17794, r17795) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r17798, r17797, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17801, r17799, r17800, MPFR_RNDN);
        mpfr_exp(r17802, r17801, MPFR_RNDN);
        mpfr_mul(r17803, r17802, r17794, MPFR_RNDN);
        mpfr_div(r17804, r17798, r17803, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_pow(r17808, r17806, r17807, MPFR_RNDN);
        mpfr_div(r17809, r17805, r17808, MPFR_RNDN);
        ;
        mpfr_pow(r17811, r17809, r17810, MPFR_RNDN);
        mpfr_mul(r17812, r17804, r17811, MPFR_RNDN);
        mpfr_const_pi(r17813, MPFR_RNDN);
        mpfr_sqrt(r17814, r17813, MPFR_RNDN);
        ;
        mpfr_mul(r17816, r17814, r17815, MPFR_RNDN);
        ;
        mpfr_mul(r17818, r17817, r17814, MPFR_RNDN);
        mpfr_mul(r17819, r17798, r17794, MPFR_RNDN);
        mpfr_log(r17820, r17806, MPFR_RNDN);
        mpfr_sqr(r17821, r17820, MPFR_RNDN);
        mpfr_mul(r17822, r17819, r17821, MPFR_RNDN);
        mpfr_mul(r17823, r17822, r17811, MPFR_RNDN);
        mpfr_div(r17824, r17823, r17802, MPFR_RNDN);
        ;
        mpfr_mul(r17826, r17814, r17825, MPFR_RNDN);
        mpfr_mul(r17827, r17826, r17819, MPFR_RNDN);
        mpfr_mul(r17828, r17827, r17811, MPFR_RNDN);
        mpfr_div(r17829, r17828, r17802, MPFR_RNDN);
        mpfr_fma(r17830, r17818, r17824, r17829, MPFR_RNDN);
        mpfr_fma(r17831, r17812, r17816, r17830, MPFR_RNDN);
        ;
        mpfr_mul(r17833, r17814, r17832, MPFR_RNDN);
        mpfr_mul(r17834, r17794, r17820, MPFR_RNDN);
        mpfr_mul(r17835, r17798, r17834, MPFR_RNDN);
        mpfr_div(r17836, r17835, r17802, MPFR_RNDN);
        mpfr_div(r17837, r17798, r17802, MPFR_RNDN);
        mpfr_mul(r17838, r17837, r17811, MPFR_RNDN);
        mpfr_fma(r17839, r17811, r17836, r17838, MPFR_RNDN);
        mpfr_mul(r17840, r17833, r17839, MPFR_RNDN);
        mpfr_mul(r17841, r17798, r17820, MPFR_RNDN);
        mpfr_div(r17842, r17841, r17802, MPFR_RNDN);
        mpfr_mul(r17843, r17842, r17811, MPFR_RNDN);
        mpfr_mul(r17844, r17843, r17816, MPFR_RNDN);
        mpfr_sub(r17845, r17840, r17844, MPFR_RNDN);
        mpfr_sub(r17846, r17831, r17845, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17849, r17794, r17848, MPFR_RNDN);
        mpfr_sub(r17850, r17849, r17805, MPFR_RNDN);
        mpfr_div(r17851, r17847, r17850, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r17854, r17794, r17853, MPFR_RNDN);
        mpfr_div(r17855, r17815, r17854, MPFR_RNDN);
        mpfr_add(r17856, r17852, r17855, MPFR_RNDN);
        mpfr_add(r17857, r17851, r17856, MPFR_RNDN);
        ;
        mpfr_sub(r17859, r17794, r17805, MPFR_RNDN);
        mpfr_add(r17860, r17797, r17859, MPFR_RNDN);
        mpfr_div(r17861, r17858, r17860, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17864, r17863, r17859, MPFR_RNDN);
        mpfr_div(r17865, r17862, r17864, MPFR_RNDN);
        mpfr_add(r17866, r17861, r17865, MPFR_RNDN);
        mpfr_add(r17867, r17857, r17866, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17870, r17794, r17869, MPFR_RNDN);
        mpfr_sub(r17871, r17870, r17805, MPFR_RNDN);
        mpfr_div(r17872, r17868, r17871, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17875, r17859, r17874, MPFR_RNDN);
        mpfr_div(r17876, r17873, r17875, MPFR_RNDN);
        mpfr_add(r17877, r17872, r17876, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17880, r17859, r17879, MPFR_RNDN);
        mpfr_div(r17881, r17878, r17880, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17884, r17883, r17859, MPFR_RNDN);
        mpfr_div(r17885, r17882, r17884, MPFR_RNDN);
        mpfr_add(r17886, r17881, r17885, MPFR_RNDN);
        mpfr_add(r17887, r17877, r17886, MPFR_RNDN);
        mpfr_add(r17888, r17867, r17887, MPFR_RNDN);
        mpfr_log(r17889, r17888, MPFR_RNDN);
        mpfr_add(r17890, r17859, r17810, MPFR_RNDN);
        mpfr_add(r17891, r17874, r17794, MPFR_RNDN);
        mpfr_sub(r17892, r17805, r17810, MPFR_RNDN);
        mpfr_sub(r17893, r17891, r17892, MPFR_RNDN);
        mpfr_log(r17894, r17893, MPFR_RNDN);
        mpfr_mul(r17895, r17813, r17797, MPFR_RNDN);
        mpfr_sqrt(r17896, r17895, MPFR_RNDN);
        mpfr_log(r17897, r17896, MPFR_RNDN);
        mpfr_fma(r17898, r17890, r17894, r17897, MPFR_RNDN);
        mpfr_sub(r17899, r17898, r17893, MPFR_RNDN);
        mpfr_add(r17900, r17889, r17899, MPFR_RNDN);
        mpfr_exp(r17901, r17900, MPFR_RNDN);
        if (mpfr_get_si(r17796, MPFR_RNDN)) { mpfr_set(r17902, r17846, MPFR_RNDN); } else { mpfr_set(r17902, r17901, MPFR_RNDN); };
        return mpfr_get_d(r17902, MPFR_RNDN);
}

static mpfr_t r17903, r17904, r17905, r17906, r17907, r17908, r17909, r17910, r17911, r17912, r17913, r17914, r17915, r17916, r17917, r17918, r17919, r17920, r17921, r17922, r17923, r17924, r17925, r17926, r17927, r17928, r17929, r17930, r17931, r17932, r17933, r17934, r17935, r17936, r17937, r17938, r17939, r17940, r17941, r17942, r17943, r17944, r17945, r17946, r17947, r17948, r17949, r17950, r17951, r17952, r17953, r17954, r17955, r17956, r17957, r17958, r17959, r17960, r17961, r17962, r17963, r17964, r17965, r17966, r17967, r17968, r17969, r17970, r17971, r17972, r17973, r17974, r17975, r17976, r17977, r17978, r17979, r17980, r17981, r17982, r17983, r17984, r17985, r17986, r17987, r17988, r17989, r17990, r17991, r17992, r17993, r17994, r17995, r17996, r17997, r17998, r17999, r18000, r18001, r18002, r18003, r18004, r18005, r18006, r18007, r18008, r18009, r18010, r18011;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17903);
        mpfr_init_set_str(r17904, "0.019028429f0", 10, MPFR_RNDN);
        mpfr_init(r17905);
        mpfr_init_set_str(r17906, "2", 10, MPFR_RNDN);
        mpfr_init(r17907);
        mpfr_init_set_str(r17908, "-1", 10, MPFR_RNDN);
        mpfr_init_set_str(r17909, "7.5", 10, MPFR_RNDN);
        mpfr_init(r17910);
        mpfr_init(r17911);
        mpfr_init(r17912);
        mpfr_init(r17913);
        mpfr_init_set_str(r17914, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r17915, "6.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r17916, "1.0", 10, MPFR_RNDN);
        mpfr_init(r17917);
        mpfr_init(r17918);
        mpfr_init_set_str(r17919, "0.5", 10, MPFR_RNDN);
        mpfr_init(r17920);
        mpfr_init(r17921);
        mpfr_init(r17922);
        mpfr_init(r17923);
        mpfr_init_set_str(r17924, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r17925);
        mpfr_init_set_str(r17926, "338.26018406094255", 10, MPFR_RNDN);
        mpfr_init(r17927);
        mpfr_init(r17928);
        mpfr_init(r17929);
        mpfr_init(r17930);
        mpfr_init(r17931);
        mpfr_init(r17932);
        mpfr_init(r17933);
        mpfr_init_set_str(r17934, "2585.1948787825354", 10, MPFR_RNDN);
        mpfr_init(r17935);
        mpfr_init(r17936);
        mpfr_init(r17937);
        mpfr_init(r17938);
        mpfr_init(r17939);
        mpfr_init(r17940);
        mpfr_init_set_str(r17941, "1656.8104518737205", 10, MPFR_RNDN);
        mpfr_init(r17942);
        mpfr_init(r17943);
        mpfr_init(r17944);
        mpfr_init(r17945);
        mpfr_init(r17946);
        mpfr_init(r17947);
        mpfr_init(r17948);
        mpfr_init(r17949);
        mpfr_init(r17950);
        mpfr_init(r17951);
        mpfr_init(r17952);
        mpfr_init(r17953);
        mpfr_init(r17954);
        mpfr_init(r17955);
        mpfr_init_set_str(r17956, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r17957, "4", 10, MPFR_RNDN);
        mpfr_init(r17958);
        mpfr_init(r17959);
        mpfr_init(r17960);
        mpfr_init_set_str(r17961, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r17962, "0", 10, MPFR_RNDN);
        mpfr_init(r17963);
        mpfr_init(r17964);
        mpfr_init(r17965);
        mpfr_init(r17966);
        mpfr_init_set_str(r17967, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r17968);
        mpfr_init(r17969);
        mpfr_init(r17970);
        mpfr_init_set_str(r17971, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r17972, "3", 10, MPFR_RNDN);
        mpfr_init(r17973);
        mpfr_init(r17974);
        mpfr_init(r17975);
        mpfr_init(r17976);
        mpfr_init_set_str(r17977, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r17978, "5", 10, MPFR_RNDN);
        mpfr_init(r17979);
        mpfr_init(r17980);
        mpfr_init(r17981);
        mpfr_init_set_str(r17982, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init_set_str(r17983, "7", 10, MPFR_RNDN);
        mpfr_init(r17984);
        mpfr_init(r17985);
        mpfr_init(r17986);
        mpfr_init_set_str(r17987, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r17988, "8", 10, MPFR_RNDN);
        mpfr_init(r17989);
        mpfr_init(r17990);
        mpfr_init_set_str(r17991, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r17992, "6", 10, MPFR_RNDN);
        mpfr_init(r17993);
        mpfr_init(r17994);
        mpfr_init(r17995);
        mpfr_init(r17996);
        mpfr_init(r17997);
        mpfr_init(r17998);
        mpfr_init(r17999);
        mpfr_init(r18000);
        mpfr_init(r18001);
        mpfr_init(r18002);
        mpfr_init(r18003);
        mpfr_init(r18004);
        mpfr_init(r18005);
        mpfr_init(r18006);
        mpfr_init(r18007);
        mpfr_init(r18008);
        mpfr_init(r18009);
        mpfr_init(r18010);
        mpfr_init(r18011);
}

double f_dm(double z) {
        mpfr_set_d(r17903, z, MPFR_RNDN);
        ;
        mpfr_set_si(r17905, mpfr_cmp(r17903, r17904) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r17907, r17906, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17910, r17908, r17909, MPFR_RNDN);
        mpfr_exp(r17911, r17910, MPFR_RNDN);
        mpfr_mul(r17912, r17911, r17903, MPFR_RNDN);
        mpfr_div(r17913, r17907, r17912, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_pow(r17917, r17915, r17916, MPFR_RNDN);
        mpfr_div(r17918, r17914, r17917, MPFR_RNDN);
        ;
        mpfr_pow(r17920, r17918, r17919, MPFR_RNDN);
        mpfr_mul(r17921, r17913, r17920, MPFR_RNDN);
        mpfr_const_pi(r17922, MPFR_RNDN);
        mpfr_sqrt(r17923, r17922, MPFR_RNDN);
        ;
        mpfr_mul(r17925, r17923, r17924, MPFR_RNDN);
        ;
        mpfr_mul(r17927, r17926, r17923, MPFR_RNDN);
        mpfr_mul(r17928, r17907, r17903, MPFR_RNDN);
        mpfr_log(r17929, r17915, MPFR_RNDN);
        mpfr_sqr(r17930, r17929, MPFR_RNDN);
        mpfr_mul(r17931, r17928, r17930, MPFR_RNDN);
        mpfr_mul(r17932, r17931, r17920, MPFR_RNDN);
        mpfr_div(r17933, r17932, r17911, MPFR_RNDN);
        ;
        mpfr_mul(r17935, r17923, r17934, MPFR_RNDN);
        mpfr_mul(r17936, r17935, r17928, MPFR_RNDN);
        mpfr_mul(r17937, r17936, r17920, MPFR_RNDN);
        mpfr_div(r17938, r17937, r17911, MPFR_RNDN);
        mpfr_fma(r17939, r17927, r17933, r17938, MPFR_RNDN);
        mpfr_fma(r17940, r17921, r17925, r17939, MPFR_RNDN);
        ;
        mpfr_mul(r17942, r17923, r17941, MPFR_RNDN);
        mpfr_mul(r17943, r17903, r17929, MPFR_RNDN);
        mpfr_mul(r17944, r17907, r17943, MPFR_RNDN);
        mpfr_div(r17945, r17944, r17911, MPFR_RNDN);
        mpfr_div(r17946, r17907, r17911, MPFR_RNDN);
        mpfr_mul(r17947, r17946, r17920, MPFR_RNDN);
        mpfr_fma(r17948, r17920, r17945, r17947, MPFR_RNDN);
        mpfr_mul(r17949, r17942, r17948, MPFR_RNDN);
        mpfr_mul(r17950, r17907, r17929, MPFR_RNDN);
        mpfr_div(r17951, r17950, r17911, MPFR_RNDN);
        mpfr_mul(r17952, r17951, r17920, MPFR_RNDN);
        mpfr_mul(r17953, r17952, r17925, MPFR_RNDN);
        mpfr_sub(r17954, r17949, r17953, MPFR_RNDN);
        mpfr_sub(r17955, r17940, r17954, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17958, r17903, r17957, MPFR_RNDN);
        mpfr_sub(r17959, r17958, r17914, MPFR_RNDN);
        mpfr_div(r17960, r17956, r17959, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r17963, r17903, r17962, MPFR_RNDN);
        mpfr_div(r17964, r17924, r17963, MPFR_RNDN);
        mpfr_add(r17965, r17961, r17964, MPFR_RNDN);
        mpfr_add(r17966, r17960, r17965, MPFR_RNDN);
        ;
        mpfr_sub(r17968, r17903, r17914, MPFR_RNDN);
        mpfr_add(r17969, r17906, r17968, MPFR_RNDN);
        mpfr_div(r17970, r17967, r17969, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17973, r17972, r17968, MPFR_RNDN);
        mpfr_div(r17974, r17971, r17973, MPFR_RNDN);
        mpfr_add(r17975, r17970, r17974, MPFR_RNDN);
        mpfr_add(r17976, r17966, r17975, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17979, r17903, r17978, MPFR_RNDN);
        mpfr_sub(r17980, r17979, r17914, MPFR_RNDN);
        mpfr_div(r17981, r17977, r17980, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17984, r17968, r17983, MPFR_RNDN);
        mpfr_div(r17985, r17982, r17984, MPFR_RNDN);
        mpfr_add(r17986, r17981, r17985, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17989, r17968, r17988, MPFR_RNDN);
        mpfr_div(r17990, r17987, r17989, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17993, r17992, r17968, MPFR_RNDN);
        mpfr_div(r17994, r17991, r17993, MPFR_RNDN);
        mpfr_add(r17995, r17990, r17994, MPFR_RNDN);
        mpfr_add(r17996, r17986, r17995, MPFR_RNDN);
        mpfr_add(r17997, r17976, r17996, MPFR_RNDN);
        mpfr_log(r17998, r17997, MPFR_RNDN);
        mpfr_add(r17999, r17968, r17919, MPFR_RNDN);
        mpfr_add(r18000, r17983, r17903, MPFR_RNDN);
        mpfr_sub(r18001, r17914, r17919, MPFR_RNDN);
        mpfr_sub(r18002, r18000, r18001, MPFR_RNDN);
        mpfr_log(r18003, r18002, MPFR_RNDN);
        mpfr_mul(r18004, r17922, r17906, MPFR_RNDN);
        mpfr_sqrt(r18005, r18004, MPFR_RNDN);
        mpfr_log(r18006, r18005, MPFR_RNDN);
        mpfr_fma(r18007, r17999, r18003, r18006, MPFR_RNDN);
        mpfr_sub(r18008, r18007, r18002, MPFR_RNDN);
        mpfr_add(r18009, r17998, r18008, MPFR_RNDN);
        mpfr_exp(r18010, r18009, MPFR_RNDN);
        if (mpfr_get_si(r17905, MPFR_RNDN)) { mpfr_set(r18011, r17955, MPFR_RNDN); } else { mpfr_set(r18011, r18010, MPFR_RNDN); };
        return mpfr_get_d(r18011, MPFR_RNDN);
}

