#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 r56507782 = atan2(1.0, 0.0);
        float r56507783 = z;
        float r56507784 = r56507782 * r56507783;
        float r56507785 = sin(r56507784);
        float r56507786 = r56507782 / r56507785;
        float r56507787 = 2;
        float r56507788 = r56507782 * r56507787;
        float r56507789 = sqrt(r56507788);
        float r56507790 = 1;
        float r56507791 = r56507790 - r56507783;
        float r56507792 = r56507791 - r56507790;
        float r56507793 = 7;
        float r56507794 = r56507792 + r56507793;
        float r56507795 = 0.5;
        float r56507796 = r56507794 + r56507795;
        float r56507797 = r56507792 + r56507795;
        float r56507798 = pow(r56507796, r56507797);
        float r56507799 = r56507789 * r56507798;
        float r56507800 = -r56507796;
        float r56507801 = exp(r56507800);
        float r56507802 = r56507799 * r56507801;
        float r56507803 = 0.9999999999998099;
        float r56507804 = 676.5203681218851;
        float r56507805 = r56507792 + r56507790;
        float r56507806 = r56507804 / r56507805;
        float r56507807 = r56507803 + r56507806;
        float r56507808 = -1259.1392167224028;
        float r56507809 = r56507792 + r56507787;
        float r56507810 = r56507808 / r56507809;
        float r56507811 = r56507807 + r56507810;
        float r56507812 = 771.3234287776531;
        float r56507813 = 3;
        float r56507814 = r56507792 + r56507813;
        float r56507815 = r56507812 / r56507814;
        float r56507816 = r56507811 + r56507815;
        float r56507817 = -176.6150291621406;
        float r56507818 = 4;
        float r56507819 = r56507792 + r56507818;
        float r56507820 = r56507817 / r56507819;
        float r56507821 = r56507816 + r56507820;
        float r56507822 = 12.507343278686905;
        float r56507823 = 5;
        float r56507824 = r56507792 + r56507823;
        float r56507825 = r56507822 / r56507824;
        float r56507826 = r56507821 + r56507825;
        float r56507827 = -0.13857109526572012;
        float r56507828 = 6;
        float r56507829 = r56507792 + r56507828;
        float r56507830 = r56507827 / r56507829;
        float r56507831 = r56507826 + r56507830;
        float r56507832 = 9.984369578019572e-06;
        float r56507833 = r56507832 / r56507794;
        float r56507834 = r56507831 + r56507833;
        float r56507835 = 1.5056327351493116e-07;
        float r56507836 = 8;
        float r56507837 = r56507792 + r56507836;
        float r56507838 = r56507835 / r56507837;
        float r56507839 = r56507834 + r56507838;
        float r56507840 = r56507802 * r56507839;
        float r56507841 = r56507786 * r56507840;
        return r56507841;
}

double f_id(double z) {
        double r56507842 = atan2(1.0, 0.0);
        double r56507843 = z;
        double r56507844 = r56507842 * r56507843;
        double r56507845 = sin(r56507844);
        double r56507846 = r56507842 / r56507845;
        double r56507847 = 2;
        double r56507848 = r56507842 * r56507847;
        double r56507849 = sqrt(r56507848);
        double r56507850 = 1;
        double r56507851 = r56507850 - r56507843;
        double r56507852 = r56507851 - r56507850;
        double r56507853 = 7;
        double r56507854 = r56507852 + r56507853;
        double r56507855 = 0.5;
        double r56507856 = r56507854 + r56507855;
        double r56507857 = r56507852 + r56507855;
        double r56507858 = pow(r56507856, r56507857);
        double r56507859 = r56507849 * r56507858;
        double r56507860 = -r56507856;
        double r56507861 = exp(r56507860);
        double r56507862 = r56507859 * r56507861;
        double r56507863 = 0.9999999999998099;
        double r56507864 = 676.5203681218851;
        double r56507865 = r56507852 + r56507850;
        double r56507866 = r56507864 / r56507865;
        double r56507867 = r56507863 + r56507866;
        double r56507868 = -1259.1392167224028;
        double r56507869 = r56507852 + r56507847;
        double r56507870 = r56507868 / r56507869;
        double r56507871 = r56507867 + r56507870;
        double r56507872 = 771.3234287776531;
        double r56507873 = 3;
        double r56507874 = r56507852 + r56507873;
        double r56507875 = r56507872 / r56507874;
        double r56507876 = r56507871 + r56507875;
        double r56507877 = -176.6150291621406;
        double r56507878 = 4;
        double r56507879 = r56507852 + r56507878;
        double r56507880 = r56507877 / r56507879;
        double r56507881 = r56507876 + r56507880;
        double r56507882 = 12.507343278686905;
        double r56507883 = 5;
        double r56507884 = r56507852 + r56507883;
        double r56507885 = r56507882 / r56507884;
        double r56507886 = r56507881 + r56507885;
        double r56507887 = -0.13857109526572012;
        double r56507888 = 6;
        double r56507889 = r56507852 + r56507888;
        double r56507890 = r56507887 / r56507889;
        double r56507891 = r56507886 + r56507890;
        double r56507892 = 9.984369578019572e-06;
        double r56507893 = r56507892 / r56507854;
        double r56507894 = r56507891 + r56507893;
        double r56507895 = 1.5056327351493116e-07;
        double r56507896 = 8;
        double r56507897 = r56507852 + r56507896;
        double r56507898 = r56507895 / r56507897;
        double r56507899 = r56507894 + r56507898;
        double r56507900 = r56507862 * r56507899;
        double r56507901 = r56507846 * r56507900;
        return r56507901;
}


