#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 r17931 = atan2(1.0, 0.0);
        float r17932 = z;
        float r17933 = r17931 * r17932;
        float r17934 = sin(r17933);
        float r17935 = r17931 / r17934;
        float r17936 = 2.0f;
        float r17937 = r17931 * r17936;
        float r17938 = sqrt(r17937);
        float r17939 = 1.0f;
        float r17940 = r17939 - r17932;
        float r17941 = r17940 - r17939;
        float r17942 = 7.0f;
        float r17943 = r17941 + r17942;
        float r17944 = 0.5f;
        float r17945 = r17943 + r17944;
        float r17946 = r17941 + r17944;
        float r17947 = pow(r17945, r17946);
        float r17948 = r17938 * r17947;
        float r17949 = -r17945;
        float r17950 = exp(r17949);
        float r17951 = r17948 * r17950;
        float r17952 = 0.9999999999998099f;
        float r17953 = 676.5203681218851f;
        float r17954 = r17941 + r17939;
        float r17955 = r17953 / r17954;
        float r17956 = r17952 + r17955;
        float r17957 = -1259.1392167224028f;
        float r17958 = r17941 + r17936;
        float r17959 = r17957 / r17958;
        float r17960 = r17956 + r17959;
        float r17961 = 771.3234287776531f;
        float r17962 = 3.0f;
        float r17963 = r17941 + r17962;
        float r17964 = r17961 / r17963;
        float r17965 = r17960 + r17964;
        float r17966 = -176.6150291621406f;
        float r17967 = 4.0f;
        float r17968 = r17941 + r17967;
        float r17969 = r17966 / r17968;
        float r17970 = r17965 + r17969;
        float r17971 = 12.507343278686905f;
        float r17972 = 5.0f;
        float r17973 = r17941 + r17972;
        float r17974 = r17971 / r17973;
        float r17975 = r17970 + r17974;
        float r17976 = -0.13857109526572012f;
        float r17977 = 6.0f;
        float r17978 = r17941 + r17977;
        float r17979 = r17976 / r17978;
        float r17980 = r17975 + r17979;
        float r17981 = 9.984369578019572e-06f;
        float r17982 = r17981 / r17943;
        float r17983 = r17980 + r17982;
        float r17984 = 1.5056327351493116e-07f;
        float r17985 = 8.0f;
        float r17986 = r17941 + r17985;
        float r17987 = r17984 / r17986;
        float r17988 = r17983 + r17987;
        float r17989 = r17951 * r17988;
        float r17990 = r17935 * r17989;
        return r17990;
}

double f_id(double z) {
        double r17991 = atan2(1.0, 0.0);
        double r17992 = z;
        double r17993 = r17991 * r17992;
        double r17994 = sin(r17993);
        double r17995 = r17991 / r17994;
        double r17996 = 2.0;
        double r17997 = r17991 * r17996;
        double r17998 = sqrt(r17997);
        double r17999 = 1.0;
        double r18000 = r17999 - r17992;
        double r18001 = r18000 - r17999;
        double r18002 = 7.0;
        double r18003 = r18001 + r18002;
        double r18004 = 0.5;
        double r18005 = r18003 + r18004;
        double r18006 = r18001 + r18004;
        double r18007 = pow(r18005, r18006);
        double r18008 = r17998 * r18007;
        double r18009 = -r18005;
        double r18010 = exp(r18009);
        double r18011 = r18008 * r18010;
        double r18012 = 0.9999999999998099;
        double r18013 = 676.5203681218851;
        double r18014 = r18001 + r17999;
        double r18015 = r18013 / r18014;
        double r18016 = r18012 + r18015;
        double r18017 = -1259.1392167224028;
        double r18018 = r18001 + r17996;
        double r18019 = r18017 / r18018;
        double r18020 = r18016 + r18019;
        double r18021 = 771.3234287776531;
        double r18022 = 3.0;
        double r18023 = r18001 + r18022;
        double r18024 = r18021 / r18023;
        double r18025 = r18020 + r18024;
        double r18026 = -176.6150291621406;
        double r18027 = 4.0;
        double r18028 = r18001 + r18027;
        double r18029 = r18026 / r18028;
        double r18030 = r18025 + r18029;
        double r18031 = 12.507343278686905;
        double r18032 = 5.0;
        double r18033 = r18001 + r18032;
        double r18034 = r18031 / r18033;
        double r18035 = r18030 + r18034;
        double r18036 = -0.13857109526572012;
        double r18037 = 6.0;
        double r18038 = r18001 + r18037;
        double r18039 = r18036 / r18038;
        double r18040 = r18035 + r18039;
        double r18041 = 9.984369578019572e-06;
        double r18042 = r18041 / r18003;
        double r18043 = r18040 + r18042;
        double r18044 = 1.5056327351493116e-07;
        double r18045 = 8.0;
        double r18046 = r18001 + r18045;
        double r18047 = r18044 / r18046;
        double r18048 = r18043 + r18047;
        double r18049 = r18011 * r18048;
        double r18050 = r17995 * r18049;
        return r18050;
}


