#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 r17443 = atan2(1.0, 0.0);
        float r17444 = 2.0f;
        float r17445 = r17443 * r17444;
        float r17446 = sqrt(r17445);
        float r17447 = z;
        float r17448 = 1.0f;
        float r17449 = r17447 - r17448;
        float r17450 = 7.0f;
        float r17451 = r17449 + r17450;
        float r17452 = 0.5f;
        float r17453 = r17451 + r17452;
        float r17454 = r17449 + r17452;
        float r17455 = pow(r17453, r17454);
        float r17456 = r17446 * r17455;
        float r17457 = -r17453;
        float r17458 = exp(r17457);
        float r17459 = r17456 * r17458;
        float r17460 = 1.0f;
        float r17461 = 676.5203857421875f;
        float r17462 = r17449 + r17448;
        float r17463 = r17461 / r17462;
        float r17464 = r17460 + r17463;
        float r17465 = -1259.13916015625f;
        float r17466 = r17449 + r17444;
        float r17467 = r17465 / r17466;
        float r17468 = r17464 + r17467;
        float r17469 = 771.3234252929688f;
        float r17470 = 3.0f;
        float r17471 = r17449 + r17470;
        float r17472 = r17469 / r17471;
        float r17473 = r17468 + r17472;
        float r17474 = -176.6150360107422f;
        float r17475 = 4.0f;
        float r17476 = r17449 + r17475;
        float r17477 = r17474 / r17476;
        float r17478 = r17473 + r17477;
        float r17479 = 12.507343292236328f;
        float r17480 = 5.0f;
        float r17481 = r17449 + r17480;
        float r17482 = r17479 / r17481;
        float r17483 = r17478 + r17482;
        float r17484 = -0.138571098446846f;
        float r17485 = 6.0f;
        float r17486 = r17449 + r17485;
        float r17487 = r17484 / r17486;
        float r17488 = r17483 + r17487;
        float r17489 = 9.984369171434082e-06f;
        float r17490 = r17489 / r17451;
        float r17491 = r17488 + r17490;
        float r17492 = 1.5056326674312004e-07f;
        float r17493 = 8.0f;
        float r17494 = r17449 + r17493;
        float r17495 = r17492 / r17494;
        float r17496 = r17491 + r17495;
        float r17497 = r17459 * r17496;
        return r17497;
}

double f_id(double z) {
        double r17498 = atan2(1.0, 0.0);
        double r17499 = 2.0;
        double r17500 = r17498 * r17499;
        double r17501 = sqrt(r17500);
        double r17502 = z;
        double r17503 = 1.0;
        double r17504 = r17502 - r17503;
        double r17505 = 7.0;
        double r17506 = r17504 + r17505;
        double r17507 = 0.5;
        double r17508 = r17506 + r17507;
        double r17509 = r17504 + r17507;
        double r17510 = pow(r17508, r17509);
        double r17511 = r17501 * r17510;
        double r17512 = -r17508;
        double r17513 = exp(r17512);
        double r17514 = r17511 * r17513;
        double r17515 = 1.0;
        double r17516 = 676.5203857421875;
        double r17517 = r17504 + r17503;
        double r17518 = r17516 / r17517;
        double r17519 = r17515 + r17518;
        double r17520 = -1259.13916015625;
        double r17521 = r17504 + r17499;
        double r17522 = r17520 / r17521;
        double r17523 = r17519 + r17522;
        double r17524 = 771.3234252929688;
        double r17525 = 3.0;
        double r17526 = r17504 + r17525;
        double r17527 = r17524 / r17526;
        double r17528 = r17523 + r17527;
        double r17529 = -176.6150360107422;
        double r17530 = 4.0;
        double r17531 = r17504 + r17530;
        double r17532 = r17529 / r17531;
        double r17533 = r17528 + r17532;
        double r17534 = 12.507343292236328;
        double r17535 = 5.0;
        double r17536 = r17504 + r17535;
        double r17537 = r17534 / r17536;
        double r17538 = r17533 + r17537;
        double r17539 = -0.138571098446846;
        double r17540 = 6.0;
        double r17541 = r17504 + r17540;
        double r17542 = r17539 / r17541;
        double r17543 = r17538 + r17542;
        double r17544 = 9.984369171434082e-06;
        double r17545 = r17544 / r17506;
        double r17546 = r17543 + r17545;
        double r17547 = 1.5056326674312004e-07;
        double r17548 = 8.0;
        double r17549 = r17504 + r17548;
        double r17550 = r17547 / r17549;
        double r17551 = r17546 + r17550;
        double r17552 = r17514 * r17551;
        return r17552;
}