double f_of(float z) {
        float r56507902 = atan2(1.0, 0.0);
        float r56507903 = r56507902 + r56507902;
        float r56507904 = cbrt(r56507903);
        float r56507905 = fabs(r56507904);
        float r56507906 = sqrt(r56507904);
        float r56507907 = r56507905 * r56507906;
        float r56507908 = z;
        float r56507909 = r56507902 * r56507908;
        float r56507910 = sin(r56507909);
        float r56507911 = r56507902 / r56507910;
        float r56507912 = r56507907 * r56507911;
        float r56507913 = 0.5;
        float r56507914 = 7;
        float r56507915 = 1;
        float r56507916 = r56507914 + r56507915;
        float r56507917 = r56507908 + r56507915;
        float r56507918 = r56507916 - r56507917;
        float r56507919 = r56507913 + r56507918;
        float r56507920 = r56507913 + r56507915;
        float r56507921 = r56507920 - r56507917;
        float r56507922 = pow(r56507919, r56507921);
        float r56507923 = r56507912 * r56507922;
        float r56507924 = exp(r56507919);
        float r56507925 = r56507923 / r56507924;
        float r56507926 = 9.984369578019572e-06;
        float r56507927 = r56507926 / r56507918;
        float r56507928 = 1.5056327351493116e-07;
        float r56507929 = r56507915 - r56507908;
        float r56507930 = 8;
        float r56507931 = r56507915 - r56507930;
        float r56507932 = r56507929 - r56507931;
        float r56507933 = r56507928 / r56507932;
        float r56507934 = r56507927 + r56507933;
        float r56507935 = -0.13857109526572012;
        float r56507936 = 6;
        float r56507937 = r56507936 + r56507915;
        float r56507938 = r56507937 - r56507917;
        float r56507939 = r56507935 / r56507938;
        float r56507940 = 12.507343278686905;
        float r56507941 = 5;
        float r56507942 = r56507915 - r56507941;
        float r56507943 = r56507929 - r56507942;
        float r56507944 = r56507940 / r56507943;
        float r56507945 = r56507939 + r56507944;
        float r56507946 = -176.6150291621406;
        float r56507947 = 4;
        float r56507948 = r56507947 + r56507915;
        float r56507949 = r56507948 - r56507917;
        float r56507950 = r56507946 / r56507949;
        float r56507951 = r56507945 + r56507950;
        float r56507952 = 0.9999999999998099;
        float r56507953 = 771.3234287776531;
        float r56507954 = 3;
        float r56507955 = r56507915 - r56507954;
        float r56507956 = r56507929 - r56507955;
        float r56507957 = r56507953 / r56507956;
        float r56507958 = r56507952 + r56507957;
        float r56507959 = 676.5203681218851;
        float r56507960 = 0;
        float r56507961 = r56507908 + r56507960;
        float r56507962 = r56507915 - r56507961;
        float r56507963 = r56507959 / r56507962;
        float r56507964 = -1259.1392167224028;
        float r56507965 = 2;
        float r56507966 = r56507915 - r56507965;
        float r56507967 = r56507929 - r56507966;
        float r56507968 = r56507964 / r56507967;
        float r56507969 = r56507963 + r56507968;
        float r56507970 = r56507958 + r56507969;
        float r56507971 = r56507951 + r56507970;
        float r56507972 = r56507934 + r56507971;
        float r56507973 = r56507925 * r56507972;
        return r56507973;
}

