\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(\frac{\frac{\mathsf{fma}\left(\left(\mathsf{fma}\left(z, 4955227057.691296, 1817544478.7607374\right)\right), z, 19410575.890090168\right)}{\left(4 - z\right) \cdot \mathsf{fma}\left(\left(\frac{-1259.1392167224028}{2 - z} + 0.9999999999998099\right), \left(\frac{-1259.1392167224028}{2 - z} + 0.9999999999998099\right), \left(\frac{676.5203681218851}{1 - z} \cdot \left(\frac{676.5203681218851}{1 - z} - \left(\frac{-1259.1392167224028}{2 - z} + 0.9999999999998099\right)\right)\right)\right)} + \left(\left(\left(\frac{-0.13857109526572012}{6 - z} + \left(\frac{1.5056327351493116 \cdot 10^{-07}}{8 - z} + \frac{12.507343278686905}{5 - z}\right)\right) + \frac{9.984369578019572 \cdot 10^{-06}}{\left(1 - z\right) - -6}\right) + \frac{771.3234287776531}{3 - z}\right)}{e^{0.5 + \left(\left(1 - z\right) - -6\right)}} \cdot \left(\sqrt{\pi \cdot 2} \cdot \frac{\pi}{\sin \left(\pi \cdot z\right)}\right)\right) \cdot {\left(0.5 + \left(\left(1 - z\right) - -6\right)\right)}^{\left(\left(\left(1 - z\right) - 1\right) + 0.5\right)}double f(double z) {
double r11362030 = atan2(1.0, 0.0);
double r11362031 = z;
double r11362032 = r11362030 * r11362031;
double r11362033 = sin(r11362032);
double r11362034 = r11362030 / r11362033;
double r11362035 = 2.0;
double r11362036 = r11362030 * r11362035;
double r11362037 = sqrt(r11362036);
double r11362038 = 1.0;
double r11362039 = r11362038 - r11362031;
double r11362040 = r11362039 - r11362038;
double r11362041 = 7.0;
double r11362042 = r11362040 + r11362041;
double r11362043 = 0.5;
double r11362044 = r11362042 + r11362043;
double r11362045 = r11362040 + r11362043;
double r11362046 = pow(r11362044, r11362045);
double r11362047 = r11362037 * r11362046;
double r11362048 = -r11362044;
double r11362049 = exp(r11362048);
double r11362050 = r11362047 * r11362049;
double r11362051 = 0.9999999999998099;
double r11362052 = 676.5203681218851;
double r11362053 = r11362040 + r11362038;
double r11362054 = r11362052 / r11362053;
double r11362055 = r11362051 + r11362054;
double r11362056 = -1259.1392167224028;
double r11362057 = r11362040 + r11362035;
double r11362058 = r11362056 / r11362057;
double r11362059 = r11362055 + r11362058;
double r11362060 = 771.3234287776531;
double r11362061 = 3.0;
double r11362062 = r11362040 + r11362061;
double r11362063 = r11362060 / r11362062;
double r11362064 = r11362059 + r11362063;
double r11362065 = -176.6150291621406;
double r11362066 = 4.0;
double r11362067 = r11362040 + r11362066;
double r11362068 = r11362065 / r11362067;
double r11362069 = r11362064 + r11362068;
double r11362070 = 12.507343278686905;
double r11362071 = 5.0;
double r11362072 = r11362040 + r11362071;
double r11362073 = r11362070 / r11362072;
double r11362074 = r11362069 + r11362073;
double r11362075 = -0.13857109526572012;
double r11362076 = 6.0;
double r11362077 = r11362040 + r11362076;
double r11362078 = r11362075 / r11362077;
double r11362079 = r11362074 + r11362078;
double r11362080 = 9.984369578019572e-06;
double r11362081 = r11362080 / r11362042;
double r11362082 = r11362079 + r11362081;
double r11362083 = 1.5056327351493116e-07;
double r11362084 = 8.0;
double r11362085 = r11362040 + r11362084;
double r11362086 = r11362083 / r11362085;
double r11362087 = r11362082 + r11362086;
double r11362088 = r11362050 * r11362087;
double r11362089 = r11362034 * r11362088;
return r11362089;
}
double f(double z) {
double r11362090 = z;
double r11362091 = 4955227057.691296;
double r11362092 = 1817544478.7607374;
double r11362093 = fma(r11362090, r11362091, r11362092);
double r11362094 = 19410575.890090168;
double r11362095 = fma(r11362093, r11362090, r11362094);
double r11362096 = 4.0;
double r11362097 = r11362096 - r11362090;
double r11362098 = -1259.1392167224028;
double r11362099 = 2.0;
double r11362100 = r11362099 - r11362090;
double r11362101 = r11362098 / r11362100;
double r11362102 = 0.9999999999998099;
double r11362103 = r11362101 + r11362102;
double r11362104 = 676.5203681218851;
double r11362105 = 1.0;
double r11362106 = r11362105 - r11362090;
double r11362107 = r11362104 / r11362106;
double r11362108 = r11362107 - r11362103;
double r11362109 = r11362107 * r11362108;
double r11362110 = fma(r11362103, r11362103, r11362109);
double r11362111 = r11362097 * r11362110;
double r11362112 = r11362095 / r11362111;
double r11362113 = -0.13857109526572012;
double r11362114 = 6.0;
double r11362115 = r11362114 - r11362090;
double r11362116 = r11362113 / r11362115;
double r11362117 = 1.5056327351493116e-07;
double r11362118 = 8.0;
double r11362119 = r11362118 - r11362090;
double r11362120 = r11362117 / r11362119;
double r11362121 = 12.507343278686905;
double r11362122 = 5.0;
double r11362123 = r11362122 - r11362090;
double r11362124 = r11362121 / r11362123;
double r11362125 = r11362120 + r11362124;
double r11362126 = r11362116 + r11362125;
double r11362127 = 9.984369578019572e-06;
double r11362128 = -6.0;
double r11362129 = r11362106 - r11362128;
double r11362130 = r11362127 / r11362129;
double r11362131 = r11362126 + r11362130;
double r11362132 = 771.3234287776531;
double r11362133 = 3.0;
double r11362134 = r11362133 - r11362090;
double r11362135 = r11362132 / r11362134;
double r11362136 = r11362131 + r11362135;
double r11362137 = r11362112 + r11362136;
double r11362138 = 0.5;
double r11362139 = r11362138 + r11362129;
double r11362140 = exp(r11362139);
double r11362141 = r11362137 / r11362140;
double r11362142 = atan2(1.0, 0.0);
double r11362143 = r11362142 * r11362099;
double r11362144 = sqrt(r11362143);
double r11362145 = r11362142 * r11362090;
double r11362146 = sin(r11362145);
double r11362147 = r11362142 / r11362146;
double r11362148 = r11362144 * r11362147;
double r11362149 = r11362141 * r11362148;
double r11362150 = r11362106 - r11362105;
double r11362151 = r11362150 + r11362138;
double r11362152 = pow(r11362139, r11362151);
double r11362153 = r11362149 * r11362152;
return r11362153;
}



Bits error versus z
Initial program 1.8
Simplified1.2
rmApplied flip3-+0.6
Applied frac-add0.6
Simplified0.6
Simplified0.6
Simplified0.5
Taylor expanded around 0 1.3
Simplified1.3
Final simplification1.3
herbie shell --seed 2019125 +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))))))