double f_of(float z) {
        float r17553 = z;
        float r17554 = 0.019028428941965103f;
        bool r17555 = r17553 <= r17554;
        float r17556 = 2.0f;
        float r17557 = sqrt(r17556);
        float r17558 = -1.0f;
        float r17559 = 7.5f;
        float r17560 = r17558 + r17559;
        float r17561 = exp(r17560);
        float r17562 = r17561 * r17553;
        float r17563 = r17557 / r17562;
        float r17564 = 1.0f;
        float r17565 = 6.5f;
        float r17566 = 1.0f;
        float r17567 = pow(r17565, r17566);
        float r17568 = r17564 / r17567;
        float r17569 = 0.5f;
        float r17570 = pow(r17568, r17569);
        float r17571 = r17563 * r17570;
        float r17572 = atan2(1.0, 0.0);
        float r17573 = sqrt(r17572);
        float r17574 = 676.5203857421875f;
        float r17575 = r17573 * r17574;
        float r17576 = 338.26019287109375f;
        float r17577 = r17576 * r17573;
        float r17578 = r17557 * r17553;
        float r17579 = log(r17565);
        float r17580 = r17579 * r17579;
        float r17581 = r17578 * r17580;
        float r17582 = r17581 * r17570;
        float r17583 = r17582 / r17561;
        float r17584 = 2585.19482421875f;
        float r17585 = r17573 * r17584;
        float r17586 = r17585 * r17578;
        float r17587 = r17586 * r17570;
        float r17588 = r17587 / r17561;
        float r17589 = fma(r17577, r17583, r17588);
        float r17590 = fma(r17571, r17575, r17589);
        float r17591 = 1656.8104248046875f;
        float r17592 = r17573 * r17591;
        float r17593 = r17553 * r17579;
        float r17594 = r17557 * r17593;
        float r17595 = r17594 / r17561;
        float r17596 = r17557 / r17561;
        float r17597 = r17596 * r17570;
        float r17598 = fma(r17570, r17595, r17597);
        float r17599 = r17592 * r17598;
        float r17600 = r17557 * r17579;
        float r17601 = r17600 / r17561;
        float r17602 = r17601 * r17570;
        float r17603 = r17602 * r17575;
        float r17604 = r17599 - r17603;
        float r17605 = r17590 - r17604;
        float r17606 = r17553 - r17569;
        float r17607 = r17565 + r17553;
        float r17608 = log(r17607);
        float r17609 = r17557 * r17573;
        float r17610 = log(r17609);
        float r17611 = fma(r17606, r17608, r17610);
        float r17612 = 7.0f;
        float r17613 = r17553 + r17612;
        float r17614 = r17564 - r17569;
        float r17615 = r17613 - r17614;
        float r17616 = r17611 - r17615;
        float r17617 = exp(r17616);
        float r17618 = -176.6150360107422f;
        float r17619 = 4.0f;
        float r17620 = r17564 - r17553;
        float r17621 = r17619 - r17620;
        float r17622 = r17618 / r17621;
        float r17623 = 0.0f;
        float r17624 = r17553 - r17623;
        float r17625 = r17574 / r17624;
        float r17626 = 1.0f;
        float r17627 = r17625 + r17626;
        float r17628 = r17622 + r17627;
        float r17629 = -1259.13916015625f;
        float r17630 = r17564 - r17556;
        float r17631 = r17553 - r17630;
        float r17632 = r17629 / r17631;
        float r17633 = 771.3234252929688f;
        float r17634 = 3.0f;
        float r17635 = r17553 - r17564;
        float r17636 = r17634 + r17635;
        float r17637 = r17633 / r17636;
        float r17638 = r17632 + r17637;
        float r17639 = r17628 + r17638;
        float r17640 = 9.984369171434082e-06f;
        float r17641 = r17564 - r17612;
        float r17642 = r17553 - r17641;
        float r17643 = r17640 / r17642;
        float r17644 = 12.507343292236328f;
        float r17645 = 5.0f;
        float r17646 = r17645 + r17635;
        float r17647 = r17644 / r17646;
        float r17648 = r17643 + r17647;
        float r17649 = -0.138571098446846f;
        float r17650 = 6.0f;
        float r17651 = r17635 + r17650;
        float r17652 = r17649 / r17651;
        float r17653 = 1.5056326674312004e-07f;
        float r17654 = 8.0f;
        float r17655 = r17654 + r17635;
        float r17656 = r17653 / r17655;
        float r17657 = r17652 + r17656;
        float r17658 = r17648 + r17657;
        float r17659 = r17639 + r17658;
        float r17660 = r17617 * r17659;
        float r17661 = r17555 ? r17605 : r17660;
        return r17661;
}