double f_od(double z) {
        double r56507974 = atan2(1.0, 0.0);
        double r56507975 = r56507974 + r56507974;
        double r56507976 = cbrt(r56507975);
        double r56507977 = fabs(r56507976);
        double r56507978 = sqrt(r56507976);
        double r56507979 = r56507977 * r56507978;
        double r56507980 = z;
        double r56507981 = r56507974 * r56507980;
        double r56507982 = sin(r56507981);
        double r56507983 = r56507974 / r56507982;
        double r56507984 = r56507979 * r56507983;
        double r56507985 = 0.5;
        double r56507986 = 7;
        double r56507987 = 1;
        double r56507988 = r56507986 + r56507987;
        double r56507989 = r56507980 + r56507987;
        double r56507990 = r56507988 - r56507989;
        double r56507991 = r56507985 + r56507990;
        double r56507992 = r56507985 + r56507987;
        double r56507993 = r56507992 - r56507989;
        double r56507994 = pow(r56507991, r56507993);
        double r56507995 = r56507984 * r56507994;
        double r56507996 = exp(r56507991);
        double r56507997 = r56507995 / r56507996;
        double r56507998 = 9.984369578019572e-06;
        double r56507999 = r56507998 / r56507990;
        double r56508000 = 1.5056327351493116e-07;
        double r56508001 = r56507987 - r56507980;
        double r56508002 = 8;
        double r56508003 = r56507987 - r56508002;
        double r56508004 = r56508001 - r56508003;
        double r56508005 = r56508000 / r56508004;
        double r56508006 = r56507999 + r56508005;
        double r56508007 = -0.13857109526572012;
        double r56508008 = 6;
        double r56508009 = r56508008 + r56507987;
        double r56508010 = r56508009 - r56507989;
        double r56508011 = r56508007 / r56508010;
        double r56508012 = 12.507343278686905;
        double r56508013 = 5;
        double r56508014 = r56507987 - r56508013;
        double r56508015 = r56508001 - r56508014;
        double r56508016 = r56508012 / r56508015;
        double r56508017 = r56508011 + r56508016;
        double r56508018 = -176.6150291621406;
        double r56508019 = 4;
        double r56508020 = r56508019 + r56507987;
        double r56508021 = r56508020 - r56507989;
        double r56508022 = r56508018 / r56508021;
        double r56508023 = r56508017 + r56508022;
        double r56508024 = 0.9999999999998099;
        double r56508025 = 771.3234287776531;
        double r56508026 = 3;
        double r56508027 = r56507987 - r56508026;
        double r56508028 = r56508001 - r56508027;
        double r56508029 = r56508025 / r56508028;
        double r56508030 = r56508024 + r56508029;
        double r56508031 = 676.5203681218851;
        double r56508032 = 0;
        double r56508033 = r56507980 + r56508032;
        double r56508034 = r56507987 - r56508033;
        double r56508035 = r56508031 / r56508034;
        double r56508036 = -1259.1392167224028;
        double r56508037 = 2;
        double r56508038 = r56507987 - r56508037;
        double r56508039 = r56508001 - r56508038;
        double r56508040 = r56508036 / r56508039;
        double r56508041 = r56508035 + r56508040;
        double r56508042 = r56508030 + r56508041;
        double r56508043 = r56508023 + r56508042;
        double r56508044 = r56508006 + r56508043;
        double r56508045 = r56507997 * r56508044;
        return r56508045;
}

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 r56508046, r56508047, r56508048, r56508049, r56508050, r56508051, r56508052, r56508053, r56508054, r56508055, r56508056, r56508057, r56508058, r56508059, r56508060, r56508061, r56508062, r56508063, r56508064, r56508065, r56508066, r56508067, r56508068, r56508069, r56508070, r56508071, r56508072, r56508073, r56508074, r56508075, r56508076, r56508077, r56508078, r56508079, r56508080, r56508081, r56508082, r56508083, r56508084, r56508085, r56508086, r56508087, r56508088, r56508089, r56508090, r56508091, r56508092, r56508093, r56508094, r56508095, r56508096, r56508097, r56508098, r56508099, r56508100, r56508101, r56508102, r56508103, r56508104, r56508105;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r56508046);
        mpfr_init(r56508047);
        mpfr_init(r56508048);
        mpfr_init(r56508049);
        mpfr_init(r56508050);
        mpfr_init_set_str(r56508051, "2", 10, MPFR_RNDN);
        mpfr_init(r56508052);
        mpfr_init(r56508053);
        mpfr_init_set_str(r56508054, "1", 10, MPFR_RNDN);
        mpfr_init(r56508055);
        mpfr_init(r56508056);
        mpfr_init_set_str(r56508057, "7", 10, MPFR_RNDN);
        mpfr_init(r56508058);
        mpfr_init_set_str(r56508059, "0.5", 10, MPFR_RNDN);
        mpfr_init(r56508060);
        mpfr_init(r56508061);
        mpfr_init(r56508062);
        mpfr_init(r56508063);
        mpfr_init(r56508064);
        mpfr_init(r56508065);
        mpfr_init(r56508066);
        mpfr_init_set_str(r56508067, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508068, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init(r56508069);
        mpfr_init(r56508070);
        mpfr_init(r56508071);
        mpfr_init_set_str(r56508072, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init(r56508073);
        mpfr_init(r56508074);
        mpfr_init(r56508075);
        mpfr_init_set_str(r56508076, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508077, "3", 10, MPFR_RNDN);
        mpfr_init(r56508078);
        mpfr_init(r56508079);
        mpfr_init(r56508080);
        mpfr_init_set_str(r56508081, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508082, "4", 10, MPFR_RNDN);
        mpfr_init(r56508083);
        mpfr_init(r56508084);
        mpfr_init(r56508085);
        mpfr_init_set_str(r56508086, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508087, "5", 10, MPFR_RNDN);
        mpfr_init(r56508088);
        mpfr_init(r56508089);
        mpfr_init(r56508090);
        mpfr_init_set_str(r56508091, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508092, "6", 10, MPFR_RNDN);
        mpfr_init(r56508093);
        mpfr_init(r56508094);
        mpfr_init(r56508095);
        mpfr_init_set_str(r56508096, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r56508097);
        mpfr_init(r56508098);
        mpfr_init_set_str(r56508099, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508100, "8", 10, MPFR_RNDN);
        mpfr_init(r56508101);
        mpfr_init(r56508102);
        mpfr_init(r56508103);
        mpfr_init(r56508104);
        mpfr_init(r56508105);
}

double f_im(double z) {
        mpfr_const_pi(r56508046, MPFR_RNDN);
        mpfr_set_d(r56508047, z, MPFR_RNDN);
        mpfr_mul(r56508048, r56508046, r56508047, MPFR_RNDN);
        mpfr_sin(r56508049, r56508048, MPFR_RNDN);
        mpfr_div(r56508050, r56508046, r56508049, MPFR_RNDN);
        ;
        mpfr_mul(r56508052, r56508046, r56508051, MPFR_RNDN);
        mpfr_sqrt(r56508053, r56508052, MPFR_RNDN);
        ;
        mpfr_sub(r56508055, r56508054, r56508047, MPFR_RNDN);
        mpfr_sub(r56508056, r56508055, r56508054, MPFR_RNDN);
        ;
        mpfr_add(r56508058, r56508056, r56508057, MPFR_RNDN);
        ;
        mpfr_add(r56508060, r56508058, r56508059, MPFR_RNDN);
        mpfr_add(r56508061, r56508056, r56508059, MPFR_RNDN);
        mpfr_pow(r56508062, r56508060, r56508061, MPFR_RNDN);
        mpfr_mul(r56508063, r56508053, r56508062, MPFR_RNDN);
        mpfr_neg(r56508064, r56508060, MPFR_RNDN);
        mpfr_exp(r56508065, r56508064, MPFR_RNDN);
        mpfr_mul(r56508066, r56508063, r56508065, MPFR_RNDN);
        ;
        ;
        mpfr_add(r56508069, r56508056, r56508054, MPFR_RNDN);
        mpfr_div(r56508070, r56508068, r56508069, MPFR_RNDN);
        mpfr_add(r56508071, r56508067, r56508070, MPFR_RNDN);
        ;
        mpfr_add(r56508073, r56508056, r56508051, MPFR_RNDN);
        mpfr_div(r56508074, r56508072, r56508073, MPFR_RNDN);
        mpfr_add(r56508075, r56508071, r56508074, MPFR_RNDN);
        ;
        ;
        mpfr_add(r56508078, r56508056, r56508077, MPFR_RNDN);
        mpfr_div(r56508079, r56508076, r56508078, MPFR_RNDN);
        mpfr_add(r56508080, r56508075, r56508079, MPFR_RNDN);
        ;
        ;
        mpfr_add(r56508083, r56508056, r56508082, MPFR_RNDN);
        mpfr_div(r56508084, r56508081, r56508083, MPFR_RNDN);
        mpfr_add(r56508085, r56508080, r56508084, MPFR_RNDN);
        ;
        ;
        mpfr_add(r56508088, r56508056, r56508087, MPFR_RNDN);
        mpfr_div(r56508089, r56508086, r56508088, MPFR_RNDN);
        mpfr_add(r56508090, r56508085, r56508089, MPFR_RNDN);
        ;
        ;
        mpfr_add(r56508093, r56508056, r56508092, MPFR_RNDN);
        mpfr_div(r56508094, r56508091, r56508093, MPFR_RNDN);
        mpfr_add(r56508095, r56508090, r56508094, MPFR_RNDN);
        ;
        mpfr_div(r56508097, r56508096, r56508058, MPFR_RNDN);
        mpfr_add(r56508098, r56508095, r56508097, MPFR_RNDN);
        ;
        ;
        mpfr_add(r56508101, r56508056, r56508100, MPFR_RNDN);
        mpfr_div(r56508102, r56508099, r56508101, MPFR_RNDN);
        mpfr_add(r56508103, r56508098, r56508102, MPFR_RNDN);
        mpfr_mul(r56508104, r56508066, r56508103, MPFR_RNDN);
        mpfr_mul(r56508105, r56508050, r56508104, MPFR_RNDN);
        return mpfr_get_d(r56508105, MPFR_RNDN);
}

static mpfr_t r56508106, r56508107, r56508108, r56508109, r56508110, r56508111, r56508112, r56508113, r56508114, r56508115, r56508116, r56508117, r56508118, r56508119, r56508120, r56508121, r56508122, r56508123, r56508124, r56508125, r56508126, r56508127, r56508128, r56508129, r56508130, r56508131, r56508132, r56508133, r56508134, r56508135, r56508136, r56508137, r56508138, r56508139, r56508140, r56508141, r56508142, r56508143, r56508144, r56508145, r56508146, r56508147, r56508148, r56508149, r56508150, r56508151, r56508152, r56508153, r56508154, r56508155, r56508156, r56508157, r56508158, r56508159, r56508160, r56508161, r56508162, r56508163, r56508164, r56508165, r56508166, r56508167, r56508168, r56508169, r56508170, r56508171, r56508172, r56508173, r56508174, r56508175, r56508176, r56508177;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r56508106);
        mpfr_init(r56508107);
        mpfr_init(r56508108);
        mpfr_init(r56508109);
        mpfr_init(r56508110);
        mpfr_init(r56508111);
        mpfr_init(r56508112);
        mpfr_init(r56508113);
        mpfr_init(r56508114);
        mpfr_init(r56508115);
        mpfr_init(r56508116);
        mpfr_init_set_str(r56508117, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508118, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508119, "1", 10, MPFR_RNDN);
        mpfr_init(r56508120);
        mpfr_init(r56508121);
        mpfr_init(r56508122);
        mpfr_init(r56508123);
        mpfr_init(r56508124);
        mpfr_init(r56508125);
        mpfr_init(r56508126);
        mpfr_init(r56508127);
        mpfr_init(r56508128);
        mpfr_init(r56508129);
        mpfr_init_set_str(r56508130, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r56508131);
        mpfr_init_set_str(r56508132, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init(r56508133);
        mpfr_init_set_str(r56508134, "8", 10, MPFR_RNDN);
        mpfr_init(r56508135);
        mpfr_init(r56508136);
        mpfr_init(r56508137);
        mpfr_init(r56508138);
        mpfr_init_set_str(r56508139, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508140, "6", 10, MPFR_RNDN);
        mpfr_init(r56508141);
        mpfr_init(r56508142);
        mpfr_init(r56508143);
        mpfr_init_set_str(r56508144, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508145, "5", 10, MPFR_RNDN);
        mpfr_init(r56508146);
        mpfr_init(r56508147);
        mpfr_init(r56508148);
        mpfr_init(r56508149);
        mpfr_init_set_str(r56508150, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508151, "4", 10, MPFR_RNDN);
        mpfr_init(r56508152);
        mpfr_init(r56508153);
        mpfr_init(r56508154);
        mpfr_init(r56508155);
        mpfr_init_set_str(r56508156, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508157, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508158, "3", 10, MPFR_RNDN);
        mpfr_init(r56508159);
        mpfr_init(r56508160);
        mpfr_init(r56508161);
        mpfr_init(r56508162);
        mpfr_init_set_str(r56508163, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508164, "0", 10, MPFR_RNDN);
        mpfr_init(r56508165);
        mpfr_init(r56508166);
        mpfr_init(r56508167);
        mpfr_init_set_str(r56508168, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508169, "2", 10, MPFR_RNDN);
        mpfr_init(r56508170);
        mpfr_init(r56508171);
        mpfr_init(r56508172);
        mpfr_init(r56508173);
        mpfr_init(r56508174);
        mpfr_init(r56508175);
        mpfr_init(r56508176);
        mpfr_init(r56508177);
}

