\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(\frac{1.5056327351493116 \cdot 10^{-07}}{8 + \left(\left(1 - z\right) - 1\right)} + \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)\right)\right) \cdot \frac{\pi}{\sin \left(\pi \cdot z\right)}double f(double z) {
double r2088002 = atan2(1.0, 0.0);
double r2088003 = z;
double r2088004 = r2088002 * r2088003;
double r2088005 = sin(r2088004);
double r2088006 = r2088002 / r2088005;
double r2088007 = 2.0;
double r2088008 = r2088002 * r2088007;
double r2088009 = sqrt(r2088008);
double r2088010 = 1.0;
double r2088011 = r2088010 - r2088003;
double r2088012 = r2088011 - r2088010;
double r2088013 = 7.0;
double r2088014 = r2088012 + r2088013;
double r2088015 = 0.5;
double r2088016 = r2088014 + r2088015;
double r2088017 = r2088012 + r2088015;
double r2088018 = pow(r2088016, r2088017);
double r2088019 = r2088009 * r2088018;
double r2088020 = -r2088016;
double r2088021 = exp(r2088020);
double r2088022 = r2088019 * r2088021;
double r2088023 = 0.9999999999998099;
double r2088024 = 676.5203681218851;
double r2088025 = r2088012 + r2088010;
double r2088026 = r2088024 / r2088025;
double r2088027 = r2088023 + r2088026;
double r2088028 = -1259.1392167224028;
double r2088029 = r2088012 + r2088007;
double r2088030 = r2088028 / r2088029;
double r2088031 = r2088027 + r2088030;
double r2088032 = 771.3234287776531;
double r2088033 = 3.0;
double r2088034 = r2088012 + r2088033;
double r2088035 = r2088032 / r2088034;
double r2088036 = r2088031 + r2088035;
double r2088037 = -176.6150291621406;
double r2088038 = 4.0;
double r2088039 = r2088012 + r2088038;
double r2088040 = r2088037 / r2088039;
double r2088041 = r2088036 + r2088040;
double r2088042 = 12.507343278686905;
double r2088043 = 5.0;
double r2088044 = r2088012 + r2088043;
double r2088045 = r2088042 / r2088044;
double r2088046 = r2088041 + r2088045;
double r2088047 = -0.13857109526572012;
double r2088048 = 6.0;
double r2088049 = r2088012 + r2088048;
double r2088050 = r2088047 / r2088049;
double r2088051 = r2088046 + r2088050;
double r2088052 = 9.984369578019572e-06;
double r2088053 = r2088052 / r2088014;
double r2088054 = r2088051 + r2088053;
double r2088055 = 1.5056327351493116e-07;
double r2088056 = 8.0;
double r2088057 = r2088012 + r2088056;
double r2088058 = r2088055 / r2088057;
double r2088059 = r2088054 + r2088058;
double r2088060 = r2088022 * r2088059;
double r2088061 = r2088006 * r2088060;
return r2088061;
}
double f(double z) {
double r2088062 = 2.0;
double r2088063 = atan2(1.0, 0.0);
double r2088064 = r2088062 * r2088063;
double r2088065 = sqrt(r2088064);
double r2088066 = 7.0;
double r2088067 = 1.0;
double r2088068 = z;
double r2088069 = r2088067 - r2088068;
double r2088070 = r2088069 - r2088067;
double r2088071 = r2088066 + r2088070;
double r2088072 = 0.5;
double r2088073 = r2088071 + r2088072;
double r2088074 = r2088072 + r2088070;
double r2088075 = pow(r2088073, r2088074);
double r2088076 = r2088065 * r2088075;
double r2088077 = -r2088073;
double r2088078 = exp(r2088077);
double r2088079 = r2088076 * r2088078;
double r2088080 = 1.5056327351493116e-07;
double r2088081 = 8.0;
double r2088082 = r2088081 + r2088070;
double r2088083 = r2088080 / r2088082;
double r2088084 = 9.984369578019572e-06;
double r2088085 = r2088084 / r2088071;
double r2088086 = -176.6150291621406;
double r2088087 = 4.0;
double r2088088 = r2088070 + r2088087;
double r2088089 = r2088086 / r2088088;
double r2088090 = 771.3234287776531;
double r2088091 = 3.0;
double r2088092 = r2088091 + r2088070;
double r2088093 = r2088090 / r2088092;
double r2088094 = 0.9999999999998099;
double r2088095 = 676.5203681218851;
double r2088096 = r2088070 + r2088067;
double r2088097 = r2088095 / r2088096;
double r2088098 = r2088094 + r2088097;
double r2088099 = -1259.1392167224028;
double r2088100 = r2088070 + r2088062;
double r2088101 = r2088099 / r2088100;
double r2088102 = r2088098 + r2088101;
double r2088103 = r2088093 + r2088102;
double r2088104 = r2088089 + r2088103;
double r2088105 = 12.507343278686905;
double r2088106 = 5.0;
double r2088107 = r2088070 + r2088106;
double r2088108 = r2088105 / r2088107;
double r2088109 = r2088104 + r2088108;
double r2088110 = -0.13857109526572012;
double r2088111 = 6.0;
double r2088112 = r2088111 + r2088070;
double r2088113 = r2088110 / r2088112;
double r2088114 = r2088109 + r2088113;
double r2088115 = r2088085 + r2088114;
double r2088116 = r2088083 + r2088115;
double r2088117 = r2088079 * r2088116;
double r2088118 = r2088063 * r2088068;
double r2088119 = sin(r2088118);
double r2088120 = r2088063 / r2088119;
double r2088121 = r2088117 * r2088120;
return r2088121;
}



Bits error versus z
Results
Initial program 1.8
Final simplification1.8
herbie shell --seed 2019153 +o rules:numerics
(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))))))