\left(\left(\sqrt{\pi \cdot 2} \cdot {\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)}\right) \cdot e^{-\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}\right) \cdot \left(\left(\left(\left(\left(\left(\left(\left(0.9999999999998099 + \frac{676.5203681218851}{\left(z - 1\right) + 1}\right) + \frac{-1259.1392167224028}{\left(z - 1\right) + 2}\right) + \frac{771.3234287776531}{\left(z - 1\right) + 3}\right) + \frac{-176.6150291621406}{\left(z - 1\right) + 4}\right) + \frac{12.507343278686905}{\left(z - 1\right) + 5}\right) + \frac{-0.13857109526572012}{\left(z - 1\right) + 6}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{\left(z - 1\right) + 7}\right) + \frac{1.5056327351493116 \cdot 10^{-07}}{\left(z - 1\right) + 8}\right)\frac{{\left(0.5 + \left(z - -6\right)\right)}^{z} \cdot \left(\left(\sqrt{\pi \cdot 2} \cdot e^{-6}\right) \cdot \left(\left(\left(\frac{1.5056327351493116 \cdot 10^{-07}}{7 + z} + \left(\frac{12.507343278686905}{z - -4} + \frac{-0.13857109526572012}{z + 5}\right)\right) + \left(\left(\frac{-176.6150291621406}{3 + z} + \left(\frac{676.5203681218851}{z} + 0.9999999999998099\right)\right) + \left(\frac{771.3234287776531}{2 + z} + \frac{-1259.1392167224028}{1 + z}\right)\right)\right) + \frac{9.984369578019572 \cdot 10^{-06}}{6 + z}\right)\right)}{{\left(0.5 + \left(z - -6\right)\right)}^{\left(1 - 0.5\right)} \cdot e^{0.5 + z}}double f(double z) {
double r12969019 = atan2(1.0, 0.0);
double r12969020 = 2.0;
double r12969021 = r12969019 * r12969020;
double r12969022 = sqrt(r12969021);
double r12969023 = z;
double r12969024 = 1.0;
double r12969025 = r12969023 - r12969024;
double r12969026 = 7.0;
double r12969027 = r12969025 + r12969026;
double r12969028 = 0.5;
double r12969029 = r12969027 + r12969028;
double r12969030 = r12969025 + r12969028;
double r12969031 = pow(r12969029, r12969030);
double r12969032 = r12969022 * r12969031;
double r12969033 = -r12969029;
double r12969034 = exp(r12969033);
double r12969035 = r12969032 * r12969034;
double r12969036 = 0.9999999999998099;
double r12969037 = 676.5203681218851;
double r12969038 = r12969025 + r12969024;
double r12969039 = r12969037 / r12969038;
double r12969040 = r12969036 + r12969039;
double r12969041 = -1259.1392167224028;
double r12969042 = r12969025 + r12969020;
double r12969043 = r12969041 / r12969042;
double r12969044 = r12969040 + r12969043;
double r12969045 = 771.3234287776531;
double r12969046 = 3.0;
double r12969047 = r12969025 + r12969046;
double r12969048 = r12969045 / r12969047;
double r12969049 = r12969044 + r12969048;
double r12969050 = -176.6150291621406;
double r12969051 = 4.0;
double r12969052 = r12969025 + r12969051;
double r12969053 = r12969050 / r12969052;
double r12969054 = r12969049 + r12969053;
double r12969055 = 12.507343278686905;
double r12969056 = 5.0;
double r12969057 = r12969025 + r12969056;
double r12969058 = r12969055 / r12969057;
double r12969059 = r12969054 + r12969058;
double r12969060 = -0.13857109526572012;
double r12969061 = 6.0;
double r12969062 = r12969025 + r12969061;
double r12969063 = r12969060 / r12969062;
double r12969064 = r12969059 + r12969063;
double r12969065 = 9.984369578019572e-06;
double r12969066 = r12969065 / r12969027;
double r12969067 = r12969064 + r12969066;
double r12969068 = 1.5056327351493116e-07;
double r12969069 = 8.0;
double r12969070 = r12969025 + r12969069;
double r12969071 = r12969068 / r12969070;
double r12969072 = r12969067 + r12969071;
double r12969073 = r12969035 * r12969072;
return r12969073;
}
double f(double z) {
double r12969074 = 0.5;
double r12969075 = z;
double r12969076 = -6.0;
double r12969077 = r12969075 - r12969076;
double r12969078 = r12969074 + r12969077;
double r12969079 = pow(r12969078, r12969075);
double r12969080 = atan2(1.0, 0.0);
double r12969081 = 2.0;
double r12969082 = r12969080 * r12969081;
double r12969083 = sqrt(r12969082);
double r12969084 = exp(r12969076);
double r12969085 = r12969083 * r12969084;
double r12969086 = 1.5056327351493116e-07;
double r12969087 = 7.0;
double r12969088 = r12969087 + r12969075;
double r12969089 = r12969086 / r12969088;
double r12969090 = 12.507343278686905;
double r12969091 = -4.0;
double r12969092 = r12969075 - r12969091;
double r12969093 = r12969090 / r12969092;
double r12969094 = -0.13857109526572012;
double r12969095 = 5.0;
double r12969096 = r12969075 + r12969095;
double r12969097 = r12969094 / r12969096;
double r12969098 = r12969093 + r12969097;
double r12969099 = r12969089 + r12969098;
double r12969100 = -176.6150291621406;
double r12969101 = 3.0;
double r12969102 = r12969101 + r12969075;
double r12969103 = r12969100 / r12969102;
double r12969104 = 676.5203681218851;
double r12969105 = r12969104 / r12969075;
double r12969106 = 0.9999999999998099;
double r12969107 = r12969105 + r12969106;
double r12969108 = r12969103 + r12969107;
double r12969109 = 771.3234287776531;
double r12969110 = r12969081 + r12969075;
double r12969111 = r12969109 / r12969110;
double r12969112 = -1259.1392167224028;
double r12969113 = 1.0;
double r12969114 = r12969113 + r12969075;
double r12969115 = r12969112 / r12969114;
double r12969116 = r12969111 + r12969115;
double r12969117 = r12969108 + r12969116;
double r12969118 = r12969099 + r12969117;
double r12969119 = 9.984369578019572e-06;
double r12969120 = 6.0;
double r12969121 = r12969120 + r12969075;
double r12969122 = r12969119 / r12969121;
double r12969123 = r12969118 + r12969122;
double r12969124 = r12969085 * r12969123;
double r12969125 = r12969079 * r12969124;
double r12969126 = r12969113 - r12969074;
double r12969127 = pow(r12969078, r12969126);
double r12969128 = r12969074 + r12969075;
double r12969129 = exp(r12969128);
double r12969130 = r12969127 * r12969129;
double r12969131 = r12969125 / r12969130;
return r12969131;
}



Bits error versus z
Results
Initial program 59.9
Simplified0.9
rmApplied associate-+r-0.9
Applied exp-diff0.9
Applied associate-/r/0.9
rmApplied pow-sub0.9
Applied associate-*l/1.0
Applied associate-*l/0.9
Applied frac-times0.9
Final simplification0.9
herbie shell --seed 2019158 +o rules:numerics
(FPCore (z)
:name "Jmat.Real.gamma, branch z greater than 0.5"
(* (* (* (sqrt (* PI 2)) (pow (+ (+ (- z 1) 7) 0.5) (+ (- z 1) 0.5))) (exp (- (+ (+ (- z 1) 7) 0.5)))) (+ (+ (+ (+ (+ (+ (+ (+ 0.9999999999998099 (/ 676.5203681218851 (+ (- z 1) 1))) (/ -1259.1392167224028 (+ (- z 1) 2))) (/ 771.3234287776531 (+ (- z 1) 3))) (/ -176.6150291621406 (+ (- z 1) 4))) (/ 12.507343278686905 (+ (- z 1) 5))) (/ -0.13857109526572012 (+ (- z 1) 6))) (/ 9.984369578019572e-06 (+ (- z 1) 7))) (/ 1.5056327351493116e-07 (+ (- z 1) 8)))))