double f_fm(double z) {
        mpfr_const_pi(r56508106, MPFR_RNDN);
        mpfr_add(r56508107, r56508106, r56508106, MPFR_RNDN);
        mpfr_cbrt(r56508108, r56508107, MPFR_RNDN);
        mpfr_abs(r56508109, r56508108, MPFR_RNDN);
        mpfr_sqrt(r56508110, r56508108, MPFR_RNDN);
        mpfr_mul(r56508111, r56508109, r56508110, MPFR_RNDN);
        mpfr_set_d(r56508112, z, MPFR_RNDN);
        mpfr_mul(r56508113, r56508106, r56508112, MPFR_RNDN);
        mpfr_sin(r56508114, r56508113, MPFR_RNDN);
        mpfr_div(r56508115, r56508106, r56508114, MPFR_RNDN);
        mpfr_mul(r56508116, r56508111, r56508115, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_add(r56508120, r56508118, r56508119, MPFR_RNDN);
        mpfr_add(r56508121, r56508112, r56508119, MPFR_RNDN);
        mpfr_sub(r56508122, r56508120, r56508121, MPFR_RNDN);
        mpfr_add(r56508123, r56508117, r56508122, MPFR_RNDN);
        mpfr_add(r56508124, r56508117, r56508119, MPFR_RNDN);
        mpfr_sub(r56508125, r56508124, r56508121, MPFR_RNDN);
        mpfr_pow(r56508126, r56508123, r56508125, MPFR_RNDN);
        mpfr_mul(r56508127, r56508116, r56508126, MPFR_RNDN);
        mpfr_exp(r56508128, r56508123, MPFR_RNDN);
        mpfr_div(r56508129, r56508127, r56508128, MPFR_RNDN);
        ;
        mpfr_div(r56508131, r56508130, r56508122, MPFR_RNDN);
        ;
        mpfr_sub(r56508133, r56508119, r56508112, MPFR_RNDN);
        ;
        mpfr_sub(r56508135, r56508119, r56508134, MPFR_RNDN);
        mpfr_sub(r56508136, r56508133, r56508135, MPFR_RNDN);
        mpfr_div(r56508137, r56508132, r56508136, MPFR_RNDN);
        mpfr_add(r56508138, r56508131, r56508137, MPFR_RNDN);
        ;
        ;
        mpfr_add(r56508141, r56508140, r56508119, MPFR_RNDN);
        mpfr_sub(r56508142, r56508141, r56508121, MPFR_RNDN);
        mpfr_div(r56508143, r56508139, r56508142, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r56508146, r56508119, r56508145, MPFR_RNDN);
        mpfr_sub(r56508147, r56508133, r56508146, MPFR_RNDN);
        mpfr_div(r56508148, r56508144, r56508147, MPFR_RNDN);
        mpfr_add(r56508149, r56508143, r56508148, MPFR_RNDN);
        ;
        ;
        mpfr_add(r56508152, r56508151, r56508119, MPFR_RNDN);
        mpfr_sub(r56508153, r56508152, r56508121, MPFR_RNDN);
        mpfr_div(r56508154, r56508150, r56508153, MPFR_RNDN);
        mpfr_add(r56508155, r56508149, r56508154, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_sub(r56508159, r56508119, r56508158, MPFR_RNDN);
        mpfr_sub(r56508160, r56508133, r56508159, MPFR_RNDN);
        mpfr_div(r56508161, r56508157, r56508160, MPFR_RNDN);
        mpfr_add(r56508162, r56508156, r56508161, MPFR_RNDN);
        ;
        ;
        mpfr_add(r56508165, r56508112, r56508164, MPFR_RNDN);
        mpfr_sub(r56508166, r56508119, r56508165, MPFR_RNDN);
        mpfr_div(r56508167, r56508163, r56508166, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r56508170, r56508119, r56508169, MPFR_RNDN);
        mpfr_sub(r56508171, r56508133, r56508170, MPFR_RNDN);
        mpfr_div(r56508172, r56508168, r56508171, MPFR_RNDN);
        mpfr_add(r56508173, r56508167, r56508172, MPFR_RNDN);
        mpfr_add(r56508174, r56508162, r56508173, MPFR_RNDN);
        mpfr_add(r56508175, r56508155, r56508174, MPFR_RNDN);
        mpfr_add(r56508176, r56508138, r56508175, MPFR_RNDN);
        mpfr_mul(r56508177, r56508129, r56508176, MPFR_RNDN);
        return mpfr_get_d(r56508177, MPFR_RNDN);
}

static mpfr_t r56508178, r56508179, r56508180, r56508181, r56508182, r56508183, r56508184, r56508185, r56508186, r56508187, r56508188, r56508189, r56508190, r56508191, r56508192, r56508193, r56508194, r56508195, r56508196, r56508197, r56508198, r56508199, r56508200, r56508201, r56508202, r56508203, r56508204, r56508205, r56508206, r56508207, r56508208, r56508209, r56508210, r56508211, r56508212, r56508213, r56508214, r56508215, r56508216, r56508217, r56508218, r56508219, r56508220, r56508221, r56508222, r56508223, r56508224, r56508225, r56508226, r56508227, r56508228, r56508229, r56508230, r56508231, r56508232, r56508233, r56508234, r56508235, r56508236, r56508237, r56508238, r56508239, r56508240, r56508241, r56508242, r56508243, r56508244, r56508245, r56508246, r56508247, r56508248, r56508249;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r56508178);
        mpfr_init(r56508179);
        mpfr_init(r56508180);
        mpfr_init(r56508181);
        mpfr_init(r56508182);
        mpfr_init(r56508183);
        mpfr_init(r56508184);
        mpfr_init(r56508185);
        mpfr_init(r56508186);
        mpfr_init(r56508187);
        mpfr_init(r56508188);
        mpfr_init_set_str(r56508189, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508190, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508191, "1", 10, MPFR_RNDN);
        mpfr_init(r56508192);
        mpfr_init(r56508193);
        mpfr_init(r56508194);
        mpfr_init(r56508195);
        mpfr_init(r56508196);
        mpfr_init(r56508197);
        mpfr_init(r56508198);
        mpfr_init(r56508199);
        mpfr_init(r56508200);
        mpfr_init(r56508201);
        mpfr_init_set_str(r56508202, "9.984369578019572e-06", 10, MPFR_RNDN);
        mpfr_init(r56508203);
        mpfr_init_set_str(r56508204, "1.5056327351493116e-07", 10, MPFR_RNDN);
        mpfr_init(r56508205);
        mpfr_init_set_str(r56508206, "8", 10, MPFR_RNDN);
        mpfr_init(r56508207);
        mpfr_init(r56508208);
        mpfr_init(r56508209);
        mpfr_init(r56508210);
        mpfr_init_set_str(r56508211, "-0.13857109526572012", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508212, "6", 10, MPFR_RNDN);
        mpfr_init(r56508213);
        mpfr_init(r56508214);
        mpfr_init(r56508215);
        mpfr_init_set_str(r56508216, "12.507343278686905", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508217, "5", 10, MPFR_RNDN);
        mpfr_init(r56508218);
        mpfr_init(r56508219);
        mpfr_init(r56508220);
        mpfr_init(r56508221);
        mpfr_init_set_str(r56508222, "-176.6150291621406", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508223, "4", 10, MPFR_RNDN);
        mpfr_init(r56508224);
        mpfr_init(r56508225);
        mpfr_init(r56508226);
        mpfr_init(r56508227);
        mpfr_init_set_str(r56508228, "0.9999999999998099", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508229, "771.3234287776531", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508230, "3", 10, MPFR_RNDN);
        mpfr_init(r56508231);
        mpfr_init(r56508232);
        mpfr_init(r56508233);
        mpfr_init(r56508234);
        mpfr_init_set_str(r56508235, "676.5203681218851", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508236, "0", 10, MPFR_RNDN);
        mpfr_init(r56508237);
        mpfr_init(r56508238);
        mpfr_init(r56508239);
        mpfr_init_set_str(r56508240, "-1259.1392167224028", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508241, "2", 10, MPFR_RNDN);
        mpfr_init(r56508242);
        mpfr_init(r56508243);
        mpfr_init(r56508244);
        mpfr_init(r56508245);
        mpfr_init(r56508246);
        mpfr_init(r56508247);
        mpfr_init(r56508248);
        mpfr_init(r56508249);
}

