\frac{\pi}{\sin \left(\pi \cdot z\right)} \cdot \left(\left(\left(\sqrt{\pi \cdot 2} \cdot {\left(\left(\left(\left(1 - z\right) - 1\right) + 7\right) + 0.5\right)}^{\left(\left(\left(1 - z\right) - 1\right) + 0.5\right)}\right) \cdot e^{-\left(\left(\left(\left(1 - z\right) - 1\right) + 7\right) + 0.5\right)}\right) \cdot \left(\left(\left(\left(\left(\left(\left(\left(0.9999999999998099 + \frac{676.5203681218851}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.1392167224028}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.3234287776531}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.6150291621406}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.507343278686905}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.13857109526572012}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.5056327351493116 \cdot 10^{-07}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)\left(\left(\left(\sqrt{2 \cdot \pi} \cdot {\left(\left(7 + \left(\left(1 - z\right) - 1\right)\right) + 0.5\right)}^{\left(0.5 + \left(\left(1 - z\right) - 1\right)\right)}\right) \cdot e^{-\left(\left(7 + \left(\left(1 - z\right) - 1\right)\right) + 0.5\right)}\right) \cdot \left(\left(\frac{9.984369578019572 \cdot 10^{-06}}{7 + \left(\left(1 - z\right) - 1\right)} + \left(\left(\left(\frac{-176.6150291621406}{\left(\left(1 - z\right) - 1\right) + 4} + \left(\frac{771.3234287776531}{3 + \left(\left(1 - z\right) - 1\right)} + \left(\left(0.9999999999998099 + \frac{676.5203681218851}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.1392167224028}{\left(\left(1 - z\right) - 1\right) + 2}\right)\right)\right) + \frac{12.507343278686905}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.13857109526572012}{6 + \left(\left(1 - z\right) - 1\right)}\right)\right) + \frac{1.5056327351493116 \cdot 10^{-07}}{\left(\left(\left(1 - z\right) - 1\right)\right) + 8}\right)\right) \cdot \frac{\pi}{\sin \left(\pi \cdot z\right)}double f(double z) {
double r1728971 = atan2(1.0, 0.0);
double r1728972 = z;
double r1728973 = r1728971 * r1728972;
double r1728974 = sin(r1728973);
double r1728975 = r1728971 / r1728974;
double r1728976 = 2.0;
double r1728977 = r1728971 * r1728976;
double r1728978 = sqrt(r1728977);
double r1728979 = 1.0;
double r1728980 = r1728979 - r1728972;
double r1728981 = r1728980 - r1728979;
double r1728982 = 7.0;
double r1728983 = r1728981 + r1728982;
double r1728984 = 0.5;
double r1728985 = r1728983 + r1728984;
double r1728986 = r1728981 + r1728984;
double r1728987 = pow(r1728985, r1728986);
double r1728988 = r1728978 * r1728987;
double r1728989 = -r1728985;
double r1728990 = exp(r1728989);
double r1728991 = r1728988 * r1728990;
double r1728992 = 0.9999999999998099;
double r1728993 = 676.5203681218851;
double r1728994 = r1728981 + r1728979;
double r1728995 = r1728993 / r1728994;
double r1728996 = r1728992 + r1728995;
double r1728997 = -1259.1392167224028;
double r1728998 = r1728981 + r1728976;
double r1728999 = r1728997 / r1728998;
double r1729000 = r1728996 + r1728999;
double r1729001 = 771.3234287776531;
double r1729002 = 3.0;
double r1729003 = r1728981 + r1729002;
double r1729004 = r1729001 / r1729003;
double r1729005 = r1729000 + r1729004;
double r1729006 = -176.6150291621406;
double r1729007 = 4.0;
double r1729008 = r1728981 + r1729007;
double r1729009 = r1729006 / r1729008;
double r1729010 = r1729005 + r1729009;
double r1729011 = 12.507343278686905;
double r1729012 = 5.0;
double r1729013 = r1728981 + r1729012;
double r1729014 = r1729011 / r1729013;
double r1729015 = r1729010 + r1729014;
double r1729016 = -0.13857109526572012;
double r1729017 = 6.0;
double r1729018 = r1728981 + r1729017;
double r1729019 = r1729016 / r1729018;
double r1729020 = r1729015 + r1729019;
double r1729021 = 9.984369578019572e-06;
double r1729022 = r1729021 / r1728983;
double r1729023 = r1729020 + r1729022;
double r1729024 = 1.5056327351493116e-07;
double r1729025 = 8.0;
double r1729026 = r1728981 + r1729025;
double r1729027 = r1729024 / r1729026;
double r1729028 = r1729023 + r1729027;
double r1729029 = r1728991 * r1729028;
double r1729030 = r1728975 * r1729029;
return r1729030;
}
double f(double z) {
double r1729031 = 2.0;
double r1729032 = atan2(1.0, 0.0);
double r1729033 = r1729031 * r1729032;
double r1729034 = sqrt(r1729033);
double r1729035 = 7.0;
double r1729036 = 1.0;
double r1729037 = z;
double r1729038 = r1729036 - r1729037;
double r1729039 = r1729038 - r1729036;
double r1729040 = r1729035 + r1729039;
double r1729041 = 0.5;
double r1729042 = r1729040 + r1729041;
double r1729043 = r1729041 + r1729039;
double r1729044 = pow(r1729042, r1729043);
double r1729045 = r1729034 * r1729044;
double r1729046 = -r1729042;
double r1729047 = exp(r1729046);
double r1729048 = r1729045 * r1729047;
double r1729049 = 9.984369578019572e-06;
double r1729050 = r1729049 / r1729040;
double r1729051 = -176.6150291621406;
double r1729052 = 4.0;
double r1729053 = r1729039 + r1729052;
double r1729054 = r1729051 / r1729053;
double r1729055 = 771.3234287776531;
double r1729056 = 3.0;
double r1729057 = r1729056 + r1729039;
double r1729058 = r1729055 / r1729057;
double r1729059 = 0.9999999999998099;
double r1729060 = 676.5203681218851;
double r1729061 = r1729039 + r1729036;
double r1729062 = r1729060 / r1729061;
double r1729063 = r1729059 + r1729062;
double r1729064 = -1259.1392167224028;
double r1729065 = r1729039 + r1729031;
double r1729066 = r1729064 / r1729065;
double r1729067 = r1729063 + r1729066;
double r1729068 = r1729058 + r1729067;
double r1729069 = r1729054 + r1729068;
double r1729070 = 12.507343278686905;
double r1729071 = 5.0;
double r1729072 = r1729039 + r1729071;
double r1729073 = r1729070 / r1729072;
double r1729074 = r1729069 + r1729073;
double r1729075 = -0.13857109526572012;
double r1729076 = 6.0;
double r1729077 = r1729076 + r1729039;
double r1729078 = r1729075 / r1729077;
double r1729079 = r1729074 + r1729078;
double r1729080 = r1729050 + r1729079;
double r1729081 = 1.5056327351493116e-07;
double r1729082 = /* ERROR: no posit support in C */;
double r1729083 = /* ERROR: no posit support in C */;
double r1729084 = 8.0;
double r1729085 = r1729083 + r1729084;
double r1729086 = r1729081 / r1729085;
double r1729087 = r1729080 + r1729086;
double r1729088 = r1729048 * r1729087;
double r1729089 = r1729032 * r1729037;
double r1729090 = sin(r1729089);
double r1729091 = r1729032 / r1729090;
double r1729092 = r1729088 * r1729091;
return r1729092;
}



Bits error versus z
Initial program 1.8
rmApplied insert-posit161.8
Final simplification1.8
herbie shell --seed 2019151
(FPCore (z)
:name "Jmat.Real.gamma, branch z less than 0.5"
(* (/ PI (sin (* PI z))) (* (* (* (sqrt (* PI 2)) (pow (+ (+ (- (- 1 z) 1) 7) 0.5) (+ (- (- 1 z) 1) 0.5))) (exp (- (+ (+ (- (- 1 z) 1) 7) 0.5)))) (+ (+ (+ (+ (+ (+ (+ (+ 0.9999999999998099 (/ 676.5203681218851 (+ (- (- 1 z) 1) 1))) (/ -1259.1392167224028 (+ (- (- 1 z) 1) 2))) (/ 771.3234287776531 (+ (- (- 1 z) 1) 3))) (/ -176.6150291621406 (+ (- (- 1 z) 1) 4))) (/ 12.507343278686905 (+ (- (- 1 z) 1) 5))) (/ -0.13857109526572012 (+ (- (- 1 z) 1) 6))) (/ 9.984369578019572e-06 (+ (- (- 1 z) 1) 7))) (/ 1.5056327351493116e-07 (+ (- (- 1 z) 1) 8))))))