double f_of(float z) {
        float r18051 = atan2(1.0, 0.0);
        float r18052 = sqrt(r18051);
        float r18053 = 2.0f;
        float r18054 = sqrt(r18053);
        float r18055 = r18052 * r18054;
        float r18056 = z;
        float r18057 = r18051 * r18056;
        float r18058 = sin(r18057);
        float r18059 = r18058 / r18051;
        float r18060 = r18055 / r18059;
        float r18061 = 7.0f;
        float r18062 = 0.5f;
        float r18063 = r18061 + r18062;
        float r18064 = -r18056;
        float r18065 = r18063 + r18064;
        float r18066 = exp(r18065);
        float r18067 = r18062 - r18056;
        float r18068 = pow(r18065, r18067);
        float r18069 = r18066 / r18068;
        float r18070 = r18060 / r18069;
        float r18071 = 771.3234287776531f;
        float r18072 = 3.0f;
        float r18073 = r18064 + r18072;
        float r18074 = r18071 / r18073;
        float r18075 = -1259.1392167224028f;
        float r18076 = r18053 + r18064;
        float r18077 = r18075 / r18076;
        float r18078 = 676.5203681218851f;
        float r18079 = 1.0f;
        float r18080 = r18079 - r18056;
        float r18081 = r18078 / r18080;
        float r18082 = 0.9999999999998099f;
        float r18083 = r18081 + r18082;
        float r18084 = r18077 - r18083;
        float r18085 = r18074 + r18084;
        float r18086 = r18053 - r18056;
        float r18087 = r18075 / r18086;
        float r18088 = r18087 + r18074;
        float r18089 = r18088 - r18083;
        float r18090 = 4.0f;
        float r18091 = r18090 - r18056;
        float r18092 = 5.0f;
        float r18093 = r18092 - r18056;
        float r18094 = r18091 * r18093;
        float r18095 = -0.13857109526572012f;
        float r18096 = 6.0f;
        float r18097 = r18096 - r18056;
        float r18098 = r18095 / r18097;
        float r18099 = 9.984369578019572e-06f;
        float r18100 = r18061 + r18064;
        float r18101 = r18099 / r18100;
        float r18102 = r18098 - r18101;
        float r18103 = r18094 * r18102;
        float r18104 = r18089 * r18103;
        float r18105 = r18085 / r18104;
        float r18106 = r18074 + r18077;
        float r18107 = r18106 + r18083;
        float r18108 = r18107 * r18103;
        float r18109 = -176.6150291621406f;
        float r18110 = r18109 * r18093;
        float r18111 = 12.507343278686905f;
        float r18112 = r18111 * r18091;
        float r18113 = r18110 + r18112;
        float r18114 = r18101 + r18098;
        float r18115 = r18114 * r18094;
        float r18116 = r18113 + r18115;
        float r18117 = r18102 * r18116;
        float r18118 = r18108 + r18117;
        float r18119 = r18105 * r18118;
        float r18120 = 1.5056327351493116e-07f;
        float r18121 = 8.0f;
        float r18122 = r18121 - r18056;
        float r18123 = r18120 / r18122;
        float r18124 = r18119 + r18123;
        float r18125 = r18070 * r18124;
        return r18125;
}

