� I�g-����dZddlZddlZddlmZddlmZmZmZmZm Z ddl m Z m Z m Z mZddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<ddl=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSdd lTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZne>d ���Zoe>d ���Zpe>d ���Zqe>d ���Zr e>d���Zse>d���Zte>d���Zue?es��Zve?er��Zwe?ep��Zxe?eq��Zye?eo��Zze?et��Z{e?eu��Z|dZ} iZ~e!d��Ze!d��Z�d�Z�e�e}��Z�d@d�Z�d@d�Z�d�Z� d�Z�d�Z�efd�Z�efd�Z�efd�Z�efd�Z� iZ�d�Z�dZ�iZ�efd �Z�edfd!�Z�edd"fd#�Z�efd$�Z�efd%�Z�dZ�d&�Z�ga�ga�ga�d'�Z�d(�Z�d)Z�d*�Z�d+Z�e�d,ksJ�d-Z�d.Z�iZ�iZ�d/�e�e�dz��D��Z�d0�Z�d1�Z�d2�Z�d3�Z�d4�Z�d5�Z�dAd7�Z�dAd8�Z�dBd9�Z�dBd:�Z�dBd;�Z�dBd<�Z�dBd=�Z�dBd>�Z�efd?�Z�dS)Cao ----------------------------------------------------------------------- This module implements gamma- and zeta-related functions: * Bernoulli numbers * Factorials * The gamma function * Polygamma functions * Harmonic numbers * The Riemann zeta function * Constants related to these functions ----------------------------------------------------------------------- �N�)�xrange)�MPZ�MPZ_ZERO�MPZ_ONE� MPZ_THREE�gmpy)� list_primes�ifac�ifac2�moebius)-� round_floor� round_ceiling� round_down�round_up� round_nearest� round_fast�lshift� sqrt_fixed� isqrt_fast�fzero�fone�fnone�fhalf�ftwo�finf�fninf�fnan�from_int�to_int�to_fixed� from_man_exp� from_rational�mpf_pos�mpf_neg�mpf_abs�mpf_add�mpf_sub�mpf_mul� mpf_mul_int�mpf_div�mpf_sqrt� mpf_pow_int� mpf_rdiv_int� mpf_perturb�mpf_le�mpf_lt�mpf_gt� mpf_shift� negative_rnd�reciprocal_rnd�bitcount�to_float� mpf_floor�mpf_sign� ComplexResult)� constant_memo�def_mpf_constant�mpf_pi�pi_fixed� ln2_fixed� log_int_fixed�mpf_ln2�mpf_exp�mpf_log�mpf_pow�mpf_cosh� mpf_cos_sin� mpf_cosh_sinh�mpf_cos_sin_pi� mpf_cos_pi� mpf_sin_pi�ln_sqrt2pi_fixed�mpf_ln_sqrt2pi� sqrtpi_fixed� mpf_sqrtpi� cos_sin_fixed� exp_fixed)�mpc_zero�mpc_one�mpc_half�mpc_two�mpc_abs� mpc_shift�mpc_pos�mpc_neg�mpc_add�mpc_sub�mpc_mul�mpc_div� mpc_add_mpf� mpc_mul_mpf� mpc_div_mpf� mpc_mpf_div� mpc_mul_int� mpc_pow_int�mpc_log�mpc_exp�mpc_pow� mpc_cos_pi� mpc_sin_pi�mpc_reciprocal� mpc_square� mpc_sub_mpfc��|dz}t|zx}}d\}}}|rc|d|dzzd|zdz zz}|dd|zz d|dzzzdzz}|d|dz zzd |dzzd |zz dzz|dzd|zdz zz}||z }|dz }|�c|d z S) N�)rrr� ��r�������(���r)�prec�a�one�s�t�ns �f/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/mpmath/libmp/gammazeta.py� catalan_fixedr}Hs��� �"�9�D���o��A���G�A�q�!� �� �R�!�Q�$�Y�!�A�#�a�%� � �� �q��A��v�b��A��g�~��!�!�� ��q��s� �O�r�!�Q�$�w�r�!�t�|�A�~� .�1�a�4�1�Q�3�q�5�>� B�� �Q��� �Q��� �� ��=��c���t||dzzdz��}t}td��}t|zx}}t |��}t t |||��d��x}}d} ttd| z|����} t | ||��} t| ||��} t| |��} | |z |z| z|z } | dkrnP|| z }||d| zdzz|d| zzz z }| dz } t|d| zd| zdz z|��}t |||��}��||zt|��z}tt|| ��|��} t| |��} | S)N��?��ror�d)�intrrrr=r3r)r&� mpf_bernoullir+r!r*r?rBr") rv�wpry�facrz�ONE�pi�pipow�twopi2r{�zeta2n�term�Ks r|�khinchin_fixedr�ms��� �T�D�#�I� �� "� #� #�B��A� �1�+�+�C���m��A�� ����B��w�r�2�r�2�2�A�6�6�6�E�F� �A�+���q��s�B�/�/�0�0������+�+�����b�)�)���&�"�%�%���3�,�!�#��)�b�0�� �#�:�:� � �T� �� �S�1�Q�3�q�5�\�C�!�A�#�J� &�&�� �Q����#��!��a��c�!�e�}�b�1�1����v�r�*�*��+� �b��Y�r�]�]�"�A�� �Q���$�$�b�)�)�A���D���A� �Hr~c ��|dz}td|zdz��}t|z}t}td|��D]}|t ||��|dzzz }�t ||��}|||z|zz }|||dzdzzz }|dz}d}d} d} t d��} d} ||z| |zz|z} t | | ��} td|z|��} t| | |��}t|| |��}t||��}t|��dkrn^||z}| || zz | | z||z| dzf\}} }} | || zz | | z||z| dzf\}} }} |dz }t| d|zd|zdz z|��} ��t|��}|d z}||z|dz|z z}|t|��z }|ttt d|z| ��|��|��z }|d z}t!t || ��|��}t||��S) N�g��Q��?�rornr�����r��� )r�rr�ranger@rr"r�r)r+r!�absr*r>� euler_fixedrCrB)rvr��Nr�ry�k�logN�pNrw�b�jr��D�Br�r��As r|�glaisher_fixedr��s|�� ���B� �D��I��M���A� �R�-�C��A� �1�a�[�[�*�*�� �]�1�b� !� !�Q��T� )�)��� ��B� � �D��#��*�� ��A���!�Q�$��(� ��A� �A��B� �A� �A� �A� �1�+�+�C� �A�2��2�g��4�� �B� &�� ��R�C� � �� �!�A�#�r� "� "���q�!�R� � ���t�S�"�%�%����b�!�!�� �t�9�9�s�?�?� � �T� ����!��e�a�R��T�2�a�4��1��,� ��1�b�!���!��e�a�R��T�2�a�4��1��,� ��1�b�!� �Q����#��!��a��c�!�e�}�b�1�1��#2�& �"���B���F�A� �b��b�!�e�r�k�"�A���R����A���'�,�q��t�b�S�1�1�2�6�6�� ;� ;�;�A��"�H�A�� �Q���$�$�b�)�)�A� �A�t� � �r~c���|dz }t|z}td��|z}d}t}|rE||z }||dzz}|d|zdzdzd|zdzzz}d|zd|dzzd |zzdzz|z}|dz }|�E|d z S) Nrl�Mr� ror�rq����rt)rrr)rv�dr�r{rys r|� apery_fixedr��s����B�J�D��4��A� �r�7�7�d�?�D� �A��A� �� �T� �� �a��e� �� ��1��Q��� �q��s�Q�h�&�'���Q�w�#�q�!�t�*�s�1�u�,�r�1�2�Q�6�� �Q��� �� ��=�r~c��d}||z }ttj|dz tjd��zd����dz}d|z}| t|��zx}}t|zx}}d} ||dzz|dzz}||dzz|z|z|z}||z }||z }t t |��t |����dkrn|dz }�^|||z z|zS)Nr�r�rorr�)r��math�logr?r�maxr�) rv�extra�pr{r��Ur��Vr�s r|r�r�s��� �E��E�M�D� �D�H�d�1�f���� � �+�Q� /� /�0�0�1�4�A� �1��A� �B�y���� ��A�� �t�O��A�� �A�� �a��d�F�A�q�D�L�� �q�!�t�V�Q�Y��]�Q� �� �Q��� �Q��� �s�1�v�v�s�1�v�v� � �� $� $� � �Q���� ��U� �O�a� �r~c�L�|dz}d}t|��} t||��}|tkrnbt||��}t |t |��|��}t |t|��|��}t||��}|dz }�~t||��S)Nrlror) � mpf_euler� mpf_zeta_intrrCr*r r+rr'r!)rvr��mryrzs r|� mertens_fixedr�*s��� ���B� �A��"� � �A�� ��B� � �� ��9�9� � �A�r�N�N�� ��7�1�:�:�r� *� *�� �A�x��{�{�B� '� '�� �A�q�M�M�� �Q���� �A�t� � �r~c �v��d�}d|zdz�t}�fd�dD��}�fd�|D��}d} t|���}td��D]L}t|t t||�����}t||||���||<�Mt |||�� ���}t ||d zd ��tkrnt||���}|dz }��t|td �����}t|td �����}t||��S) Nc�b��t�fd�td�dz��D�����zS)Nc3�L�K�|]}�|z�t|���|zzV��dS�N)r )�.0r�r{s �r|� <genexpr>z-twinprime_fixed.<locals>.I.<locals>.<genexpr>=s;�����H�H�!�A�a�C�H�7�1�:�:��1��%�H�H�H�H�H�Hr~r)�sumr�r{s`r|�Iztwinprime_fixed.<locals>.I<s7����H�H�H�H�v�a��!��}�}�H�H�H�H�H�!�K�Kr~ror�c�2��g|]}td|�����S)r)r#�r�r�r�s �r|� <listcomp>z#twinprime_fixed.<locals>.<listcomp>@s%��� 7� 7� 7��m�A�a��#�#� 7� 7� 7r~)rornr��c�2��g|]}t||�����S�)r)r�s �r|r�z#twinprime_fixed.<locals>.<listcomp>As#���/�/�/�1�w�q��2���/�/�/r~rr�r�r{i'i ) rr�r�r)r(r-r$rr+r!) rvr��res�primes�ppowersr{rw�ir�s @r|�twinprime_fixedr�:sc���L�L�L� �4��"��B� �C� 7� 7� 7� 7�Y� 7� 7� 7�F�/�/�/�/��/�/�/�G� �A� � ��B� � ���q��� <� <�A���7�4����4�4�b�9�9�A� ����V�A�Y��;�;�G�A�J�J� ��A�A�a�D�D�5�"� %� %�� �1�d�2�g�s� #� #�t� +� +� ��c�1�b�!�!�� �Q��� � �#�x��(�(�"� -� -�C� �#�x��(�(�"� -� -�C� �C�� � �r~i� rnr�c�h�tj|d��}tdd|zz||dz zz��S)z5Accurately estimate the size of B_n (even n > 2 only)rog��S㥛@r�g�K7�A`@)r�r�r�)r{�lgns r|�bernoulli_sizer��s4�� �(�1�Q�-�-�C� �u�s�3�w���C�%�K��0� 1� 1�1r~c��|dkr<|dkrtd���|dkrtS|dkrtt��S|dzrtS|t krD|t |��dzdzkr+t|��\}}t||||pt��S|tkrt|||��S|dz}|d|d zz z }t� |��}|rK|\}}||vr!|s||St||||��S|\} } } || z d krt|||��SnI|d krt|||��Sdti}dtd ��t gx\} } } }||ft|<| |k�r�| d z} t | ��} d}t#d| ��|z }| d krt$}n| }t'd| d zdz��D]�}|| d |zz x\}}}}}|r| }|t)||z||z ��z }d |z}|| d z |z | d z |z z| dz |z z| dz |z z| dz |z z| |z zz}|d |zd |zzd |zzd|zzd|zzd|zzz}��| dkrt+| dzt,|��}| dkrt+| dzt,|��}| d krt+| dz t.|��}t1|||��}t3t5|||��t7| ��|��}||| <| dz } | | dz| dzzz| | dz zz} | d kr| d| zd| zzz| dz | d z zz} | | | g|dd�<| |k���||S)z.Computation of Bernoulli numbers (numerically)rorz)Bernoulli numbers only defined for n >= 0rg�������?��r�rm�r�r�r�r�rnr��� N)� ValueErrorrr%rr�BERNOULLI_PREC_CUTOFFr��bernfracr#r�MAX_BERNOULLI_CACHE�mpf_bernoulli_huge�bernoulli_cache�getr$rrr�rrrr.�f3�f6r"r+r(r)r{rv�rndr��qr��cached�numbers�stater��bin�bin1�case�szbmry�sexprwr��usign�uman�uexp�ubc�u�j6r�s r|r�r��s#���1�u�u� �q�5�5��H�I�I� I� ��6�6��K� ��6�6��5�>�>� !��1�u��� �  �#�#�#��~�a�/@�/@��/D�t�/K�(K�(K���{�{���1��Q��4��);� �<�<�<�� ���!�!�T�3�/�/�/� ���B��"��r� � ��B� � � �� $� $�F� �/����� ��<�<�� "��q�z�!��7�1�:�t�S�1�1� 1�� ��3�� �q�5�2�:�:�%�a��s�3�3� 3� � �r�6�6�%�a��s�3�3� 3��T�(�� !�3�r�7�7�G�4�4� ��3��u�&��.���� �q�&�&��1�u���a� � �� ���1�d�|�|�r�!�� �q�5�5��A�A��A���1�a�4��6�"�"� >� >�A�)0��1�Q�3��� 7� "�E�4��s�Q�� ��u�� ���$���T� �*�*� *�A��1��B� �1�Q�3�r�6�A�a�C��F�#�Q�q�S��V�,�a��c�"�f�5�q��s�2�v�>��"��E� F�A� �A�b�D�1�R�4�=�!�B�$�'��2��.��"��5�q��t�<� =�A�A� �1�9�9�,�q��s�B��3�3�a� �1�9�9�,�q��s�B��3�3�a� �1�9�9�,��r�!�t�R��4�4�a� ��D�"� %� %�� �G�A�q�"�%�%�x��}�}�b� 9� 9����� � �Q����a��c�A�a�C�[�!�a��1��g�.�� �q�5�5��A�a�C�!�A�#�;�'�Q�q�S�1�Q�3�K�8�D��s�D�>��a�a�a��A �q�&�&�B �1�:�r~c��|dz}|ttj|d����z}t|dz|��}t |t ||��|��}t |t t|��| |����}t|d|z ��}|dzst|��}t|||pt��S)Nr�rorrn) r�r�r�� mpf_gamma_intr)r�r-r=r3r%r$r)r{rvr�r��piprec�vs r|r�r��s��� ���B� �#�d�h�q��m�m�$�$� $�F��a��c�2���A���<��2�&�&��+�+�A���;�v�f�~�~��r�2�6�6�7�7�A��!�Q�q�S���A� �q�5�� �A�J�J�� �1�d�C�-�:� .� .�.r~c��t|��}|dkr gd�|S|dzrdSd}t|dz��D]}||dz zs||z}�t|��ttj|d����zdz}t ||��}t |t|����}t|t��}||fS)a� Returns a tuple of integers `(p, q)` such that `p/q = B_n` exactly, where `B_n` denotes the `n`-th Bernoulli number. The fraction is always reduced to lowest terms. Note that for `n > 1` and `n` odd, `B_n = 0`, and `(0, 1)` is returned. **Examples** The first few Bernoulli numbers are exactly:: >>> from mpmath import * >>> for n in range(15): ... p, q = bernfrac(n) ... print("%s %s/%s" % (n, p, q)) ... 0 1/1 1 -1/2 2 1/6 3 0/1 4 -1/30 5 0/1 6 1/42 7 0/1 8 -1/30 9 0/1 10 5/66 11 0/1 12 -691/2730 13 0/1 14 7/6 This function works for arbitrarily large `n`:: >>> p, q = bernfrac(10**4) >>> print(q) 2338224387510 >>> print(len(str(p))) 27692 >>> mp.dps = 15 >>> print(mpf(p) / q) -9.04942396360948e+27677 >>> print(bernoulli(10**4)) -9.04942396360948e+27677 .. note :: :func:`~mpmath.bernoulli` computes a floating-point approximation directly, without computing the exact fraction first. This is much faster for large `n`. **Algorithm** :func:`~mpmath.bernfrac` works by computing the value of `B_n` numerically and then using the von Staudt-Clausen theorem [1] to reconstruct the exact fraction. For large `n`, this is significantly faster than computing `B_1, B_2, \ldots, B_2` recursively with exact arithmetic. The implementation has been tested for `n = 10^m` up to `m = 6`. In practice, :func:`~mpmath.bernfrac` appears to be about three times slower than the specialized program calcbn.exe [2] **References** 1. MathWorld, von Staudt-Clausen Theorem: http://mathworld.wolfram.com/vonStaudt-ClausenTheorem.html 2. The Bernoulli Number Page: http://www.bernoulli.org/ rn))rr)rqro)rr�r)rrrorl) r�r r�r�r�r�r)rr r)r{r�r�rvr�r��pints r|r�r��s���N �A���A��1�u�u�(�(�(��+�+��1�u���v� �A� ��1�� � �����Q�q�S� � � ��F�A�� �!� � �s�4�8�A�a�=�=�1�1� 1�B� 6�D��a����A���8�A�;�;���A� �!�]� #� #�D� �!�9�r~c���|tttfvr|Stt t ||dz��|��}t |t |dz|��||��S)Nr�)rrr�mpf_psi0r'rr�)�xrvr�rws r|� mpf_harmonicr��sZ���U�D�$� ��������q�$�q�&�)�)�4�0�0�A� �1�i��Q���,�,�d�C� 8� 8�8r~c���|dtkrt|d||��tfStt|t|dz��|��}t|t |dz|��||��S)Nrrr�)rr��mpc_psi0r]rr�)�zrvr�rws r|� mpc_harmonicr��sk����t�u�}�}��Q�q�T�4��-�-�u�5�5���Q��d�1�f�-�-�t�4�4�A� �q�)�D��F�C�0�0�$�� <� <�<r~c �N�|\}}}}|dz}|s*|tkr|S|tks |tkrtS|tks|dkr|rt d���||zdkrMt t |t||��||��}t|tt|||��||��S|r||zdkrvt||��\} } tt| | |��t|��|��} t tt||��|��} t| | ||��S|s.||z|kr%tt|t|��||��St|��} td|z��dz}t } t#||��}t$|z}| |kr#t'| |��D]}| ||z|zz} ||z }�||z}| t#tt)|| |��|��|��z } | ||zd|zzz } ||z|z }|}d}d} ||z|z }t+d|z|��\}}}}|d|zz}|dkr||z|d|zzz}n|| z |d|zzz}|dzr| |z} n| |z } |dkr||krn|}|dz }�qt)| | ||��S) z_ Computation of the digamma function (psi function of order 0) of a real argument. r�rzpolygamma pole�����rn�)\���(�?ror)rrrrr�r�r'rr(r+rHr)r=rCr r�rr!rrr"r�)r�rvr��sign�man�exp�bcr�r��cryr�r�r�r{rxr��x2rz�prev�bsign�bman�bexp�bbc�offsetr�s r|r�r��s�� ��D�#�s�B� ���B� �0� ��9�9�Q�h� ��:�:��d���4�K��E�z�z�c�Q�h�h�4�h��)�*�*�*� �2�v��{�{� �W�Q��d�C�0�0�$�� <� <���q�'�$��2�s�3�3�T�3�?�?�?� �(��B��� � ��a��$�$���1� �G�A�q�"�%�%�v�b�z�z�2� 6� 6�� �W�T�1�b�)�)�2� .� .���q�!�T�3�'�'�'� �8�b�3�h��m�m��w�q�$��+�+�T�3�7�7�7��q� � �A� �D��G� � �q��A��A���B���A� �R�-�C��1�u�u���1��� � �A� �#��)��!� !�A� ��H�A�A���H�A���'�,�q�2�#�r�2�2�B�7�7�� <� <�<�A��#��)��1�� ��A� �A�#�"��B� �A� �D� �A� � �r�T�b�L��!.�q��s�B�!7�!7���t�T�3���2��+�� �Q�;�;����A�q��s�G�<��� $�&�� 1�q�!�A�#�w�?�� �q�5� �!�t�)�!�!��t�)�!� �q�5�5�T�T�\�\� ��� �Q��� � ��B�3��C� (� (�(r~c�D�|\}}|tkrt|||��tfS|dz}|\}}}} |r�|| zdkr�t||��} t||��} t t | | |��t |��|��} ttt||��|��} t| | ||��S|s.| |z|kr%tt|t|��||��St|��}td|z��dz}t} ||krHt||��D]7}t| t||��|��} t!|t"|��}�8t|t|��}t%| t||��|��} t%| t t&||��|��} t)||��}t}t}t}d}t+t"| dz��} t-|||��}t/d|z|��}t1|t3|d|z|��|��}t| ||��} t5|d��}|dkr!t7||��st7||��rn |}|}|dz }��| S)zb Computation of the digamma function (psi function of order 0) of a complex argument. rlrnr�rorr�)rr�rfrgr^r\r=r�rZrRrcr r�rQrrhr]rrYrSrir3r[r�r`rarUr0)r�rvr��re�imr�r�r�r�rrryr�r��wr{r��z2rzr�szprev�eps�bernr��szterms r|r�r��s��� �F�B�� �U�{�{���T�3�'�'��/�/� ���B���D�#�s�B� �(��B��� � � �q�"� � �� �q�"� � �� ���1�b�)�)�6�"�:�:�r� :� :�� �W�W�a��,�,�b� 1� 1���q�!�T�3�'�'�'� �;�b�3�h��m�m��w�q�'�2�.�.��c�:�:�:��r� � �A� �D��G� � �q��A��A��1�u�u���1��� )� )�A���>�!�R�0�0�"�5�5�A��A�t�R�(�(�A�A���7�B���A���7�1�b�>�>�2�&�&�A���7�8�Q��+�+�R�0�0�A� �A�r� � �B��A� �D� �F� �A� �D�2�#�a�%� � �C� � �A�r�2� � ���Q�q�S�"�%�%���4��Q��!��R�!8�!8�"�=�=�� �A�t�R� � ����r�"�"�� �q�5�5�f�V�S�)�)�5�V�F�F�-C�-C�5� ����� �Q��� � �Hr~c�z�|dkrt||t���St||tf||��dS)zm Computation of the polygamma function of arbitrary integer order m >= 0, for a real argument x. r)r�)r�r�mpc_psir)r�r�rvr�s r|�mpf_psirs?��  �A�v�v���4�Z�0�0�0�0� �1�q�%�j�$�� ,� ,�Q� /�/r~c �"�|dkrt|||��S|\}}|dz}|\}}} } |ds$|tttfvrttfS|s=|tkr|tkrttfS|tkrttfSt |��} t d|zd|zz��} t} | | krOt| | ��D]>}t|| dz |��}t| ||��} t|t|��}�?t|| |��}t|d|��}t|t|��|��}t| ||��} t| tt!|||��t"|��|��} |dz}d}d}t%| d��}|d|d z}t't||z dz��} t)|||��}t+d|z|��}t-|||��}t/|t|��|��}t|||��}t| ||��} t%|d��}|dkrt1||��rn1||d|zz|d|zzdzzz}|d|zdzd|zdzzz}|dz }��t| t3t|dz��|��||��}|dzs*t5|d��t5|d��f}|S) zp Computation of the polygamma function of arbitrary integer order m >= 0, for a complex argument z. rrlrg�������?r�r�ror�rn)r�rrrrr r�rQrrbrYr]rr_rr^r\rrUr3r[r�r*r+r0� mpf_gammar%)r�r�rvr�r r r�r�r�r�rr r{ryr�rz�zmr � integral_termrwr��magnrr�scalr�rr�s r|rr s#��  �A�v�v���4��%�%�%� �F�B�� ���B���D�#�s�B� �a�5� � �$��t�$� $� $��$�<� � � � ��:�:�"��+�+��5�>� !� ��:�:��$�<� ��r� � �A� �C��F�Q�q�S�L���A��A��1�u�u���1��� )� )�A��A��r�!�t�R�(�(�A���1�b�!�!�A��A�t�R�(�(�A�A� �Q���B� � �B� �Q��B� � �B���H�Q�K�K��4�4�M���=�"�%�%�A���;�w�r�1�b�1�1�5�"�=�=�r�B�B�A� �A��A� �A� �A� �1�b�>�>�D� ��7�4��7�?�D� �D�$�r�'�!�)� $� $�C� � �R��R� � ���Q�q�S�"�%�%���4��B�'�'���t�X�a�[�[�"�-�-���2�t�R�(�(�� �A�t�R� � ����r�"�"�� �q�5�5�V�F�C�(�(�5� � �a��!��e�a��!��e�A�g� ��� �a��c�!�e�a��c�!�e�_��� �Q��� � �A�y��!�A�#����3�3�T�3�?�?�A� ��E�)� �A�a�D�M�M�7�1�Q�4�=�=� (�� �Hr~c��|tvr t|Stg|dzz}t}tx}|d<td|dz��D]4}|dz||zdz z||z dzz}|d|zd|zdz zz}||z }|||<�5|t|<|S)Nrrr�ro)� borwein_cacherrr�)r{�dsr�ryr�s r|�borwein_coefficientsr{s����M����Q��� ��q��s� �B��A���A��1�� �1�a��c�]�]���� ��E�Q�q�S��U�O�q��s�1�u� %�� ��!���1��a�� �!�� �Q�����1����M�!�� �Ir~r�c �4�|dz}t|��}|tvr9t|d|kr"tt|d||��S|dkr_|dkrtd���|st t ��St t| dz|��t|dz ��||��S||krttd||��S||dzkrQd|zx}}|d||z zz }||t|zzz }|dtd||dzz ��zz }t|| ||��St|��|dz z dz}|dkr�td|zdz��}|t|d z d z��d z kr�t}t|��D]v}t||t!j|d��zz ��} | dkrnEt%tt't|��| | ��|��} t)|| |��}�wt t||��St|d z d z��} t+| ��} t,}t/|��}t1| ��D](}|d |z| || | z z|z|dz|zzz }�)||z| |  z}||zd|zd|dz|z zz z}|tvrt|d|ks |tvr|t|| |z ��ft|<t|| |z ||��S) z< Optimized computation of zeta(s) for an integer s. rlrrroz zeta(1) poleg/�$���?r�g@�R���Q@r�r�rq)r��zeta_int_cacher$r�r%rr+r�rr/rrr�r"�floatr r�r�r(r-r)rrrr) ryrvr�r�rzrxr�� needed_termsr��powprecrwr{r�s r|r�r��sF�� ���B� �A���A��N���~�a�0��3�r�9�9��~�a�(��+�T�3�7�7�7��1�u�u� ��6�6��^�,�,� ,�� "��5�>�>� !��}�a�R��T�2�.�.���1�� � �t�S�I�I�I��B�w�w��4��D�#�.�.�.� �b��h����r�'���C� �Q�2��6�]��� �S�Y�!�^� $�$�� �Q�#�a��a��c��"�"� "�"���A��s�D�#�.�.�.��2�Y�Y��!��_�q� �� �r�6�6��s�A�v��z�?�?�L��c�"�T�'�A�+�.�.��3�3�3���$�\�2�2�*�*�A�!�"�q���!�A����"6�7�7�G���{�{�����k�(�1�+�+��r�7�&K�&K�R�P�P�A���1�b�)�)�A�A��t�Q��+�+�+� �B�t�G�a�K���A��Q���A��A� �A���A� �A�Y�Y�;�;�� ��Q�w�!�A�$��1��+�&�2�-�1�Q�3��(� :�:��� �b��q��t�e��A� �b��q�B�w�1��A��a��=�1�2�A� �^����q� 1�!� 4�r� 9� 9�q��?V�?V���a�"��R��!8�!8�9��q�� ��B�3�r�6�4�� -� -�-r~c ��|\}}}}|sA|tkr|rtStt��S|tkrtSt S|dz}|s6||zt j|d��dzkrtt|||��S|dkr�|r�|tkrt||��Stt|��|t|��} tttttt||��|��|��} t!| | ||��Stt|��||��S|�r=|r^tttttt||��|��|��} t!t#||��| ||��Stt|d|z��} t%| |��} t#| |��} t't)|d��|��}|t+d||z��z}t-||z��}t/tt)|d��||��||��}t!| t!| t!|||��|��||��Stt||��}t1|��\}}}}d||zz}||krT|rt||��Stt/t||����} t3| t5|��||��S|t+d|��z }t6}t9|dz d z��}t;|��}t6}t=||��}t?|��}tA|��D]R}| tC|dz||��z|z }tE|||��}||||z |z}|dzr||z}�M||z }�S||| z}tG|| |��}|rtI|||��Stttttt||��|��|��} t/|| ||��S) Nrlrorr�rqrr�r r�)%rrr%rrrr�r�r/rAr�r r4r(rDrr)�mpf_zetarrJr3r�r=r+r&r'r�rr�rr!r?rr@rPr"r$) ryrvr��altr�r�r�rr�r�r��yrwr�r�wp2r�r��r�asign�aman�aexp�abc� pole_distrzr{�sf�ln2r�r��emanr s r|r&r&�s����D�#�s�B� �� ��:�:�� &�� ��u�~�~�%� ��9�9��K�� � ���B� � 6�s�R�x�4�8�B�q�>�>�A�#5�6�6��4��d�C�0�0�0� ���� � 6��D�y�y��t�S�)�)�)��V�A�Y�Y��L��,=�>�>�A���g�d�G�D�!�R�,@�,@�"�E�E�r�J�J�A��1�a��s�+�+� +���q� � �4��5�5� 5�  � A� � :���g�d�G�D�!�R�,@�,@�"�E�E�r�J�J�A��8�A�r�?�?�A�t�S�9�9� 9� �D�!�R��U� #� #�� �a�� � �� �Q��O�O�� �y��B�'�'�� ,� ,���3�q��R��=�=� �� �B�s�F�^�^�� �G�I�b�!�,�,�a��5�5�r�3� ?� ?���q���7�1�Q�r�?�?�2�6�6�t�C�@�@�@� ��a����A�$�Q�Z�Z��E�4��s��D��H� �I��2�~�~� � 8��4��%�%� %����a��,�,�-�-�A��1�i��m�m�T�3�7�7� 7� �c�!�Y������A� �B�t�G�a�K���A��Q���A��A� �!�R���B� �B�-�-�C� �A�Y�Y� � ���S��q��s�B��,�,� ,�� 3����B��$�$�� �q�T�A�a�D�[�D� �� �q�5� � ��F�A�A� ��F�A�A� �q��t�e� �A��Q���R� � �A� �(��q�$��$�$�$� �D�'�$���a��(<�(<�b�A�A�2� F� F���q�!�T�3�'�'�'r~Fc �V �|\}}|tkrt||||��tfS|s2tt|d��t |����rt �|dz}t t||��}t|d��\} } } } d| | zz} | |kr�|r�t|��}t|t|��|��}tt|||��d��}t||��}t|t|��|��}t|||��}t!|||��St#t%t||����}t|t|��|��}t!|||��S|t'd| ��z }t)|t���rg|r^t tt+t,t t||��|��|��}t/t1||��|||��St t|d|z��}t3||��}t1||��}t5t7|d��|��}|\}}}}|\}}}}t'||z||z��}|t'd|��z}t9||z��}t|d��tf} t;t+| ||��||��}!t/|t/|t/||!|��|��||��St=|dz dz��}"|"t=d t?tA|����z��z }"tC|"��}!tE||��}#tE||��}$tF}%tF}&tH|z}'tHd |zz}(|tJk})tM|��}*tO|dz ��} ||z}tQ|"��D]�}+tS|+dz||*��},|)r|(tU|+dz|z��z}-ntW|# |,z|z |��}-|+dzr|-|!|"|!|+z z}-n|-|!|+|!|"z z}-tY|$ |,z|z || ��\}.}/|%|-|.z|z z }%|&|-|/z|z z }&��|%|!|" z}%|&|!|" z}&t[|%| |��}%t[|&| |��}&|rt!|%|&f||��St tt+t,||��|��}t%|%|&f|||��S) Nr�rlr�rqrrr r�g�������?ro).rr&r2rUr�NotImplementedErrorrZrRrAr)r�r3r(r^r%r]rWrXr\r�r1rerTr[�mpc_zeta� mpc_gammargrVr=r_r�r�r rr!rrrr?r>rr@rrPrOr")0ryrvr�r'�forcer r r�r*r+r,r-r.r/r�r(�gr�rwr�r�rsign�rman�rexp�rbc�isign�iman�iexp�ibc�magr)r��pi2r�r{�ref�imf�tre�timrx�one_2wp� critical_liner1r�r�r �wre�wims0 r|r5r5s�� �F�B�� �U�{�{���D�#�s�+�+�U�2�2� �"�v�g�a��n�n�h�t�n�n�=�=�"�!�!� ���B� ���B���A�$�Q��^�^��E�4��s��D��H� �I��2�~�~� � )��� � �A���9�R�=�=�"�-�-�A��'�!�Q��+�+�R�0�0�A���1� � �A��A�w�q�z�z�2�.�.�A��A�q�"�%�%�A��1�d�C�(�(� (�����B�/�/�0�0�A��A�y��}�}�b�1�1�A��1�d�C�(�(� (� �c�!�Y����� �b�%���A� � :�����'�'�1�b�2I�2I��"�"����A��8�A�r�?�?�A�t�S�9�9� 9� �G�Q��2�� &� &�� �a�� � �� �Q��O�O�� �y��B�'�'�� ,� ,��!#���t�T�3�!#���t�T�3��$�s�(�D��H�%�%���3�q�#�;�;��� �B�s�F�^�^����Q����'�� ���Q��,�,�b�#� 6� 6���q���7�1�Q�r�?�?�2�6�6�t�C�@�@�@� �B�t�G�a�K���A���S��V�B�Z�Z��� � !� !�!�A��Q���A� �2�r� � �C� �2�r� � �C� �C� �C� �R�-�C��!�B�$��G��%�K�M� �B�-�-�C� �2�a�4�.�.�C� �R�%�C� �A�Y�Y� � ���A�a�C��S�)�)�� � 0��:�q��s�s�l�3�3�3�A�A��C�4��8��*�B�/�/�A� �q�5� � �!�A�$��1��+� �A�A� �!�A�$��1��+� �A� �3�$�s�(�R���S�9�9���S� ��C��B���� ��C��B������a��d�U�O�C��a��d�U�O�C� �s�R�C�� $� $�C� �s�R�C�� $� $�C� �1���S�z�4��-�-�-� �G�W�W�a��4�4�b� 9� 9����S�z�1�d�C�0�0�0r~c�&�t|||d��S�Nr)r&�ryrvr�s r|� mpf_altzetarNr��� �A�t�S�!� $� $�$r~c�&�t|||d��SrL)r5rMs r|� mpc_altzetarQurOr~c�p�|dkr|St|z}|r!|dzr ||z|z }|dz}||z|z }|dz}|�!|S)Nrroru)r�r{r�r(s r|� pow_fixedrS|sj���A�v�v����2� �A� �� �q�5� ��1��� �A� ��F�A� �q�S�R�K�� �a��� �� �Hr~c���|tt��krJt}tdt�t |����dz�}t }|||fSdg|dzz}dg|dzz}t |��}|D]}t||dz|��D]}|||<��t|��D]+\}}|dkr d}||z}||zs||z}|dz }||z�|||<�,|a|a|a|||fS)Nrrro) �len� sieve_cache� primes_cache�indexr�� mult_cacher r� enumerate)r{�siever��multr�r�r�r�s r|� primesiever]�s@���3�{� � ������?�|�1�1�#�e�*�*�=�=�a�?�?�@�����f�d�"�"� �C�1�Q�3�K�E� �3�!�A�#�;�D� ��^�^�F� ������!�A�#�a��� � �A��E�!�H�H� ��%� � �����1� ��6�6��A��Q��A��!�e� ��a����Q����!�e� ��D��G���K��L��J� �&�$� �r~c �>�|dkrtd���t||z��\}}}i} t|z} td|zz} ||z} t|��} t |dz ��}|D]�}|dz||zkrn�t ||| ��}t | |z|z ||��\}}|r| t|| z��z}nt| |z|z |��}||z|z }||z|z }||fg| |<||}}tdttj ||z|��dz��dz��D];}||z||zz |z ||z||zz|z }}| |� ||f���<��t}t}|dkr|| z }t|d��}t!|||zdz��D]�}||}|| vrn||}| ||dz \}} |||zz}|dkrnA||}||}| ||dz \}}||z||zz |z ||z||zz|z }}�Pnkt ||| ��}t | |z|z ||��\}}|r| t|| z��z}nt| |z|z |��}||z|z }||z|z }||z }||z }��||fS)Nrza cannot be less than 1rog{�G�z�?)r�r]rr?r>r@rOrrPr�r�r�r��appendrr�r)rH�sre�simrwr{r�r[r�r\� basic_powersrxrGr)r1rBr�r��cos�sinr��pre�pimrErFr��xre�xim�aar�s r|�zetasum_sievedrj�sU���1�u�u��2�3�3�3�$�Q�q�S�/�/��E�6�4��L� �R�-�C��!�B�$��G� �R�%�C� �B�-�-�C� �2�a�4�.�.�C� �.�.�� �Q�3��1��9�9� �E��A�r�3�'�'�� �3�$�s�(�R���S�9�9���S� � .��:�a��f�-�-�-�A�A��C�4��8�b�.�"�-�-�A���u��m����u��m����:�,� �Q����S���q��T�X�a��c�!�_�_�T�1�2�2�1�4�5�5� .� .�A��S���S���2�-�#�c�'�#�c�'�/�B�1F��C� ��O� "� "�C��9� -� -� -� -� .� �C� �C��A�v�v� �s� �� �Q�q���B� �B��!��A�� � ���� �!�H�� � � � ��Q��A�#�A��q��s�+�H�C�� L��a��d� ����6�6���!�H����G��'��?�1�Q�3�/���S� ��W�S��W�_�r�1�c�#�g�c�#�g�o��5J�S�� L��  ��2�s�+�+�C�$�s�d�3�h��^�R��=�=�H�C��� 2��z�!�S�&�1�1�1�����t�C�x�"�n�b�1�1���S�5�R�-�C��S�5�R�-�C� �s� �� �s� ��� ��8�Or~r�c����!�"�#�$�%��dz�!t|��}|dgk}t|��dk}|\}} |tk} t|�!��}t| �!��} |dkrg|tkr\|sZ|sX|dkst jdkrBt| || ||�!��\} } t| �! �d��t| �! �d��fg} | gfSt|��}|st|dz��}d�|D���#d�|D���"|rd �|D���%d �|D���$ngx�%�$t�!z}td �!zz}t�!��}t�!dz ��}�!�!z}t|||zdz��D�]�}t|�!|��}t!| |z�!z �!|��\}}| r|t#||z��z}nt%| |z�!z �!��}||z�!z }||z�!z }|r|||zz}||z�!z }||z�!z }|r�|rlt'||�!��}�#dxx||z�!z z cc<�"dxx||z�!z z cc<|r,�%dxx||z�!z z cc<�$dxx||z�!z z cc<��t�!z}|D]d}�#|xx||z�!z z cc<�"|xx||z�!z z cc<|r,�%|xx||z�!z z cc<�$|xx||z�!z z cc<||z�!z }�e��k�#dxx|z cc<�"dxx|z cc<|r �%dxx|z cc<�$dxx|z cc<���|rt|r8|d zr2�#d �#d<�"d �"d<|r�%d �%d<�$d �$d<n:�#fd �|D���#�"fd �|D���"|r�%fd�|D���%�$fd�|D���$��!fd�t)�#�"��D��} ��!fd�t)�%�$��D��} | | fS)zI Fast version of mp._zetasum, assuming s = complex, a = integer. r�rrg��Alr{c��g|] }t�� Sr��r�r�r�s r|r�zmpc_zetasum.<locals>.<listcomp>���� )� )� )��8� )� )� )r~c��g|] }t�� Sr�rmrns r|r�zmpc_zetasum.<locals>.<listcomp>ror~c��g|] }t�� Sr�rmrns r|r�zmpc_zetasum.<locals>.<listcomp>���-�-�-�A�x�-�-�-r~c��g|] }t�� Sr�rmrns r|r�zmpc_zetasum.<locals>.<listcomp>rrr~roc�,��g|]}d|z�|z��S�rqr�)r�r�rgs �r|r�zmpc_zetasum.<locals>.<listcomp><�&���9�9�9��B��7�S��V�#�9�9�9r~c�,��g|]}d|z�|z��Srur�)r�r�rhs �r|r�zmpc_zetasum.<locals>.<listcomp>=rvr~c�,��g|]}d|z�|z��Srur�)r�r��yres �r|r�zmpc_zetasum.<locals>.<listcomp>?�&���=�=�=�A��Q�w��Q��'�=�=�=r~c�,��g|]}d|z�|z��Srur�)r�r��yims �r|r�zmpc_zetasum.<locals>.<listcomp>@rzr~c �b��g|]+\}}t|� �d��t|� �d��f��,Sr��r")r��xa�xbrvr�s ��r|r�zmpc_zetasum.<locals>.<listcomp>A�R��� '� '� '� �R�� ��R�C��s� +� +�\�"�r�c�4��-M�-M� N� '� '� 'r~c �b��g|]+\}}t|� �d��t|� �d��f��,Sr�r~)r��ya�ybrvr�s ��r|r�zmpc_zetasum.<locals>.<listcomp>Cr�r~)�listrUrr!�ZETASUM_SIEVE_CUTOFF�sys�maxsizerjr"r�r�rr?r>rr@rOrrPrS�zip)&ryrwr{� derivatives�reflectrv�have_derivatives�have_one_derivativer`rarHr r �xs�maxdrxrGr1rBr)r r�rcrdr��xterm_re�xterm_im� reciprocal�yterm_re�yterm_imrzr��ysr�rhrgr|rys& ` @@@@@r|� mpc_zetasumr��s��������� ���B��{�#�#�K�"�q�c�)���k�*�*�a�/���H�C���E�\�M� �3�� � �C� �3�� � �C��1�u�u��)�)�)�2B�)��*�!"�S���C�K�%�,?�,?�� �s�C��A�r�B�B���B��B���T�3�/�/��b�2�#�t�S�1Q�1Q�R� S���2�v� � �{� � �D� �$��D��F�m�m� � *� )�[� )� )� )�C� )� )�[� )� )� )�C���-�-��-�-�-��-�-��-�-�-������c� �R�-�C��!�B�$��G� �B�-�-�C� �2�a�4�.�.�C� �R�%�C� �A�q��s�1�u� � �$#�$#���A�r�3�'�'�� �3�$�s�(�R���S�9�9���S� � .��:�a��f�-�-�-�A�A��C�4��8�b�.�"�-�-�A���G��?����G��?�� � 0�!�a��c�*�J�"�S�(�R�/�H�"�S�(�R�/�H� � #�"� (���T�2�.�.���A����8�c�>�b�0�0�����A����8�c�>�b�0�0�����5���F�F�F�x�#�~�"�4�4�F�F�F���F�F�F�x�#�~�"�4�4�F�F�F���r�M��$�(�(�A���F�F�F�x�!�|��2�2�F�F�F���F�F�F�x�!�|��2�2�F�F�F��7��A����8�a�<�B�"6�6�����A����8�a�<�B�"6�6�����S��R��A�A� (� ��F�F�F�h� �F�F�F� ��F�F�F�h� �F�F�F�� #��A����(�"�����A����(�"������ >� � >��a�x� %��a�&���A���a�&���A���%�!�!�f�W�C��F�!�!�f�W�C��F��9�9�9�9�[�9�9�9�C�9�9�9�9�[�9�9�9�C�� >�=�=�=�=��=�=�=��=�=�=�=��=�=�=�� '� '� '� '� '��C�� � � '� '� '�B� '� '� '� '� '��C�� � � '� '� '�B� �r�6�Mr~i�i�:g�������?�c�F�g|]}tt|������Sr�)rr )r�r{s r|r�r�\s6��.�.�.��"�$�q�'�'�*�*�.�.�.r~c �T���d�|�z�tg|dzz}t���}t�z}| dz|d<tt ���d��}t |���x}}g}d} �d| zz } | dkrn�t tt|t| ��| ��} t|t| | | ��| ��} t| ���} t| ���} | | z|z�z } |� | | f��t||���}| dz } ��td|dzd��D]Q} t}d} |D];\}}| dzdkr || | zz}n| dz dz}|||zz| | zz}|sn ||z }| dz } �<d|z|| <�R�fd �t|dz��D��}ttt ���d��d���x}}t |td�����}td|dzd��D]d} t|| |���}t|���|| <t||���}t |t| dz| dzz�����}�e|�z|z}td|dzd��D]y} | dz dz}|d|zdzd|zd zzdz}td|dz��D](} ||d| z|d|zdzd| zz z�z z}�)|| xxd|z|z�z z cc<�ztd |dzd��D]�} | dz dz}|d|zdzd|zdzz}tdd|zdz��D]4} |d | zdz| z|d| zz|d|zdzd| zz z�z z }�5|| xx||z�z d|zzz cc<���fd �|D��S)a zeta(n) = A * pi**n / n! + B where A is a rational number (A = Bernoulli number for n even) and B is an infinite sum over powers of exp(2*pi). (B = 0 for n even). TODO: this is currently only used for gamma, but could be very useful elsewhere. r�rorrr�rnr�r�c�J��g|]}tt|������� Sr�)r&r�)r�r�r�s �r|r�zzeta_array.<locals>.<listcomp>�s+���;�;�;�!���q��$�$� %� %�;�;�;r~r�r�rqc���g|]}|�z ��Sr�r�)r�r�r�s �r|r�zzeta_array.<locals>.<listcomp>�s��� *� *� *��A�u�H� *� *� *r~)rr>rr3r=rBr+rr(r)r!r_rr-r)r�rv� zeta_valuesr�rx�f_2pi� exp_2pi_k�exp_2pi�exps3r��tp�q1�q2r{ry�e1�e2rzr�r��pi_pow�fpir�� reciprocal_pir�r�s @@r|� zeta_arrayr�_s����� �E� �e��B��*��!��$�K� �"���B� �R�-�C��T�1�W�K��N� �f�R�j�j�� #� #�E�!�%��,�,�,�I�� �E� �A�� �!�A�#�X�� ��6�6� � �T�7�9�d�B�7�7�� <� <�� �Y���2�b� 1� 1�2� 6� 6�� �b�"� � �� �b�"� � ���"�f�r�k�b� �� � � �b�"�X�����I�w��3�3� � �Q���� �A�q��s�A� � � � �� �� ��� � �F�B����s�a�x�x��!�Q�$�J����q�S�1�H���"�a�%�Z�A�q�D�(��� ��� ��F�A� ��F�A�A��A�� �A���;�;�;�;�v�a��c�{�{�;�;�;�A��y�����Q�7�7��B�?�?�?�F�S� �V�X�a�[�[�"� -� -�F� �A�a��c�!�_�_�<�<�� �A�a�D�&�"� %� %��!�!�R��� �A�����b�)�)�����1�Q�3��1��+�!6�!6��;�;����B�Y�2�%�M� �A�q��s�A� � �4�4�� �q�S�1�H�� ��!��A�� ��!��A�� &�� )����1�Q�3��� C� C�A� �+�a��c�"�[��1��Q��q��s��%;�;��B� B�A�A��A����1�Q�3�}�,��3�3����� �A�q��s�A� � �9�9�� �q�S�1�H�� ��!��A�� ��!��A�� &����1�Q�3�q�5�!�!� N� N�A� �2��'�!�)�A�+�{�1�Q�3�/�/�+�a��c�!�e�A�a�C�i�2H�H�2�M� M�A�A��A����A�m�O�b�0�A�a�C�8�8����� *� *� *� *�k� *� *� *�*r~c�x� � �|dkr |d|dzz z� n|dkr |d|dzz z� n|� � tvrt� � fS� dkrt� dzdz��}nt� dzdz��}tD]A� � � kr9� � fd�t� | d �D��}|dkr |t� <|� fcS�B� dkrt� d z��� � d z}d g|z}t|d <t|z|d <t |��|d<t ||��}t d|��D]Z}|d ||d z z|z }t d|��D]"}|d|z||z|||z z|z z }�#|d |z z}|||<�[d�|D��}|d d d�}|d d�}|t� <t|��S)z� Gives the Taylor coefficients of 1/gamma(1+x) as a list of fixed-point numbers. Enough coefficients are returned to ensure that the series converges to the given precision when x is in [0.5, 1.5]. i�r�r�r�gR���Q�?rog�v��/�?c� ��g|] }|��z z �� Sr�r�)r�r��cprecrvs ��r|r�z-gamma_taylor_coefficients.<locals>.<listcomp>�s!���N�N�N�!�a�%��*�o�N�N�Nr~Ng333333�?rlrrrnrqc��g|]}|dz ��S)rlr�)r�rws r|r�z-gamma_taylor_coefficients.<locals>.<listcomp>�s�����1��B����r~)�gamma_taylor_cacher�rrr�r�r�gamma_taylor_coefficients) �inprecr��coeffsr�r�r�r�rwr�r�rvs @@r|r�r��sC������|�|���V�B�Y��(��� �$�����V�B�Y��(����� �!�!�!�!�$�'��-�-� �d�{�{� ��d� �Q�� � ��� ��e� �a�� � ��$� � �� �4�<�<�N�N�N�N�N�/A�%�/H�!����/M�N�N�N�F���}�}�+1�"�4�(��4�<� � � � � �d�{�{��4�#�:���� ���B� ��a��A� �A�a�D� �b�=�A�a�D� �r�?�?�A�a�D��Q��#�#�K� �A�q�\�\������d�U�1�Q�q�S�6�\�B� ����!��� ;� ;�A� �2��'�K��N�*�Q�q��s�V�3��:� :�A�A� �q��s� ����!���������A� �$�$�B�$��A� �#�2�#��A� ��t�� $�V� ,� ,�,r~c �2�||dz z tzdz }t|z}t|��\}} |dkr�|} t|dz ��D]} ||z}| |z|z } �||z}t} |D] } | || z|z z} �| | |z z} |dkrt | |z| z| ||��S|dkr#t t | | |z||��|��S|dkr3ttt | |z| z| ����||��SdS|} t| ��D]} | |z|z } ||z }�t} |D] } | || z|z z} �| | |z z} |tt|����z dkr�t|t| ����}t | | z| |z ��} t| ||��} |dkrtt| ||��S|dkrt!| ||��S|dkr2tttt| |����||��SdSt || z| zd|z��} |dkrtt| ||��S|dkrt!| ||��S|dkr+t#tt| ��||����SdS)Nrrrornr������)rr�rrr"r3r#rCr&r6r�r'rr)r+rr$r%)�xmpfr�r�rvr��type� nearest_intrxr��cwpr*r�r�rr8s r|�gamma_fixed_taylorr��s����"�Q�$�K�7�*�q�0�K� �R�-�C�+�B�/�/�K�F�C��Q��� ��� �A� �&�&� � �A� ��H�A��1��� �A�A� �S��� ��� � �A��a��c�B�Y��A�A� �s�2�v��� �1�9�9���B��� �R�C��s�;�;� ;� �1�9�9��]�1�q�"�u�t�S�A�A�2�F�F� F� �1�9�9��7�<��B��� �R�C�#@�#@�A�A�4��M�M� M� �9� ���� �%�%� � �A��1��� �A� ��H�A�A� ��� � �A��a��c�B�Y��A�A� �s�2�v��� ���Q��� � � �2� %� %���h� �|�4�4�5�5�A��Q�q�S�"��R��(�(�A���1�b�!�!�A��q�y�y��t�Q��c�2�2�2��q�y�y��q�$��,�,�,��q�y�y��w�w�t�Q��';�';�<�<�d�C�H�H�H��y��Q�q�S��U�2�b�5�)�)�A��q�y�y���q�$��!<�!<�<��q�y�y���D�#�!6�!6�6��q�y�y�������T�3�)G�)G�!H�!H�H�y�yr~c��|tvr t|St|��\}}|t||dz z��z}||tt |����t|��ft|<t|SrL)�gamma_stirling_cacher�rr6r�)r{r�r�s r|�stirling_coefficientr�ss��� � � �#�A�&�&� �A�;�;�D�A�q���Q��!��W����A���H�S��V�V�$4�$4�h�q�k�k�A���� �� "�"r~c�F�t||zz|z}||z|z }t|��|z }||dzz }||z|z }||dzz}||z|z }||dzz }||z|z }||dzz}||z|z }|s|S||dzz }||z|z }|d|zdzz}||z|z }||dzz }||z|z }|s|S|d |zd zz}||z|z }|d |zd zz }||z|z }|d |zdzz}||z|z }|s|Sd}tt|����}tt|����}d} t |��\} } } } || z|z} | }| | z }|dkr||kr | |z} ||z}|| z }|dkr||kr ||z }||z}n|}|| z| z|z }|sn||z }||z|z }|||z z}|dz }��|S)zr Sums the rational part of Stirling's expansion, log(sqrt(2*pi)) - z + 1/(12*z) - 1/(360*z^3) + ... r��h��������!� ��[��ܹ������rrro)rrKr6r�r�)r�rvrzr�ryr��usize�tsize�texpr�r��pb�qb�term_mag�shiftr�r r�s r|�real_stirling_seriesr�"sz�� �4��9� �!�#�A� �1��t� �A������"�A���B��J�A��!��d�{�1���C��K�A��!��d�{�1���D��L�A��!��d�{�1���D��L�A��!��d�{�1� ��Q�h���D��L�A��!��d�{�1���Q�����A��!��d�{�1���C��K�A��!��d�{�1� ��Q�h���a�����A��!��d�{�1���q��&���A��!��d�{�1�����6� ��A��1��t� �A� ��Q�h� �A� �S��V�V� � �E� �S��V�V� � �E� �D��+�A�.�.� ��1�b�"��2�:��$����� ��M�� �q�5�5�U�Q�Y�Y� �!�G�A� �Q�J�E� �H� �� �q�5�5�U�Q�Y�Y��Q��A� �Q�J�E�E��A��!��Q��5� ��� � � �T� �� �q�S�U�N�� ������ �Q���)�* �Hr~c��||z||zz|z }||z|z}| |z|z}||z||zz |z }||z|dz z }t|��|z }| } ||dzz }| |dzz } ||z||zz |z ||z||zz|z }}||dzz}| |dzz} ||z||zz |z ||z||zz|z }}||dzz }| |dzz } ||z||zz |z ||z||zz|z }}||dzz}| |dzz} ||z||zz |z ||z||zz|z }}t|��t|��zdkr|| fS||dzz }| |dzz } ||z||zz |z ||z||zz|z }}|d|zd zz}| d|zd zz} ||z||zz |z ||z||zz|z }}||d zz }| |d zz } ||z||zz |z ||z||zz|z }}t|��t|��zdkr|| fS|d |zd zz}| d |zd zz} ||z||zz |z ||z||zz|z }}|d |zdzz }| d |zdzz } ||z||zz |z ||z||zz|z }}|d|zdzz}| d|zdzz} ||z||zz |z ||z||zz|z }}t|��t|��zdkr|| fSd} ttt|��t|������} ttt|��t|������} d} t | ��\}}}}| |z| z}| }||z }|dkr||kr ||z}||z}| |z }|dkr||kr||z }||z }||z}n|}|}||z|z|z }||z|z|z }t|��t|��zdkrn4||z }| |z } ||z||zz | z ||z||zz| z }}| || z z} | dz } ��|| fS)Nrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rro)rKr�r6r�r�)r�r(rv�_mrErF�ure�uimr`rar�r�r�r�r�r�r�r�r�r�r�rIrJ�termre�termims r|�complex_stirling_seriesr�Ws^�� �A�#��!��)�� �B� ��9�� �C� �2��:�"� �C� �s�7�S��W� �� %�C� �c�'�d�1�f� �C� �4� � �1� $�C� �"�C��3��7�N�C�C�3��7�N�C��S���S���4�'�C��G�C��G�O�d�+B��C��3��8�O�C�S�C��H�_�S��S���S���4�'�C��G�C��G�O�d�+B��C��3��9��C�c�S�$�Y�&�c��S���S���4�'�C��G�C��G�O�d�+B��C��3��9��C�c�S�$�Y�&�c��S���S���4�'�C��G�C��G�O�d�+B��C� �3�x�x�#�c�(�(��Q���s�C�x���3��9��C�c�S�$�Y�&�c��S���S���4�'�C��G�C��G�O�d�+B��C��3�s�7�F�?��C�C�3�s�7�F�?�2�C��S���S���4�'�C��G�C��G�O�d�+B��C��3��8�O�C�S�C��H�_�S��S���S���4�'�C��G�C��G�O�d�+B��C� �3�x�x�#�c�(�(��Q���s�C�x���4��8�V� ��C�S�D��H�f�$4�4�S��S���S���4�'�C��G�C��G�O�d�+B��C��5��9�f� ��C�c�U�3�Y��%6�6�c��S���S���4�'�C��G�C��G�O�d�+B��C��6�#�:�v� ��C�s�f�S�j�&�&8�8�s��S���S���4�'�C��G�C��G�O�d�+B��C� �3�x�x�#�c�(�(��Q���s�C�x�� �A� �S��S���3�s�8�8�,�,� -� -�E� �S��S���3�s�8�8�,�,� -� -�E� �D��+�A�.�.� ��1�b�"��2�:��$����� ��M�� �q�5�5�U�Q�Y�Y� �!�G�A� �Q�J�E� �H� �� �q�5�5�U�Q�Y�Y���(�C���(�C� �Q�J�E�E��C��C��a�%��(�u�$���a�%��(�u�$�� �v�;�;��V��� $�q� (� (� � �v� �� �v� ����W�s�3�w�&��.��#�g��C���%� '��� ������ �Q���3�4 ��8�Or~r�c ��|\}}}}|sZ|tkr)|dkrtS|dkrtStd���|tkr|dkrtStStS|dkr?|dz}||z|kr1|s/t t |t||��|��|||��S|dk} | r�|r|dkrtStd���||z} | tkr�|dkrtt| dz ||��S|dkrtt| ||��S|dkr%ttt| dz ||��S|dkrtt| dz ||��Snt|| z ��} ||z} | | z} |dkr|dz}n|t| ��zdz}| | kr�|dkr:t tt||��tt| ��||��S|dkrt t|||��S|dkr(t|tt| |z ��||��S|dkr+t!tt#|��||����S|dkr%t%t|t��||d��S|dk�r�| r�| d|zkr�|dkr!t't)| dz ��||��S|dkr't+t,t)| dz ��||��S|dkr.tt't)| dz ����||��S| d ks | d|zk�r�|r�t/|��} | dzrt1d| zdz��}nt1d| zdz�� }|dkr'tt+| |||��| | zdz��S|dkr&tt+|| ||��|| z dz ��S|dkrCttt+| t3|��||��| | zdz��||��Sn�| dkre|dkrt5||��S|dkr$ttt5|��||��S|dkrtt5|��||��Sn�t/|��} t7| t1d| zdz ��z| | z ��} |dkrt| ||��S|dkrtt| ||��S|dkrtt#| ��||��S||z}|dkr||z}n|| z }|dk�rW|�sTt,|z}t3||z ��}t3|d|zz ��}|tt9||����z }|dkr�t t|��}t t:|��}|d|dz}|d|dz}|| kr2t t=|��t t|��||��S|| krEt t tt=|����t |t:��||��S|t?| | ��z }||z}|dkr||z}n|| z }tt@|z��}| t?d |��kr$|tBkr|r| }tE||||||��S|}d}| |krUt,|zx}}|| z }tG|��D]}||z|z }||z }�t7|| ��x}}|rt!|��}nt#|��}tI||��}tKt||��|��} |t,|dz zz | z|z } || z }t7|| ��} |�r:t tM||��||��}!t!tO|����}"|dks|dkrpt |!tQ| |����}!|r t |"t7|| ��|��}"|dkrt|"|!||��S|dkrt|!|"||��S|dkr{|r t |"t7|| ��|��}"ttt#|!��|��| |��}!t tt#|"��|��|!||��Sd S|dkrB|r/ttQ| |��t7|| ��||��StQ| ||��S|dkrO|r/tt7|| ��tQ| |��||��StQt!| ��||��S|dkrB|r/t | tt7|| ��|��||��St| ||��Sd S) a� This function implements multipurpose evaluation of the gamma function, G(x), as well as the following versions of the same: type = 0 -- G(x) [standard gamma function] type = 1 -- G(x+1) = x*G(x+1) = x! [factorial] type = 2 -- 1/G(x) [reciprocal gamma function] type = 3 -- log(|G(x)|) [log-gamma function, real part] rrozgamma function polernrlrrqr�r�N))rrr�rrr(r)rC�SMALL_FACTORIAL_CACHE_SIZEr$�small_factorial_cacher+r�r6r3r'r%r&rrr r#rrMr r�rNr"�minrr�r��GAMMA_STIRLING_BETA�MAX_GAMMA_TAYLOR_PRECr�rr�r!rJr=rB)#r�rvr�r�r�r�r�rr�� is_integerr{rA� gamma_sizer �fr�absxmanrx�one_dist�two_dist� cancellation�xsub1�xsub2�xsub1mag�xsub2mag�n_for_stirling�xorigr*r�r��xabsr(r�r�r�s# r|rr�s{ ����D�#�s�B� �� ��:�:��q�y�y��+��q�y�y��,��2�3�3� 3� ��9�9��q�y�y��,��K�� �  �q�y�y� �"�W�� �r�6�B�;�;�t�;��7�1�g�a��n�n�b�9�9�1�d�C�H�H� H����J��� � 4��q�y�y�� ��2�3�3� 3� �3�J�� �)� )� )��q�y�y��4�Q�q�S�9�4��E�E�E��q�y�y��4�Q�7��s�C�C�C��q�y�y��t�%:�1�Q�3�%?��s�K�K�K��q�y�y��4�Q�q�S�9�4��E�E�E�� ���� � � �� ��(�C��3��J� �q�y�y� �B�Y��� �H�Z�(�(� (�2� -�� �b�S�y�y� �1�9�9��7�4��2�.�.�y��r�c�/B�/B�4��L�L� L� �1�9�9�W�T�1�d�C�8�8�8� �1�9�9�W�Q� �$�s�2�v�(>�(>��c�J�J�J� �1�9�9�W�W�W�Q�Z�Z��s�%C�%C�D�D�D� �q�y�y����D�)�)�4��a�8�8�8�  �b�y�y� � C��B�r�E�!�!��1�9�9�#�D��1��I�I�t�S�9�9�9��1�9�9�(��$�q��s�)�)�T�3�G�G�G��1�9�9�"�8�D��1��I�I�#6�#6��c�B�B�B� �s�7�7�j�2�b�5�(�(�� D� ��$�$���q�5�,�e�A�a�C��E�l�l�!�!�$�Q�q�S��U�|�|�m�!��1�9�9�$�]�1�a��s�%C�%C�b�S��U�1�W�M�M�M��1�9�9�$�]�1�a��s�%C�%C�R��T�!�V�L�L�L��1�9�9�"�9�]�1�c�!�f�f��c�.#�.#�%'�C��E�!�G�$-�$-�.2�C�9�9�9���a����1�9�9�Z��c�%:�%:�:��1�9�9�W�T�:�b�>�>�4��%M�%M�M��1�9�9�W�Z��^�^�T�3�%G�%G�G�9� ��$�$�� ��U�1�Q�3�q�5�\�\�!1�B�3�q�5�9�9���1�9�9�W�Q��c�%:�%:�:��1�9�9�W�T�1�d�C�%@�%@�@��1�9�9�W�W�Q�Z�Z��s�%C�%C�C��2�X�F� ��{�{�c�V�m�G�G�!�v�g�.�G� �q�y�y��y���m���w�s�{�#�#���w�q��u�}�%�%���X�c�(�H�&=�&=�>�>�>� � �"� � ��D�!�$�$�E��D�!�$�$�E��Q�x��a��(�H��Q�x��a��(�H��2�#�~�~��y��}�}�g�d�A�.>�.>��c�J�J�J��2�#�~�~��w�t�Y�r�]�]�;�;��A�t�$�$�d�C�1�1�1� �#�x�i�(��+�+� +�B��2�X�F���{�{�c�V�m�G�G�&)�v�g�&6�G��,�R�/�0�0�N��3�s�N� #� #�#�#��-B�(B�(B� � ��h�G�!�!�W�b�$��T�B�B�B� �E� �A��>����R�-���C� �Q� ������ � �A��W���#�A� �s�N�G�G���"��-�-�-��D� � ��� � �A���q�z�z�� �W�b�)�)�A����r�"�"�B�'�'�A� �W�r�!�t�_� %�� *�r�1�A���F�A��Q�����A� �)� �J�u�b�)�)�5�"� 5� 5�� �F�2�J�J� � �� �1�9�9��� � ���7�1�b�>�>�*�*�A�� 9��A�|�A��s�3�3�R�8�8���q�y�y��q�!�T�3�/�/�/��q�y�y��q�!�T�3�/�/�/� �1�9�9�� 9��A�|�A��s�3�3�R�8�8������ � �B�/�/��B�7�7�A��7�7�1�:�:�r�2�2�A�t�S�A�A� A� �9� �1�9�9�� 5��w�q�"�~�~� ��R�C�(�(�$��5�5�5��1�d�C�(�(� (� �1�9�9�� /��|�A��s�3�3��A�r�N�N�D�#�/�/�/��7�1�:�:�t�S�1�1� 1� �1�9�9�� O��q�'�,�q�"��*=�*=�r�"B�"B�D�#�N�N�N��1�d�C�(�(� (� �9r~c ��|\}}|\}}}} |\} } } } |tkr`|dkrA|r?t|||d��}| | z }tt|dz��|||��}||fSt||||��tfS|s|s| s| rttfS|dz}|| z}| | z}|rt ||��}n|}|dkr�|| kr�t |tt|||��t|��|��|��}|dkrt|||��S|dkrt||||��S|dkrt|||��S|dkrtt||��||��Sn |dkr|| z }|dkr=||kr7|r||kr/tt|t||��|��|||��S|dkr'tt!|t"��|f||d��St%t'|����}t%t'|����}t ||��}||z}|dkrn|t)|��z }|}|}|r-t+|��}|dx\}}}} }|dx\} } } } }d}d}|dk�r�|dk�r;t-|t"��}|dtkr| }n,t |dd|ddz|�� }||kr�t|��} t|| |��}!t|!|!|��}!t/|!t1d ��|��}!t|t3t|����|��}"t |!|"|��}|st|||��Sn |dkr||z }t-|t4��}#|#dtkr| }$n,t |#dd|#ddz|�� }$|$|kr�t|��} t7t9| | ��t1d ����}%tt|#|#|��|%|��}!t/|!t1d ��|��}!t|#t7t"t|����|��}"t |!|"|��}|st|||��Sn |$dkr||$z }|| kr�d|dzz}&t;|��}'t=t"||z ��}(t|'|&|� ��})tt!|'|(��|&|� ��}*t?t7|*|)|&��|(|&��}+t9||+||��}"|)|"f}|st|||��Sn|| z }||z }tAtB|z��},||,k}-tE||��}.tE||��}/d}0|�s�|}1||,kr�tG||��}tAd|,dzz|dzz d z|z ��}2tH|zx}3}4tJ}5tM|2��D]#}6|.|3z|/|5zz |z |.|5z|/|3zz|z }5}3|.|4z }.�$tO|3| ��tO|5| ��f}0tO|.| ��}||f}tQ|.|/|��\}7}8t||��\}9}:tE|9|��}9tE|:|��}:|9|.z|:|/zz |z |9dz z |7z}7|9|/z|:|.zz|z |:dz z |8z}8tO|7| ��tO|8| ��f}"|0�r:|dk�r3t|"t|0|��|��}"tS|1d��};tS|1d��}<tUj+|;|<��}=tS|"d��}>tUj,|<|;��}?|=d kr d |<z|?z }@n'|< d |?zz |;|?zz|<tUj-|=��zz}@tAtUj.|@|>z dtTj/zz d z����}|"dt!|"dtt|��d|z|��|��f}"|�rY|dks|dkr�tta||��||��}At3t|����tf}B|r*|dkrt|A||��}An1t|A||��}Ant|Atc|"|��|��}A|0rt|B|0|��}B|dkrt|B|A||��S|dkrt|A|B||��S|dk�rt|rt+|��}Cnt+|"��}Ct|Ctt+|��|��|��}Cte|d��}Dtg|d��}Et|��} t9| |D��}%t|%|E|��}%|Cdt!|Cd|%|��f}Cti|Ctk| |��|��}Ctat-||D��|��}%t|%|��}%t|C|%|��}C|Es=t9| te|D��|��}%|Cdt7|Cd|%|��f}Ct|C||��SdS|dkr3|0r ttc|"|��|0||��Stc|"||��S|dkr@|0r t|0tc|"|��||��Stct+|"��||��S|dkrt|"||��SdS)Nrnr�rli����rrroi����r�r�)r�r�g@KW��x�?)6rrr*r=rr�rYr^r[r�rhr\rWrcrZr6r'rr�r r6rXrjr_rr%rr(r)r&r3r+r�r�r!�complexrrrr"r�r7r��hypot�atan2r��floorr�rgrdr8r9r]rC)Fr�rvr�r�rwr�r+r,r-r.rrrrr r{r r��amag�bmagrAr��an�bn�absnr��need_reflection�zorig�yfinal� balance_prec�zsub1�cancel1r�r�r(�zsub2�cancel2rz�pp�aabsr�x1r�xprimer��need_reduction�afix�bfixr*�zpreredr��rrerx�rimr�ryr|�lre�lim�zfa�zfb�zfabs�yfbr��gir�r��s1�rezfloor�imzsignsF r|r6r6ms� �� �D�A�q���E�4��s���E�4��s��E�z�z� �1�9�9��9��1�d�C��+�+�B���T�E�"�A��V�D��G�_�_�a��s�;�;�B��r�6�M���D�#�t�,�,�e�3�3� ��T��4��D���d�|�� ���B� ��8�D� ��8�D� ���$��o�o����� �R�x�x� �"��9�9���;�w�q��2���y��}�}�R�H�H�"�M�M�A��q�y�y���4��!=�!=�=��q�y�y���A�t�S�!9�!9�9��q�y�y���D�#�!6�!6�6��q�y�y����4�)@�)@�$��!L�!L�L�y� �Q�Y�Y� �C�4�L�B�  �q�y�y�S�2�X�X��X�4�4�<�<��w�q�'�!�R�.�.�"�5�5�q�$��D�D�D� �q�y�y��'�!�T�*�*�A�.��c�1�=�=�=� �V�A�Y�Y���B� �V�A�Y�Y���B� �r�2�;�;�D��c��J� �q�y�y� � �h�z�"�"�"���O� �E��*� �A�J�J��%&�q�T�)���t�T�3��%&�q�T�)���t�T�3���F��L� �c�z�z� �1�9�9���4�(�(�E��Q�x�5� � ��%����u�Q�x��{�5��8�A�;�6��=�=�=����|�|��B�Z�Z����r�2�.�.���A�q�"�%�%����8�B�<�<��4�4����w�y��}�}�'=�'=�r�B�B�� ��A�r�*�*��&�6�"�6�4��5�5�5�6��1����g� ����4�(�(�E��Q�x�5� � ��%����u�Q�x��{�5��8�A�;�6��=�=�=����|�|��B�Z�Z���G�B��O�O�X�a�[�[�9�9�����u�b� 9� 9�1�b�A�A����8�B�<�<��4�4����w�t�Y�r�]�]�'C�'C�R�H�H�� ��A�r�*�*��&�6�"�6�4��5�5�5�6��1����g� �� �2�#�:�:��B�r�E��B��1�:�:�D��D�$�r�'�*�*�C��4��$�/�/�/�B��7�4��-�-�r��=�=�=�B��W�R��R�0�0�#�r�:�:�F���6�4��-�-�A��!�W�F�#� 2��v�t�S�1�1�1� 2� �d�U� #�L��,��B��,�R�/�0�0�N��N�*�N� �A�r�?�?�D� �A�r�?�?�D� �A� �(L��� �.� � ��2�r�?�?�D��Q���*�*�R��U�2�S�8�2�=�>�>�A��2� � %�C�#��C��A�Y�Y� � ��!�#�X�d�3�h�.��3��S��4��8�8K�b�7P�S���� ����S�2�#�&�&� �S�2�#�(>�(>�>�A��T�B�3�'�'�A��1��A�*�4��r�:�:���S��1�b�>�>���S��s�B�����s�B�����D��3�t�8�#�b�(�S�!�V�4�s�:���D��3�t�8�#�b�(�S�!�V�4�s�:�� ��r�c� "� "�L��r�c�$:�$:� :�� � L�������7�1�b�>�>�2�.�.�A��7�1�:�&�&�C��7�1�:�&�&�C��J�s�3�'�'�E��1�Q�4�.�.�C�� �3��$�$�A���|�|��c�\�A�%����T�C��E�\�C��E�)�C������,?�?���D�J��3���4�7��3�C�7�8�8�9�9�A��1��w�q��t�[�����Q�q�S�"�%E�%E�r�J�J�K�A��8)� �1�9�9��� � �� �5�"�-�-�u�b�9�9�A������$�$�e�,�A�� 3��1�9�9���6�2�.�.�A�A���6�2�.�.�A�A��A�w�q�"�~�~�r�2�2��� &��A�q�"�%�%���q�y�y���A�t�S�!9�!9�9��q�y�y���A�t�S�!9�!9�9� �1�9�9�� ��V�_�_����Q�Z�Z����W�W�U�^�^�R�8�8�"�=�=�B� ��q��*�*�H��u�Q�x�(�(�G�����B���H�%�%�A��A�w��+�+�A��Q�%���A���2�.�.�/�B��R���R���"�5�5�B��;�u�h�7�7��<�<�A���2���A���Q��#�#�B�� 4��B� �(� 3� 3�R�8�8����e�W�R��U�A�r�2�2�3���2�t�S�)�)� )�/ �9�2 �1�9�9�� =��w�q�"�~�~�q�$��<�<�<��1�d�C�(�(� (� �1�9�9�� =��q�'�!�R�.�.�$��<�<�<��7�1�:�:�t�S�1�1� 1� �1�9�9��1�d�C�(�(� (� �9r~c�&�t|||d��SrL�r�r�rvr�s r|� mpf_factorialrW��� �Q��c�1� %� %�%r~c�&�t|||d��SrL�r6rs r|� mpc_factorialrZrr~c�&�t|||d��S�Nrorrs r|� mpf_rgammar]rr~c�&�t|||d��Srrrs r|� mpc_rgammar `rr~c�F�|\}}}}|rt�t|||d��S)Nrn)r:r)r�rvr�r�r�r�rs r|� mpf_loggammar"cs2����D�#�s�B� ���� �Q��c�1� %� %�%r~c���|\}}|\}}}}|\} } } } |tkrA|r?t|||d��} | | z }tt|dz��|||��}| |fSt |||d��S)Nrnr�)rrr*r=r6)r�rvr�rwr�r+r,r-r.rrrrr r{r s r|� mpc_loggammar$is��� �D�A�q���E�4��s���E�4��s��E�z�z�e�z� �q�$��Q� '� '���U��� �� ���R����!�T�3� 7� 7���2�v� � �Q��c�1� %� %�%r~c��|tkrtt|dz ||��Stt |��||��SrL)r�r$r�rr)r{rvr�s r|r�r�tsB��� %�%�%��,�Q�q�S�1�4��=�=�=� �X�a�[�[�$�� ,� ,�,r~r�)r�r)r�)��__doc__r�r��backendrrrrrr � libintmathr r r r �libmpfrrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:� libelefunr;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrP�libmpcrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjr}r�r�r�r�r�r�r�� mpf_apery� mpf_khinchin� mpf_glaisher� mpf_catalan� mpf_mertens� mpf_twinprimer�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�ZETA_INT_CACHE_MAX_PRECr!r�r&r5rNrQ� mpf_zetasumrSrVrWrYr]rjr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr6rrrr r"r$r�r�r~r|�<module>r4sa �� � � � � � � � � � �������<�<�<�<�<�<�<�<�<�<�<�<�<�<�9�9�9�9�9�9�9�9�9�9�9�9� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������������������������������������������������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �0� � ��� �H� � ��� �B�2�2���2�z� � ��� ��*� � ��� �0� � ��� �������2 � �[� )� )� � � �[� )� )� ����/�/� ����/�/� ���}�-�-� ���}�-�-� � � ��1�1� ����@�� �X�a�[�[�� �X�a�[�[��2�2�2� '��':�;�;��I�I�I�I�V /� /� /� /�T�T�T�z:�@9�9�9� =�=�=� %�9)�9)�9)�9)�v%�3 �3 �3 �3 �l'�0�0�0�0�'�< �< �< �< �J(�T� � � � �����(�3.�3.�3.�3.�j%�!�U(�U(�U(�U(�n%�!�5�X1�X1�X1�X1�t(�%�%�%�%�(�%�%�%�%�� �  �  �  �� �� � � ����67�7�7�t��a�a�a�V���u�$�$�$�$��� ������.�.� ��)�!�+� ,� ,�.�.�.��O+�O+�O+�b7-�7-�7-�r/I�/I�/I�b#�#�#�3 �3 �3 �jE�E�E�PK)�K)�K)�K)�\h)�h)�h)�h)�T&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&� &� &� &� &� *�-�-�-�-�-�-r~
Memory