� I�g�k���dZddlmZddlmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm 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.ddl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7ddl8m9Z9m:Z:m;Z;m<Z<d�Z=eefZ>eefZ?d�Z@d�ZAd �ZBd �ZCd �ZDd �ZEdPd�ZFdPd�ZGd�ZHd�ZId�ZJdPd�ZKdPd�ZLd�ZMd�ZNdPd�ZOdPd�ZPd�ZQd�ZRd�ZSd�ZTd�ZUd�ZVd�ZWd �ZXd!�ZYd"�ZZd#�Z[d$�Z\d%�Z]d&�Z^d'�Z_d(�Z`d)�Zad*�ZbdQd/�Zcd0�Zdd1�ZedPd2�Zfd3�Zgd4�Zhd5�Zid6�Zjd7�Zkd8�Zld9�Zmd:�Znd;�Zod<�Zpd=�Zqd>�Zrd?�Zsd@�ZtdA�ZuedB��ZvedC��ZwevewfZxedD��ZyedE��ZzdF�Z{dPdG�Z|dPdH�Z}dI�Z~dJ�ZdK�Z�dL�Z�dM�Z�dN�Z�dOS)Rz3 Computational functions for interval arithmetic. �)�xrange)+� ComplexResult� round_down�round_up� round_floor� round_ceiling� round_nearest� prec_to_dps�repr_dps� dps_to_prec�bitcount� from_float�fnan�finf�fninf�fzero�fhalf�fone�fnone�mpf_sign�mpf_lt�mpf_le�mpf_gt�mpf_ge�mpf_eq�mpf_cmp� mpf_min_max� mpf_floor�from_int�to_int�to_str�from_str�mpf_abs�mpf_neg�mpf_pos�mpf_add�mpf_sub�mpf_mul� mpf_mul_int�mpf_div� mpf_shift� mpf_pow_int� from_man_exp�MPZ_ONE)�mpf_log�mpf_exp�mpf_sqrt�mpf_atan� mpf_atan2�mpf_pi�mod_pi2� mpf_cos_sin)� mpf_gamma� mpf_rgamma� mpf_loggamma� mpc_loggammac�z�|\}}t|��dz}dt||���dt||���d�S)N��[z, �])r r!)�s�prec�sa�sb�dpss �c/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/mpmath/libmp/libmpi.py�mpi_strrEsB�� �F�B�� �d� � �a� �C�C���C�����&��S�/�/�/�/� :�:�c��||kS�N��r?�ts rD�mpi_eqrL)� �� ��6�MrFc��||kSrHrIrJs rD�mpi_nerO,rMrFc�b�|\}}|\}}t||��rdSt||��rdSdS�NTF)rr�r?rKrArB�ta�tbs rD�mpi_ltrU/�=�� �F�B�� �F�B�� �b�"�~�~�"�d�d� �b�"�~�~�#�e�e� �4rFc�b�|\}}|\}}t||��rdSt||��rdSdSrQ)rrrRs rD�mpi_lerX6rVrFc�"�t||��SrH)rUrJs rD�mpi_gtrZ=�����1���%rFc�"�t||��SrH)rXrJs rD�mpi_ger]>r[rF�c���|\}}|\}}t|||t��}t|||t��}|tkrt}|tkrt }||fSrH)r&rrrrr� r?rKr@rArBrSrT�a�bs rD�mpi_addrc@�]�� �F�B�� �F�B����B��k�*�*�A���B��m�,�,�A��D�y�y�e�!��D�y�y�d�!� �a�4�KrFc���|\}}|\}}t|||t��}t|||t��}|tkrt}|tkrt }||fSrH)r'rrrrrr`s rD�mpi_subrfIrdrFc�:�|\}}t|||t��SrH)r'r�r?r@rArBs rD� mpi_deltariRs�� �F�B�� �2�r�4�� *� *�*rFc�V�|\}}tt|||t��d��S)N�����)r+r&r rhs rD�mpi_midrlVs)�� �F�B�� �W�R��T�=�9�9�2� >� >�>rFc�l�|\}}t||t��}t||t��}||fSrH)r%rr�r?r@rArBrarbs rD�mpi_posroZ�6�� �F�B����D�+�&�&�A���D�-�(�(�A� �a�4�KrFc�l�|\}}t||t��}t||t��}||fSrH)r$rrrns rD�mpi_negrr`rprFc���|\}}t|��}t|��}|dkr-t||t��}t||t��}n�|dkrTt}t |��}t ||��rt||t��}nCt||t��}n,t ||t��}t ||t��}||fS�Nr^)rr%rrrr$r) r?r@rArB�sas�sbsrarb�negsas rD�mpi_absrxfs��� �F�B�� �2�,�,�C� �2�,�,�C� �a�x�x� �B��k� *� *�� �B��m� ,� ,��� ���� ���� � �� �%�� � � 4���D�-�0�0�A�A���t�]�3�3�A�A� �B��k� *� *�� �B��m� ,� ,�� �a�4�KrFc�(�t|||f|��SrH)�mpi_mul�r?rKr@s rD� mpi_mul_mpfr|}��� �1�q�!�f�d� #� #�#rFc�(�t|||f|��SrH)�mpi_divr{s rD� mpi_div_mpfr��r}rFc���|\}}|\}}t|��}t|��}t|��} t|��} ||cxkrdkr5nn2|tks |tkrttfSttfS| | cxkrdkr5nn2|tks |tkrttfSttfS|dk�r| dkrTt |||t ��} t |||t ��} | tkrt} | tkrt} �nO| dkrTt |||t ��} t |||t ��} | tkrt} | tkrt} �n�t |||t ��} t |||t ��} | tkrt} | tkrt} �n�|dk�r| dkrTt |||t ��} t |||t ��} | tkrt} | tkrt} �n@| dkrSt |||t ��} t |||t ��} | tkrt} | tkrt} n�t |||t ��} t |||t ��} | tkrt} | tkrt} n�t ||��t ||��t ||��t ||��g} t| vrtt} } n>t| ��\} } t| |t ��} t| |t ��} | | fSrt) rrrrr(rrrrr%)r?rKr@rArBrSrTrurv�tas�tbsrarb�casess rDrzrz�s��� �F�B�� �F�B�� �2�,�,�C� �2�,�,�C� �2�,�,�C� �2�,�,�C� �c�����Q������ ��;�;�"��*�*��$�;� ��e�|�� �c�����Q������ ��;�;�"��*�*��$�;� ��e�|�� �a�x�x� �!�8�8���B��k�2�2�A���B��m�4�4�A��D�y�y�e�!��D�y�y�d�!�� �A�X�X���B��k�2�2�A���B��m�4�4�A��D�y�y�e�!��D�y�y�e�!����B��k�2�2�A���B��m�4�4�A��D�y�y�e�!��D�y�y�d�!�� ���� �!�8�8���B��k�2�2�A���B��m�4�4�A��D�y�y�e�!��D�y�y�e�!�� �A�X�X���B��k�2�2�A���B��m�4�4�A��D�y�y�e�!��D�y�y�d�!����B��k�2�2�A���B��m�4�4�A��D�y�y�e�!��D�y�y�d�!�� ��R���'�"�b�/�/�7�2�r�?�?�G�B�PR�O�O�T�� �5�=�=��4�q�A�A��u�%�%�D�A�q���4��-�-�A���4��/�/�A� �a�4�KrFc��|\}}t|t��r/t|||t��}t|||t��}n�t |t��r/t|||t��}t|||t��}nAt |��}t||g��\}}t}t|||t��}||fSrH)rrr(rrrr$rrns rD� mpi_squarer��s��� �F�B�� �b�%��� 1� �B��D�+� .� .�� �B��D�-� 0� 0��� ��E� � �1� �B��D�+� .� .�� �B��D�-� 0� 0��� �R�[�[���b�"�X�&�&���B� �� �B��D�-� 0� 0�� �a�4�KrFc��|\}}|\}}t|��}t|��}t|��} t|��} ||cxkrdkr7nn4| dkr| dks | dks| dkrttfSttfS| dkr| dkrttfS| dkr+t t |��t |��|��S| dkrx|dkr|dkrttfS| | krttfS|dkrt |||t��} t} |dkrt} t |||t��} �n|dkrSt |||t��} t |||t��} | tkrt} | tkrt} n�|dkrSt |||t��} t |||t��} | tkrt} | tkrt} nRt |||t��} t |||t��} | tkrt} | tkrt} | | fSrt) rrrrrrrr*rrr) r?rKr@rArBrSrTrurvr�r�rarbs rDrr�s/�� �F�B�� �F�B�� �2�,�,�C� �2�,�,�C� �2�,�,�C� �2�,�,�C� �c�����Q������ �!�G�G��a���S�A�X�X������$�;� ��e�|�� �Q�w�w�3��7�7��d�{�� �Q�w�w��w�q�z�z�7�1�:�:�t�4�4�4� �a�x�x� ��7�7�s�Q�w�w��$�;� � �#�:�:��$�;� � �!�8�8���B��k�2�2�A��A� �!�8�8��A���B��m�4�4�A�� �!�8�8���B��k�2�2�A���B��m�4�4�A��D�y�y�e�!��D�y�y�d�!�� �A�X�X���B��k�2�2�A���B��m�4�4�A��D�y�y�e�!��D�y�y�e�!����B��k�2�2�A���B��m�4�4�A��D�y�y�e�!��D�y�y�d�!� �a�4�KrFc�^�t|t��}t|t��}||fSrH)r4rr)r@rarbs rD�mpi_pir�s)���t�[�!�!�A��t�]�#�#�A� �a�4�KrFc�l�|\}}t||t��}t||t��}||fSrH)r0rrrns rD�mpi_expr��6�� �F�B����D�+�&�&�A���D�-�(�(�A� �a�4�KrFc�l�|\}}t||t��}t||t��}||fSrH)r/rrrns rD�mpi_logr�r�rFc�l�|\}}t||t��}t||t��}||fSrH)r1rrrns rD�mpi_sqrtr�$s6�� �F�B����T�;�'�'�A���T�=�)�)�A� �a�4�KrFc�l�|\}}t||t��}t||t��}||fSrH)r2rrrns rD�mpi_atanr�+s6�� �F�B����T�;�'�'�A���T�=�)�)�A� �a�4�KrFc ��|\}}|dkr0tttft|| |dz��|��S|dkrttfS|dkr|S|dkrt||��S|dzr/t |||t ��}t |||t ��}n�t|��}t|��}|dkr/t |||t ��}t |||t ��}n�|dkr/t |||t ��}t |||t ��}nUt}t|��}t||��rt |||t ��}nt |||t ��}||fS�Nr^�r�) rr� mpi_pow_intr�r,rrrrr$r) r?�nr@rArBrarbrurvs rDr�r�1sw�� �F�B���1�u�u���d�|�[��Q�B��R��%@�%@�$�G�G�G��A�v�v��d�|���A�v�v����A�v�v��!�T�"�"�"��1�u�<� ��A�t�[� 1� 1�� ��A�t�]� 3� 3����r�l�l���r�l�l�� �!�8�8��B��4��5�5�A��B��4��7�7�A�A� �A�X�X��B��4��5�5�A��B��4��7�7�A�A��A�����B��b�"�~�~� <���A�t�]�;�;�����A�t�]�;�;�� �a�4�KrFc�X�|\}}||kri|ttfvrY|tt|����krt |t|��|��S|t krt ||��St||dz��}t|||dz��}t||��S�Nr�) rrrr r�rr�r�rzr�)r?rKr@rSrT�u�vs rD�mpi_powr�Vs��� �F�B�� �R�x�x�B�t�U�m�+�+� ��&��*�*�%�%� %� %��q�&��*�*�d�3�3� 3� ��;�;��A�t�$�$� $���4�"�9���A���1�d�R�i� � �A� �1�d� � �rFc�*�t||��r|S|SrH)r��x�ys rD�MINr�a��� �a��|�|���� �HrFc�*�t||��r|S|SrH)rr�s rD�MAXr�fr�rFc��|\}}}}|tkrttdfSt||��\}}t||||zd��\}} } |rd| z } ||| fS)Nr^�rk)rrr6r5) r��wp�sign�man�exp�bc�cr?rKr��wp_s rD�cos_sin_quadrantr�ksq����D�#�s�B��E�z�z��U�A�~�� �q�"� � �D�A�q���S�#�b�&�"�-�-�I�A�q�#� �� �q�D�� �a��7�NrFc���� � �|\}}||cxkr tkrnnttfttffSt|vs t|vrttfttffS�dz}t ||��\}}}t ||��\}} } t ||g��\}}t || g��\}} || krn�| |z dkrttfttffS|dz| dzkrt}|dz dz| dz dzkrt}|dz dz| dz dzkrt} |dz dz| dz dzkrt}tt|ztdzz| ��� tt|ztdzz | ��� � � �fd�} | |t��}| |t��}| |t��}| | t��} ||f|| ffS)Nr��r�r�� c���t|d��|tkkr�}n�}t||� |��}|\}}}}||zdkr|rtStS|S)Nr^r)�boolrr(rr) r��rounding�pr�r�r�r��less�morer@s ���rD�finalizezmpi_cos_sin.<locals>.finalize�sn��� ��!��:�:�(�k�1� 2� 2��A�A��A� �A�q�$�� )� )�����c�3�� �r�6�Q�;�;�� �� ��K��rF) rrrrrr�rr-r.rr)r�r@rarbr��carA�na�cbrB�nbr�r�r�s ` @@rD� mpi_cos_sinr�vs����� �D�A�q��A������������d�|�e�U�^�+�+� �� � �u��z�z��t�}�u�d�m�+�+� ���B�!�!�R�(�(�J�B��B�!�!�R�(�(�J�B��B� �"�b�� "� "�F�B�� �"�b�� "� "�F�B�� �R�x�x� � �b��A����t�}�u�d�m�+�+� �q�5�B��E�>�>��B� �q�D�1�9��A��� � !� !��B� �q�D�1�9��A��� � !� !��B� �q�D�1�9��A��� � !� !��B� ��"���"��5��s� ;� ;�D� ��"���"��5��s� ;� ;�D� � � � � � � � ��"�k� "� "�B� ��"�m� $� $�B� ��"�k� "� "�B� ��"�m� $� $�B� �r�7�R��G� �rFc�.�t||��dSrt�r��r�r@s rD�mpi_cosr����� �q�$� � �� "�"rFc�.�t||��dS�Nrr�r�s rD�mpi_sinr��r�rFc�P�t||dz��\}}t|||��Sr��r�r�r�r@�cos�sins rD�mpi_tanr���+���1�d�2�g�&�&�H�C�� �3��T� "� "�"rFc�P�t||dz��\}}t|||��Sr�r�r�s rD�mpi_cotr��r�rFc���|dz}t||t��}t||t��}t||t��}t|t��sJ�|rct t t|��t|����||t��}t|td��|t��}t|||t��}t|||t��}||fS)Nr��d) r"rrrrr(r�r#r*rr'r&) r�r��percentr@r��xa�xbrarbs rD�mpi_from_str_a_br��s��� ���B� �!�R�� %� %�B� �!�R�� '� '�B���B� �&�&�A� �!�U� � ��� ��9� �C��� � �W�R�[�[�1�1�1�b�-� H� H�� �A�x��}�}�b�-� 8� 8����A�t�[�)�)�A���A�t�]�+�+�A� �a�4�KrFc�z�td|z��}|�dd��}|dz}d|vr*|�d��\}}t||d|��Sd|vr~|ddksd |vr|�|�d d��}d}d |vr&|d d kr|�d }|�d d��}|�d��\}}t||||��Sd |v�r*d|vsd|vr|�|ddkrt|�dd��}|�dd��}|�d ��\}}t ||t ��}t ||t ��}||fS|�d��\}}|�d ��\}} d|vr| �d��\} }n| �d��d}} t ||z|z|t ��}t || z|z|t ��}||fSt ||t ��}t ||t ��}||fS)a Parse an interval number given as a string. Allowed forms are "-1.23e-27" Any single decimal floating-point literal. "a +- b" or "a (b)" a is the midpoint of the interval and b is the half-width "a +- b%" or "a (b%)" a is the midpoint of the interval and the half-width is b percent of a (`a imes b / 100`). "[a, b]" The interval indicated directly. "x[y,z]e" x are shared digits, y and z are unequal digits, e is the exponent. z&Improperly formed interval number '%s'� �r��+-F�(r^�)�%rkT�,r=r>�e)� ValueError�replace�splitr�r"rr�rstrip) r?r@r�r�r�r�r�rarb�zs rD� mpi_from_strr��sG��& �;�a�?�@�@�A� � � �#�r���A� ���B� �q�y�y��w�w�t�}�}���1���1�e�T�2�2�2� ���� �Q�4�3�;�;�#�Q�,�,��G� �I�I�c�2� � ���� �!�8�8���u��|�|����G�� � �#�r�"�"�A��w�w�s�|�|���1���1�g�t�4�4�4� ���� �q�L�L�c��l�l��G� �Q�4�3�;�;�� � �#�r�"�"�A�� � �#�r�"�"�A��7�7�3�<�<�D�A�q���D�+�.�.�A���D�-�0�0�A��a�4�K��7�7�3�<�<�D�A�q��7�7�3�<�<�D�A�q��a�x�x��w�w�s�|�|���1�1��x�x��}�}�b�1����1��Q���k�2�2�A���1��Q���m�4�4�A��a�4�K� �Q��k� *� *�� �Q��m� ,� ,���!�t� rFT�[]�bracketsr�c ��t|��}|dz}|\} } t||��} t||��} t| |fi|��} t| |fi|��}t| |fi|��}d}|rd}|\}}|dkr,tt | d��|fi|��}||zdz|z|z}�n�|dkrz| t krt }nIt | td����}t|t | td ����|��}||zd zt||��zd z}�n'|d kr|| zd z|z|z|z}�n|dk�r�| |kr"t| |dzfi|��} t| |dzfi|��}| � d��} t| ��dkr| � d��|� d��} t| ��dkr| � d��| d| dk�r| d| dkr�tt| d��dz��D]"}| d|| d|krn�#| dd|�|z| d|d�zd z|z| d|d�z|zdtt| d��d��zz| dz}n�| d|z|zdtt| d��d��zz| dz}nJ|d�| ��zd z|zd�| ��z|z}ntd|z���|S)a� Convert a mpi interval to a string. **Arguments** *dps* decimal places to use for printing *use_spaces* use spaces for more readable output, defaults to true *brackets* pair of strings (or two-character string) giving left and right brackets *mode* mode of display: 'plusminus', 'percent', 'brackets' (default) or 'diff' *error_dps* limit the error to *error_dps* digits (mode 'plusminus and 'percent') Additional keyword arguments are forwarded to the mpf-to-string conversion for the components of the output. **Examples** >>> from mpmath import mpi, mp >>> mp.dps = 30 >>> x = mpi(1, 2)._mpi_ >>> mpi_to_str(x, 2, mode='plusminus') '1.5 +- 0.5' >>> mpi_to_str(x, 2, mode='percent') '1.5 (33.33%)' >>> mpi_to_str(x, 2, mode='brackets') '[1.0, 2.0]' >>> mpi_to_str(x, 2, mode='brackets' , brackets=('<', '>')) '<1.0, 2.0>' >>> x = mpi('5.2582327113062393041', '5.2582327113062749951')._mpi_ >>> mpi_to_str(x, 15, mode='diff') '5.2582327113062[4, 7]' >>> mpi_to_str(mpi(0)._mpi_, 2, mode='percent') '0.0 (0.0%)' r�r�r�� plusminusrkr�r�r�r�r�z%)r�r��diffr�r�rr^Nz%'%s' is unknown mode for printing mpi)r rlrir!r+rr(rr*r��len�appendr�min�joinr�)r�rC� use_spacesr��mode� error_dps�kwargsr@r�rarb�mid�delta�a_str�b_str�mid_str�sp�br1�br2� delta_strr?r��is rD� mpi_to_strr�s���P �s� � �D� ���B� �D�A�q� �!�T� � �C� �a�� � �E� �1�c� $� $�V� $� $�E� �1�c� $� $�V� $� $�E��S�#�(�(��(�(�G� �B��� ���H�C�� �{����9�U�2�.�.��>�>�v�>�>� � �b�L�4� �"� $�y� 0��� �� � � �%�<�<��A�A���x��}�}�-�-�A���7�3��� � �4�4�b�9�9�A� �b�L�3� ���9�!5�!5� 5�� <��� �� � � �%�K�#� �� "�U� *�S� 0��� ���� �E�>�>��1�c�!�e�.�.�v�.�.�E��1�c�!�e�.�.�v�.�.�E� �K�K�� � �� �q�6�6�Q�;�;� �H�H�R�L�L�L� �K�K�� � �� �q�6�6�Q�;�;� �H�H�R�L�L�L� �Q�4�1�Q�4�<�<���t�q��t�|�|���A�a�D� � �A� �.�.���A���t�A�w�!�A�$�q�'�)�)���*��q�T�"�1�"�X��^�a��d�1�2�2�h�.��4�r�9�A�a�D����H�D�s�J��3�s�1�Q�4�y�y�!�,�,�,�-�/0��t�4����a�D�3�J��$�s�3�s�1�Q�4�y�y�!�+<�+<�'<�<�q��t�C����c�h�h�q�k�k�!�C�'�"�,�s�x�x��{�{�:�S�@�A�A��@�4�G�H�H�H� �HrFc�Z�|\}}|\}}t|||��t|||��fSrH)rc�r�r�r@rarbr��ds rD�mpci_addrd�7�� �D�A�q� �D�A�q� �1�a�� � ���1�d� 3� 3� 3�3rFc�Z�|\}}|\}}t|||��t|||��fSrH)rfr�s rD�mpci_subrirrFc�L�|\}}t||��t||��fSrH)rr�r�r@rarbs rD�mpci_negrn�*�� �D�A�q� �1�d� � �W�Q��-�-� -�-rFc�L�|\}}t||��t||��fSrH)rors rD�mpci_posr rrrFc���|\}}|\}}t||��}t||��}t|||��} t||��} t||��} t| | |��} | | fSrH)rzrfrc) r�r�r@rarbr�r�r1�r2�re�i1�i2�ims rD�mpci_mulrvss�� �D�A�q� �D�A�q� ��1���B� ��1���B� ��B�t� � �B� ��1���B� ��1���B� ��B�t� � �B� �r�6�MrFc�~�|\}}|\}}|dz}t|��}t|��} t|| |��} tt||��t||��|��} tt||��t||��|��} t | | |��} t | | |��} | | fSr�)r�rcrzrfr) r�r�r@rarbr�rr��m1�m2�mrrs rD�mpci_divr�s��� �D�A�q� �D�A�q� �b��B� �A���B� �A���B���2�b���A� ���1���w�q��|�|�R� 0� 0�B� ���1���w�q��|�|�R� 0� 0�B� ��Q�� � �B� ��Q�� � �B� �r�6�MrFc��|\}}|dz}t||��}t||��\}}t|||��}t|||��}||fSr�)r�r�rz)r�r@rarbr��rr�r?s rD�mpci_expr�s_�� �D�A�q� �b��B���2���A� �q�"� � �D�A�q���1�d���A���1�d���A� �a�4�KrFc�L�|\}}t||��t||��fSrH)r+)r�r�rarbs rD� mpi_shiftr�s&�� �D�A�q� �Q�q�>�>�9�Q�q�>�>� )�)rFc���|dz}t||��}tt||��}t|||��}t |||��}t |d��}t |d��}||fS)Nr�rk)r�r�mpi_onercrfr)r�r@r��e1�e2r�r?s rD� mpi_cosh_sinhr!�sr�� �b��B� ��B���B� ��"�b� !� !�B���B����A���B����A��!�R���A��!�R���A� �a�4�KrFc���|\}}|dz}t||��\}}t||��\}}t|||��} t|||��} | t| ��fS�Nr�)r�r!rzrr� r�r@rarbr�r�r?�ch�shrrs rD�mpci_cosr'�sl�� �D�A�q� �b��B� �q�"� � �D�A�q� �1�b� !� !�F�B�� ��B�� � �B� ��B�� � �B� �w�r�{�{�?�rFc��|\}}|dz}t||��\}}t||��\}}t|||��} t|||��} | | fSr#)r�r!rzr$s rD�mpci_sinr)�se�� �D�A�q� �b��B� �q�"� � �D�A�q� �1�b� !� !�F�B�� ��B�� � �B� ��B�� � �B� �r�6�MrFc���|\}}|tkrt|��S|tkrt|��St|��}t|��}t|||dz��}t ||��Sr�)�mpi_zerorxr�rcr�)r�r@rarbrKs rD�mpci_absr,�sp�� �D�A�q��H�}�}��q�z�z���H�}�}��q�z�z���1� � �A��1� � �A���1�d�2�g���A� �A�t� � �rFc���|\}}|\}}||cxkr tkr.nn+t|t��rtSt|��St|t��r�t|t��rt |||t ��}nt |||t ��}t|t��rt |||t ��}�nt |||t ��}�nt|t��r\t |||t ��}t|t��rt |||t ��}n�t |||t ��}n�t|t��r\t |||t ��}t|t��rt |||t ��}n<t |||t ��}n$t|t ��}t|��}||fSrH) rrr+r�r3rrrr4r$) r�r�r@�ya�ybr�r�rarbs rD� mpi_atan2r0�s��� �F�B�� �F�B�� �R�����5������ �"�e� � � ��O��d�|�|�� �b�%���� �"�e� � � 5��"�b�$� �4�4�A�A��"�b�$� �4�4�A� �"�e� � � 7��"�b�$� �6�6�A�A��"�b�$� �6�6�A�A� ��E� � �� �b�"�d�M� 2� 2�� �"�e� � � 5��"�b�$� �4�4�A�A��"�b�$� �4�4�A�A� ��E� � � � �b�"�d�K� 0� 0�� �"�e� � � 7��"�b�$� �6�6�A�A��"�b�$� �6�6�A�A� �4�� '� '�� �A�J�J�� �a�4�KrFc�.�|\}}t|||��SrH)r0)r�r@r�r�s rD�mpci_argr2�s�� �D�A�q� �Q��4� � � rFc�v�|\}}tt||dz��|��}t||��}||fSr�)r�r,r2)r�r@r�r�rrs rD�mpci_logr4�s@�� �D�A�q� ��!�T�"�W�%�%�t� ,� ,�B� �!�T� � �B� �r�6�MrFc �@�|\}}|tkr]|\}}||krR|\}}} } |r-| dkr't|d|zt|| z��z|��S|tkrt|d|��S|dz} t t |t || ��| ��|��S)Nr^rkr�)r+� mpci_pow_int�intrrrr4) r�r�r@�yre�yimr.r/r�r�r�r�r�s rD�mpci_powr:�s����H�C�� �h������B� ��8�8�!#� �D�#�s�B�� I�s�a�x�x�#�A��T�z�C��S��M�M�'A�4�H�H�H��U�{�{�#�A�q�$�/�/�/� �b��B� �H�Q���B����4�4�d� ;� ;�;rFc��|\}}tt|��t|��|��}t|||��}t|d��}||fSr�)rfr�rzr)r�r@rarbrrs rD� mpci_squarer<sQ�� �D�A�q� ��A��� �1� � �t� 4� 4�B� ��A�t� � �B� �2�q� � �B� �r�6�MrFc ��|dkr0tttft|| |dz��|��S|dkrttfS|dkrt ||��S|dkrt ||��S|dz}ttf}|r2|dzrt |||��}|dz}t ||��}|dz}|�2t ||��Sr�)rrr+r6r r<r)r�r�r@r��results rDr6r6 s����1�u�u����*�L��Q�B��R��,H�,H�$�O�O�O��A�v�v��� � ��A�v�v���4� � � ��A�v�v��1�d�#�#�#� ���B��x� �F� �� �q�5� ��f�a��,�,�F� ��F�A� ��2� � �� �a��� �� �F�D� !� !�!rFg#+Vc�b�?g�Vc�b�?g�������g�������?c�b�|\}}|\}}t||��rdSt||��rdSdS)NFT)rr)r�r�rarbr�rs rD� mpi_overlapr@&s=�� �D�A�q� �D�A�q� �a��|�|�!�E�E� �a��|�|�!�E�E� �4rFc��|\}}|dz}|dkr%tt|t|��|d��St|t��r�|dkr.t ||t ��}t ||t��}�n�|dkr.t||t ��}t||t��}�n�|dkr,t||t ��}t||t��}�nft|t��r�t|t��r�|dkr.t ||t ��}t ||t��}�n|dkr-t||t ��}t||t��}n�|dkr,t||t ��}t||t��}n�t|t|��}|dkr#tt||dzd��||��S|dkr#tt||dzd��||��S|dkr4tt||dzd��t!||dz��|��S||fS)Nr�rr^r�r�)� mpi_gammarcrr� gamma_min_br7rrr8r9rr� gamma_min_arrzrfr�) r�r@�typerarbr�r�r�znews rDrBrB2s+�� �D�A�q� �b��B� �q�y�y����G�R�0�0�$��:�:�:��a����[� �1�9�9��!�T�;�/�/�A��!�T�=�1�1�A�A� �Q�Y�Y��1�d�K�0�0�A��1�d�M�2�2�A�A� �Q�Y�Y��Q��k�2�2�A��Q��m�4�4�A�� ��5� � �[�f�Q� �4�4�[� �1�9�9��!�T�;�/�/�A��!�T�=�1�1�A�A� �Q�Y�Y��1�d�K�0�0�A��1�d�M�2�2�A�A� �Q�Y�Y��Q��k�2�2�A��Q��m�4�4�A���q�'�2�&�&�� �1�9�9�W�Y�t�T�!�V�Q�%?�%?��D�I�I�I� �1�9�9�W�Y�t�T�!�V�Q�%?�%?��D�I�I�I� �1�9�9�W�Y�t�T�!�V�Q�%?�%?���D�QR�F�AS�AS�UY�Z�Z�Z� �a�4�KrFc�"�|\\}}\}}||cxkr tkr6nn3|dkst|t��rt|||��tfS|dz}|dkr�|d|dz}|d|dz} |tkrt || ��} n| } t t |����} t t |����} t | | ��} t d| | z��}|t|��z }|dkr%t||ft|��\}}||f||ff}d}t|t��r�t||fttf��r�t||ft|��||ff}|dkr#tt!||dzd��||��S|dkr#t#t!||dzd��||��S|dkr4t%t!||dzd��t'||dz��|��St)|t��rbt+||f|t,��}t+||f|t.��}t+||f|t,��}t+||f|t.��}�nt1|t��rat+||f|t,��}t+||f|t.��}t+||f|t,��}t+||f|t.��}n�t+|tf|t.��}tt3|��|��rt+||f|t.��}nt+||f|t.��}t+||f|t,��}t+||f|t,��}|d|df|d|dff}|dkr,t5|d|��t5|d|��fS|dkrt7|��}t9||��S)Nr�r�r�r^r)rrrBr+�max�absr r rcrrrCr@�gamma_mono_imag_a�gamma_mono_imag_br� mpci_gammarrr4rr:rrrr$rorr)r�r@rE�a1�a2�b1�b2r��amag�bmag�mag�an�bn�absn� gamma_sizerF�minre�maxre�minim�maxim�ws rDrLrLWs�����G�R��W�b�� �R�����5������d�a�i�i�6�"�U�+;�+;�i���D�$�'�'��1�1� �b��B� �q�y�y��!�u�R��U�{���!�u�R��U�{�� ��;�;��d�D�/�/�C�C��C� �����_�_�� �����_�_���2�r�{�{����4��8�_�_� � �h�z�"�"�"�� �q�y�y��2�b�'�7�B�/�/���B�b��W�r�"�g�5E�����b�+��� a� ��2�w�!2�4E� F� G� G� a��B�r�7�G�R�0�0�2�b�'�9�D��q�y�y��*�T�4��6�1�*E�*E�q�$�!O�!O�O��q�y�y��*�T�4��6�1�*E�*E�q�$�!O�!O�O��q�y�y��*�T�4��6�1�*E�*E�x�PQ�RV�WX�RX�GY�GY�[_�!`�!`�`� �b�%���7��b��W�b�+�6�6���b��W�b�-�8�8���b��W�b�+�6�6���b��W�b�-�8�8��� ��E� � �7��b��W�b�+�6�6���b��W�b�-�8�8���b��W�b�+�6�6���b��W�b�-�8�8����b��Z��]�;�;�� �'�"�+�+�r� "� "� =� �"�R��"�m�<�<�E�E� �"�R��"�m�<�<�E��b��W�b�+�6�6���b��W�b�+�6�6�� �q��5��8��u�Q�x��q��2�2�A� �q�y�y��q��t�T�"�"�G�A�a�D�$�$7�$7�7�7� �q�y�y� �Q�K�K�� �A�t� � �rFc�&�t||d���S�Nr��rE�rB�r�r@s rD� mpi_loggammarb�s��)�A�t�!�"<�"<�"<�<rFc�&�t||d���Sr^�rLras rD� mpci_loggammare�s��:�a��A�#>�#>�#>�>rFc�&�t||d���S�Nr�r_r`ras rD� mpi_rgammarh�s�� �!�T�� :� :� :�:rFc�&�t||d���Srgrdras rD� mpci_rgammarj�s���A�t�!�!<�!<�!<�<rFc�&�t||d���S�Nrr_r`ras rD� mpi_factorialrm�s��9�Q��1�#=�#=�#=�=rFc�&�t||d���Srlrdras rD�mpci_factorialro�s��J�q�$�Q�$?�$?�$?�?rFN)r^)Tr�r�r�)��__doc__�backendr�libmpfrrrrrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.� libelefunr/r0r1r2r3r4r5r6� gammazetar7r8r9r:rEr+rrLrOrUrXrZr]rcrfrirlrorrrxr|r�rzr�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr rrrrr!r'r)r,r0r2r4r:r<r6rDrC� gamma_minrJrKr@rBrLrbrerhrjrmrorIrFrD�<module>rvs����� ������ � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��������������������� I�H�H�H�H�H�H�H�H�H�H�H�;�;�;� �5�>�� ��,��������������&�%�%�%�%�%���������+�+�+�?�?�?���� ���� ����.$�$�$�$�$�$�B�B�B�B�H � � � �9�9�9�v��� ������������ #�#�#�J � � � � � �  � � � � � �2�2�2�h#�#�#�#�#�#�#�#�#�#�#�#� � � �@�@�@�DZ �Z �Z �Z �x4�4�4� 4�4�4� .�.�.�.�.�.�.� � � � � � ����*�*�*� � � ������� � � �$�$�$�L!�!�!���� <� <� <����"�"�"�&�j��'�'� ��j��'�'� � �+� &� ��J�t�$�$���J�s�O�O�����#�#�#�#�JG�G�G�G�R=�<�<�>�>�>�:�:�:�<�<�<�=�=�=�?�?�?�?�?rF
Memory