\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{\left(\pi \cdot \sqrt{\pi \cdot 2}\right) \cdot \left({\left(0.5 + \left(7 - z\right)\right)}^{\left(0.5 - z\right)} \cdot \left(\left(\frac{12.5073432786869052}{5 - z} + \left(\frac{1.50563273514931162 \cdot 10^{-7}}{8 - z} + \left(\frac{9.98436957801957158 \cdot 10^{-6}}{7 - z} + \frac{-0.138571095265720118}{6 - z}\right)\right)\right) + \left(\left(0.99999999999980993 + \left(\left(\frac{676.520368121885099}{1 - z} + \frac{-1259.13921672240281}{2 - z}\right) + \frac{-176.615029162140587}{4 - z}\right)\right) + \frac{771.32342877765313}{3 - z}\right)\right)\right)}{e^{0.5 + \left(7 - z\right)} \cdot \sin \left(\pi \cdot z\right)}double f(double z) {
double r266074 = atan2(1.0, 0.0);
double r266075 = z;
double r266076 = r266074 * r266075;
double r266077 = sin(r266076);
double r266078 = r266074 / r266077;
double r266079 = 2.0;
double r266080 = r266074 * r266079;
double r266081 = sqrt(r266080);
double r266082 = 1.0;
double r266083 = r266082 - r266075;
double r266084 = r266083 - r266082;
double r266085 = 7.0;
double r266086 = r266084 + r266085;
double r266087 = 0.5;
double r266088 = r266086 + r266087;
double r266089 = r266084 + r266087;
double r266090 = pow(r266088, r266089);
double r266091 = r266081 * r266090;
double r266092 = -r266088;
double r266093 = exp(r266092);
double r266094 = r266091 * r266093;
double r266095 = 0.9999999999998099;
double r266096 = 676.5203681218851;
double r266097 = r266084 + r266082;
double r266098 = r266096 / r266097;
double r266099 = r266095 + r266098;
double r266100 = -1259.1392167224028;
double r266101 = r266084 + r266079;
double r266102 = r266100 / r266101;
double r266103 = r266099 + r266102;
double r266104 = 771.3234287776531;
double r266105 = 3.0;
double r266106 = r266084 + r266105;
double r266107 = r266104 / r266106;
double r266108 = r266103 + r266107;
double r266109 = -176.6150291621406;
double r266110 = 4.0;
double r266111 = r266084 + r266110;
double r266112 = r266109 / r266111;
double r266113 = r266108 + r266112;
double r266114 = 12.507343278686905;
double r266115 = 5.0;
double r266116 = r266084 + r266115;
double r266117 = r266114 / r266116;
double r266118 = r266113 + r266117;
double r266119 = -0.13857109526572012;
double r266120 = 6.0;
double r266121 = r266084 + r266120;
double r266122 = r266119 / r266121;
double r266123 = r266118 + r266122;
double r266124 = 9.984369578019572e-06;
double r266125 = r266124 / r266086;
double r266126 = r266123 + r266125;
double r266127 = 1.5056327351493116e-07;
double r266128 = 8.0;
double r266129 = r266084 + r266128;
double r266130 = r266127 / r266129;
double r266131 = r266126 + r266130;
double r266132 = r266094 * r266131;
double r266133 = r266078 * r266132;
return r266133;
}
double f(double z) {
double r266134 = atan2(1.0, 0.0);
double r266135 = 2.0;
double r266136 = r266134 * r266135;
double r266137 = sqrt(r266136);
double r266138 = r266134 * r266137;
double r266139 = 0.5;
double r266140 = 7.0;
double r266141 = z;
double r266142 = r266140 - r266141;
double r266143 = r266139 + r266142;
double r266144 = r266139 - r266141;
double r266145 = pow(r266143, r266144);
double r266146 = 12.507343278686905;
double r266147 = 5.0;
double r266148 = r266147 - r266141;
double r266149 = r266146 / r266148;
double r266150 = 1.5056327351493116e-07;
double r266151 = 8.0;
double r266152 = r266151 - r266141;
double r266153 = r266150 / r266152;
double r266154 = 9.984369578019572e-06;
double r266155 = r266154 / r266142;
double r266156 = -0.13857109526572012;
double r266157 = 6.0;
double r266158 = r266157 - r266141;
double r266159 = r266156 / r266158;
double r266160 = r266155 + r266159;
double r266161 = r266153 + r266160;
double r266162 = r266149 + r266161;
double r266163 = 0.9999999999998099;
double r266164 = 676.5203681218851;
double r266165 = 1.0;
double r266166 = r266165 - r266141;
double r266167 = r266164 / r266166;
double r266168 = -1259.1392167224028;
double r266169 = r266135 - r266141;
double r266170 = r266168 / r266169;
double r266171 = r266167 + r266170;
double r266172 = -176.6150291621406;
double r266173 = 4.0;
double r266174 = r266173 - r266141;
double r266175 = r266172 / r266174;
double r266176 = r266171 + r266175;
double r266177 = r266163 + r266176;
double r266178 = 771.3234287776531;
double r266179 = 3.0;
double r266180 = r266179 - r266141;
double r266181 = r266178 / r266180;
double r266182 = r266177 + r266181;
double r266183 = r266162 + r266182;
double r266184 = r266145 * r266183;
double r266185 = r266138 * r266184;
double r266186 = exp(r266143);
double r266187 = r266134 * r266141;
double r266188 = sin(r266187);
double r266189 = r266186 * r266188;
double r266190 = r266185 / r266189;
return r266190;
}



Bits error versus z
Results
Initial program 1.8
Simplified1.1
rmApplied associate-*l/1.1
Applied associate-*l/1.2
Applied associate-*l/1.0
Applied associate-/l/0.4
rmApplied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2020042 +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))))))