\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.99999999999980993 + \frac{676.520368121885099}{\left(z - 1\right) + 1}\right) + \frac{-1259.13921672240281}{\left(z - 1\right) + 2}\right) + \frac{771.32342877765313}{\left(z - 1\right) + 3}\right) + \frac{-176.615029162140587}{\left(z - 1\right) + 4}\right) + \frac{12.5073432786869052}{\left(z - 1\right) + 5}\right) + \frac{-0.138571095265720118}{\left(z - 1\right) + 6}\right) + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(z - 1\right) + 7}\right) + \frac{1.50563273514931162 \cdot 10^{-7}}{\left(z - 1\right) + 8}\right)\mathsf{fma}\left(338.260184060942549 \cdot \left({\left(\log 6.5\right)}^{2} \cdot \left(z \cdot \left(\sqrt{2} \cdot e^{-6.5}\right)\right)\right), {\left(\frac{1}{{6.5}^{1}}\right)}^{0.5} \cdot \sqrt{\pi}, \mathsf{fma}\left(169.130092030471275, \left(\sqrt{2} \cdot \left(z \cdot e^{-6.5}\right)\right) \cdot \left({\left(\frac{1}{{6.5}^{5}}\right)}^{0.5} \cdot \sqrt{\pi}\right), \mathsf{fma}\left(676.520368121885099, \frac{\sqrt{2} \cdot e^{-6.5}}{z} \cdot \left({\left(\frac{1}{{6.5}^{1}}\right)}^{0.5} \cdot \sqrt{\pi}\right), \mathsf{fma}\left(2581.19179968122216, \left(\sqrt{2} \cdot \left(z \cdot e^{-6.5}\right)\right) \cdot \left({\left(\frac{1}{{6.5}^{1}}\right)}^{0.5} \cdot \sqrt{\pi}\right), 676.520368121885099 \cdot \left(\left(\log 6.5 \cdot \left(\sqrt{2} \cdot e^{-6.5}\right)\right) \cdot \left({\left(\frac{1}{{6.5}^{1}}\right)}^{0.5} \cdot \sqrt{\pi}\right)\right)\right)\right)\right) - \mathsf{fma}\left(1656.8104518737205, \left(\log 6.5 \cdot \left(z \cdot \left(\sqrt{2} \cdot e^{-6.5}\right)\right)\right) \cdot \left({\left(\frac{1}{{6.5}^{1}}\right)}^{0.5} \cdot \sqrt{\pi}\right), 1656.8104518737205 \cdot \left(\left(\sqrt{2} \cdot e^{-6.5}\right) \cdot \left({\left(\frac{1}{{6.5}^{1}}\right)}^{0.5} \cdot \sqrt{\pi}\right)\right)\right)\right)double code(double z) {
return ((double) (((double) (((double) (((double) sqrt(((double) (((double) M_PI) * 2.0)))) * ((double) pow(((double) (((double) (((double) (z - 1.0)) + 7.0)) + 0.5)), ((double) (((double) (z - 1.0)) + 0.5)))))) * ((double) exp(((double) -(((double) (((double) (((double) (z - 1.0)) + 7.0)) + 0.5)))))))) * ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (0.9999999999998099 + ((double) (676.5203681218851 / ((double) (((double) (z - 1.0)) + 1.0)))))) + ((double) (-1259.1392167224028 / ((double) (((double) (z - 1.0)) + 2.0)))))) + ((double) (771.3234287776531 / ((double) (((double) (z - 1.0)) + 3.0)))))) + ((double) (-176.6150291621406 / ((double) (((double) (z - 1.0)) + 4.0)))))) + ((double) (12.507343278686905 / ((double) (((double) (z - 1.0)) + 5.0)))))) + ((double) (-0.13857109526572012 / ((double) (((double) (z - 1.0)) + 6.0)))))) + ((double) (9.984369578019572e-06 / ((double) (((double) (z - 1.0)) + 7.0)))))) + ((double) (1.5056327351493116e-07 / ((double) (((double) (z - 1.0)) + 8.0))))))));
}
double code(double z) {
return ((double) fma(((double) (338.26018406094255 * ((double) (((double) pow(((double) log(6.5)), 2.0)) * ((double) (z * ((double) (((double) sqrt(2.0)) * ((double) exp(((double) -(6.5)))))))))))), ((double) (((double) pow(((double) (1.0 / ((double) pow(6.5, 1.0)))), 0.5)) * ((double) sqrt(((double) M_PI))))), ((double) (((double) fma(169.13009203047127, ((double) (((double) (((double) sqrt(2.0)) * ((double) (z * ((double) exp(((double) -(6.5)))))))) * ((double) (((double) pow(((double) (1.0 / ((double) pow(6.5, 5.0)))), 0.5)) * ((double) sqrt(((double) M_PI))))))), ((double) fma(676.5203681218851, ((double) (((double) (((double) (((double) sqrt(2.0)) * ((double) exp(((double) -(6.5)))))) / z)) * ((double) (((double) pow(((double) (1.0 / ((double) pow(6.5, 1.0)))), 0.5)) * ((double) sqrt(((double) M_PI))))))), ((double) fma(2581.191799681222, ((double) (((double) (((double) sqrt(2.0)) * ((double) (z * ((double) exp(((double) -(6.5)))))))) * ((double) (((double) pow(((double) (1.0 / ((double) pow(6.5, 1.0)))), 0.5)) * ((double) sqrt(((double) M_PI))))))), ((double) (676.5203681218851 * ((double) (((double) (((double) log(6.5)) * ((double) (((double) sqrt(2.0)) * ((double) exp(((double) -(6.5)))))))) * ((double) (((double) pow(((double) (1.0 / ((double) pow(6.5, 1.0)))), 0.5)) * ((double) sqrt(((double) M_PI))))))))))))))) - ((double) fma(1656.8104518737205, ((double) (((double) (((double) log(6.5)) * ((double) (z * ((double) (((double) sqrt(2.0)) * ((double) exp(((double) -(6.5)))))))))) * ((double) (((double) pow(((double) (1.0 / ((double) pow(6.5, 1.0)))), 0.5)) * ((double) sqrt(((double) M_PI))))))), ((double) (1656.8104518737205 * ((double) (((double) (((double) sqrt(2.0)) * ((double) exp(((double) -(6.5)))))) * ((double) (((double) pow(((double) (1.0 / ((double) pow(6.5, 1.0)))), 0.5)) * ((double) sqrt(((double) M_PI)))))))))))))));
}



Bits error versus z
Results
Initial program 61.6
Taylor expanded around 0 0.9
Taylor expanded around 0 1.1
Simplified1.1
Final simplification1.1
herbie shell --seed 2020121 +o rules:numerics
(FPCore (z)
:name "Jmat.Real.gamma, branch z greater than 0.5"
:precision binary64
(* (* (* (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)))))