\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.99999999999980993 + \frac{676.520368121885099}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.13921672240281}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.32342877765313}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.615029162140587}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.5073432786869052}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.138571095265720118}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.50563273514931162 \cdot 10^{-7}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)\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.99999999999980993 + \frac{676.520368121885099}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.13921672240281}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.32342877765313}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.615029162140587}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.5073432786869052}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.138571095265720118}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.50563273514931162 \cdot 10^{-7}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)double f(double z) {
double r151092 = atan2(1.0, 0.0);
double r151093 = z;
double r151094 = r151092 * r151093;
double r151095 = sin(r151094);
double r151096 = r151092 / r151095;
double r151097 = 2.0;
double r151098 = r151092 * r151097;
double r151099 = sqrt(r151098);
double r151100 = 1.0;
double r151101 = r151100 - r151093;
double r151102 = r151101 - r151100;
double r151103 = 7.0;
double r151104 = r151102 + r151103;
double r151105 = 0.5;
double r151106 = r151104 + r151105;
double r151107 = r151102 + r151105;
double r151108 = pow(r151106, r151107);
double r151109 = r151099 * r151108;
double r151110 = -r151106;
double r151111 = exp(r151110);
double r151112 = r151109 * r151111;
double r151113 = 0.9999999999998099;
double r151114 = 676.5203681218851;
double r151115 = r151102 + r151100;
double r151116 = r151114 / r151115;
double r151117 = r151113 + r151116;
double r151118 = -1259.1392167224028;
double r151119 = r151102 + r151097;
double r151120 = r151118 / r151119;
double r151121 = r151117 + r151120;
double r151122 = 771.3234287776531;
double r151123 = 3.0;
double r151124 = r151102 + r151123;
double r151125 = r151122 / r151124;
double r151126 = r151121 + r151125;
double r151127 = -176.6150291621406;
double r151128 = 4.0;
double r151129 = r151102 + r151128;
double r151130 = r151127 / r151129;
double r151131 = r151126 + r151130;
double r151132 = 12.507343278686905;
double r151133 = 5.0;
double r151134 = r151102 + r151133;
double r151135 = r151132 / r151134;
double r151136 = r151131 + r151135;
double r151137 = -0.13857109526572012;
double r151138 = 6.0;
double r151139 = r151102 + r151138;
double r151140 = r151137 / r151139;
double r151141 = r151136 + r151140;
double r151142 = 9.984369578019572e-06;
double r151143 = r151142 / r151104;
double r151144 = r151141 + r151143;
double r151145 = 1.5056327351493116e-07;
double r151146 = 8.0;
double r151147 = r151102 + r151146;
double r151148 = r151145 / r151147;
double r151149 = r151144 + r151148;
double r151150 = r151112 * r151149;
double r151151 = r151096 * r151150;
return r151151;
}
double f(double z) {
double r151152 = atan2(1.0, 0.0);
double r151153 = z;
double r151154 = r151152 * r151153;
double r151155 = sin(r151154);
double r151156 = r151152 / r151155;
double r151157 = 2.0;
double r151158 = r151152 * r151157;
double r151159 = sqrt(r151158);
double r151160 = 1.0;
double r151161 = r151160 - r151153;
double r151162 = r151161 - r151160;
double r151163 = 7.0;
double r151164 = r151162 + r151163;
double r151165 = 0.5;
double r151166 = r151164 + r151165;
double r151167 = r151162 + r151165;
double r151168 = pow(r151166, r151167);
double r151169 = r151159 * r151168;
double r151170 = -r151166;
double r151171 = exp(r151170);
double r151172 = r151169 * r151171;
double r151173 = 0.9999999999998099;
double r151174 = 676.5203681218851;
double r151175 = r151162 + r151160;
double r151176 = r151174 / r151175;
double r151177 = r151173 + r151176;
double r151178 = -1259.1392167224028;
double r151179 = r151162 + r151157;
double r151180 = r151178 / r151179;
double r151181 = r151177 + r151180;
double r151182 = 771.3234287776531;
double r151183 = 3.0;
double r151184 = r151162 + r151183;
double r151185 = r151182 / r151184;
double r151186 = r151181 + r151185;
double r151187 = -176.6150291621406;
double r151188 = 4.0;
double r151189 = r151162 + r151188;
double r151190 = r151187 / r151189;
double r151191 = r151186 + r151190;
double r151192 = 12.507343278686905;
double r151193 = 5.0;
double r151194 = r151162 + r151193;
double r151195 = r151192 / r151194;
double r151196 = r151191 + r151195;
double r151197 = -0.13857109526572012;
double r151198 = 6.0;
double r151199 = r151162 + r151198;
double r151200 = r151197 / r151199;
double r151201 = r151196 + r151200;
double r151202 = 9.984369578019572e-06;
double r151203 = r151202 / r151164;
double r151204 = r151201 + r151203;
double r151205 = 1.5056327351493116e-07;
double r151206 = 8.0;
double r151207 = r151162 + r151206;
double r151208 = r151205 / r151207;
double r151209 = r151204 + r151208;
double r151210 = r151172 * r151209;
double r151211 = r151156 * r151210;
return r151211;
}



Bits error versus z
Results
Initial program 1.8
Final simplification1.8
herbie shell --seed 2020020 +o rules:numerics
(FPCore (z)
:name "Jmat.Real.gamma, branch z less than 0.5"
:precision binary64
(* (/ 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))))))