double f_od(double z) {
        double r18126 = atan2(1.0, 0.0);
        double r18127 = sqrt(r18126);
        double r18128 = 2.0;
        double r18129 = sqrt(r18128);
        double r18130 = r18127 * r18129;
        double r18131 = z;
        double r18132 = r18126 * r18131;
        double r18133 = sin(r18132);
        double r18134 = r18133 / r18126;
        double r18135 = r18130 / r18134;
        double r18136 = 7.0;
        double r18137 = 0.5;
        double r18138 = r18136 + r18137;
        double r18139 = -r18131;
        double r18140 = r18138 + r18139;
        double r18141 = exp(r18140);
        double r18142 = r18137 - r18131;
        double r18143 = pow(r18140, r18142);
        double r18144 = r18141 / r18143;
        double r18145 = r18135 / r18144;
        double r18146 = 771.3234287776531;
        double r18147 = 3.0;
        double r18148 = r18139 + r18147;
        double r18149 = r18146 / r18148;
        double r18150 = -1259.1392167224028;
        double r18151 = r18128 + r18139;
        double r18152 = r18150 / r18151;
        double r18153 = 676.5203681218851;
        double r18154 = 1.0;
        double r18155 = r18154 - r18131;
        double r18156 = r18153 / r18155;
        double r18157 = 0.9999999999998099;
        double r18158 = r18156 + r18157;
        double r18159 = r18152 - r18158;
        double r18160 = r18149 + r18159;
        double r18161 = r18128 - r18131;
        double r18162 = r18150 / r18161;
        double r18163 = r18162 + r18149;
        double r18164 = r18163 - r18158;
        double r18165 = 4.0;
        double r18166 = r18165 - r18131;
        double r18167 = 5.0;
        double r18168 = r18167 - r18131;
        double r18169 = r18166 * r18168;
        double r18170 = -0.13857109526572012;
        double r18171 = 6.0;
        double r18172 = r18171 - r18131;
        double r18173 = r18170 / r18172;
        double r18174 = 9.984369578019572e-06;
        double r18175 = r18136 + r18139;
        double r18176 = r18174 / r18175;
        double r18177 = r18173 - r18176;
        double r18178 = r18169 * r18177;
        double r18179 = r18164 * r18178;
        double r18180 = r18160 / r18179;
        double r18181 = r18149 + r18152;
        double r18182 = r18181 + r18158;
        double r18183 = r18182 * r18178;
        double r18184 = -176.6150291621406;
        double r18185 = r18184 * r18168;
        double r18186 = 12.507343278686905;
        double r18187 = r18186 * r18166;
        double r18188 = r18185 + r18187;
        double r18189 = r18176 + r18173;
        double r18190 = r18189 * r18169;
        double r18191 = r18188 + r18190;
        double r18192 = r18177 * r18191;
        double r18193 = r18183 + r18192;
        double r18194 = r18180 * r18193;
        double r18195 = 1.5056327351493116e-07;
        double r18196 = 8.0;
        double r18197 = r18196 - r18131;
        double r18198 = r18195 / r18197;
        double r18199 = r18194 + r18198;
        double r18200 = r18145 * r18199;
        return r18200;
}

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 r18201, r18202, r18203, r18204, r18205, r18206, r18207, r18208, r18209, r18210, r18211, r18212, r18213, r18214, r18215, r18216, r18217, r18218, r18219, r18220, r18221, r18222, r18223, r18224, r18225, r18226, r18227, r18228, r18229, r18230, r18231, r18232, r18233, r18234, r18235, r18236, r18237, r18238, r18239, r18240, r18241, r18242, r18243, r18244, r18245, r18246, r18247, r18248, r18249, r18250, r18251, r18252, r18253, r18254, r18255, r18256, r18257, r18258, r18259, r18260;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r18201);
        mpfr_init(r18202);
        mpfr_init(r18203);
        mpfr_init(r18204);
        mpfr_init(r18205);
        mpfr_init_set_str(r18206, "2", 10, MPFR_RNDN);
        mpfr_init(r18207);
        mpfr_init(r18208);
        mpfr_init_set_str(r18209, "1", 10, MPFR_RNDN);
        mpfr_init(r18210);
        mpfr_init(r18211);
        mpfr_init_set_str(r18212, "7", 10, MPFR_RNDN);
        mpfr_init(r18213);
        mpfr_init_set_str(r18214, "0.5", 10, MPFR_RNDN);
        mpfr_init(r18215);
        mpfr_init(r18216);
        mpfr_init(r18217);
        mpfr_init(r18218);
        mpfr_init(r18219);
        mpfr_init(r18220);
        mpfr_init(r18221);
        mpfr_init_set_str(r18222, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r18223, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r18224);
        mpfr_init(r18225);
        mpfr_init(r18226);
        mpfr_init_set_str(r18227, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r18228);
        mpfr_init(r18229);
        mpfr_init(r18230);
        mpfr_init_set_str(r18231, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r18232, "3", 10, MPFR_RNDN);
        mpfr_init(r18233);
        mpfr_init(r18234);
        mpfr_init(r18235);
        mpfr_init_set_str(r18236, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r18237, "4", 10, MPFR_RNDN);
        mpfr_init(r18238);
        mpfr_init(r18239);
        mpfr_init(r18240);
        mpfr_init_set_str(r18241, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r18242, "5", 10, MPFR_RNDN);
        mpfr_init(r18243);
        mpfr_init(r18244);
        mpfr_init(r18245);
        mpfr_init_set_str(r18246, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r18247, "6", 10, MPFR_RNDN);
        mpfr_init(r18248);
        mpfr_init(r18249);
        mpfr_init(r18250);
        mpfr_init_set_str(r18251, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r18252);
        mpfr_init(r18253);
        mpfr_init_set_str(r18254, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r18255, "8", 10, MPFR_RNDN);
        mpfr_init(r18256);
        mpfr_init(r18257);
        mpfr_init(r18258);
        mpfr_init(r18259);
        mpfr_init(r18260);
}