double f_od(double z) {
        double r17662 = z;
        double r17663 = 0.019028428941965103;
        bool r17664 = r17662 <= r17663;
        double r17665 = 2.0;
        double r17666 = sqrt(r17665);
        double r17667 = -1.0;
        double r17668 = 7.5;
        double r17669 = r17667 + r17668;
        double r17670 = exp(r17669);
        double r17671 = r17670 * r17662;
        double r17672 = r17666 / r17671;
        double r17673 = 1.0;
        double r17674 = 6.5;
        double r17675 = 1.0;
        double r17676 = pow(r17674, r17675);
        double r17677 = r17673 / r17676;
        double r17678 = 0.5;
        double r17679 = pow(r17677, r17678);
        double r17680 = r17672 * r17679;
        double r17681 = atan2(1.0, 0.0);
        double r17682 = sqrt(r17681);
        double r17683 = 676.5203857421875;
        double r17684 = r17682 * r17683;
        double r17685 = 338.26019287109375;
        double r17686 = r17685 * r17682;
        double r17687 = r17666 * r17662;
        double r17688 = log(r17674);
        double r17689 = r17688 * r17688;
        double r17690 = r17687 * r17689;
        double r17691 = r17690 * r17679;
        double r17692 = r17691 / r17670;
        double r17693 = 2585.19482421875;
        double r17694 = r17682 * r17693;
        double r17695 = r17694 * r17687;
        double r17696 = r17695 * r17679;
        double r17697 = r17696 / r17670;
        double r17698 = fma(r17686, r17692, r17697);
        double r17699 = fma(r17680, r17684, r17698);
        double r17700 = 1656.8104248046875;
        double r17701 = r17682 * r17700;
        double r17702 = r17662 * r17688;
        double r17703 = r17666 * r17702;
        double r17704 = r17703 / r17670;
        double r17705 = r17666 / r17670;
        double r17706 = r17705 * r17679;
        double r17707 = fma(r17679, r17704, r17706);
        double r17708 = r17701 * r17707;
        double r17709 = r17666 * r17688;
        double r17710 = r17709 / r17670;
        double r17711 = r17710 * r17679;
        double r17712 = r17711 * r17684;
        double r17713 = r17708 - r17712;
        double r17714 = r17699 - r17713;
        double r17715 = r17662 - r17678;
        double r17716 = r17674 + r17662;
        double r17717 = log(r17716);
        double r17718 = r17666 * r17682;
        double r17719 = log(r17718);
        double r17720 = fma(r17715, r17717, r17719);
        double r17721 = 7.0;
        double r17722 = r17662 + r17721;
        double r17723 = r17673 - r17678;
        double r17724 = r17722 - r17723;
        double r17725 = r17720 - r17724;
        double r17726 = exp(r17725);
        double r17727 = -176.6150360107422;
        double r17728 = 4.0;
        double r17729 = r17673 - r17662;
        double r17730 = r17728 - r17729;
        double r17731 = r17727 / r17730;
        double r17732 = 0.0;
        double r17733 = r17662 - r17732;
        double r17734 = r17683 / r17733;
        double r17735 = 1.0;
        double r17736 = r17734 + r17735;
        double r17737 = r17731 + r17736;
        double r17738 = -1259.13916015625;
        double r17739 = r17673 - r17665;
        double r17740 = r17662 - r17739;
        double r17741 = r17738 / r17740;
        double r17742 = 771.3234252929688;
        double r17743 = 3.0;
        double r17744 = r17662 - r17673;
        double r17745 = r17743 + r17744;
        double r17746 = r17742 / r17745;
        double r17747 = r17741 + r17746;
        double r17748 = r17737 + r17747;
        double r17749 = 9.984369171434082e-06;
        double r17750 = r17673 - r17721;
        double r17751 = r17662 - r17750;
        double r17752 = r17749 / r17751;
        double r17753 = 12.507343292236328;
        double r17754 = 5.0;
        double r17755 = r17754 + r17744;
        double r17756 = r17753 / r17755;
        double r17757 = r17752 + r17756;
        double r17758 = -0.138571098446846;
        double r17759 = 6.0;
        double r17760 = r17744 + r17759;
        double r17761 = r17758 / r17760;
        double r17762 = 1.5056326674312004e-07;
        double r17763 = 8.0;
        double r17764 = r17763 + r17744;
        double r17765 = r17762 / r17764;
        double r17766 = r17761 + r17765;
        double r17767 = r17757 + r17766;
        double r17768 = r17748 + r17767;
        double r17769 = r17726 * r17768;
        double r17770 = r17664 ? r17714 : r17769;
        return r17770;
}

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 r17771, r17772, r17773, r17774, r17775, r17776, r17777, r17778, r17779, r17780, r17781, r17782, r17783, r17784, r17785, r17786, r17787, r17788, r17789, r17790, r17791, r17792, r17793, 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;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r17771);
        mpfr_init_set_str(r17772, "2", 10, MPFR_RNDN);
        mpfr_init(r17773);
        mpfr_init(r17774);
        mpfr_init(r17775);
        mpfr_init_set_str(r17776, "1", 10, MPFR_RNDN);
        mpfr_init(r17777);
        mpfr_init_set_str(r17778, "7", 10, MPFR_RNDN);
        mpfr_init(r17779);
        mpfr_init_set_str(r17780, "0.5", 10, MPFR_RNDN);
        mpfr_init(r17781);
        mpfr_init(r17782);
        mpfr_init(r17783);
        mpfr_init(r17784);
        mpfr_init(r17785);
        mpfr_init(r17786);
        mpfr_init(r17787);
        mpfr_init_set_str(r17788, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r17789, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r17790);
        mpfr_init(r17791);
        mpfr_init(r17792);
        mpfr_init_set_str(r17793, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r17794);
        mpfr_init(r17795);
        mpfr_init(r17796);
        mpfr_init_set_str(r17797, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r17798, "3", 10, MPFR_RNDN);
        mpfr_init(r17799);
        mpfr_init(r17800);
        mpfr_init(r17801);
        mpfr_init_set_str(r17802, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r17803, "4", 10, MPFR_RNDN);
        mpfr_init(r17804);
        mpfr_init(r17805);
        mpfr_init(r17806);
        mpfr_init_set_str(r17807, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r17808, "5", 10, MPFR_RNDN);
        mpfr_init(r17809);
        mpfr_init(r17810);
        mpfr_init(r17811);
        mpfr_init_set_str(r17812, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r17813, "6", 10, MPFR_RNDN);
        mpfr_init(r17814);
        mpfr_init(r17815);
        mpfr_init(r17816);
        mpfr_init_set_str(r17817, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r17818);
        mpfr_init(r17819);
        mpfr_init_set_str(r17820, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r17821, "8", 10, MPFR_RNDN);
        mpfr_init(r17822);
        mpfr_init(r17823);
        mpfr_init(r17824);
        mpfr_init(r17825);
}