double f_dm(double z) {
        mpfr_const_pi(r56508178, MPFR_RNDN);
        mpfr_add(r56508179, r56508178, r56508178, MPFR_RNDN);
        mpfr_cbrt(r56508180, r56508179, MPFR_RNDN);
        mpfr_abs(r56508181, r56508180, MPFR_RNDN);
        mpfr_sqrt(r56508182, r56508180, MPFR_RNDN);
        mpfr_mul(r56508183, r56508181, r56508182, MPFR_RNDN);
        mpfr_set_d(r56508184, z, MPFR_RNDN);
        mpfr_mul(r56508185, r56508178, r56508184, MPFR_RNDN);
        mpfr_sin(r56508186, r56508185, MPFR_RNDN);
        mpfr_div(r56508187, r56508178, r56508186, MPFR_RNDN);
        mpfr_mul(r56508188, r56508183, r56508187, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_add(r56508192, r56508190, r56508191, MPFR_RNDN);
        mpfr_add(r56508193, r56508184, r56508191, MPFR_RNDN);
        mpfr_sub(r56508194, r56508192, r56508193, MPFR_RNDN);
        mpfr_add(r56508195, r56508189, r56508194, MPFR_RNDN);
        mpfr_add(r56508196, r56508189, r56508191, MPFR_RNDN);
        mpfr_sub(r56508197, r56508196, r56508193, MPFR_RNDN);
        mpfr_pow(r56508198, r56508195, r56508197, MPFR_RNDN);
        mpfr_mul(r56508199, r56508188, r56508198, MPFR_RNDN);
        mpfr_exp(r56508200, r56508195, MPFR_RNDN);
        mpfr_div(r56508201, r56508199, r56508200, MPFR_RNDN);
        ;
        mpfr_div(r56508203, r56508202, r56508194, MPFR_RNDN);
        ;
        mpfr_sub(r56508205, r56508191, r56508184, MPFR_RNDN);
        ;
        mpfr_sub(r56508207, r56508191, r56508206, MPFR_RNDN);
        mpfr_sub(r56508208, r56508205, r56508207, MPFR_RNDN);
        mpfr_div(r56508209, r56508204, r56508208, MPFR_RNDN);
        mpfr_add(r56508210, r56508203, r56508209, MPFR_RNDN);
        ;
        ;
        mpfr_add(r56508213, r56508212, r56508191, MPFR_RNDN);
        mpfr_sub(r56508214, r56508213, r56508193, MPFR_RNDN);
        mpfr_div(r56508215, r56508211, r56508214, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r56508218, r56508191, r56508217, MPFR_RNDN);
        mpfr_sub(r56508219, r56508205, r56508218, MPFR_RNDN);
        mpfr_div(r56508220, r56508216, r56508219, MPFR_RNDN);
        mpfr_add(r56508221, r56508215, r56508220, MPFR_RNDN);
        ;
        ;
        mpfr_add(r56508224, r56508223, r56508191, MPFR_RNDN);
        mpfr_sub(r56508225, r56508224, r56508193, MPFR_RNDN);
        mpfr_div(r56508226, r56508222, r56508225, MPFR_RNDN);
        mpfr_add(r56508227, r56508221, r56508226, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_sub(r56508231, r56508191, r56508230, MPFR_RNDN);
        mpfr_sub(r56508232, r56508205, r56508231, MPFR_RNDN);
        mpfr_div(r56508233, r56508229, r56508232, MPFR_RNDN);
        mpfr_add(r56508234, r56508228, r56508233, MPFR_RNDN);
        ;
        ;
        mpfr_add(r56508237, r56508184, r56508236, MPFR_RNDN);
        mpfr_sub(r56508238, r56508191, r56508237, MPFR_RNDN);
        mpfr_div(r56508239, r56508235, r56508238, MPFR_RNDN);
        ;
        ;
        mpfr_sub(r56508242, r56508191, r56508241, MPFR_RNDN);
        mpfr_sub(r56508243, r56508205, r56508242, MPFR_RNDN);
        mpfr_div(r56508244, r56508240, r56508243, MPFR_RNDN);
        mpfr_add(r56508245, r56508239, r56508244, MPFR_RNDN);
        mpfr_add(r56508246, r56508234, r56508245, MPFR_RNDN);
        mpfr_add(r56508247, r56508227, r56508246, MPFR_RNDN);
        mpfr_add(r56508248, r56508210, r56508247, MPFR_RNDN);
        mpfr_mul(r56508249, r56508201, r56508248, MPFR_RNDN);
        return mpfr_get_d(r56508249, MPFR_RNDN);
}