double f_im(double z) {
        mpfr_const_pi(r18201, MPFR_RNDN);
        mpfr_set_d(r18202, z, MPFR_RNDN);
        mpfr_mul(r18203, r18201, r18202, MPFR_RNDN);
        mpfr_sin(r18204, r18203, MPFR_RNDN);
        mpfr_div(r18205, r18201, r18204, MPFR_RNDN);
        ;
        mpfr_mul(r18207, r18201, r18206, MPFR_RNDN);
        mpfr_sqrt(r18208, r18207, MPFR_RNDN);
        ;
        mpfr_sub(r18210, r18209, r18202, MPFR_RNDN);
        mpfr_sub(r18211, r18210, r18209, MPFR_RNDN);
        ;
        mpfr_add(r18213, r18211, r18212, MPFR_RNDN);
        ;
        mpfr_add(r18215, r18213, r18214, MPFR_RNDN);
        mpfr_add(r18216, r18211, r18214, MPFR_RNDN);
        mpfr_pow(r18217, r18215, r18216, MPFR_RNDN);
        mpfr_mul(r18218, r18208, r18217, MPFR_RNDN);
        mpfr_neg(r18219, r18215, MPFR_RNDN);
        mpfr_exp(r18220, r18219, MPFR_RNDN);
        mpfr_mul(r18221, r18218, r18220, MPFR_RNDN);
        ;
        ;
        mpfr_add(r18224, r18211, r18209, MPFR_RNDN);
        mpfr_div(r18225, r18223, r18224, MPFR_RNDN);
        mpfr_add(r18226, r18222, r18225, MPFR_RNDN);
        ;
        mpfr_add(r18228, r18211, r18206, MPFR_RNDN);
        mpfr_div(r18229, r18227, r18228, MPFR_RNDN);
        mpfr_add(r18230, r18226, r18229, MPFR_RNDN);
        ;
        ;
        mpfr_add(r18233, r18211, r18232, MPFR_RNDN);
        mpfr_div(r18234, r18231, r18233, MPFR_RNDN);
        mpfr_add(r18235, r18230, r18234, MPFR_RNDN);
        ;
        ;
        mpfr_add(r18238, r18211, r18237, MPFR_RNDN);
        mpfr_div(r18239, r18236, r18238, MPFR_RNDN);
        mpfr_add(r18240, r18235, r18239, MPFR_RNDN);
        ;
        ;
        mpfr_add(r18243, r18211, r18242, MPFR_RNDN);
        mpfr_div(r18244, r18241, r18243, MPFR_RNDN);
        mpfr_add(r18245, r18240, r18244, MPFR_RNDN);
        ;
        ;
        mpfr_add(r18248, r18211, r18247, MPFR_RNDN);
        mpfr_div(r18249, r18246, r18248, MPFR_RNDN);
        mpfr_add(r18250, r18245, r18249, MPFR_RNDN);
        ;
        mpfr_div(r18252, r18251, r18213, MPFR_RNDN);
        mpfr_add(r18253, r18250, r18252, MPFR_RNDN);
        ;
        ;
        mpfr_add(r18256, r18211, r18255, MPFR_RNDN);
        mpfr_div(r18257, r18254, r18256, MPFR_RNDN);
        mpfr_add(r18258, r18253, r18257, MPFR_RNDN);
        mpfr_mul(r18259, r18221, r18258, MPFR_RNDN);
        mpfr_mul(r18260, r18205, r18259, MPFR_RNDN);
        return mpfr_get_d(r18260, MPFR_RNDN);
}

