� I�gr����ddlmZddlmZmZd�ZdZegdfd���Zed���Zed ���Z ed ���Z ed ���Z ed ���Z ed ���Z ed���Zed���Zed���Zed���Zed���Zed���Zd�Zed���Zed���Zed���Zed���Zed���Zed���Zed���Zed$d���Zed���Zed���Zed ���Zed!���Z ed"���Z! ed#���Z"dS)%�)�xrange�)�defun� defun_wrappedc���dx}}d}g}t|��D�]U\}} | \} } } } }}}d}t| ��D]4\}}|s-|�| |��dkr| |rdx}}d}�5gd�}t| | |g��D]�\}}t|��D]�\}}|�|��\}}|dkr�$||jkrMd}|dkr1|D].}|�|��r|t |��krd}n�/|r�k||xxdz cc<�||dkr|| z }d}����|r4|d|d|dzkr|s|�|����Bt|��rdx}}��W||||fS)NF�T)rrrrr�����)� enumerate�re� nint_distance�ninf�isnpint�int�append�sum)�ctx�terms�prec�discard_known_zeros�perturb� recompute� extraprec�discard� term_index�term�w_s�c_s�alpha_s�beta_s�a_s�b_s�z�have_singular_nongamma_weight�k�w� pole_count� data_index�data�i�x�n�d�ok�us �o/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/mpmath/functions/hypergeometric.py�_check_need_perturbr0s����G�i��I��G�%�e�,�,�('�('�� �D�15�.��S�'�6�3��Q�(-�%��c�N�N� 9� 9�D�A�q�� 9��6�6�#�a�&�>�>�Q�&�&�3�q�6�&�*.�.�G�i�48�1���Y�Y� � )�7�F�C�*@� A� A� %� %� �J��!�$��� %� %���1��(�(��+�+���1��q�5�5�����=�=��B�!�Q���!$�&�&�A�"�{�{�1�~�~�&�!�s�1�v�v�+�+�%)�� %����!� ��z�*�*�*�a�/�*�*�*�*���V�V��!��O�I� $�I��- %�. � '�:�a�=�:�a�=�:�a�=�3P�#P�#P�1�$Q� �N�N�:� &� &� &� &� ��_�_� '�"&� &�G�i�� �I�y�'� 1�1�a hypercomb() failed to converge to the requested %i bits of accuracy using a working precision of %i bits. The function value may be zero or infinite; try passing zeroprec=N or infprec=M to bound finite values between 2^(-N) and 2^M. Otherwise try a higher maxprec or maxterms. Tc �~ ��+��j}�j}�j}�j}|dd�} |�dd��} |�d��|����} | |d<|�d��} |�d��} d}d} �xjdz c_�j| krt t|�jfz����j}| dd�}||�}| rBt��td ��td �j��td |��t�|||��\}}}�+�xj|z c_|r�d |vr |d }n'�j rt�jd z��}n|dz|z}�� �j | ��}|dz|zdz�_tt|����D]}||xx|z cc<|||dzz z }�|r||�}|r�+fd�t!|��D��}|s�j|�_Sg}t!|��D�]�\}}|\}}}}}} }!| �rt��td|dzt|��t|��t| ��fz��td��|����|����td��|����|����td��|����| ����td��|!�������j|| |!fi|��g�fd�|D��z�fd�|D��z�fd�t)||��D��z��}"| rtd|"��|�|"�����t|��dkr |s |d}�n��j r��|��}�n���|��}�fd�|D��}#t/|#��}$��|��}%|$|%z }&| r8t��td|&d��td�j|z d��|&�j|z k}'| �d}(n|$�jz | k}(| �d})n|$| k})|'r|r��|&��rn�|'r_|� |dz }|}��d��||z ����|��|z krnu|(r�j}nk|)r�j}nad |vrn\|dz}|}nRt7t/|&|dz��t/||����}*�xj|*z c_| rtd���� �� |�_n #|�_wxYw| S)N�verboseF�maxprec�zeroprec�infprecrr� zENTERING hypercomb main loopzprec =�hextra�hmagg333333�?c�"��g|] \}}|�v� |�� S�r;)�.0r)rrs �r/� <listcomp>zhypercomb.<locals>.<listcomp>ks'���T�T�T�)�1�d�1�G�CS�CS��CS�CS�CSr1z Evaluating term %i/%i : %iF%iz powersz gammaz hyperz zc�:��g|]}��|����Sr;)�gamma�r<�ars �r/r=zhypercomb.<locals>.<listcomp>~s#���3�3�3�a�S�Y�Y�q�\�\�3�3�3r1c�:��g|]}��|����Sr;)�rgamma�r<�brs �r/r=zhypercomb.<locals>.<listcomp>s#���3�3�3�q�S�Z�Z��]�]�3�3�3r1c�B��g|]\}}��||����Sr;)�power)r<r%�crs �r/r=zhypercomb.<locals>.<listcomp>�s)���>�>�>���1�S�Y�Y�q��^�^�>�>�>r1z Value:c�:��g|]}��|����Sr;)�mag)r<r*rs �r/r=zhypercomb.<locals>.<listcomp>�s#���C�C�C�a�s�w�w�q�z�z�C�C�Cr1z Cancellation:�bitsz Increased precision:�rz* Must start over with increased precision)r�zeror r �get�_default_hyper_maxprec� ValueError�_hypercomb_msg�printr0�_fixed_precisionr�ldexp�one�range�lenr �nstr�fprod�hyper�zipr�fsum�maxrJ�isnan�inf�min),r�function�paramsr�kwargs�orig�sumvalue�distr � orig_paramsr3r4r5r6�perturbed_reference_valuer8�orig2rrrrr9�hr$�evaluated_termsr� term_datarrrrr r!r"�v�term_magnitudes� max_magnitude� sum_magnitude� cancellation� precision_ok�zero_ok�inf_ok� incrementrs,` @r/� hypercombrv:s����� �8�D��x�H� � �D� �8�D�����)�K��j�j��E�*�*�G��j�j��C�$>�$>�t�$D�$D�E�E�G��F�9���z�z�*�%�%�H��j�j��#�#�G� $�� �F�w�t � �H�H��N�H�H��x�'�!�!� ��4���2B�!B�C�C�C��H�E� ����^�F��H�f�%�E�� (������4�5�5�5��h���)�)�)��h��'�'�'�#�C���6I�J�J� 3�G�Y� �7� �H�H� � !�H�H�� !��V�#�#�!�&�>�D�D��)�.��s�x��|�,�,�D�D��"�9�v�-�D��I�I�c�g��u�-�-�� �2�:��,�r�1����s�6�{�{�+�+�!�!�A��1�I�I�I��N�I�I�I� ��A�a�C��L�A�A�� *� ��&�)��"� U�T�T�T�T�y��/?�/?�T�T�T��� ��x�d����c!�O�)2�5�)9�)9� *� *�%� �I�9B�6��S�'�6�3��Q��0��G�G�G��;�#�A��s�5�z�z�3�s�8�8�S��X�X�F�G�H�H�H��,����� � �s�x�x��}�}�E�E�E��+�s�x�x��'8�'8�#�(�(�6�:J�:J�K�K�K��+�s�x�x��}�}�c�h�h�s�m�m�D�D�D��'�3�8�8�A�;�;�/�/�/� �I�I�y�s�y��c�1�?�?��?�?�@�3�3�3�3�7�3�3�3�4�3�3�3�3�F�3�3�3�4�?�>�>�>��S����>�>�>�?�@�@���+��,��*�*�*��&�&�q�)�)�)�)��5�z�z�Q�����*�1�-����#� ��8�8�O�4�4����x�x��0�0�H�C�C�C�C�?�C�C�C�O���0�0�M��G�G�H�-�-�M�(�=�8�L�� I������'��v�>�>�>��.���4���H�H�H�'�#�(�T�/�9�L������'�#�(�2�h�Y�>�������&��0��� �W� ����<�1H�1H� ��� �,�4��b�L�F�08�-���W�W�X�(A�A�B�B�����)�)�D�0�1�1��� 9�"�x�H���9�"�w�H���v�%�%���a�K�F�08�-�-� ��L�$��'� :� :�C� �$�<O�<O�P�P� ����I�%����H��F�G�G�G��it �l�����4������� �9�s�FV0�'NV0�0 V9c �����|��}t|��}t|��}�fd�|D��}�fd�|D��}|�dd��r�|�dd��}d}||krm|rk||} | |vrR|s��| d��s5|�| ��|�| ��|dz}|dz}n|dz }||kr|�k|dkr2|dkr�j||fi|��S|dkr��|��S�n|dkrU|dkr�j|||fi|��S|d kr�j|||fi|��S|dkr"�� |dd|��Sn�|d krY|dkr�j |||fi|��S|d kr�j |||fi|��S|d kr�j |||fi|��S|dkr�j |||fi|��SnK||dzkr�j|||||fi|��S||dzkr'|�d ��s�j|||||fi|��St!||z�\} } �j||| | |fi|��S) z0 Hypergeometric function, general case. c�:��g|]}��|����Sr;��_convert_paramr@s �r/r=zhyper.<locals>.<listcomp>��'��� .� .� .�Q�3� � �a� � � .� .� .r1c�:��g|]}��|����Sr;ryrDs �r/r=zhyper.<locals>.<listcomp>�r{r1� eliminateT� eliminate_allFrrr�� force_series)�convertrWrNr�remove�_hyp0f1�exp�_hyp1f1�_hyp1f2�_hyp1f0�_hyp2f1�_hyp2f2�_hyp2f3�_hyp2f0�_hypq1fq� _hyp_borelr[�hypsum) rr r!r"rc�p�q�elim_nonpositiver)rE�coeffs�typess ` r/rZrZ�s��� � � �A���A� �C���A� �C���A� .� .� .� .�#� .� .� .�C� .� .� .� .�#� .� .� .�C� �z�z�+�t�$�$� �!�:�:�o�u�=�=�� ���!�e�e��e��A��A��C�x�x�-�x�S�[�[��1��5F�5F�x�� � �1� � � �� � �1� � � ��Q����Q�����Q����!�e�e��e� �A�v�v� �!�V�V�K�C�K��Q�9�9�&�9�9�9� �!�V�V�C�G�G�A�J�J�&�V� �a��� �!�V�V�K�C�K��S�!�>�>�v�>�>�>� �!�V�V�K�C�K��S�!�>�>�v�>�>�>� �!�V�V�C�K�K��A��q� �1�5�5�5�V� �a��� �!�V�V�K�C�K��S�!�>�>�v�>�>�>� �!�V�V�K�C�K��S�!�>�>�v�>�>�>� �!�V�V�K�C�K��S�!�>�>�v�>�>�>� �!�V�V�K�C�K��S�!�>�>�v�>�>�>�V� �a��c����s�|�A�q�#�s�A�8�8��8�8�8� �Q�q�S������N�3�3���s�~�a��C��a�:�:�6�:�:�:��#�c�'�O�M�F�E� �3�:�a��E�6�1� 7� 7�� 7� 7�7r1c �$�|jg|g|fi|��S�N�rZ)rrEr"rcs r/�hyp0f1r��s"�� �3�9�R���A� '� '�� '� '�'r1c �&�|j|g|g|fi|��Sr�r��rrArEr"rcs r/�hyp1f1r��s$�� �3�9�a�S�!��Q� (� (�� (� (�(r1c �(�|j|g||g|fi|��Sr�r�)r�a1�b1�b2r"rcs r/�hyp1f2r��s&�� �3�9�b�T�2�b�'�!� -� -�f� -� -�-r1c �(�|j||g|g|fi|��Sr�r�)rrArErHr"rcs r/�hyp2f1r��s&�� �3�9�a��U�A�3�q� *� *�6� *� *�*r1c �*�|j||g||g|fi|��Sr�r�)rr��a2r�r�r"rcs r/�hyp2f2r��s(�� �3�9�b��W�b��W�Q� 0� 0�� 0� 0�0r1c �,�|j||g|||g|fi|��Sr�r�)rr�r�r�r��b3r"rcs r/�hyp2f3r�s*�� �3�9�b��W�b��B�Z�� 3� 3�F� 3� 3�3r1c �&�|j||gg|fi|��Sr�r�r�s r/�hyp2f0r�s$�� �3�9�a��U�2�a� )� )�&� )� )�)r1c �,�|j|||g||g|fi|��Sr�r�)rr�r��a3r�r�r"rcs r/�hyp3f2r� s*�� �3�9�b��B�Z��B��� 3� 3�F� 3� 3�3r1c��d|z | zS�Nrr;)rrAr"s r/r�r� s�� �a�C�a�R�=�r1c �\��� �|\\� }�r�����}nd}|dkr�|�d��s� �j} �xjd|dzzz c_� ��fd�}��|gd���}��� ��d���j��zz |z}|�_n #|�_wxYw��� ��r*�����r��|��}| S#�j $rYnwxYw�j dd |f� g�fi|��S) Nr�r�� rc� ����� ��}�j|z}dd|zz }�j�z }��d|z��}| |g|dggg��jz �j�z gg| f}||g|dggg��jz �j�z gg|f}||fS)Nr�r�����)�sqrt�j�mpq_1_2r��mpq_3_2) r%�jwr.rH�E�T1�T2rErr"s ���r/rjz_hyp0f1.<locals>.h!s�������!�� � �A���q��B��1�R�4��A�� �a��A�����"�� � �A��3�q�'�A�b�6�2�r�A�c�k�M�3�;�q�=�3Q�SU�XY�WY�Z�B��a�&�1�Q�%��R�!�C�K�-���Q��1O�QS�UV�W�B��r�6�Mr1T�r�r) rJrNrrvr?r��pi� _is_real_type�_re� NoConvergencer�) rr!r"rc�btype�magzrdrjrmrEs ` ` @r/r�r�s|������K�J�Q�����w�w�q�z�z����� �q�y�y����N�3�3�y� � �8�D� ����B��q��L�(���"�"�"�"�"�"�"��M�M�!�R�d�M�;�;���I�I�a�L�L�!�C�H�H�S�V�$4�$4�"4�5�a�7�������4�������� � ��#�#� ��(9�(9�!�(<�(<� ��G�G�A�J�J���2�I��� � � � � �D� ���� �3�:�a��U�H�q�c�1� 7� 7�� 7� 7�7s,�D � A+B<�4D �< C�AD � D�Dc ����� �|\\}}|\\}}�s �j�zS�����} | dk�r���|��r��|��dk�s`�����ra��|����|��cxkr �����cxkrdkr nn�jS�j�zS �xj| z c_�� ���dk� �� �fd�} �� | ||gd���} �� |��r?�� |��r*�� ���r�� | ��} | �xj| zc_S#�j $rYnwxYw �xj| zc_n#�xj| zc_wxYw�jdd||f||g�fi|��} | S)N�rrc�,���r+����|d�����}n��|��}d�z }|�gd| g|g||z g|d|z|z gg| f}������gd||z g|g|g||z d|z gg|f}||fS)NT��exactr)�expjpi�fnegr�) rArEr��rzr�r�r�sectorr"s ���r/rjz_hyp1f1.<locals>.hEs�����*��J�J�s�x�x���x�'>�'>�?�?����J�J�q�M�M���1��B��Q�%�!�Q�B��!��q��s�e�a��1��Q��Z��b�S�I�B��7�7�1�:�:�a�.�1�Q�q�S�'�A�3���a��c�1�Q�3�Z��R�P�B��r�6�Mr1Tr�)rUrJ�isintr �isinf�signr_�nanr�_imrvr�r�r�r�) rr r!r"rcrA�atyperEr�r�rjrmr�s ` ` @r/r�r�5s0������K�J�Q���K�J�Q�� ���w�q�y�� �7�7�1�:�:�D� �q�y�y�#�)�)�A�,�,�y�3�6�6�!�9�9��>�>� �9�9�Q�<�<� ��x�x��{�{�c�h�h�q�k�k�=�=�=�=�S�X�X�a�[�[�=�=�=�=�A�=�=�=�=�=��w���7�Q�;� � � ����D� ���������a���"�"�"�"�"�"�"��M�M�!�a��U��M�>�>���$�$�Q�'�'�#�C�,=�,=�a�,@�,@�#�S�EV�EV�WX�EY�EY�#����� � �A��r� �H�H�� �H�H�H���$� � � ��� ����� �H�H�� �H�H�H��C�H�H�� �H�H�H�H�H�H��� �1�a�%���!�Q���=�=�f�=�=�A� �Hs%�!B F� F�F4�F�F4�4Gc ��||||f\}}}} |j} |�dd| z��} d} | | z|_|�| ��}|�d��} |�d��}|�d��}d}||z|z}||jz}|dz|jz}d|z }||z }||z|z}||z |z }|dz }|j dz }|j}|j}|j}|j} ||z}||z||zz|zd|dzz|z||zzz }||||z| z|zz z} || |z||z|zzz}!| |||z||zz|z z|z zd|z|zz }"||z|"z }#t|||#����}||#|z ��|krn | |!|#}}} |dz }��|||#��z }$|$| krn| |$z } | | kr|j ����|#S)Nr4�dr7rrrr�) rrNr��mpfr�rX�nprintrJr r]r�)%rrArErHr"rc�_a�_b�_c�_zrdr4�extrar,�e�fr$�abz�ch�c1h�nz�g�abg�cba�z2�tolrXr�rJ�maxmag�kch�kakbz�d1�e1�ft�f1rqs% r/�_hyp2f1_gosperr�Ys\���Q��1�*�K�B�r�"�R� �8�D��j�j��C��H�-�-�G� �E�,(��%�<��� �K�K��O�O�� �G�G�A�J�J�� �G�G�A�J�J�� �G�G�A�J�J�� ����c�!�e�� ���_����s�c�k�!�� �q�S�� �b�D����c�!�e����c�!�e�� �q�S���x�i�"�n���x������g����� ��B�$�C��q�S�1�Q�3�K��M�Q��!��W�S�[�!�C�%�%8�9�E���1�S�5�!�)�A�+� �&�B���#��q��s�A�g� �&�B��A�s�1�u�Q�r�T�z�!�|�$�S�(�)�1�S�5��8�4�B��Q����B�����R���)�)�F��s�2�a�4�y�y�3�����"�b�!�q�A� ��F�A� ����B���'� � �%� � � � �\� !�E��w����'�'�Y,(�Z �Ir1c ������|\\}}\}}|\\�} �dk�r���|z |z ��dk} ��|��r|dkp��|��o|dk} �����oP�dkoJ��|��r�|cxkodkncp$��|��o�|cxkodknc } | s| r*| s(����|z |z g�|z �|z gd���S��||�d�jdzz ���jzS�s�s |dks|dkrd�zS�jS�����rW�dkrQ��|��r�|cxkrdks'n��|��r�|cxkrdkrnnn�jSt���} | dksB��|��r |dkr|dks!��|��r$|dkr|dkr�jdd||| f||�g�fi|��S�j } �xj dz c_ | d kr���fd �}�j |||gfi|��}n�td�z ��d kr��fd �}�j |||gfi|��}nUt��dz z ��d kr+��|�|z ���dz z ��d�z |zz }nt�||��fi|��}|�_ n #|�_ wxYw| S) NrrT)�_infsignrg�������?i���r7g�������?c����j�z }||z }d� z }� g| g�| g|�|z g|||zg�j|zg|f}� g| g�|g|�|z g|||zg�j|z g|f}||fSr�)�mpq_1) rArE�t�abr�r�r�rHrr"s ���r/rjz_hyp2f1.<locals>.h�s�����I�a�K��a��c���!��2��r�d�Q�B�4�!�R�C��!�A�a�C��1�Q�q�S�'�3�9�R�<�.�2�N���r�d�Q�B�4�!�B���1�Q�3��!�A�a�C��#�)�B�,��"�M���2�v� r1g�?c����|z |z }�|z }�|z }d� z }gg�|g||g||gd|z g|f}|g|g�||z�z g||g||gd|zg|f}||fSr�r;) rArEr��ca�cbr�r�r�rHr"s ��r/rjz_hyp2f1.<locals>.h�s�����a�C��E���!��2�!�A�#�R�A�a�C�r���a��U�R��G�a��U�Q�q�S�E�2�=���T�A�3��1�Q�3�q�5� �A�a�5�2�b�'�A�a�C�5�"�D���2�v� r1) r r�� gammaprodr��epsr_r��absr�rrvr�)rr r!r"rcrAr�rEr��ctype� convergent�finite�zerodiv�abszrdrjrmrHs` ` @r/r�r��s������ ��J�Q�� ��E��K�J�Q���A�v�v��V�V�A�a�C��E�]�]�Q�&� ��)�)�A�,�,�)�1��6�G�s�y�y��|�|�/F��Q����)�)�A�,�,�O�1��6�O��i�i��l�l�*�q�A�{�{�{�{��{�{�{�{� M�� � �!� � �0L��a�����1�����/O�� � H�&� H�'� H��=�=�!�Q�q�S��U��a��c�1�Q�3�Z�$�=�G�G� G��z�z�!�A�a��#�'�!�)� �,�,�s�w�6�6� �� � ��Q���!�q�&�&��Q�3�J��w�� �y�y��|�|���Q��� �I�I�a�L�L� �Q�!�[�[�[�[�q�[�[�[�[� �I�I�a�L�L�)��!�[�[�[�[�q�[�[�[�[�[� ��7�N� �q�6�6�D� �s�{�{�s�y�y��|�|�{��Q���1��:�:��y�y��|�|�4>�()�Q���1��:�:��s�z�!�Q���u� 5��1�a�y�!�N�N�v�N�N�N� �8�D�� ���B���� �3�;�;� � � � � � � � �� �a�!�A��1�1�&�1�1�A�A���1��X�X�� � � � � � � � � �� �a�!�A��1�1�&�1�1�A�A���A�a�C��\�\�T� !� !�� � �1�a��c�1�a��1��g�.�.�!�A�#���9�A�A��s�1�Q�q��4�4�V�4�4�A������4������� �2�Is �0B2K*�* K3c ��������������� �t��\�}t��\�}t����t����t���} d} �D]!} ��| ��r | dkrd} n�"| dks| r2 �j��||z��z�fi|��S#�j$r | dks| r�YnwxYw�dkrP��t���t���z ��} | dkr�j��dfi|���j zS��fdkr�t�dz ��dkr‰\����\����z�z } �� ��z ��z ��g��z ��z d| g��}d|if�������fd � � �� � d�j g|� d ��|� d d��� ��} | �� ��g���g��zS#�j$rYnwxYw| dk�r��� ���dk�r�d�jif������ �fd � � |� dd��} �� � d�j g|� d ��|� d d��|�dd�����S#�j$rd|vr�YnwxYw|� d ��rt!d�� ����fd������fd�}�jdz }�j} d�jz}�xjdz c_t)d��D]�}��� fd�t)|��D����}��� |�j g|||��|� d ��dd���\}}||kr||z}n9|dz}�xj�jdzz c_|dkr��d�����|�_n #|�_wxYw| S����fd�}�j|��zfi|��S) z& Evaluates 3F2, 4F3, 5F4, ... FrTrg�������?g�������?)rrg�������?c������z�z |z}||vr ||}n5||dz }|�|z�z dz �|z�z dz zz}|||dz zz}|||<|� ���|� ��zSr�)r�) r$�_cacher.r�r�r�r�r�r�rr"s �������r/rz_hypq1fq.<locals>.terms�����2��b��� �A��F�{�{��1�I����1�Q�3�K���b��d�2�g�a�i�"�Q�$�r�'�!�)�,�,���Q��!��W� ����q� ��s�z�z�"�R��!�,�,�,� ,r1r3�strict)r3rc����t|��}||krl�� �|��z� �|��z }�D]}|� �||��z}�� D]}|� �||��z}�|S||vr||S� |dz ��}|dz }t � ��D]}|�||zz}�t � ��D]}|� ||zz}�|�z}||z}|||<|Sr�)rr��fac�rfr)�kkrr$r�rArE�mr�r r!rr�r�rr"s �������r/rz_hypq1fq.<locals>.term's����B���A��B�w�w��������$�s�w�w�r�{�{�2���/�/�A�a�3�6�6�!�B�<�<�/�a�a��/�/�A�a�3�6�6�!�B�<�<�/�a�a����F�{�{��a�y� ���Q�q�S� � �A��!��A��A�Y�Y� /� /���c�!�f�Q�h�����A�Y�Y� /� /���c�!�f�Q�h���� ��F�A� ��F�A��F�1�I��Hr1� sum_methodzr+s+er��)r3r�methodz$Attempting Euler-Maclaurin summationc3����K��dgz}t��fd��D����t��fd�|D����z ������zzV�d� t���fd��D����t���fd�|D����z }�dkr|�����z }|V��dz ��c)Nrc3�H�K�|]}��|�z��V��dSr���loggamma)r<rAr�k0s ��r/� <genexpr>z._hypq1fq.<locals>.log_diffs.<locals>.<genexpr>is3�����6�6�Q�c�l�l�1�R�4�(�(�6�6�6�6�6�6r1c3�H�K�|]}��|�z��V��dSr�r)r<rErrs ��r/rz._hypq1fq.<locals>.log_diffs.<locals>.<genexpr>js3�����3�3�1�C�L�L��2��&�&�3�3�3�3�3�3r1rc3�J�K�|]}���|�z��V��dSr���psi)r<rArr)rs ���r/rz._hypq1fq.<locals>.log_diffs.<locals>.<genexpr>ms3�����5�5�A�����!�B�$���5�5�5�5�5�5r1c3�J�K�|]}���|�z��V��dSr�r)r<rErr)rs ���r/rz._hypq1fq.<locals>.log_diffs.<locals>.<genexpr>ns3�����4�4�A�����!�B�$���4�4�4�4�4�4r1)r�log)rr�rmr)r r!rr"s` @����r/� log_diffsz_hypq1fq.<locals>.log_diffsgs���������s��B��6�6�6�6�6�#�6�6�6�6�6��3�3�3�3�3��3�3�3�3�3�4�68�������m�D� D� D� D��A� ��5�5�5�5�5�5��5�5�5�5�5��4�4�4�4�4�4��4�4�4�4�4�5����6�6��������O�A������Q���  r1c3��K���d��D��d��D����}���|����D] }||z}|V�� dS)Nc��g|]}|��Sr;r;�r<rEs r/r=z1_hypq1fq.<locals>.hyper_diffs.<locals>.<listcomp>us��.�.�.�Q�q�.�.�.r1c��g|]}|��Sr;r;�r<rAs r/r=z1_hypq1fq.<locals>.hyper_diffs.<locals>.<listcomp>us��0@�0@�0@�q��0@�0@�0@r1)r�� diffs_exp)r�Cr,rmr r!rrs ����r/� hyper_diffsz_hypq1fq.<locals>.hyper_diffstsy������ � �.�.�#�.�.�.�0@�0@�C�0@�0@�0@�A�A�A��]�]�9�9�R�=�=�1�1� � ����E������� � r1i�2rL�c3�.�K�|]}�|��V��dSr�r;)r<r$rs �r/rz_hypq1fq.<locals>.<genexpr>�s+�����?�?�A���Q���?�?�?�?�?�?r1)r��adiffsr3�error� _fast_abortrr�z*Euler-Maclaurin summation did not convergec �>�� � � � �t|d����� t|�d���� g}�j�z }���d���}t�dz��D]�� � � � |g}� g}� � gz� � � fd�t�dz��D��z}� � � fd�t���D��z}� g� � fd�t���D��z}� � � fd�t�dz��D��} |�|||||| |f����|S)NTr�rc�2��g|]}|�k��|�z ��Sr;r;�r<r�r �akr$s ���r/r=z'_hypq1fq.<locals>.h.<locals>.<listcomp>�s&���G�G�G�Q��Q���s�1�v�b�y���r1c�&��g|] }�|�z ��Sr;r;�r<r�r*r!s ��r/r=z'_hypq1fq.<locals>.h.<locals>.<listcomp>�s!���4�4�4�a��A��r� �4�4�4r1c�,��g|]}��|z dz��S�rr;r,s ��r/r=z'_hypq1fq.<locals>.h.<locals>.<listcomp>�s%���7�7�7���C��F��1��7�7�7r1c�8��g|]}|�k�d�|z �z��Sr.r;r)s ���r/r=z'_hypq1fq.<locals>.h.<locals>.<listcomp>�s*���<�<�<�!�Q�!�V�V�!�C��F�(�2�+�V�V�Vr1)�listrUr�rVr)�args�Ts�recz�negzr�Cp�Gn�Gd�Fn�Fdr r*r!r$rr�r�r"s @@@@����r/rjz_hypq1fq.<locals>.h�s]��������4����8�n�n���4����8�n�n�� ���w�q�y���x�x���x�&�&���q��s��� 5� 5�A��Q��B���A��#��B���t��G�G�G�G�G�G�%��!��*�*�G�G�G�G�B��4�4�4�4�4�5��8�8�4�4�4�4�B���7�7�7�7�7�e�A�h�h�7�7�7�7�B�<�<�<�<�<�<�u�Q�q�S�z�z�<�<�<�B� �I�I�q�"�b�"�b�"�d�3� 4� 4� 4� 4�� r1)r[r0r�r�r�r�r rrZr_r��nsumrNr�rU�replacerRr�r�dpsrr\�sumemrv)!rr�r�r r!r"rc�a_types�b_typesr��ispolyrA�Sr.�initialr r r�r�truncr)�head�tail�errrmrjr�r�r�r�r�rrs!`````` @@@@@@@r/r�r��s���������������� ��9�L�C����9�L�C�� �s�)�)�C� �s�)�)�C� �q�6�6�D� �F� ���� �9�9�Q�<�<� �A��F�F��F� �E�� �a�x�x�6�x� ��3�:�a��G�G�O�S��W�a�J�J�6�J�J� J��� � � � ��c�z�z�V�z���z� ����$ �A�v�v� �F�F�3�s�8�8�C��H�H�$� %� %�� ��6�6��3�9�S�#�s�5�5�f�5�5���?� ?� �!�u��~�~�#�a��c�(�(�T�/�/����2�b����2� �r�E�"�H���-�-��B��r�"�u�R�� 3�R��U�2�b�5��1�4E�F�F���g�;� -� -� -� -� -� -� -� -� -� -� -� -� ������#�'�{�F�J�J�y�4I�4I��z�z�(�D�1�1��3�3�A��s�}�}�b��W�b��B�Z�8�8�8� 8��� � � � � �D� ����  �c�z�z�c�g�g�a�j�j�A�o�o��s�w�K� � � � � � � � � � � � �$�Z�Z� �g�6�6� � ��8�8�D�1�S�W�+�v�z�z�)�7L�7L��z�z�(�D�1�1�!�)�)�#�b�1�1��3�3� 3��� � � � ��*�$�$�� �D� ���� �:�:�i� � � :� �8� 9� 9� 9� �> � � � � � � � � � � � � � � � � �g��n���x�� ����L�E� �H�H��N�H�H��A�Y�Y� F� F���x�x�?�?�?�?�����?�?�?�?�?���I�I�d�U�C�G�,<�#�&�;�u�-�-�"�J�J�y�1�1�� $� &�&�&� ��c� ��9�9��t� �A��E��� �����C�H�a�K�'�����6�6��+�+�D�F�F�F���C�H�H��t�C�H�O�O�O�O��r� � �������� �3�=��C��G� .� .�v� .� .�.sE�B�B0�/B0�4A$G� G&�%G&�5AJ�J#�"J#�-C!O� Oc �l�������rt��\�}t����ngdc�}�rt��\�}t����ngdc�}|�d�j��|d< �j||||z��z�fi|��S#�j$rYnwxYw�j} |�d�jdz ��} �xjdz c_d�jif����fd� ��j} td�j��D]0} �| ��} | | z } t| ��| kr | c| �_S�1 | �_n #| �_wxYw||d zkr�|�d ��}|s��� ���d kr_�tdt�����z }�� ���dkrdd d |z d|z �j g}nddd|z d|z �j g}n d�j g}|�di��}����fd�}�j ||fddi|��\}}|t|���jzdzkr|S�j�)Nr;�maxterms� asymp_tolr�r7rc���||vr||S�|dz ��}�D] }|||dz zz}��D] }|||dz zz}�|�z}||z}|||<|Sr�r;) r$�cacher�rArEr r!rr"s ����r/rz_hyp_borel.<locals>.term�s�����E�z�z��Q�x����Q�q�S� � �A�� (� (��!��1�Q�3��.�!�!�� (� (��!��1�Q�3��.�!�!� ��F�A� ��F�A��E�!�H��Hr1rr�contourg�?y@y@@ry��y@�� quad_kwargsc�n����| ������dgz|�z��zSr�)r�rZ)r�r r!rr"s ����r/r�z_hyp_borel.<locals>.g�s4����7�7�A�2�;�;�s�y�y��c�1�#�g�q��s�;�;�;� ;r1r%Tr�)r[r0rNrr�r�r�rUrr��argr]r_�quad)rr�r�r r!r"rcr>r?rr��sr$r�rLr.rMr��IrFrs` ``` @r/r�r��s�������� ���C�y� ��W��3�i�i����2� ��W� ���C�y� ��W��3�i�i����2� ��W����J���9�9�F�:�� ��s�z�!�Q�����S��!�F�F�v�F�F�F�� � � � � � �� ���� �8�D���j�j��c�g�a�i�0�0�� ���B�����S�W�+� � � � � � � � � � �G����3�8�$�$� � �A���Q���A� ��F�A��1�v�v��}�}��������� � �����4��������A�a�C�x�x��*�*�Y�'�'��� '��w�w�q�z�z�D� � ���A�s�1�v�v���&���7�7�1�:�:��?�?� �"�t�Q�h��!��S�W�=�G�G� �#��q�y�!�A�#�s�w�?�G�G� �c�g�,���j�j���3�3� � <� <� <� <� <� <� <� <����!�W�@�@�D�@�K�@�@���3� �#�a�&�&���.��"� "� "��H� � �s%�+B� B�B�BD0�&D0�0 D9c �j���|\\}}\}}|\\} } \} } t���} �����}�j}|}|�d�� o��| ��dk}|r� �xj|z c_��fd�}��|||| | gdd�jz���}t �fd�||| | �fD����dkr��|��}||�_S#�j$rYnwxYw |�_n #|�_wxYw�jd d ||| | f||| | g�fi|��S) Nr�rc���||z|z |z }||z}||z}i}�j|d<|dz |z||zz||zz |d<d}d} d} | |vr�d|z d|zz|dzzd|zz|dzz||zz ||zz||zzd|zd|dzzz | zzd| dzzz} | |z |zdz | |z |zdz z| |z dz z} �j| z | || dz z| || dz zz z|| <|| �| zz} t| ��d�jzkrn>| dkr*t| ��t| ��z dkr�j�|| z }| } | dz } �������|z}�|g|dg||g||gggdf}� g| g||||z g|||z ||z g|||z dz||z dzg||z dzgd�z f}� g| g||||z g|||z ||z g|||z dz||z dzg| |zdzgd�z f}|||fS) Nrrrr皙�����?r"��?r�)rUr�r�r�r�)r�r�r�r��X�A2�B2rH�s1r$�tprev�uu1�uu2�t1rAr�r��T3rr"s ��r/rjz_hyp2f2.<locals>.hs�����2��b��� �A��B��B��B��B��A��7�A�a�D��q�D�!�8�B�r�E�>�"�R�%�/�A�a�D��B��A��E���A�:�:�"#�B�$�q��t�)�B��E�/�!�B�$�"6�r�1�u�"<�R��U�"B�2�b�5�"H��B��"N�PQ�RT�PT�UV�XZ�[\�X\�U]�P]�_`�O`�"`�ab�cd�fg�cg�ag�"g�C�#$�R�4��7�1�9�q��t�B�w�q�y�"9�1�Q�3�q�5�"A�C�#&�7�1�9��A�a��c�F� �3�q��1��v�:�0E�#F�A�a�D��q�T�A���G�^���r�7�7�S���[�0�0�!��q�5�5�S��Z�Z�#�b�'�'�%9�C�%?�%?�"%�"3�3��b��� "���Q���� ���� � �2� �A��A���1���2�w��2�w�r�"�Q�>�B��"���s�e�R��2�b�5�M�2�b��e�B�r�E�2B�B�r�"�u�Q�w�r�RT�u�UV�w�CW�Y[�\^�Y^�_`�Y`�Xa�bd�ef�bf�f�B��"���s�e�R��2�b�5�M�2�b��e�B�r�E�2B�B�r�"�u�Q�w�r�RT�u�UV�w�CW�Z\�Y\�]_�Y_�`a�Ya�Xb�ce�fg�cg�g�B��r�2�:�%r1Tr��r�rHc3�B�K�|]}��|��V��dSr��r��r<r.rs �r/rz_hyp2f2.<locals>.<genexpr>!s1�����E�E��s�(�(��+�+�E�E�E�E�E�Er1r"r) r�rJrrNrvrr r�r�)rr r!r"rcr��a1typer��a2typer��b1typer��b2typer�r�rd�asymp_extraprec�can_use_asymptoticrjrms` ` r/r�r��s�����!$��L�R��,�2�v�!$��L�R��,�2�v� �q�6�6�D� �7�7�1�:�:�D� �8�D��O�%�j�j��8�8�8�� ������� �� �-�+ �( ����O�+���&�&�&�&�&�&�>�M�M�!�b��B�r�]��PQ�RU�RZ�PZ�M�[�[���E�E�E�E�b��B�r�!�_�E�E�E�E�E��J�J����q� � �A���C�H�H���$� � � ��� ������C�H�H��t�C�H�O�O�O�O� �3�:�a��V�V�V�V�<�r�2�r�2�>N�PQ� \� \�U[� \� \�\s%�9A5C6�6 D�D�D�D� Dc ����|\\}}|\\}}\} } t���} �����} �j} �o| dz}|�d�� o4��| ��dko��| ��d| zk}|r� �xj|z c_��fd�}��|||| gdd�jz���}t �fd �||| �fD����dkr��|��}|| �_S#�j$rYnwxYw | �_n #| �_wxYw�j d d||| f||| g�fi|��S) Nrr��rVc����j||z |z �jzz}i}�j|d<d�jd|z|z|zdz z||z |z z||zz�jz z|d<d||z�j||z |z zd|z|z|zdz zz�jz dzz�jdd|zdz z|z|zd||z |z zd|dzzd|zz|z|zdz zzdz zz|d<d}d}d}d} ||vr�d|dzzd |zd|zzd|zzdz |zzd|dzzz||z dzz d|z||zdz zz �jz} ||z |z|z �jz ||z |z |z�jz z||z |z|z�jz z} �jd|zz | ||dz z| ||dz zz z||<||� d |zzz} �j |z��d��| zz| z} �j|z��d��| zz| z} t| ��d �j zkrnC|d kr*t|��t| ��z d kr�j �|| z }|| z }| }|dz }��v�� �j |zd�� � ��zz��|z�� �j |zd�� � ��zz ��|zz}d|z�j � gdd |g||g|gggdf}� g| g||g||z ||z g|||z dz||z dzggd�z f}||fS)Nrrrr�����r������� i������rUr"rV��?)r�rU�mpq_1_4�mpq_3_16�mpq_1_16�mpq_5_2r�r�r�r�r��expjr�r�)r�r�r�rWrHrZ�s2r$r[r\r]r%r^�t2rAr�r�rr"s ��r/rjz_hyp1f2.<locals>.hIs����� �R��U�2�X�c�k�%9�:�A��A��7�A�a�D��c�k�1�R�4��7�2�:�a�<�8�"�R�%��(�C�B�r�E�I�#�,�V�W�A�a�D��b��e�C�K��B��r��$:�A�b�D��G�B�J�q�L�$I�I�#�,�V�YZ�Z�Z�� �c�1�R�4��6�l�2�o�b�&8��2�b�5��8� �b��Q��h�r�"�u�n�R�&7��&:�1�&<�=�'>�>?�'@�A�A�A�a�D��B��B��A��E���A�:�:�#$�Q��T�6�2�b�5��2��:�a��d�?�1�+<�a�*?�#?�!�B��E�'�#I�!#�B��� �$+�-.�r�T�2�b�5��7�^�$<�>A�k�$J�C�#$�R�4��7�2�:�c�k�#9�A�b�D��G�B�J�s�{�<R�"S�!"�2��b����C�K�!7�#9�C�#&�7�A�a�C�=�#�a��!��f�*�S��1�Q�3��Z�2G�#H�A�a�D��a�D�Q�B�$�q�&�>�1��"�u�f�q�[�3�7�7�1�:�:���+;�;�a�?�� �U�A�X����� � �a�R�(8�8�1�<���r�7�7�S���[�0�0�!��q�5�5�S��Z�Z�#�b�'�'�%9�C�%?�%?�"%�"3�3��b����b��� "���Q���)�*�������!�C�H�H�a�R�L�L�.�!8�9�9�"�<����3�6�!�8�A�c�h�h��r�l�l�N�#:�!;�<�<�R�?�@�A��a�%���!��,�q�$��l�R��H�r�d��B��"�B��"����u�r�"�g�r�"�u�R��U�m��B�r�E�!�G�B�r�E�!�G�,�b�!�A�#�6�B��r�6�Mr1Tr�r`c3�B�K�|]}��|��V��dSr�rbrcs �r/rz_hyp1f2.<locals>.<genexpr>rs1�����B�B��s�(�(��+�+�B�B�B�B�B�Br1r� r�rJrrNr�rvrr r�r�)rr r!r"rcr�rdr�rfr�rgr�r�rdrhrirjrms` ` r/r�r�-s������M�L�R��!$��L�R��,�2�v� �q�6�6�D� �7�7�1�:�:�D� �8�D��m�D�!�G�O�%�j�j��8�8�8�$� ������� �$� ���$���#�d�(� "���6�4 �1 ����O�+���'"�'"�'"�'"�'"�'"�P�M�M�!�b��B�Z�d�Q�s�x�Z�M�X�X���B�B�B�B�b��B�q�\�B�B�B�B�B�a�G�G����q� � �A���C�H�H���$� � � ��� ������C�H�H��t�C�H�O�O�O�O� �3�:�a��V�V�V�4�r�2�r�l�A� P� P�� P� P�Ps%�A3D� D�D*�D�D*�* D3c ����|\\}}\}}|\\} } \} } \} }t���}�����}�o|dz}�j}|�d�� o4��|��dko��|��d|zk}|r� �xj|z c_��fd�}��|||| | | gdd�jz���}t �fd �||| | | �fD����d kr��|��}||�_S#�j$rYnwxYw |�_n #|�_wxYw�j dd ||| | |f||| | | g�fi|��S) Nrr�rkrVc ����j||z|z |z |z �jzz}||z}||z|z}||z}||z||zz||zz} ||z|z} i} �j| d<d| |z �jd|z|zdz z||z zz�jz z| d<�j| ddzz�jdd|zdz z| |z zd| zzdd|dzzd |zzd |zz|zdz z||z zzdz zz| d<d} d} d}d} || v�r3|d|zz dz |d|zz d|zz dz z|d|zz d|zz dz z|d|zz d|zz dz z}d|dz dzzd d|z|zz|dz dzzz dd |dzzd |z|zzd| zz|zdz z|dz zzd|dzzz d |z|dzzz d| zz d | zz dd| z|zdz z|zz d|zzdz }d|dz dzzdd|z|zd|zz dzz|dz zzd| dzz}�jd|zz || |dz z|| |dz zz || |dz zzz| |<| |��� d|z��z}�j |z��d��| zz|z}�j|z��d��| zz|z}t|��d�j zkrnC|dkr*t|��t|��z dkr�j �| |z } | |z } |}|dz }�� �� �j |zd�� � ��zz��| z�� �j |zd�� � ��zz ��| zz}d|z�j � gdd|g|||g||gggdf}� g| g|||||z g|||z ||z ||z g|||z dz||z dz||z dzg||z dzgd�z f}� g| g|||||z g|||z ||z ||z g|||z dz||z dz||z dzg| |zdzgd�z f}|||fS)Nrrrrrm� r�rnror���r�r"i����rprUrVrq)r�rUrrrsrtrGr�r�r�r�r�rvr�r�)r�r�r�r�r�rWrX�B3�A�B�RrHrZrwr$r[r\r]�uu3r%r^rxrAr�r�r_rr"s ��r/rjz_hyp2f3.<locals>.h�s����� �R��U�2�X�b�[��^�C�K�%?�@�A��B��B��B��r��B��2��A��2��b��e� �B�r�E�)�A��2��b��A��A��7�A�a�D��a�!�e�c�k�1�R�4��7�1�9�&=�r�"�u�&E�E�� �T�U�A�a�D��;�q��t�Q�w�.���s�A�b�D��F�|�Q�q�S�?Q�TV�WX�TX�?X��2�b�!�e�8�b��e�+�a��c�1�B�6��:�;�R��U�C�@D�DE�@F�2G�G�A�a�D��B��B��A��E���A�:�:�#$�Q�q�S�5��7�Q�q��s�U�1�R�4�Z��\�":�A�a��c�E�!�B�$�J�q�L�"I�!"�1�Q�3��q��t��A��#/�C�#$�a��c�A�X�:��1�Q�3�r�6� �A�a�C�!�8�0C�#C� !�2�a��d�7�2�b�5��7�?�1�Q�3�#6�r�#9�!�#;� <�a��c� B�$C�EG��1��W�$M� "�2��a��d� �$+�-.�q�S�$1�34�Q�3�$7�9:�A�a�C��F�1�H��a��$H�JK�B�$�$O�OP�$Q�C�$%�a��c�A�X�:�a��Q��r��!�B�$��q��.A�1�Q�3�.G�#G��!�A�$��#N�C�#&�7�A�a�C�=�#�a��!��f�*�S��1�Q�3��Z�2G��A�a�PQ�c�F� �2R�#S�A�a�D��a�D�3�9�9�a�R��a��#8�#8�8��"�u�f�q�[�3�7�7�1�:�:���+;�;�a�?�� �U�A�X����� � �a�R�(8�8�1�<���r�7�7�S���[�0�0�!��q�5�5�S��Z�Z�#�b�'�'�%9�C�%?�%?�"%�"3�3��b����b��� "���Q���)�*�������!�C�H�H�a�R�L�L�.�!8�9�9�"�<����3�6�!�8�A�c�h�h��r�l�l�N�#:�!;�<�<�R�?�@�A��a�%���!��,�q�$��l�R��R�L�2�r�(��B��"�B��"����u�r�"�R��2��&6��2�b�5��B��r�"�u�7M��B�r�E�!�G�B�r�E�!�G�B�r�E�!�G�4�r�"�u�Q�w�i��1��E�B��"����u�r�"�R��2��&6��2�b�5��B��r�"�u�7M��B�r�E�!�G�B�r�E�!�G�B�r�E�!�G�4�r�c�"�f�Q�h�Z��1��E�B��r�2�:�%r1Tr�r`c3�B�K�|]}��|��V��dSr�rbrcs �r/rz_hyp2f3.<locals>.<genexpr>�s1�����H�H��s�(�(��+�+�H�H�H�H�H�Hr1r~rrz)rr r!r"rcr�rdr�rer�rfr�rgr��b3typer�r�rhrdrirjrms` ` r/r�r�s�����!$��L�R��,�2�v�/2�,�L�R��,�2�v� ��V� �q�6�6�D� �7�7�1�:�:�D��m�D�!�G�O� �8�D� %�j�j��8�8�8�=� ������� �=�"%�(�(�4�.�.�3�t�8�";���<�: �7 ����O�+���-&�-&�-&�-&�-&�-&�\�M�M�!�b��B�r�"�%5�D�ST�UX�U]�S]�M�^�^���H�H�H�H�b��B�r�"�Q�5G�H�H�H�H�H�A�M�M����q� � �A���C�H�H���$� � � ��� ������C�H�H��t�C�H�O�O�O�O� �3�:�a��V�V�V�V�V�D�r�2�r�SU�WY�FZ�\]� h� h�ag� h� h�hs%�A7D� D*�'D6�)D*�*D6�6 D?c �4���|\\}}\}} |���} | �d�j��| d<�jdd||f||g�fi| ��S#�j$r|�d��r�YnwxYw��fd�} �j| |d|z|z gfi|��S)NrHrrr�c������|��}d�z }�j||gdd|gg||z dz|g|g|g|f}�j ||gddd|z|z gg|d|z g||z dzgd|z g|f}||fS)Nr�rr)�sinpir�)rArEr%r�r�r�rr"s ��r/rjz_hyp2f0.<locals>.h�s���� �I�I�a�L�L�� ��T���v�a��m�Q�r�!�H�R��1��Q��q� �1�#�q�c�"� =����w�q��n�a��1�Q�3�q�5�\�"�a��!��W�a��c�!�e�W�a��c�U�2� F���2�v� r1r)�copyrNrr�r�rv) rr r!r"rcrAr�rEr��kwargsbrjs ` ` r/r�r��s����� ��J�Q�� ��E� ��+�+�-�-��%�k�k�*�c�h�?�?�� ���s�z�!�Q��u� ��!�u�a�C�C�7�C�C�C�� � � � � � �:�:�n� %� %� � � �� ���������� �3�=��Q��!��A��J� 1� 1�&� 1� 1�1s�AA� A:�9A:Nc �@��������|\}}|\} } t|����t|��z�t| ����t| ��z�||z} | | z} �fd�| D��} �fd�| D��} ������|�7��krd}��krd}��kr!��z�krt���dkrd}nd}|�d��rt d����|��|dkr �������fd�} n �������fd�} �j| | | zfi|��S) Nc�:��g|]}��|����Sr;�r��r<�_rs �r/r=zmeijerg.<locals>.<listcomp>��#���#�#�#�A����Q���#�#�#r1c�:��g|]}��|����Sr;r�r�s �r/r=zmeijerg.<locals>.<listcomp>�r�r1rrr3zMeijer G m,n,p,q,series =c �\�� � � �|d��� |�d�� g}t� ��D�]� �g}� � �z g}� � fd�t� ��D��}|� � � fd�t���D��z }� � � fd�t����D��}|� � fd�t� ���D��z }� � � fd�t���D��}� � fd�t���D��}� j �� z �z z�� j�z zz}|�|||||||f����|S)Nc�>��g|]}|�k��|��z ��Sr;r;�r<r�rEr$s ��r/r=z&meijerg.<locals>.h.<locals>.<listcomp>�*���<�<�<�A�Q�!�V�V�a��d�1�Q�4�i�V�V�Vr1c�8��g|]}d�|z ��z��Sr.r;�r<r�rArEr$s ���r/r=z&meijerg.<locals>.h.<locals>.<listcomp>�)���5�5�5�q�q��1��v�a��d�{�5�5�5r1c�2��g|]}�|��z ��Sr;r;r�s ���r/r=z&meijerg.<locals>.h.<locals>.<listcomp>�%���4�4�4�A�a��d�1�Q�4�i�4�4�4r1c�8��g|]}d�|z ��z��Sr.r;r�s ��r/r=z&meijerg.<locals>.h.<locals>.<listcomp>�)���7�7�7�q�q��1��v�a��d�{�7�7�7r1c�8��g|]}d�|z ��z��Sr.r;r�s ���r/r=z&meijerg.<locals>.h.<locals>.<listcomp> �)���4�4�4�a�a��!��f�Q�q�T�k�4�4�4r1c�D��g|]}|�k�d�|z ��z��Sr.r;r�s ��r/r=z&meijerg.<locals>.h.<locals>.<listcomp> �.���>�>�>�a�q�A�v�v�a��!��f�Q�q�T�k�v�v�vr1)rVrUr�r1r�bases�expts�gn�gd�hn�hd�hzrArEr$rrr+r�r��rr"s @@@�������r/rjzmeijerg.<locals>.h�s��������R�a�R��A��Q�R�R��A��E��1�X�X� A� A������1��a����<�<�<�<�<��q���<�<�<���5�5�5�5�5�5�E�!�H�H�5�5�5�5��4�4�4�4�4�4��q����4�4�4���7�7�7�7�7�E�!�A�J�J�7�7�7�7��4�4�4�4�4�4�5��8�8�4�4�4��>�>�>�>�>�5��8�8�>�>�>���w�h�!�A�#�a�%�(�1�s�w�q�y�>�9��� � �e�U�B��B��B�?�@�@�@�@��Lr1c ��� � � �|d��� |�d�� g}t���D�])� �g}�dkr � � dz g}n"� � dz � ����z g}� � fd�t���D��}|� � � fd�t� ��D��z }� � � fd�t� ���D��}|� � fd�t����D��z }� � � fd�t���D��}� � fd�t���D��}� j �� z �z z�� j�z zz }|�|||||||f����+|S)Nrc�>��g|]}|�k����|z ��Sr;r;�r<r�rAr$s ��r/r=z&meijerg.<locals>.h.<locals>.<listcomp>r�r1c�8��g|]}d��z �|z��Sr.r;r�s ���r/r=z&meijerg.<locals>.h.<locals>.<listcomp>r�r1c�2��g|]}���|z ��Sr;r;r�s ���r/r=z&meijerg.<locals>.h.<locals>.<listcomp>r�r1c�8��g|]}d��z �|z��Sr.r;r�s ��r/r=z&meijerg.<locals>.h.<locals>.<listcomp>r�r1c�8��g|]}d��z �|z��Sr.r;r�s ���r/r=z&meijerg.<locals>.h.<locals>.<listcomp>r�r1c�D��g|]}|�k�d�|z��z ��Sr.r;r�s ��r/r=z&meijerg.<locals>.h.<locals>.<listcomp>r�r1)rVr�rUrr�s @@@�������r/rjzmeijerg.<locals>.hs��������R�a�R��A��Q�R�R��A��E��1�X�X� A� A�������6�6��q�T�!�V�H�E�E���d�1�f�c�k�k�!�n�n�4�5�E�<�<�<�<�<��q���<�<�<���5�5�5�5�5�5�E�!�H�H�5�5�5�5��4�4�4�4�4�4��q����4�4�4���7�7�7�7�7�E�!�A�J�J�7�7�7�7��4�4�4�4�4�4�5��8�8�4�4�4��>�>�>�>�>�5��8�8�>�>�>���w�h�!�A�#�a�%�(�1�s�w�q�y�>�9��� � �e�U�B��B��B�?�@�@�@�@��Lr1)rWr�r�rNrRrv)rr r!r"r��seriesrc�an�ap�bm�bqrArErjrr+r�r�s` `` @@@@r/�meijergr��s���������� �F�B�� �F�B�� �B���A� �C��G�G� �A� �B���A� �C��G�G� �A� �2��A� �2��A�#�#�#�#��#�#�#�A�#�#�#�#��#�#�#�A� � � �A���A� �~� �q�5�5�1�&� �q�5�5�1�&� ��6�6���s�a�x�x�C��F�F�Q�J�J������ �z�z�)���;� �)�1�Q�q��6�:�:�:� ��{�{� � � � � � � � � � � � �" � � � � � � � � � � �& �3�=��A�a�C� *� *�6� *� *�*r1c ���t|��t|��kr||}}||}}d�}|�|��rn�|�|��rn�|�|��r ||||f\}}}}ne||��sZ||z |dz z } || ��std���d|z | zd|z ||z |z zz|j||z |||z |z || |fi|��zS|j|g|g|gd�d|gi||fi|��S)Nc�(�t|��dkS)Ng�G�z��?)r�)r*s r/r-zappellf1.<locals>.ok+s���1�v�v��}�r1rz%Analytic continuation not implemented��m+nrr+r�)r�rrP�appellf1�hyper2d) rrAr�r�rHr*�yrcr-�u1s r/r�r�$sa�� �1�v�v��A������!�1���R�B����� �{�{�1�~�~�=� � ���R���=� � ���R��� =��!�R��|� ��1�b�"�"� �r�!�u�u� =��A�#��!���B��2�b�6�6� J� �!H�I�I�I��a�C�B�3�<��1���!��B���/��� �Q�q�S��A�b�D��G�A�b��<�<�V�<�<�=� =� �3�;�q�c�r�d��t�4�4�u�a�S�k�1�Q� Q� Q�&� Q� Q�Qr1c �<�|j|g|g|gd�|g|gd�||fi|��S)Nr��rr+�r�) rrAr�r��c1�c2r*r�rcs r/�appellf2r�AsL�� �3�;�q�c�r�d��t�4�4��T�r�d���Q�q� ,� ,�$*� ,� ,�,r1c �F�|�|��p|�|��} |�|��p|�|��} | s1| s t|��t|��kr||}}||||f\}}}}|j||g||gd�d|gi||fi|��S)Nr�r�)rr�r�) rr�r�r�r�rHr*r�rc�outer_polynomial�inner_polynomials r/�appellf3r�Gs����{�{�2���9�#�+�+�b�/�/���{�{�2���9�#�+�+�b�/�/�� �&� � &�s�1�v�v��A������a�q�A��R��2�+�K�B�r�"�R� �3�;�R��G��B��0�0�5�!��+�a�� K� K�F� K� K�Kr1c �6�|jd||gi|g|gd�||fi|��S)Nr�r�r�)rrArEr�r�r*r�rcs r/�appellf4r�Qs8�� �3�;��q��e�}�B�4�R�D�&9�&9�!�A� G� G�� G� G�Gr1c �~��"���|��}��|��}�fd�}t|��}t|��}||d��} ||d��} ||d��} ||d��} ||d��} ||d��}||d��}||d ��}||d��}||d��}||d��}|r*td |���d z���|r*td |���d z���d }�j}��d ���"d }�j}|�d d |z��} �xjdz c_�j } d}d}t| ��}t|��}�"fd�| D��}�"fd�|D��}| D]1}|�"z}|� |��|� |���2|D]1}|�"z}|� |��|� |���2| D]5}|� |�"z ��|� |�"z dz ���6| D]C}|dz}|d�"zz}|� d|z �"z ��|� | �"z ���D|D]D}|� |d�"zz��|� |d�"zzd|zd�"zzz���E|D]L}|dz}|� d|z d�"zz ��|� |d�"zzd|zd�"zzz���M|D][}|dz}|� d|�"z z��|� d|�"z dzz��|� |�"z dz ���\�j ||||zfd�ji|��} || z|z}!t|!��|kr|dz }nd }|dks|snC||!z }|D]}||z}�|D]}||z}��"dz �"||z�"z }�"|kr�� d������ |�_n #|�_wxYw| S)az Sums the generalized 2D hypergeometric series .. math :: \sum_{m=0}^{\infty} \sum_{n=0}^{\infty} \frac{P((a),m,n)}{Q((b),m,n)} \frac{x^m y^n} {m! n!} where `(a) = (a_1,\ldots,a_r)`, `(b) = (b_1,\ldots,b_s)` and where `P` and `Q` are products of rising factorials such as `(a_j)_n` or `(a_j)_{m+n}`. `P` and `Q` are specified in the form of dicts, with the `m` and `n` dependence as keys and parameter lists as values. The supported rising factorials are given in the following table (note that only a few are supported in `Q`): +------------+-------------------+--------+ | Key | Rising factorial | `Q` | +============+===================+========+ | ``'m'`` | `(a_j)_m` | Yes | +------------+-------------------+--------+ | ``'n'`` | `(a_j)_n` | Yes | +------------+-------------------+--------+ | ``'m+n'`` | `(a_j)_{m+n}` | Yes | +------------+-------------------+--------+ | ``'m-n'`` | `(a_j)_{m-n}` | No | +------------+-------------------+--------+ | ``'n-m'`` | `(a_j)_{n-m}` | No | +------------+-------------------+--------+ | ``'2m+n'`` | `(a_j)_{2m+n}` | No | +------------+-------------------+--------+ | ``'2m-n'`` | `(a_j)_{2m-n}` | No | +------------+-------------------+--------+ | ``'2n-m'`` | `(a_j)_{2n-m}` | No | +------------+-------------------+--------+ For example, the Appell F1 and F4 functions .. math :: F_1 = \sum_{m=0}^{\infty} \sum_{n=0}^{\infty} \frac{(a)_{m+n} (b)_m (c)_n}{(d)_{m+n}} \frac{x^m y^n}{m! n!} F_4 = \sum_{m=0}^{\infty} \sum_{n=0}^{\infty} \frac{(a)_{m+n} (b)_{m+n}}{(c)_m (d)_{n}} \frac{x^m y^n}{m! n!} can be represented respectively as ``hyper2d({'m+n':[a], 'm':[b], 'n':[c]}, {'m+n':[d]}, x, y)`` ``hyper2d({'m+n':[a,b]}, {'m':[c], 'n':[d]}, x, y)`` More generally, :func:`~mpmath.hyper2d` can evaluate any of the 34 distinct convergent second-order (generalized Gaussian) hypergeometric series enumerated by Horn, as well as the Kampe de Feriet function. The series is computed by rewriting it so that the inner series (i.e. the series containing `n` and `y`) has the form of an ordinary generalized hypergeometric series and thereby can be evaluated efficiently using :func:`~mpmath.hyper`. If possible, manually swapping `x` and `y` and the corresponding parameters can sometimes give better results. **Examples** Two separable cases: a product of two geometric series, and a product of two Gaussian hypergeometric functions:: >>> from mpmath import * >>> mp.dps = 25; mp.pretty = True >>> x, y = mpf(0.25), mpf(0.5) >>> hyper2d({'m':1,'n':1}, {}, x,y) 2.666666666666666666666667 >>> 1/(1-x)/(1-y) 2.666666666666666666666667 >>> hyper2d({'m':[1,2],'n':[3,4]}, {'m':[5],'n':[6]}, x,y) 4.164358531238938319669856 >>> hyp2f1(1,2,5,x)*hyp2f1(3,4,6,y) 4.164358531238938319669856 Some more series that can be done in closed form:: >>> hyper2d({'m':1,'n':1},{'m+n':1},x,y) 2.013417124712514809623881 >>> (exp(x)*x-exp(y)*y)/(x-y) 2.013417124712514809623881 Six of the 34 Horn functions, G1-G3 and H1-H3:: >>> from mpmath import * >>> mp.dps = 10; mp.pretty = True >>> x, y = 0.0625, 0.125 >>> a1,a2,b1,b2,c1,c2,d = 1.1,-1.2,-1.3,-1.4,1.5,-1.6,1.7 >>> hyper2d({'m+n':a1,'n-m':b1,'m-n':b2},{},x,y) # G1 1.139090746 >>> nsum(lambda m,n: rf(a1,m+n)*rf(b1,n-m)*rf(b2,m-n)*\ ... x**m*y**n/fac(m)/fac(n), [0,inf], [0,inf]) 1.139090746 >>> hyper2d({'m':a1,'n':a2,'n-m':b1,'m-n':b2},{},x,y) # G2 0.9503682696 >>> nsum(lambda m,n: rf(a1,m)*rf(a2,n)*rf(b1,n-m)*rf(b2,m-n)*\ ... x**m*y**n/fac(m)/fac(n), [0,inf], [0,inf]) 0.9503682696 >>> hyper2d({'2n-m':a1,'2m-n':a2},{},x,y) # G3 1.029372029 >>> nsum(lambda m,n: rf(a1,2*n-m)*rf(a2,2*m-n)*\ ... x**m*y**n/fac(m)/fac(n), [0,inf], [0,inf]) 1.029372029 >>> hyper2d({'m-n':a1,'m+n':b1,'n':c1},{'m':d},x,y) # H1 -1.605331256 >>> nsum(lambda m,n: rf(a1,m-n)*rf(b1,m+n)*rf(c1,n)/rf(d,m)*\ ... x**m*y**n/fac(m)/fac(n), [0,inf], [0,inf]) -1.605331256 >>> hyper2d({'m-n':a1,'m':b1,'n':[c1,c2]},{'m':d},x,y) # H2 -2.35405404 >>> nsum(lambda m,n: rf(a1,m-n)*rf(b1,m)*rf(c1,n)*rf(c2,n)/rf(d,m)*\ ... x**m*y**n/fac(m)/fac(n), [0,inf], [0,inf]) -2.35405404 >>> hyper2d({'2m+n':a1,'n':b1},{'m+n':c1},x,y) # H3 0.974479074 >>> nsum(lambda m,n: rf(a1,2*m+n)*rf(b1,n)/rf(c1,m+n)*\ ... x**m*y**n/fac(m)/fac(n), [0,inf], [0,inf]) 0.974479074 **References** 1. [SrivastavaKarlsson]_ 2. [Weisstein]_ http://mathworld.wolfram.com/HornFunction.html 3. [Weisstein]_ http://mathworld.wolfram.com/AppellHypergeometricFunction.html c���|�|g��} t|��}n#t$r|g}YnwxYw�fd�|D��S)Nc�:��g|]}��|����Sr;r�)r<rOrs �r/r=z*hyper2d.<locals>.parse.<locals>.<listcomp>�s%���1�1�1�S�� � �C� � �1�1�1r1)�popr0� TypeError)�dct�keyr1rs �r/�parsezhyper2d.<locals>.parse�sh����w�w�s�B���� ���:�:�D�D��� � � ��6�D�D�D� ����1�1�1�1�D�1�1�1�1s �)� 9�9rr+r�zm-nzn-mz2m+nz2m-nz2n-mzunsupported key: %rrrHrLr7rc���g|]}|�z��Sr;r;)r<rArs �r/r=zhyper2d.<locals>.<listcomp>����(�(�(�q�q��s�(�(�(r1c���g|]}|�z��Sr;r;)r<rErs �r/r=zhyper2d.<locals>.<listcomp>r�r1r�rr�rqr5rzmaxterms exceeded in hyper2d)r��dictrP�keysrUr�rrNr�r0rrZr�r�)#rrArEr*r�rcr�r r!�a_m�a_n� a_m_add_n� a_m_sub_n� a_n_sub_m� a_2m_add_n� a_2m_sub_n� a_2n_sub_m�b_m�b_n� b_m_add_nrQ�outer�ok_countrrHr�� inner_sign� outer_sign�inner_a�inner_b�outer_a�outer_b�innerrrs#` @r/r�r�VsI����P � � �A���A� � � �A���A�2�2�2�2�2� �q�'�'�C� �q�'�'�C� �%��3�-�-�C� �%��3�-�-�C���a����I���a����I���a����I���q�&�!�!�J���q�&�!�!�J���q�&�!�!�J� �%��3�-�-�C� �%��3�-�-�C���a����I��?� �0�1�6�6�8�8�A�;�>�?�?� ?��?� �0�1�6�6�8�8�A�;�>�?�?� ?� �A� �G�E� ���� � �A��H� �8�D��z�z�*�b��g�.�.�H�>� ���B�����w�h��9 H��J��J��3�i�i�G��3�i�i�G�(�(�(�(�C�(�(�(�G�(�(�(�(�C�(�(�(�G�� "� "���a�C�����q�!�!�!����q�!�!�!�!�� "� "���a�C�����q�!�!�!����q�!�!�!�!�� &� &�����q��s�#�#�#����q��s�1�u�%�%�%�%�� %� %���r�"� ��r�Q�i�'� ����q��s�1�u�%�%�%�����r�!�t�$�$�$�$�� 2� 2�����q��1��u�%�%�%�����!�A�#���!��A�a�C��0�1�1�1�1�� 2� 2���r�"� ����q��s�1�Q�3�w�'�'�'�����!�A�#���!��A�a�C��0�1�1�1�1�� &� &���a�� ����s�A�a�C�y�)�)�)����s�A�a�C��E�{�+�+�+����q��s�1�u�%�%�%�%��C�I�g�w� �1� �-�-���-�%+�-�-�E��5�=�:�-�D��4�y�y�3����A� ������1�}�}�E�}�� ��I�A�� (� (��e�q�j�e�e�� (� (��e�q�j�e�e� ��F�A��A�I��M�E��8�|�|��'�'�(F�G�G�G�s9 H�d������4������� �2�Is �-J:P0�0 P9c ����� �|�����||z}t|��� t|��}� |fdks� |fdkr |j�zS� |z dz��� �fd�}|j||fi|��S)a` Evaluates the bilateral hypergeometric series .. math :: \,_AH_B(a_1, \ldots, a_k; b_1, \ldots, b_B; z) = \sum_{n=-\infty}^{\infty} \frac{(a_1)_n \ldots (a_A)_n} {(b_1)_n \ldots (b_B)_n} \, z^n where, for direct convergence, `A = B` and `|z| = 1`, although a regularized sum exists more generally by considering the bilateral series as a sum of two ordinary hypergeometric functions. In order for the series to make sense, none of the parameters may be integers. **Examples** The value of `\,_2H_2` at `z = 1` is given by Dougall's formula:: >>> from mpmath import * >>> mp.dps = 25; mp.pretty = True >>> a,b,c,d = 0.5, 1.5, 2.25, 3.25 >>> bihyper([a,b],[c,d],1) -14.49118026212345786148847 >>> gammaprod([c,d,1-a,1-b,c+d-a-b-1],[c-a,d-a,c-b,d-b]) -14.49118026212345786148847 The regularized function `\,_1H_0` can be expressed as the sum of one `\,_2F_0` function and one `\,_1F_1` function:: >>> a = mpf(0.25) >>> z = mpf(0.75) >>> bihyper([a], [], z) (0.2454393389657273841385582 + 0.2454393389657273841385582j) >>> hyper([a,1],[],z) + (hyper([1],[1-a],-1/z)-1) (0.2454393389657273841385582 + 0.2454393389657273841385582j) >>> hyper([a,1],[],z) + hyper([1],[2-a],-1/z)/z/(a-1) (0.2454393389657273841385582 + 0.2454393389657273841385582j) **References** 1. [Slater]_ (chapter 6: "Bilateral Series", pp. 180-189) 2. [Wikipedia]_ http://en.wikipedia.org/wiki/Bilateral_hypergeometric_series )rr)rrrc�t��t|d� ���}t|� d���}d�|D��}d�|D��}d� z� zgd�|D��zd�|D��z}dgdgt|��zzdgt|��zz}gggg|dgz|� f}||gg|dgz|d� z� z f}||fS)Nc��g|]}d|z ��S�rr;rs r/r=z&bihyper.<locals>.h.<locals>.<listcomp>~���!�!�!���!��!�!�!r1c��g|]}d|z ��Sr�r;rs r/r=z&bihyper.<locals>.h.<locals>.<listcomp>r�r1r�c��g|]}d|z ��Sr.r;rs r/r=z&bihyper.<locals>.h.<locals>.<listcomp>�s��1�1�1���!��1�1�1r1c��g|]}d|z ��Sr.r;rs r/r=z&bihyper.<locals>.h.<locals>.<listcomp>�s��4F�4F�4F�Q�Q�q�S�4F�4F�4Fr1r)r0rW) rr r!�aa_s�bb_s�rp�rcr�r��negr�r"s ���r/rjzbihyper.<locals>.h{s�����3�r��r�7�m�m���3�q�r�r�7�m�m��!�!�S�!�!�!��!�!�S�!�!�!���C�i�!�m�_�1�1�S�1�1�1� 1�4F�4F�#�4F�4F�4F� F���T�Q�C��C���L� �B�4��C���=� 0�� ��R��S�A�3�Y��Q� .�� ��R��T�Q�C�Z���S�y�1�}� <���2�v� r1)r�rWrMrv) rr r!r"rcrr�rjr�r�s ` @@r/�bihyperr�Ds������` � � �A���A� ��)�C� �C���A� �C���A� �1�v����1�a�&�E�/�/��x�!�|�� �Q�3�!�)�C� � � � � � � � �3�=��C� *� *�6� *� *�*r1)rN)#� libmp.backendr� functionsrrr0rQrvrZr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r;r1r/�<module>r�s���"�"�"�"�"�"�+�+�+�+�+�+�+�+�-2�-2�-2�^���$&�D�E�E�E���E�N�(8�(8���(8�T�(�(���(��)�)���)��.�.���.��+�+���+��1�1���1��4�4���4��*�*���*��4�4���4��������!8�!8���!8�F�! �! ���! �F4�4�4�l�M�M���M�^�G/�G/���G/�R�;�;���;�|�@]�@]���@]�H�MQ�MQ���MQ�b�Oi�Oi���Oi�b�2�2���2�(�;+�;+�;+���;+�z�R�R���R�8�,�,���,� �L�L���L��H�H���H��d�d���d�L��@+�@+���@+�@+�@+r1
Memory