double f_im(double z) {
        mpfr_const_pi(r17771, MPFR_RNDN);
        ;
        mpfr_mul(r17773, r17771, r17772, MPFR_RNDN);
        mpfr_sqrt(r17774, r17773, MPFR_RNDN);
        mpfr_set_d(r17775, z, MPFR_RNDN);
        ;
        mpfr_sub(r17777, r17775, r17776, MPFR_RNDN);
        ;
        mpfr_add(r17779, r17777, r17778, MPFR_RNDN);
        ;
        mpfr_add(r17781, r17779, r17780, MPFR_RNDN);
        mpfr_add(r17782, r17777, r17780, MPFR_RNDN);
        mpfr_pow(r17783, r17781, r17782, MPFR_RNDN);
        mpfr_mul(r17784, r17774, r17783, MPFR_RNDN);
        mpfr_neg(r17785, r17781, MPFR_RNDN);
        mpfr_exp(r17786, r17785, MPFR_RNDN);
        mpfr_mul(r17787, r17784, r17786, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17790, r17777, r17776, MPFR_RNDN);
        mpfr_div(r17791, r17789, r17790, MPFR_RNDN);
        mpfr_add(r17792, r17788, r17791, MPFR_RNDN);
        ;
        mpfr_add(r17794, r17777, r17772, MPFR_RNDN);
        mpfr_div(r17795, r17793, r17794, MPFR_RNDN);
        mpfr_add(r17796, r17792, r17795, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17799, r17777, r17798, MPFR_RNDN);
        mpfr_div(r17800, r17797, r17799, MPFR_RNDN);
        mpfr_add(r17801, r17796, r17800, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17804, r17777, r17803, MPFR_RNDN);
        mpfr_div(r17805, r17802, r17804, MPFR_RNDN);
        mpfr_add(r17806, r17801, r17805, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17809, r17777, r17808, MPFR_RNDN);
        mpfr_div(r17810, r17807, r17809, MPFR_RNDN);
        mpfr_add(r17811, r17806, r17810, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17814, r17777, r17813, MPFR_RNDN);
        mpfr_div(r17815, r17812, r17814, MPFR_RNDN);
        mpfr_add(r17816, r17811, r17815, MPFR_RNDN);
        ;
        mpfr_div(r17818, r17817, r17779, MPFR_RNDN);
        mpfr_add(r17819, r17816, r17818, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17822, r17777, r17821, MPFR_RNDN);
        mpfr_div(r17823, r17820, r17822, MPFR_RNDN);
        mpfr_add(r17824, r17819, r17823, MPFR_RNDN);
        mpfr_mul(r17825, r17787, r17824, MPFR_RNDN);
        return mpfr_get_d(r17825, MPFR_RNDN);
}

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

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17826);
        mpfr_init_set_str(r17827, "0.019028429f0", 10, MPFR_RNDN);
        mpfr_init(r17828);
        mpfr_init_set_str(r17829, "2", 10, MPFR_RNDN);
        mpfr_init(r17830);
        mpfr_init_set_str(r17831, "-1", 10, MPFR_RNDN);
        mpfr_init_set_str(r17832, "7.5", 10, MPFR_RNDN);
        mpfr_init(r17833);
        mpfr_init(r17834);
        mpfr_init(r17835);
        mpfr_init(r17836);
        mpfr_init_set_str(r17837, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r17838, "6.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r17839, "1.0", 10, MPFR_RNDN);
        mpfr_init(r17840);
        mpfr_init(r17841);
        mpfr_init_set_str(r17842, "0.5", 10, MPFR_RNDN);
        mpfr_init(r17843);
        mpfr_init(r17844);
        mpfr_init(r17845);
        mpfr_init(r17846);
        mpfr_init_set_str(r17847, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r17848);
        mpfr_init_set_str(r17849, "338.26018406094255", 10, MPFR_RNDN);
        mpfr_init(r17850);
        mpfr_init(r17851);
        mpfr_init(r17852);
        mpfr_init(r17853);
        mpfr_init(r17854);
        mpfr_init(r17855);
        mpfr_init(r17856);
        mpfr_init_set_str(r17857, "2585.1948787825354", 10, MPFR_RNDN);
        mpfr_init(r17858);
        mpfr_init(r17859);
        mpfr_init(r17860);
        mpfr_init(r17861);
        mpfr_init(r17862);
        mpfr_init(r17863);
        mpfr_init_set_str(r17864, "1656.8104518737205", 10, MPFR_RNDN);
        mpfr_init(r17865);
        mpfr_init(r17866);
        mpfr_init(r17867);
        mpfr_init(r17868);
        mpfr_init(r17869);
        mpfr_init(r17870);
        mpfr_init(r17871);
        mpfr_init(r17872);
        mpfr_init(r17873);
        mpfr_init(r17874);
        mpfr_init(r17875);
        mpfr_init(r17876);
        mpfr_init(r17877);
        mpfr_init(r17878);
        mpfr_init(r17879);
        mpfr_init(r17880);
        mpfr_init(r17881);
        mpfr_init(r17882);
        mpfr_init(r17883);
        mpfr_init(r17884);
        mpfr_init_set_str(r17885, "7", 10, MPFR_RNDN);
        mpfr_init(r17886);
        mpfr_init(r17887);
        mpfr_init(r17888);
        mpfr_init(r17889);
        mpfr_init(r17890);
        mpfr_init_set_str(r17891, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r17892, "4", 10, MPFR_RNDN);
        mpfr_init(r17893);
        mpfr_init(r17894);
        mpfr_init(r17895);
        mpfr_init_set_str(r17896, "0", 10, MPFR_RNDN);
        mpfr_init(r17897);
        mpfr_init(r17898);
        mpfr_init_set_str(r17899, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init(r17900);
        mpfr_init(r17901);
        mpfr_init_set_str(r17902, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r17903);
        mpfr_init(r17904);
        mpfr_init(r17905);
        mpfr_init_set_str(r17906, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r17907, "3", 10, MPFR_RNDN);
        mpfr_init(r17908);
        mpfr_init(r17909);
        mpfr_init(r17910);
        mpfr_init(r17911);
        mpfr_init(r17912);
        mpfr_init_set_str(r17913, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r17914);
        mpfr_init(r17915);
        mpfr_init(r17916);
        mpfr_init_set_str(r17917, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r17918, "5", 10, MPFR_RNDN);
        mpfr_init(r17919);
        mpfr_init(r17920);
        mpfr_init(r17921);
        mpfr_init_set_str(r17922, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r17923, "6", 10, MPFR_RNDN);
        mpfr_init(r17924);
        mpfr_init(r17925);
        mpfr_init_set_str(r17926, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r17927, "8", 10, MPFR_RNDN);
        mpfr_init(r17928);
        mpfr_init(r17929);
        mpfr_init(r17930);
        mpfr_init(r17931);
        mpfr_init(r17932);
        mpfr_init(r17933);
        mpfr_init(r17934);
}

double f_fm(double z) {
        mpfr_set_d(r17826, z, MPFR_RNDN);
        ;
        mpfr_set_si(r17828, mpfr_cmp(r17826, r17827) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r17830, r17829, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17833, r17831, r17832, MPFR_RNDN);
        mpfr_exp(r17834, r17833, MPFR_RNDN);
        mpfr_mul(r17835, r17834, r17826, MPFR_RNDN);
        mpfr_div(r17836, r17830, r17835, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_pow(r17840, r17838, r17839, MPFR_RNDN);
        mpfr_div(r17841, r17837, r17840, MPFR_RNDN);
        ;
        mpfr_pow(r17843, r17841, r17842, MPFR_RNDN);
        mpfr_mul(r17844, r17836, r17843, MPFR_RNDN);
        mpfr_const_pi(r17845, MPFR_RNDN);
        mpfr_sqrt(r17846, r17845, MPFR_RNDN);
        ;
        mpfr_mul(r17848, r17846, r17847, MPFR_RNDN);
        ;
        mpfr_mul(r17850, r17849, r17846, MPFR_RNDN);
        mpfr_mul(r17851, r17830, r17826, MPFR_RNDN);
        mpfr_log(r17852, r17838, MPFR_RNDN);
        mpfr_sqr(r17853, r17852, MPFR_RNDN);
        mpfr_mul(r17854, r17851, r17853, MPFR_RNDN);
        mpfr_mul(r17855, r17854, r17843, MPFR_RNDN);
        mpfr_div(r17856, r17855, r17834, MPFR_RNDN);
        ;
        mpfr_mul(r17858, r17846, r17857, MPFR_RNDN);
        mpfr_mul(r17859, r17858, r17851, MPFR_RNDN);
        mpfr_mul(r17860, r17859, r17843, MPFR_RNDN);
        mpfr_div(r17861, r17860, r17834, MPFR_RNDN);
        mpfr_fma(r17862, r17850, r17856, r17861, MPFR_RNDN);
        mpfr_fma(r17863, r17844, r17848, r17862, MPFR_RNDN);
        ;
        mpfr_mul(r17865, r17846, r17864, MPFR_RNDN);
        mpfr_mul(r17866, r17826, r17852, MPFR_RNDN);
        mpfr_mul(r17867, r17830, r17866, MPFR_RNDN);
        mpfr_div(r17868, r17867, r17834, MPFR_RNDN);
        mpfr_div(r17869, r17830, r17834, MPFR_RNDN);
        mpfr_mul(r17870, r17869, r17843, MPFR_RNDN);
        mpfr_fma(r17871, r17843, r17868, r17870, MPFR_RNDN);
        mpfr_mul(r17872, r17865, r17871, MPFR_RNDN);
        mpfr_mul(r17873, r17830, r17852, MPFR_RNDN);
        mpfr_div(r17874, r17873, r17834, MPFR_RNDN);
        mpfr_mul(r17875, r17874, r17843, MPFR_RNDN);
        mpfr_mul(r17876, r17875, r17848, MPFR_RNDN);
        mpfr_sub(r17877, r17872, r17876, MPFR_RNDN);
        mpfr_sub(r17878, r17863, r17877, MPFR_RNDN);
        mpfr_sub(r17879, r17826, r17842, MPFR_RNDN);
        mpfr_add(r17880, r17838, r17826, MPFR_RNDN);
        mpfr_log(r17881, r17880, MPFR_RNDN);
        mpfr_mul(r17882, r17830, r17846, MPFR_RNDN);
        mpfr_log(r17883, r17882, MPFR_RNDN);
        mpfr_fma(r17884, r17879, r17881, r17883, MPFR_RNDN);
        ;
        mpfr_add(r17886, r17826, r17885, MPFR_RNDN);
        mpfr_sub(r17887, r17837, r17842, MPFR_RNDN);
        mpfr_sub(r17888, r17886, r17887, MPFR_RNDN);
        mpfr_sub(r17889, r17884, r17888, MPFR_RNDN);
        mpfr_exp(r17890, r17889, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r17893, r17837, r17826, MPFR_RNDN);
        mpfr_sub(r17894, r17892, r17893, MPFR_RNDN);
        mpfr_div(r17895, r17891, r17894, MPFR_RNDN);
        ;
        mpfr_sub(r17897, r17826, r17896, MPFR_RNDN);
        mpfr_div(r17898, r17847, r17897, MPFR_RNDN);
        ;
        mpfr_add(r17900, r17898, r17899, MPFR_RNDN);
        mpfr_add(r17901, r17895, r17900, MPFR_RNDN);
        ;
        mpfr_sub(r17903, r17837, r17829, MPFR_RNDN);
        mpfr_sub(r17904, r17826, r17903, MPFR_RNDN);
        mpfr_div(r17905, r17902, r17904, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r17908, r17826, r17837, MPFR_RNDN);
        mpfr_add(r17909, r17907, r17908, MPFR_RNDN);
        mpfr_div(r17910, r17906, r17909, MPFR_RNDN);
        mpfr_add(r17911, r17905, r17910, MPFR_RNDN);
        mpfr_add(r17912, r17901, r17911, MPFR_RNDN);
        ;
        mpfr_sub(r17914, r17837, r17885, MPFR_RNDN);
        mpfr_sub(r17915, r17826, r17914, MPFR_RNDN);
        mpfr_div(r17916, r17913, r17915, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17919, r17918, r17908, MPFR_RNDN);
        mpfr_div(r17920, r17917, r17919, MPFR_RNDN);
        mpfr_add(r17921, r17916, r17920, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17924, r17908, r17923, MPFR_RNDN);
        mpfr_div(r17925, r17922, r17924, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17928, r17927, r17908, MPFR_RNDN);
        mpfr_div(r17929, r17926, r17928, MPFR_RNDN);
        mpfr_add(r17930, r17925, r17929, MPFR_RNDN);
        mpfr_add(r17931, r17921, r17930, MPFR_RNDN);
        mpfr_add(r17932, r17912, r17931, MPFR_RNDN);
        mpfr_mul(r17933, r17890, r17932, MPFR_RNDN);
        if (mpfr_get_si(r17828, MPFR_RNDN)) { mpfr_set(r17934, r17878, MPFR_RNDN); } else { mpfr_set(r17934, r17933, MPFR_RNDN); };
        return mpfr_get_d(r17934, MPFR_RNDN);
}

static mpfr_t 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, r18012, r18013, r18014, r18015, r18016, r18017, r18018, r18019, r18020, r18021, r18022, r18023, r18024, r18025, r18026, r18027, r18028, r18029, r18030, r18031, r18032, r18033, r18034, r18035, r18036, r18037, r18038, r18039, r18040, r18041, r18042, r18043;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17935);
        mpfr_init_set_str(r17936, "0.019028429f0", 10, MPFR_RNDN);
        mpfr_init(r17937);
        mpfr_init_set_str(r17938, "2", 10, MPFR_RNDN);
        mpfr_init(r17939);
        mpfr_init_set_str(r17940, "-1", 10, MPFR_RNDN);
        mpfr_init_set_str(r17941, "7.5", 10, MPFR_RNDN);
        mpfr_init(r17942);
        mpfr_init(r17943);
        mpfr_init(r17944);
        mpfr_init(r17945);
        mpfr_init_set_str(r17946, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r17947, "6.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r17948, "1.0", 10, MPFR_RNDN);
        mpfr_init(r17949);
        mpfr_init(r17950);
        mpfr_init_set_str(r17951, "0.5", 10, MPFR_RNDN);
        mpfr_init(r17952);
        mpfr_init(r17953);
        mpfr_init(r17954);
        mpfr_init(r17955);
        mpfr_init_set_str(r17956, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r17957);
        mpfr_init_set_str(r17958, "338.26018406094255", 10, MPFR_RNDN);
        mpfr_init(r17959);
        mpfr_init(r17960);
        mpfr_init(r17961);
        mpfr_init(r17962);
        mpfr_init(r17963);
        mpfr_init(r17964);
        mpfr_init(r17965);
        mpfr_init_set_str(r17966, "2585.1948787825354", 10, MPFR_RNDN);
        mpfr_init(r17967);
        mpfr_init(r17968);
        mpfr_init(r17969);
        mpfr_init(r17970);
        mpfr_init(r17971);
        mpfr_init(r17972);
        mpfr_init_set_str(r17973, "1656.8104518737205", 10, MPFR_RNDN);
        mpfr_init(r17974);
        mpfr_init(r17975);
        mpfr_init(r17976);
        mpfr_init(r17977);
        mpfr_init(r17978);
        mpfr_init(r17979);
        mpfr_init(r17980);
        mpfr_init(r17981);
        mpfr_init(r17982);
        mpfr_init(r17983);
        mpfr_init(r17984);
        mpfr_init(r17985);
        mpfr_init(r17986);
        mpfr_init(r17987);
        mpfr_init(r17988);
        mpfr_init(r17989);
        mpfr_init(r17990);
        mpfr_init(r17991);
        mpfr_init(r17992);
        mpfr_init(r17993);
        mpfr_init_set_str(r17994, "7", 10, MPFR_RNDN);
        mpfr_init(r17995);
        mpfr_init(r17996);
        mpfr_init(r17997);
        mpfr_init(r17998);
        mpfr_init(r17999);
        mpfr_init_set_str(r18000, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r18001, "4", 10, MPFR_RNDN);
        mpfr_init(r18002);
        mpfr_init(r18003);
        mpfr_init(r18004);
        mpfr_init_set_str(r18005, "0", 10, MPFR_RNDN);
        mpfr_init(r18006);
        mpfr_init(r18007);
        mpfr_init_set_str(r18008, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init(r18009);
        mpfr_init(r18010);
        mpfr_init_set_str(r18011, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r18012);
        mpfr_init(r18013);
        mpfr_init(r18014);
        mpfr_init_set_str(r18015, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r18016, "3", 10, MPFR_RNDN);
        mpfr_init(r18017);
        mpfr_init(r18018);
        mpfr_init(r18019);
        mpfr_init(r18020);
        mpfr_init(r18021);
        mpfr_init_set_str(r18022, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r18023);
        mpfr_init(r18024);
        mpfr_init(r18025);
        mpfr_init_set_str(r18026, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r18027, "5", 10, MPFR_RNDN);
        mpfr_init(r18028);
        mpfr_init(r18029);
        mpfr_init(r18030);
        mpfr_init_set_str(r18031, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r18032, "6", 10, MPFR_RNDN);
        mpfr_init(r18033);
        mpfr_init(r18034);
        mpfr_init_set_str(r18035, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r18036, "8", 10, MPFR_RNDN);
        mpfr_init(r18037);
        mpfr_init(r18038);
        mpfr_init(r18039);
        mpfr_init(r18040);
        mpfr_init(r18041);
        mpfr_init(r18042);
        mpfr_init(r18043);
}

double f_dm(double z) {
        mpfr_set_d(r17935, z, MPFR_RNDN);
        ;
        mpfr_set_si(r17937, mpfr_cmp(r17935, r17936) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r17939, r17938, MPFR_RNDN);
        ;
        ;
        mpfr_add(r17942, r17940, r17941, MPFR_RNDN);
        mpfr_exp(r17943, r17942, MPFR_RNDN);
        mpfr_mul(r17944, r17943, r17935, MPFR_RNDN);
        mpfr_div(r17945, r17939, r17944, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_pow(r17949, r17947, r17948, MPFR_RNDN);
        mpfr_div(r17950, r17946, r17949, MPFR_RNDN);
        ;
        mpfr_pow(r17952, r17950, r17951, MPFR_RNDN);
        mpfr_mul(r17953, r17945, r17952, MPFR_RNDN);
        mpfr_const_pi(r17954, MPFR_RNDN);
        mpfr_sqrt(r17955, r17954, MPFR_RNDN);
        ;
        mpfr_mul(r17957, r17955, r17956, MPFR_RNDN);
        ;
        mpfr_mul(r17959, r17958, r17955, MPFR_RNDN);
        mpfr_mul(r17960, r17939, r17935, MPFR_RNDN);
        mpfr_log(r17961, r17947, MPFR_RNDN);
        mpfr_sqr(r17962, r17961, MPFR_RNDN);
        mpfr_mul(r17963, r17960, r17962, MPFR_RNDN);
        mpfr_mul(r17964, r17963, r17952, MPFR_RNDN);
        mpfr_div(r17965, r17964, r17943, MPFR_RNDN);
        ;
        mpfr_mul(r17967, r17955, r17966, MPFR_RNDN);
        mpfr_mul(r17968, r17967, r17960, MPFR_RNDN);
        mpfr_mul(r17969, r17968, r17952, MPFR_RNDN);
        mpfr_div(r17970, r17969, r17943, MPFR_RNDN);
        mpfr_fma(r17971, r17959, r17965, r17970, MPFR_RNDN);
        mpfr_fma(r17972, r17953, r17957, r17971, MPFR_RNDN);
        ;
        mpfr_mul(r17974, r17955, r17973, MPFR_RNDN);
        mpfr_mul(r17975, r17935, r17961, MPFR_RNDN);
        mpfr_mul(r17976, r17939, r17975, MPFR_RNDN);
        mpfr_div(r17977, r17976, r17943, MPFR_RNDN);
        mpfr_div(r17978, r17939, r17943, MPFR_RNDN);
        mpfr_mul(r17979, r17978, r17952, MPFR_RNDN);
        mpfr_fma(r17980, r17952, r17977, r17979, MPFR_RNDN);
        mpfr_mul(r17981, r17974, r17980, MPFR_RNDN);
        mpfr_mul(r17982, r17939, r17961, MPFR_RNDN);
        mpfr_div(r17983, r17982, r17943, MPFR_RNDN);
        mpfr_mul(r17984, r17983, r17952, MPFR_RNDN);
        mpfr_mul(r17985, r17984, r17957, MPFR_RNDN);
        mpfr_sub(r17986, r17981, r17985, MPFR_RNDN);
        mpfr_sub(r17987, r17972, r17986, MPFR_RNDN);
        mpfr_sub(r17988, r17935, r17951, MPFR_RNDN);
        mpfr_add(r17989, r17947, r17935, MPFR_RNDN);
        mpfr_log(r17990, r17989, MPFR_RNDN);
        mpfr_mul(r17991, r17939, r17955, MPFR_RNDN);
        mpfr_log(r17992, r17991, MPFR_RNDN);
        mpfr_fma(r17993, r17988, r17990, r17992, MPFR_RNDN);
        ;
        mpfr_add(r17995, r17935, r17994, MPFR_RNDN);
        mpfr_sub(r17996, r17946, r17951, MPFR_RNDN);
        mpfr_sub(r17997, r17995, r17996, MPFR_RNDN);
        mpfr_sub(r17998, r17993, r17997, MPFR_RNDN);
        mpfr_exp(r17999, r17998, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r18002, r17946, r17935, MPFR_RNDN);
        mpfr_sub(r18003, r18001, r18002, MPFR_RNDN);
        mpfr_div(r18004, r18000, r18003, MPFR_RNDN);
        ;
        mpfr_sub(r18006, r17935, r18005, MPFR_RNDN);
        mpfr_div(r18007, r17956, r18006, MPFR_RNDN);
        ;
        mpfr_add(r18009, r18007, r18008, MPFR_RNDN);
        mpfr_add(r18010, r18004, r18009, MPFR_RNDN);
        ;
        mpfr_sub(r18012, r17946, r17938, MPFR_RNDN);
        mpfr_sub(r18013, r17935, r18012, MPFR_RNDN);
        mpfr_div(r18014, r18011, r18013, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r18017, r17935, r17946, MPFR_RNDN);
        mpfr_add(r18018, r18016, r18017, MPFR_RNDN);
        mpfr_div(r18019, r18015, r18018, MPFR_RNDN);
        mpfr_add(r18020, r18014, r18019, MPFR_RNDN);
        mpfr_add(r18021, r18010, r18020, MPFR_RNDN);
        ;
        mpfr_sub(r18023, r17946, r17994, MPFR_RNDN);
        mpfr_sub(r18024, r17935, r18023, MPFR_RNDN);
        mpfr_div(r18025, r18022, r18024, MPFR_RNDN);
        ;
        ;
        mpfr_add(r18028, r18027, r18017, MPFR_RNDN);
        mpfr_div(r18029, r18026, r18028, MPFR_RNDN);
        mpfr_add(r18030, r18025, r18029, MPFR_RNDN);
        ;
        ;
        mpfr_add(r18033, r18017, r18032, MPFR_RNDN);
        mpfr_div(r18034, r18031, r18033, MPFR_RNDN);
        ;
        ;
        mpfr_add(r18037, r18036, r18017, MPFR_RNDN);
        mpfr_div(r18038, r18035, r18037, MPFR_RNDN);
        mpfr_add(r18039, r18034, r18038, MPFR_RNDN);
        mpfr_add(r18040, r18030, r18039, MPFR_RNDN);
        mpfr_add(r18041, r18021, r18040, MPFR_RNDN);
        mpfr_mul(r18042, r17999, r18041, MPFR_RNDN);
        if (mpfr_get_si(r17937, MPFR_RNDN)) { mpfr_set(r18043, r17987, MPFR_RNDN); } else { mpfr_set(r18043, r18042, MPFR_RNDN); };
        return mpfr_get_d(r18043, MPFR_RNDN);
}