static mpfr_t r18261, r18262, r18263, r18264, r18265, r18266, r18267, r18268, r18269, r18270, r18271, r18272, r18273, r18274, r18275, r18276, r18277, r18278, r18279, r18280, r18281, r18282, r18283, r18284, r18285, r18286, r18287, r18288, r18289, r18290, r18291, r18292, r18293, r18294, r18295, r18296, r18297, r18298, r18299, r18300, r18301, r18302, r18303, r18304, r18305, r18306, r18307, r18308, r18309, r18310, r18311, r18312, r18313, r18314, r18315, r18316, r18317, r18318, r18319, r18320, r18321, r18322, r18323, r18324, r18325, r18326, r18327, r18328, r18329, r18330, r18331, r18332, r18333, r18334, r18335;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r18261);
        mpfr_init(r18262);
        mpfr_init_set_str(r18263, "2", 10, MPFR_RNDN);
        mpfr_init(r18264);
        mpfr_init(r18265);
        mpfr_init(r18266);
        mpfr_init(r18267);
        mpfr_init(r18268);
        mpfr_init(r18269);
        mpfr_init(r18270);
        mpfr_init_set_str(r18271, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r18272, "0.5", 10, MPFR_RNDN);
        mpfr_init(r18273);
        mpfr_init(r18274);
        mpfr_init(r18275);
        mpfr_init(r18276);
        mpfr_init(r18277);
        mpfr_init(r18278);
        mpfr_init(r18279);
        mpfr_init(r18280);
        mpfr_init_set_str(r18281, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r18282, "3", 10, MPFR_RNDN);
        mpfr_init(r18283);
        mpfr_init(r18284);
        mpfr_init_set_str(r18285, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r18286);
        mpfr_init(r18287);
        mpfr_init_set_str(r18288, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init_set_str(r18289, "1", 10, MPFR_RNDN);
        mpfr_init(r18290);
        mpfr_init(r18291);
        mpfr_init_set_str(r18292, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init(r18293);
        mpfr_init(r18294);
        mpfr_init(r18295);
        mpfr_init(r18296);
        mpfr_init(r18297);
        mpfr_init(r18298);
        mpfr_init(r18299);
        mpfr_init_set_str(r18300, "4", 10, MPFR_RNDN);
        mpfr_init(r18301);
        mpfr_init_set_str(r18302, "5", 10, MPFR_RNDN);
        mpfr_init(r18303);
        mpfr_init(r18304);
        mpfr_init_set_str(r18305, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r18306, "6", 10, MPFR_RNDN);
        mpfr_init(r18307);
        mpfr_init(r18308);
        mpfr_init_set_str(r18309, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r18310);
        mpfr_init(r18311);
        mpfr_init(r18312);
        mpfr_init(r18313);
        mpfr_init(r18314);
        mpfr_init(r18315);
        mpfr_init(r18316);
        mpfr_init(r18317);
        mpfr_init(r18318);
        mpfr_init_set_str(r18319, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init(r18320);
        mpfr_init_set_str(r18321, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init(r18322);
        mpfr_init(r18323);
        mpfr_init(r18324);
        mpfr_init(r18325);
        mpfr_init(r18326);
        mpfr_init(r18327);
        mpfr_init(r18328);
        mpfr_init(r18329);
        mpfr_init_set_str(r18330, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r18331, "8", 10, MPFR_RNDN);
        mpfr_init(r18332);
        mpfr_init(r18333);
        mpfr_init(r18334);
        mpfr_init(r18335);
}

double f_fm(double z) {
        mpfr_const_pi(r18261, MPFR_RNDN);
        mpfr_sqrt(r18262, r18261, MPFR_RNDN);
        ;
        mpfr_sqrt(r18264, r18263, MPFR_RNDN);
        mpfr_mul(r18265, r18262, r18264, MPFR_RNDN);
        mpfr_set_d(r18266, z, MPFR_RNDN);
        mpfr_mul(r18267, r18261, r18266, MPFR_RNDN);
        mpfr_sin(r18268, r18267, MPFR_RNDN);
        mpfr_div(r18269, r18268, r18261, MPFR_RNDN);
        mpfr_div(r18270, r18265, r18269, MPFR_RNDN);
        ;
        ;
        mpfr_add(r18273, r18271, r18272, MPFR_RNDN);
        mpfr_neg(r18274, r18266, MPFR_RNDN);
        mpfr_add(r18275, r18273, r18274, MPFR_RNDN);
        mpfr_exp(r18276, r18275, MPFR_RNDN);
        mpfr_sub(r18277, r18272, r18266, MPFR_RNDN);
        mpfr_pow(r18278, r18275, r18277, MPFR_RNDN);
        mpfr_div(r18279, r18276, r18278, MPFR_RNDN);
        mpfr_div(r18280, r18270, r18279, MPFR_RNDN);
        ;
        ;
        mpfr_add(r18283, r18274, r18282, MPFR_RNDN);
        mpfr_div(r18284, r18281, r18283, MPFR_RNDN);
        ;
        mpfr_add(r18286, r18263, r18274, MPFR_RNDN);
        mpfr_div(r18287, r18285, r18286, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r18290, r18289, r18266, MPFR_RNDN);
        mpfr_div(r18291, r18288, r18290, MPFR_RNDN);
        ;
        mpfr_add(r18293, r18291, r18292, MPFR_RNDN);
        mpfr_sub(r18294, r18287, r18293, MPFR_RNDN);
        mpfr_add(r18295, r18284, r18294, MPFR_RNDN);
        mpfr_sub(r18296, r18263, r18266, MPFR_RNDN);
        mpfr_div(r18297, r18285, r18296, MPFR_RNDN);
        mpfr_add(r18298, r18297, r18284, MPFR_RNDN);
        mpfr_sub(r18299, r18298, r18293, MPFR_RNDN);
        ;
        mpfr_sub(r18301, r18300, r18266, MPFR_RNDN);
        ;
        mpfr_sub(r18303, r18302, r18266, MPFR_RNDN);
        mpfr_mul(r18304, r18301, r18303, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r18307, r18306, r18266, MPFR_RNDN);
        mpfr_div(r18308, r18305, r18307, MPFR_RNDN);
        ;
        mpfr_add(r18310, r18271, r18274, MPFR_RNDN);
        mpfr_div(r18311, r18309, r18310, MPFR_RNDN);
        mpfr_sub(r18312, r18308, r18311, MPFR_RNDN);
        mpfr_mul(r18313, r18304, r18312, MPFR_RNDN);
        mpfr_mul(r18314, r18299, r18313, MPFR_RNDN);
        mpfr_div(r18315, r18295, r18314, MPFR_RNDN);
        mpfr_add(r18316, r18284, r18287, MPFR_RNDN);
        mpfr_add(r18317, r18316, r18293, MPFR_RNDN);
        mpfr_mul(r18318, r18317, r18313, MPFR_RNDN);
        ;
        mpfr_mul(r18320, r18319, r18303, MPFR_RNDN);
        ;
        mpfr_mul(r18322, r18321, r18301, MPFR_RNDN);
        mpfr_add(r18323, r18320, r18322, MPFR_RNDN);
        mpfr_add(r18324, r18311, r18308, MPFR_RNDN);
        mpfr_mul(r18325, r18324, r18304, MPFR_RNDN);
        mpfr_add(r18326, r18323, r18325, MPFR_RNDN);
        mpfr_mul(r18327, r18312, r18326, MPFR_RNDN);
        mpfr_add(r18328, r18318, r18327, MPFR_RNDN);
        mpfr_mul(r18329, r18315, r18328, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r18332, r18331, r18266, MPFR_RNDN);
        mpfr_div(r18333, r18330, r18332, MPFR_RNDN);
        mpfr_add(r18334, r18329, r18333, MPFR_RNDN);
        mpfr_mul(r18335, r18280, r18334, MPFR_RNDN);
        return mpfr_get_d(r18335, MPFR_RNDN);
}

static mpfr_t r18336, r18337, r18338, r18339, r18340, r18341, r18342, r18343, r18344, r18345, r18346, r18347, r18348, r18349, r18350, r18351, r18352, r18353, r18354, r18355, r18356, r18357, r18358, r18359, r18360, r18361, r18362, r18363, r18364, r18365, r18366, r18367, r18368, r18369, r18370, r18371, r18372, r18373, r18374, r18375, r18376, r18377, r18378, r18379, r18380, r18381, r18382, r18383, r18384, r18385, r18386, r18387, r18388, r18389, r18390, r18391, r18392, r18393, r18394, r18395, r18396, r18397, r18398, r18399, r18400, r18401, r18402, r18403, r18404, r18405, r18406, r18407, r18408, r18409, r18410;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r18336);
        mpfr_init(r18337);
        mpfr_init_set_str(r18338, "2", 10, MPFR_RNDN);
        mpfr_init(r18339);
        mpfr_init(r18340);
        mpfr_init(r18341);
        mpfr_init(r18342);
        mpfr_init(r18343);
        mpfr_init(r18344);
        mpfr_init(r18345);
        mpfr_init_set_str(r18346, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r18347, "0.5", 10, MPFR_RNDN);
        mpfr_init(r18348);
        mpfr_init(r18349);
        mpfr_init(r18350);
        mpfr_init(r18351);
        mpfr_init(r18352);
        mpfr_init(r18353);
        mpfr_init(r18354);
        mpfr_init(r18355);
        mpfr_init_set_str(r18356, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r18357, "3", 10, MPFR_RNDN);
        mpfr_init(r18358);
        mpfr_init(r18359);
        mpfr_init_set_str(r18360, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r18361);
        mpfr_init(r18362);
        mpfr_init_set_str(r18363, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init_set_str(r18364, "1", 10, MPFR_RNDN);
        mpfr_init(r18365);
        mpfr_init(r18366);
        mpfr_init_set_str(r18367, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init(r18368);
        mpfr_init(r18369);
        mpfr_init(r18370);
        mpfr_init(r18371);
        mpfr_init(r18372);
        mpfr_init(r18373);
        mpfr_init(r18374);
        mpfr_init_set_str(r18375, "4", 10, MPFR_RNDN);
        mpfr_init(r18376);
        mpfr_init_set_str(r18377, "5", 10, MPFR_RNDN);
        mpfr_init(r18378);
        mpfr_init(r18379);
        mpfr_init_set_str(r18380, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r18381, "6", 10, MPFR_RNDN);
        mpfr_init(r18382);
        mpfr_init(r18383);
        mpfr_init_set_str(r18384, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r18385);
        mpfr_init(r18386);
        mpfr_init(r18387);
        mpfr_init(r18388);
        mpfr_init(r18389);
        mpfr_init(r18390);
        mpfr_init(r18391);
        mpfr_init(r18392);
        mpfr_init(r18393);
        mpfr_init_set_str(r18394, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init(r18395);
        mpfr_init_set_str(r18396, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init(r18397);
        mpfr_init(r18398);
        mpfr_init(r18399);
        mpfr_init(r18400);
        mpfr_init(r18401);
        mpfr_init(r18402);
        mpfr_init(r18403);
        mpfr_init(r18404);
        mpfr_init_set_str(r18405, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r18406, "8", 10, MPFR_RNDN);
        mpfr_init(r18407);
        mpfr_init(r18408);
        mpfr_init(r18409);
        mpfr_init(r18410);
}

double f_dm(double z) {
        mpfr_const_pi(r18336, MPFR_RNDN);
        mpfr_sqrt(r18337, r18336, MPFR_RNDN);
        ;
        mpfr_sqrt(r18339, r18338, MPFR_RNDN);
        mpfr_mul(r18340, r18337, r18339, MPFR_RNDN);
        mpfr_set_d(r18341, z, MPFR_RNDN);
        mpfr_mul(r18342, r18336, r18341, MPFR_RNDN);
        mpfr_sin(r18343, r18342, MPFR_RNDN);
        mpfr_div(r18344, r18343, r18336, MPFR_RNDN);
        mpfr_div(r18345, r18340, r18344, MPFR_RNDN);
        ;
        ;
        mpfr_add(r18348, r18346, r18347, MPFR_RNDN);
        mpfr_neg(r18349, r18341, MPFR_RNDN);
        mpfr_add(r18350, r18348, r18349, MPFR_RNDN);
        mpfr_exp(r18351, r18350, MPFR_RNDN);
        mpfr_sub(r18352, r18347, r18341, MPFR_RNDN);
        mpfr_pow(r18353, r18350, r18352, MPFR_RNDN);
        mpfr_div(r18354, r18351, r18353, MPFR_RNDN);
        mpfr_div(r18355, r18345, r18354, MPFR_RNDN);
        ;
        ;
        mpfr_add(r18358, r18349, r18357, MPFR_RNDN);
        mpfr_div(r18359, r18356, r18358, MPFR_RNDN);
        ;
        mpfr_add(r18361, r18338, r18349, MPFR_RNDN);
        mpfr_div(r18362, r18360, r18361, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r18365, r18364, r18341, MPFR_RNDN);
        mpfr_div(r18366, r18363, r18365, MPFR_RNDN);
        ;
        mpfr_add(r18368, r18366, r18367, MPFR_RNDN);
        mpfr_sub(r18369, r18362, r18368, MPFR_RNDN);
        mpfr_add(r18370, r18359, r18369, MPFR_RNDN);
        mpfr_sub(r18371, r18338, r18341, MPFR_RNDN);
        mpfr_div(r18372, r18360, r18371, MPFR_RNDN);
        mpfr_add(r18373, r18372, r18359, MPFR_RNDN);
        mpfr_sub(r18374, r18373, r18368, MPFR_RNDN);
        ;
        mpfr_sub(r18376, r18375, r18341, MPFR_RNDN);
        ;
        mpfr_sub(r18378, r18377, r18341, MPFR_RNDN);
        mpfr_mul(r18379, r18376, r18378, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r18382, r18381, r18341, MPFR_RNDN);
        mpfr_div(r18383, r18380, r18382, MPFR_RNDN);
        ;
        mpfr_add(r18385, r18346, r18349, MPFR_RNDN);
        mpfr_div(r18386, r18384, r18385, MPFR_RNDN);
        mpfr_sub(r18387, r18383, r18386, MPFR_RNDN);
        mpfr_mul(r18388, r18379, r18387, MPFR_RNDN);
        mpfr_mul(r18389, r18374, r18388, MPFR_RNDN);
        mpfr_div(r18390, r18370, r18389, MPFR_RNDN);
        mpfr_add(r18391, r18359, r18362, MPFR_RNDN);
        mpfr_add(r18392, r18391, r18368, MPFR_RNDN);
        mpfr_mul(r18393, r18392, r18388, MPFR_RNDN);
        ;
        mpfr_mul(r18395, r18394, r18378, MPFR_RNDN);
        ;
        mpfr_mul(r18397, r18396, r18376, MPFR_RNDN);
        mpfr_add(r18398, r18395, r18397, MPFR_RNDN);
        mpfr_add(r18399, r18386, r18383, MPFR_RNDN);
        mpfr_mul(r18400, r18399, r18379, MPFR_RNDN);
        mpfr_add(r18401, r18398, r18400, MPFR_RNDN);
        mpfr_mul(r18402, r18387, r18401, MPFR_RNDN);
        mpfr_add(r18403, r18393, r18402, MPFR_RNDN);
        mpfr_mul(r18404, r18390, r18403, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r18407, r18406, r18341, MPFR_RNDN);
        mpfr_div(r18408, r18405, r18407, MPFR_RNDN);
        mpfr_add(r18409, r18404, r18408, MPFR_RNDN);
        mpfr_mul(r18410, r18355, r18409, MPFR_RNDN);
        return mpfr_get_d(r18410, MPFR_RNDN);
}

