| """Precompute series coefficients for log-Gamma.""" | |
| try: | |
| import mpmath | |
| except ImportError: | |
| pass | |
| def stirling_series(N): | |
| with mpmath.workdps(100): | |
| coeffs = [mpmath.bernoulli(2*n)/(2*n*(2*n - 1)) | |
| for n in range(1, N + 1)] | |
| return coeffs | |
| def taylor_series_at_1(N): | |
| coeffs = [] | |
| with mpmath.workdps(100): | |
| coeffs.append(-mpmath.euler) | |
| for n in range(2, N + 1): | |
| coeffs.append((-1)**n*mpmath.zeta(n)/n) | |
| return coeffs | |
| def main(): | |
| print(__doc__) | |
| print() | |
| stirling_coeffs = [mpmath.nstr(x, 20, min_fixed=0, max_fixed=0) | |
| for x in stirling_series(8)[::-1]] | |
| taylor_coeffs = [mpmath.nstr(x, 20, min_fixed=0, max_fixed=0) | |
| for x in taylor_series_at_1(23)[::-1]] | |
| print("Stirling series coefficients") | |
| print("----------------------------") | |
| print("\n".join(stirling_coeffs)) | |
| print() | |
| print("Taylor series coefficients") | |
| print("--------------------------") | |
| print("\n".join(taylor_coeffs)) | |
| print() | |
| if __name__ == '__main__': | |
| main() | |