� ��g�;��F�UdZddlmZddlZddlmZddlmZmZddl m Z ddl m Z ddl mZdd lmZdd lmZdd lmZmZmZmZmZdd lmZdd lmZddlmZmZddl m!Z!m"Z"m#Z#ddl$m%Z%m&Z&ddl'm(Z(m)Z)m*Z*m+Z+ddl,m-Z-ddl.m/Z/ddl0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;ddl<m=Z=m>Z>m?Z?ddl@mAZAddlBmCZCmDZDmEZEmFZFddlGmHZHddlImJZJmKZKddlLmMZMmNZNmOZOmPZPddlQmRZRmSZSmTZTmUZUddlVmWZWmXZXddlYmZZZm[Z[ddl\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgddlhmiZidd ljmkZkmlZldd!lmmnZnd"d#lompZpdd$lqmrZrmsZsmtZtmuZumvZvdd%lwmxZxmyZydd&lzm{Z{dd'l|m}Z~dd(l|mZ�e(d)��Z�d*�Z�d+�Z�dd,l�m�Z�e�d-��Z�d`d4�Z�Gd5�d6e���Z�d7�Z�d8�Z�d9�Z�d:�Z�d;�Z�d<�Z�d=�Z�d>�Z�d?�Z�d@�Z�ia�dAe�dB<dC�Z�dD�Z�dE�Z�dadG�Z�dH�Z�dbdJ�Z�dK�Z�dbdL�Z�dM�Z�dbdN�Z�dO�Z�dP�Z�dQ�Z�dR�Z�dS�Z�da�ee�dadT�����Z�dadU�Z�dV�Z�dW�Z�dX�Z�e�dY���Z�dZ�Z�d[�Z�d\�Z�d]�Z�e�dbd^���Z�d_�Z�dS)ca� Integrate functions by rewriting them as Meijer G-functions. There are three user-visible functions that can be used by other parts of the sympy library to solve various integration problems: - meijerint_indefinite - meijerint_definite - meijerint_inversion They can be used to compute, respectively, indefinite integrals, definite integrals over intervals of the real line, and inverse laplace-type integrals (from c-I*oo to c+I*oo). See the respective docstrings for details. The main references for this are: [L] Luke, Y. L. (1969), The Special Functions and Their Approximations, Volume 1 [R] Kelly B. Roach. Meijer G Function Representations. In: Proceedings of the 1997 International Symposium on Symbolic and Algebraic Computation, pages 205-211, New York, 1997. ACM. [P] A. P. Prudnikov, Yu. A. Brychkov and O. I. Marichev (1990). Integrals and Series: More Special Functions, Vol. 3,. Gordon and Breach Science Publisher �)� annotationsN)� SYMPY_DEBUG)�S�Expr)�Add)�Basic)�cacheit)�Tuple)� factor_terms)�expand� expand_mul�expand_power_base� expand_trig�Function��Mul)�ilcm)�Rational�pi)�Eq�Ne�_canonical_coeff)�default_sort_key�ordered)�Dummy�symbols�Wild�Symbol)�sympify)� factorial) �re�im�arg�Abs�sign� unpolarify�polarify� polar_lift�principal_branch�unbranched_argument�periodic_argument)�exp� exp_polar�log)�ceiling)�cosh�sinh�_rewrite_hyperbolics_as_exp�HyperbolicFunction��sqrt)� Piecewise�piecewise_fold)�cos�sin�sinc�TrigonometricFunction)�besselj�bessely�besseli�besselk)� DiracDelta� Heaviside)� elliptic_k� elliptic_e) �erf�erfc�erfi�Ei�expint�Si�Ci�Shi�Chi�fresnels�fresnelc)�gamma)�hyper�meijerg)�SingularityFunction�)�Integral)�And�Or� BooleanAtom�Not�BooleanFunction)�cancel�factor)�multiset_partitions)�debug)�debugf�zc���t|��}t|dd��r t�fd�|jD����S|j��S)N� is_PiecewiseFc3�2�K�|]}t|g��R�V��dS�N)�_has)�.0�i�fs ��i/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/sympy/integrals/meijerint.py� <genexpr>z_has.<locals>.<genexpr>Ts/�����1�1�1�4��;�A�;�;�;�1�1�1�1�1�1�)r7�getattr�all�args�has)�resrgs `rhrdrdOsY��� �� � �C��s�N�E�*�*�2��1�1�1�1���1�1�1�1�1�1� �3�7�A�;�rjc���� � � � � �����d�}tt|d����\��� � }tdd�g�����t�zz��tjddf�fd� � d�fd� }d �}� |� ��ddfg�d <Gd �d t ��}� t�� z ���� z � d z zz� gggdg�� z t� ��� � d z zzt� dk����� t� �z ��� �z � d z zzg� gdgg�� z t� ��� � d z zzt� dk����� tt� �z d �z zz ���� z � d z zz� gggdg�� z t� ��� � d z zzt� dk����� t� �z d �z ztz ��� �z � d z zzg� gdgg�� z t� ��� � d z zzt� dk����� � �z� zd � z ggdgg�� z � � zt� ��z t|� �������� t� �z ��� zd � z gd � z dz gdgd � z dz g�� z dtt� zdz ��ztd � z ��zt� ��� zzt� ��d k��� �� z� � zz �� z z d� ggd� gg�� z � � d z zt� tz��ztz ��d���� � � �fd�}|dd ��|dd��|tjd ��|tjd���� � � ��fd�}|dd ��|dd��|tjd ��|tjd��� t!t#d���z��ggdgg��� t%���gd gtjgd dg�dzdz tt'dd��z��� t)���gtjgdgtjtjg�dzdz tt'dd��z��� t���ggtjgdg�dzdz t+t����� t-���ggdgtjg�dzdz t+t����� t/���ggdgt'dd��g�dzdz t+t��dz ����fd�� ��fd�� |t1����ztd �z ��z� d��|t1����zt�d z ��z� d��� � fd�}|t1����z|d��|t1�� z��|t1� ����tjt3d d ggd gdg�� z ��fgzd��|t1t�� z ����|t1t� ������tt3d d gtjgd gdtjg�� z ��fgzd��|t5���|tj tz��tjt3gd gddgg�t#d��z��fgzd��� t;���d ggtjgddg�dzdz t+t��dz ��� t=���gd gddgtjg�dzdz t+t�� dz ��� t?���tjggdgt'dd��t'dd��gt#d���dzzdz �t+t��zdz ��� tA���gtjd gddgtjtjg�dzdz tt d��z dz ��� tC� ���g� g� d z dgg���� tE���d ggtjgdg�dzd t+t��z ��� tG���gd gdtjgg�dzd t+t��z ��� tI���tjggdgt'dd��g�dz �t+t��z ��� tK���d ggt'dd��gdt'd d��gtdz�dzzdz tj��� tM���d ggt'd d��gdt'dd��gtdz�dzzdz tj��� tO� ���gg� dz g� dz g�dzdz ��� tQ� ���g� d z dz g� dz � dz g� d z dz g�dzdz ��� tS� ���gd � zdz g� dz g� dz d � zdz g�dzdz t��� tU� ���gg� dz � dz gg�dzdz tj��� tW���tjtjggdgdg� tj��� tY���tjdtjzggdgdg� t'dd��dz ��dS)z8 Add formulae for the function -> meijerg lookup table. c�0�t|tg���S)N��exclude)rr_)�ns rh�wildz"_create_lookup_table.<locals>.wildZs���A��s�#�#�#�#rj�pqabcrtc��|jo|dkS�Nr)� is_Integer��xs rh�<lambda>z&_create_lookup_table.<locals>.<lambda>]s��� �(>��Q��rj)� propertiesTc ���� �t|t��g���||t |||||��fg||f��dSrc)� setdefault�_mytyper_�appendrQ) �formula�an�ap�bm�bqr#�fac�cond�hint�tables �rh�addz!_create_lookup_table.<locals>.add`sl��� �����!�,�,�b�1�1�8�8�'�'*�G�B��B��C�,H�,H�&I�%J�D�RV�:X� Y� Y� Y� Y� Yrjc�����t|t��g���||||f��dSrc)rr�r_r�)r��instr�r�r�s �rh�addiz"_create_lookup_table.<locals>.addidsD��� ��� �G�Q� � �� %� %�%+�V�W�d�D�$�,G�%H�%H�%H�%H�%Hrjc �r�|tdgggdgt��f|tgdgdggt��fgS�NrSr)rQr_)�as rh�constantz&_create_lookup_table.<locals>.constanthsD���G�Q�C��R�!��a�0�0�1��G�B���a�S�"�a�0�0�1�3� 3rj�c�$�eZdZed���ZdS)�2_create_lookup_table.<locals>.IsNonPositiveIntegerc�B�t|��}|jdur|dkSdS)NTr)r&ry)�clsr#s rh�evalz7_create_lookup_table.<locals>.IsNonPositiveInteger.evalps+���S�/�/�C��~��%�%��a�x��&�%rjN)�__name__� __module__� __qualname__� classmethodr�r�rjrh�IsNonPositiveIntegerr�ns-������ � � � �� � � rjr�rSr)r��c�X�ttdd��z| |zdz dd|zz zzS)N�����r�rS)rr)�rr%�nus rh�A1z _create_lookup_table.<locals>.A1�s1���8�B��?�?�"�T�E�"�H�Q�J�!�a��c�'�#:�:�:rjc����t�dz�z��|�zz�z�dz�z|zz d�zdz dd|zz �dz zgg�|�zz dz g�|�zzdz g��dzz ��d|zz z�||���z��dS)Nr�rSr4)r��sgnr�r�r��b�ts �����rh�tmpaddz$_create_lookup_table.<locals>.tmpadd�s���� ��T�!�Q�$��(�^�^�c�!�e� #�a� '��A����A� � 5��!�e�Q�Y��A�a�C��!�A�#� � &���#�a�%�i��]�O�q�3�q�5�y�!�m�_�a��1��f� ��A�a�C��L���A�s�A��� &� (� (� (� (� (rjr�c�f���t��t�zzz��|t���zt�dz zzz�z��t�zzz|zz d|z |�zdz zgd|z |�zdz z gdtjgg�t�zz�z ��dz |z z�||���z��dS)Nr�rSr)r5r_r�Half)r�r�r�r�r�r��p�qs ������rhr�z$_create_lookup_table.<locals>.tmpadd�s���� ��T�!�a��1��f�*� � ��D��G�G� �A��!��H� 4� 4�q� 8�!�a��1��f�*�q�� H� ��U�S��U�1�W�_� ��A���A��a���0�1�a�f�+�r� �a��d�F�1�H�a�!�A�#��'�l�2�2�a��a�=�=�0� 2� 2� 2� 2� 2rj��c���|�}tj|zt|��ztgdg|dzzdg|dzzg���fgSr�)r� NegativeOner rQ��subs�Nrtr�s ��rh� make_log1z'_create_lookup_table.<locals>.make_log1�sY��� ��G�����!�)�A�,�,�.���a�S�!�a�%�[�1�#�q�1�u�+�r�1�=�=�?�@� @rjc �v��|�}t|��tdg|dzzggdg|dzz���fgSr�)r rQr�s ��rh� make_log2z'_create_lookup_table.<locals>.make_log2�sM��� ��G���1����!��a�!�e��b�"�q�c�1�q�5�k�1�=�=�?�@� @rjc�2���|���|��zSrcr�)r�r�r�s ��rh� make_log3z'_create_lookup_table.<locals>.make_log3�s����y������4���0�0rjz3/2�N�T)-�list�maprr_r�OnerrArOrUrXr$r9rr!r�r,r(r1rr0r5r8r:r.rQrG� ImaginaryUnitr�rIrJrKrLrHrDrErFrMrNr<r=r>r?rBrC)r�ru�cr�r�r�r�r�r�r�r�r�r�r�rtr�r�r�s` @@@@@@@@@@rh�_create_lookup_tabler�Xs$ �������������$�$�$���T�7�+�+�,�,�M�A�q�!�Q�� �S�>�>�?�@�@�@�A� �!�Q�$��A�)*���D�t�Y�Y�Y�Y�Y�Y�I�I�I�I�I�I�3�3�3��X�X�a�[�[�$��-�.�E�"�I� � � � � �x� � � ��C� �!�a�%���!�a�%�1�q�5�)�)�A�3��B���Q�q�S� �a����Q��U���S��Q��Z�Z�)�)�)��C� �!�a�%���!�a�%�1�q�5�)�)�2��s�Q�C��Q�q�S� �a����Q��U���S��Q��Z�Z�)�)�)��C� �!�q��s�a��c�l�"�#�#�Q��U�a�!�e�$4�4�q�c�2�r�A�3��!�� �a����Q��U���S��Q��Z�Z�)�)�)��C� �1�Q�3�!�A�#�,��"�#�#�Q��U�a�!�e�$4�4�b�1�#��s�B��!�� �a����Q��U���S��Q��Z�Z�)�)�)��C��Q��1�"� ��A��w��Q�C��Q�q�S�!�q�b�'�%��(�(�2B� �%�%�a�(�(� )� )�+�+�+�+��C��A��E� � �a�R��1�q�5�'�Q��U�A�I�;���q�1�u�a�i�[�!�A�#� �#�b��d�1�f�+�+� �e�A��E�l�l�"�3�q�6�6�Q�B�<�/��A�����<�<�<��C��A���1���q�1�u���1�v�r�A�q�6�2�q��s� �A��E� �3�q��t�9�9��R��!�!�!�;�;�;�(�(�(�(�(�(�(�(�(�  �F�1�a�L�L�L� �F�1�b�M�M�M� �F�1�6�1���� �F�1�6�2����2�2�2�2�2�2�2�2�2�2� �F�1�a�L�L�L� �F�1�b�M�M�M� �F�1�6�1���� �F�1�6�2�����C��J�r�N�N�1� ���r�2��s�B�/�/�/��C��Q����a�S�1�6�(�Q��F�A�q�D��F�B���A���4F�G�G�G��C��Q����a�f�X��s�Q�V�Q�V�$4�a��d�1�f�b�(�1�a�.�.�>P�Q�Q�Q��C��A����B����1�#�q�!�t�A�v�t�B�x�x�8�8�8��C��A����B���a�f�X�q�!�t�A�v�t�B�x�x�8�8�8��C��Q����R�!��x��A���/��A��a���b���!��D�D�D�@�@�@�@�@�@� @�@�@�@�@�@� �D��Q�����9�Q��U�#�#� #�Y��5�5�5��D��Q�����9�Q��U�#�#� #�Y��5�5�5�1�1�1�1�1�1��D��Q�����I�t�$�$�$��D��Q��U��� ��#�a�&�&� � �a�e�W�a��V�R�!��q�c�1�Q�3�%G�%G�H�I� I� ���� �D��S��Q��Z�Z���(�(�3�s�1�v�v�;�;�/�/� �w��1�v���x�!��q�!�&�k�1�Q�3�?�?� @� A�B� ���� �D��A��� ��1�?�"�2�%� &� &�1�=�'�"�q�c�A�q�6�SU��J�r�N�N�"�;$�;$�+%�*&� &� ���� �C��1����s�B����1�a�&�!�Q�$�q�&�$�r�(�(�1�*�=�=�=��C��1���r�A�3��A�����!�Q�$�q�&�4��8�8�)�A�+�>�>�>��C��A������"�q�c�H�R��O�O�X�b�!�_�_�#E�z�RT�~�~�VW�YZ�VZ�GZ�[\�G\� �$�r�(�(� �1� �����C��A����Q�V�Q�K�!�Q��!�&�!�&�)9�1�a�4��6� �A�e�H�H� �D��D�����C��q�!� � �b�1�#��A��q�z�2�q�1�1�1��C��A�����R�!�&��A�3��1��a��R���j�9�9�9��C��Q����a�S�1�a�f�+�r�1�a�4��4��8�8��<�<�<��C��Q���!�&��2��s�X�b�!�_�_�$5��1��u�a��R���j�I�I�I��C��� � �a�S�"�x��1�~�~�.��H�Q��N�N�0C�R��U�1�a�4�Z�PR�]�TU�TZ�[�[�[��C��� � �a�S�"�x��1�~�~�.��H�Q��N�N�0C�R��U�1�a�4�Z�PR�]�TU�TZ�[�[�[��C���1� � �r�2��!��u��r�!�t�f�a��d�1�f�5�5�5��C���1� � �r�a�!�e�H�Q�J�<�!�A�#��r�!�t���Q��x��z�l�A�q�D��F�K�K�K�6�C���1� � �r�Q��U�A�I�;��1�����1��q�1�u�a�i�/@�!�Q�$�q�&�"�M�M�M��C���1� � �r�2��!��a�R��T�{�B��1��Q����?�?�?��C� �1� � �����'��a�S�1�#��r�1�6�B�B�B��C� �1� � ����!�&��)�2��s�Q�C�!��X�b�!�_�_�Q�=N�O�O�O�O�Orj)�timethisrQrgrr{r�return�tuple[type[Basic], ...]c���d d�}�|jvrdS|jrt|��fStt �fd�|jD��|�����S) z4 Create a hashable entity describing the type of f. r{� type[Basic]r��tuple[int, int, str]c�*�|���Src)� class_keyrzs rh�keyz_mytype.<locals>.key/s���{�{�}�}�rjr�c3�B�K�|]}t|���D]}|V���dSrc)r�)rer�r�r{s �rhriz_mytype.<locals>.<genexpr>6s8�����B�B�q�G�A�q�M�M�B�B�q��B�B�B�B�B�B�Brj�r�)r{r�r�r�)� free_symbols� is_Function�type�tuple�sortedrm)rgr{r�s ` rhr�r�-st������� ������r� ����A�w�w�x�� ��B�B�B�B�A�F�B�B�B��L�L�L� M� M�Mrjc��eZdZdZdS)�_CoeffExpValueErrorzD Exception raised by _get_coeff_exp, for internal use only. N)r�r�r��__doc__r�rjrhr�r�9s�������� �Drjr�c�2�ddlm}t||�����|��\}}|s|tjfS|\}|jr#|j|krtd���||j fS||kr|tj fStd|z���)a� When expr is known to be of the form c*x**b, with c and/or b possibly 1, return c, b. Examples ======== >>> from sympy.abc import x, a, b >>> from sympy.integrals.meijerint import _get_coeff_exp >>> _get_coeff_exp(a*x**b, x) (a, b) >>> _get_coeff_exp(x, x) (1, 1) >>> _get_coeff_exp(2*x, x) (2, 1) >>> _get_coeff_exp(x**3, x) (1, 3) r)�powsimpzexpr not of form a*x**bzexpr not of form a*x**b: %s) �sympy.simplifyr�r� as_coeff_mulr�Zero�is_Pow�baser�r,r�)�exprr{r�r��ms rh�_get_coeff_expr�@s���&'�&�&�&�&�&� �w�w�t�}�}� -� -� :� :�1� =� =�F�Q�� ���!�&�y�� �C�Q��x�H� �6�Q�;�;�%�&?�@�@� @��!�%�x�� �a����!�%�x��!�"?�$�"F�G�G�Grjc�H���fd��t��}�|||��|S)a� Find the exponents of ``x`` (not including zero) in ``expr``. Examples ======== >>> from sympy.integrals.meijerint import _exponents >>> from sympy.abc import x, y >>> from sympy import sin >>> _exponents(x, x) {1} >>> _exponents(x**2, x) {2} >>> _exponents(x**2 + x, x) {1, 2} >>> _exponents(x**3*sin(x + x**y) + 1/x, x) {-1, 1, 3, y} c����||kr|�dg��dS|jr(|j|kr|�|jg��dS|jD]}�|||���dS�NrS)�updater�r�r,rm)r�r{ro�argument� _exponents_s �rhr�z_exponents.<locals>._exponents_us���� �1�9�9� �J�J��s�O�O�O� �F� �;� �4�9��>�>� �J�J���z� "� "� "� �F�� � *� *�H� �K��!�S� )� )� )� )� *� *rj��set)r�r{ror�s @rh� _exponentsr�bs@���&*�*�*�*�*� �%�%�C��K��a����� �Jrjc�P���fd�|�t��D��S)zB Find the types of functions in expr, to estimate the complexity. c�0��h|]}�|jv� |j��Sr�)r��func)re�er{s �rh� <setcomp>z_functions.<locals>.<setcomp>�s'��� H� H� H�q�A���4G�4G�A�F�4G�4G�4Grj)�atomsr)r�r{s `rh� _functionsr��s)��� H� H� H� H�D�J�J�x�0�0� H� H� H�Hrjc�t������fd�dD��\������fd��t��}�||��|S)ap Find numbers a such that a linear substitution x -> x + a would (hopefully) simplify expr. Examples ======== >>> from sympy.integrals.meijerint import _find_splitting_points as fsp >>> from sympy import sin >>> from sympy.abc import x >>> fsp(x, x) {0} >>> fsp((x-1)**3, x) {1} >>> fsp(sin(x+3)*x, x) {-3, 0} c�4��g|]}t|�g�����S)rr)r)rertr{s �rh� <listcomp>z*_find_splitting_points.<locals>.<listcomp>�s(��� /� /� /�Q�D��Q�C� � � � /� /� /rj�pqc���t|t��sdS|���z�z��}|r3|�dkr'|�|� |�z ��dS|jrdS|jD]}�||���dSrx)� isinstancer�matchr��is_Atomrm)r�ror�r��compute_innermostr�r�r{s ����rhr�z1_find_splitting_points.<locals>.compute_innermost�s�����$��%�%� � �F� �J�J�q��s�Q�w� � �� � ��1����� �G�G�Q�q�T�E�!�A�$�J� � � � �F� �<� � �F�� � -� -�H� � �h�� ,� ,� ,� ,� -� -rjr�)r�r{� innermostr�r�r�s ` @@@rh�_find_splitting_pointsr��sq������$ 0� /� /� /�$� /� /� /�D�A�q� -� -� -� -� -� -� -� -����I���d�I�&�&�&� �rjc�&�tj}tj}tj}t|��}tj|��}|D]�}||kr||z}�||jvr||z}�|jr�||jjvr�|j� |��\}}||fkr*t|j��� |��\}}||fkr7|||jzz}|tt||jzd�����z}��||z}��|||fS)aq Split expression ``f`` into fac, po, g, where fac is a constant factor, po = x**s for some s independent of s, and g is "the rest". Examples ======== >>> from sympy.integrals.meijerint import _split_mul >>> from sympy import sin >>> from sympy.abc import s, x >>> _split_mul((3*x)**s*sin(x**2)*x, x) (3**s, x*x**s, sin(x**2)) F�r�) rr�rr� make_argsr�r�r,r�r�r r&r') rgr{r��po�grmr�r�r�s rh� _split_mulr��s'�� �%�C� ��B� ��A��!���A� �=�� � �D� ���� ��6�6� �!�G�B�B� �a�n� $� $� �1�H�C�C��x� �A�Q�U�%7�7�7��v�*�*�1�-�-���1����9�9�%�a�f�-�-�:�:�1�=�=�D�A�q����9�9��!�Q�U�(�N�B��:�h�q�!�%�x�e�&D�&D�&D�E�E�E�C�� ��F�A�A� ��A�:�rjc���tj|��}g}|D]P}|jr2|jjr&|j}|j}|dkr| }d|z }||g|zz }�;|�|���Q|S)a Return a list ``L`` such that ``Mul(*L) == f``. If ``f`` is not a ``Mul`` or ``Pow``, ``L=[f]``. If ``f=g**n`` for an integer ``n``, ``L=[g]*n``. If ``f`` is a ``Mul``, ``L`` comes from applying ``_mul_args`` to all factors of ``f``. rrS)rr�r�r,ryr�r�)rgrm�gsr�rtr�s rh� _mul_argsr�s��� �=�� � �D� �B� � � �� �8� ���(� ���A��6�D��1�u�u��B����v�� �4�&��(�N�B�B� �I�I�a�L�L�L�L� �Irjc���t|��}t|��dkrdSt|��dkrt|��gSd�t|d��D��S)a� Find all the ways to split ``f`` into a product of two terms. Return None on failure. Explanation =========== Although the order is canonical from multiset_partitions, this is not necessarily the best order to process the terms. For example, if the case of len(gs) == 2 is removed and multiset is allowed to sort the terms, some tests fail. Examples ======== >>> from sympy.integrals.meijerint import _mul_as_two_parts >>> from sympy import sin, exp, ordered >>> from sympy.abc import x >>> list(ordered(_mul_as_two_parts(x*sin(x)*exp(x)))) [(x, exp(x)*sin(x)), (x*exp(x), sin(x)), (x*sin(x), exp(x))] r�Nc�8�g|]\}}t|�t|�f��Sr�r)rer{�ys rhr�z%_mul_as_two_parts.<locals>.<listcomp>s)�� H� H� H�6�A�q�S�!�W�c�1�g� � H� H� Hrj)r�lenr�r\)rgrs rh�_mul_as_two_partsr�s_��. �1���B� �2�w�w��{�{��t� �2�w�w�!�|�|��b� � �{�� H� H�-@��Q�-G�-G� H� H� H�Hrjc ��d�}tt|j��t|j��z ��}|d|jz|dz zz}|dt z|dz |jzzz}|t||j|��||j |��||j |��||j |��|j |z|||zzz��fS)zO Return C, h such that h is a G function of argument z**n and g = C*h. c�`���fd�tj|t�����D��S)z5 (a1, .., ak) -> (a1/n, (a1+1)/n, ..., (ak + n-1)/n) c�&��g|] \}}||z�z ��Sr�r�)rer�rfrts �rhr�z/_inflate_g.<locals>.inflate.<locals>.<listcomp>s%���J�J�J�d�a���Q��� �J�J�Jrj)� itertools�product�range)�paramsrts `rh�inflatez_inflate_g.<locals>.inflates0���J�J�J�J�i�&7���a���&I�&I�J�J�J�JrjrSr�) rrr�r�r�r�deltarQr��aotherr��botherr�)r�rtr�v�Cs rh� _inflate_gr s��� K�K�K� �#�a�d�)�)�c�!�$�i�i� � � �A� �A���H�q��s�N��A��!�B�$�1�q�5�!�'�/� "�"�A� �g�g�g�a�d�A�&�&�����!�(<�(<��g�a�d�A�&�&�����!�(<�(<��j�!�m�a�!�A�#�h�.�0�0� 0�0rjc��d�}t||j��||j��||j��||j��d|jz ��S)zQ Turn the G function into one of inverse argument (i.e. G(1/x) -> G'(x)) c��d�|D��S)Nc��g|]}d|z ��S�rSr��rer�s rhr�z'_flip_g.<locals>.tr.<locals>.<listcomp>s��!�!�!�!��A��!�!�!rjr���ls rh�trz_flip_g.<locals>.trs��!�!�q�!�!�!�!rjrS)rQr�rr�rr�)r�rs rh�_flip_grsU��"�"�"� �2�2�a�d�8�8�R�R���\�\�2�2�a�d�8�8�R�R���\�\�1�Q�Z�<� P� P�Prjc ����|dkrtt|��| ��St|j���t|j��}t ||��\}}|j}|dtzd�z dz z�tdd��zzz}|��zz}�fd�t���D��}|t|j |j |j t|j��|z|��fS)a\ Let d denote the integrand in the definition of the G function ``g``. Consider the function H which is defined in the same way, but with integrand d/Gamma(a*s) (contour conventions as usual). If ``a`` is rational, the function H can be written as C*G, for a constant C and a G-function G. This function returns C, G. rr�rSr�c� ��g|] }|dz�z �� Srr�)rertr�s �rhr�z"_inflate_fox_h.<locals>.<listcomp>8s!��� &� &� &��1�q�5�!�)� &� &� &rj)�_inflate_fox_hrrr�r�rr�rrr rQr�rr�r�r)r�r�r��Dr_�bsr�s @rhr r "s���� �1�u�u��g�a�j�j�1�"�-�-�-� �!�#���A� �!�#���A� �a�� � �D�A�q� � �A��!�B�$�1�q�5�!�)� �Q���Q���/� /�/�A���A��I�A� &� &� &� &�U�1�X�X� &� &� &�B� �g�a�d�A�H�a�d�D���N�N�R�,?��C�C� C�Crjzdict[tuple[str, str], Dummy]�_dummiesc �N�t||fi|��}||jvr t|fi|��S|S)z� Return a dummy. This will return the same dummy if the same token+name is requested more than once, and it is not already in expr. This is for being cache-friendly. )�_dummy_r�r)�name�tokenr��kwargs�ds rh�_dummyr*>sD�� ��e�&�&�v�&�&�A��D� ����T�$�$�V�$�$�$� �Hrjc �d�||ftvrt|fi|��t||f<t||fS)z` Return a dummy associated to name and token. Same effect as declaring it globally. )r#r)r&r'r(s rhr%r%Js@�� �%�=�H� $� $�"'��"7�"7��"7�"7��$���� �T�5�M� "�"rjc�x��t�fd�|�tt��D���� S)z� Check if f(x), when expressed using G functions on the positive reals, will in fact agree with the G functions almost everywhere c3�*�K�|] }�|jvV��dSrc)r��rer�r{s �rhriz_is_analytic.<locals>.<genexpr>Xs+�����N�N�d�1��)�)�N�N�N�N�N�Nrj)�anyr�rAr$)rgr{s `rh� _is_analyticr0Us9����N�N�N�N�a�g�g�i��6M�6M�N�N�N�N�N� N�NrjTc��������r|�d�t��}d�t|t��s|St dt ���\��}t ��kt��������kfttt�����tktt���dtzz ��tk��tt���tz d��fttdt���ztz��tktdt���ztz ��tk��tt���d��fttdt���ztz��tktdt���ztz ��tk��tj fttt���tdz z ��tdz ktt���tdz z��tdz k��tt���d��fttt���tdz z ��tdz ktt���tdz z��tdz k��tj fttt�dzdz dz����tkttt�dzdz dz����t����tjft tt�dzdz dz����tktd�dzdz dzz d����tjfttt!�����tktt!t#dtztjz���z����tk��tt!t#tj tz���z��d��fttt!�����tdz ktt!t#t tjz���z����tdz k��tt!t#tj tzdz ���z��d��ft ��kt��k|������kft�dzd���dzdkz�dzdkftd�z d��t'tt�������t���zdkzt���dkft�d��t'tt�������t���zdkzt���dkftt�����tdz kt'tt�������t)t�dz����zdkz�dzdkfg}|j�fd �|jD���}d }|�r;d}t/|��D�]%\}\}}|j|jkr�t/|j��D�]�\}} ||jdjvr#| �|jd���d} n"d} | �|jd����s�b�fd �|jd | �|j| dzd �zD��} |g�| D]�} t/|j��D]�\} }| �vr� | |kr�| gz �n�t|t��rB| jd|kr1t| t��r| jd|jvr�| gz �nXt|t��rB| jd|kr1t| t��r| jd|jvr�| gz �n�nj�t5���t5| ��dzkr����fd �t/|j��D��|����gz}t8r|dvrt;d|��|j|�}d }��'|��;��fd�}|�d�|��}t8rt;d|��|S)a� Do naive simplifications on ``cond``. Explanation =========== Note that this routine is completely ad-hoc, simplification rules being added as need arises rather than following any logical pattern. Examples ======== >>> from sympy.integrals.meijerint import _condsimp as simp >>> from sympy import Or, Eq >>> from sympy.abc import x, y >>> simp(Or(x < y, Eq(x, y))) x <= y c��|jSrc�� is_Relational��_s rhr|z_condsimp.<locals>.<lambda>os��a�o�rjFzp q r)r�r�rrS�����c�0��g|]}t|�����Sr�)� _condsimp)rer6�firsts �rhr�z_condsimp.<locals>.<listcomp>�s#���>�>�>�q�y��E�*�*�>�>�>rjTc�:��g|]}|������Sr�r�)rer{r�s �rhr�z_condsimp.<locals>.<listcomp>�s#���T�T�T�1�Q�V�V�A�Y�Y�T�T�TrjNc�"��g|] \}}|�v� |�� Sr�r�)re�k�arg_� otherlists �rhr�z_condsimp.<locals>.<listcomp>�s1���2�2�2�I�Q���y�0�0� �0�0�0rj) rr�r����� � � �zused new rule:c���|jdks |jdkr|S|j}|�t ����z��}|s2|�t t ����z����}|sSt|t��r<|j dj s*|j dtj ur|j ddkS|S|�dkS)Nz==rrS) �rel_op�rhs�lhsr�r#r*r(r�r+rm�is_polarr�Infinity)�rel�LHSr�r�r�s ��rh� rel_touchupz_condsimp.<locals>.rel_touchup�s���� �:�� � ���A����J��g�� �I�I�c�!�f�f�a�i� � ��� A�� � �-�j��m�m�Q�.>�?�?�@�@�A�� ��#�0�1�1� )�#�(�1�+�:N� )���� �q�z�1�1���� �a��(��J��!��q��rjc��|jSrcr3r5s rhr|z_condsimp.<locals>.<lambda>�s��!�/�rjz _condsimp: )�replacerr�rYrrrVrrUr$r#rr�falser�truer*r-r�r8r5r�rm� enumerater�r�rr�r�print)r�r:r��rules�change�irule�fro�tort�arg1�num� otherargs�arg2r=�arg3�newargsrOr�r?r�r�s ` @@@@rhr9r9[sb�������& ���|�|�5�5�7G�H�H���� �d�O� ,� ,��� ��g�4�(�(�(�G�A�q�!� �A��E�2�a��8�8� � �a�1�f�%� �S��Q���[�[�B� ��C��F�F�Q�r�T�M� 2� 2�b� 8� 9� 9� �C��F�F�R�K�� � � � �S��3�q�6�6��B�� � �2� %�s�1�S��V�V�8�b�=�'9�'9�R�'?� @� @� �C��F�F�A��� � �S��3�q�6�6��B�� � �"� $�c�!�C��F�F�(�R�-�&8�&8�B�&>� ?� ?� �� � �S��Q���"�Q�$�� � �2�a�4� '��S��V�V�b��d�]�);�);�r�!�t�)C� D� D� �C��F�F�A��� � �S��Q���"�Q�$�� � �2�a�4� '��S��V�V�b��d�]�);�);�b��d�)B� C� C� �� � �S��Q��T�!�V�a�Z��� !� !�B� &��3�s�1�a�4��6�A�:���+?�+?��(D�(D� E� E� �� � �C��A�q�D��F�Q�J��� � �2� %�r�!�Q��T�!�V�a�Z�.�!�'<�'<� =� =� �� � �S�$�Q�'�'� (� (�B� .� �"�9�R��U�1�?�-B�#C�#C�A�#E�F�F� G� G�2� M� O� O� � � �1�?�*:�2�*=� >� >�q� @� A� A�1� E� E� G� �S�$�Q�'�'� (� (�B�q�D� 0� �"�9�b�S���-@�#A�#A�!�#C�D�D� E� E��A�� M� O� O� � � �1�?�*:�2�*=�a�*?� @� @�� B� C� C�Q� G� G� I� �A��F�C��A��q�M�M� "� "�A��F�+� �A�q�D�!����1��q�� !�1�a�4�!�8�,� �A�a�C����s�3�s�1�v�v�;�;�'�'��A���.��2� 3�S��V�V�a�Z�@� �A�q���S��S��V�V���%�%�c�!�f�f�,�q�0� 1�3�q�6�6�A�:�>� �c�!�f�f�+�+��1�� ��S��Q���[�[�!1�!1�$�s�1�a�4�y�y�/�/�!A�A�!E� F��1��q��Q�9 �E�< �4�9�>�>�>�>�D�I�>�>�>� ?�D� �F� �(��� )�%� 0� 0�& �& � �E�9�C���x�4�9�$�$��$�T�Y�/�/�# �# ���4����� �0�0�0�� � �3�8�A�;�/�/�A��C�C��C�� � �3�8�A�;�/�/�A����T�T�T�T����#�����#�PQ�'�(�(�AS�0S�T�T�T� ��C� �%�"�"�D�#,�T�Y�#7�#7� "� "���4�� �>�>�$��4�<�<�%�!��,�I�!�E�%�d�C�0�0�"�T�Y�q�\�Q�5F�5F� *�4�� 5� 5�6G�:>�)�A�,�$�)�:S�:S�%�!��,�I�!�E�%�d�C�0�0�"�T�Y�q�\�Q�5F�5F� *�4�� 5� 5�6G�:>�)�A�,�$�)�:S�:S�%�!��,�I�!�E����y�>�>�S��^�^�a�%7�7�7��2�2�2�2��4�9�1E�1E�2�2�2�57�W�W�Q�Z�Z�L�A���7��$F�F�F��.��6�6�6� �t�y�'�*������Q �(�V������ �<�<�1�1�;� ?� ?�D��#� �m�T�"�"�"� �Krjc�r�t|t��r|St|�����S)z Re-evaluate the conditions. )r��boolr9�doit)r�s rh� _eval_condrd�s/���$������ � �T�Y�Y�[�[� !� !�!rjFc�b�t||��}|s|�td���}|S)z� Bring expr nearer to its principal branch by removing superfluous factors. This function does *not* guarantee to yield the principal branch, to avoid introducing opaque principal_branch() objects, unless full_pb=True. c��|Srcr�)r{rs rhr|z&_my_principal_branch.<locals>.<lambda>�s���rj)r)rQ)r��period�full_pbros rh�_my_principal_branchri�s6�� �4�� (� (�C� �<��k�k�*�N�N�;�;�� �Jrjc �� � �t||��\}� t|j|��\}� |���}t||��}|t � ��|� dz� z dz zzz }� � fd�}|t ||j��||j��||j��||j ��||z��fS)z� Rewrite the integral fac*po*g dx, from zero to infinity, as integral fac*G, where G has argument a*x. Note po=x**s. Return fac, G. rSc�"����fd�|D��S)Nc�,��g|]}|d�z�z zdz ��Srr�)rer�r��ss ��rhr�z1_rewrite_saxena_1.<locals>.tr.<locals>.<listcomp>�s*���-�-�-�a��Q��U�A�I� ��!�-�-�-rjr��rr�rms ��rhrz_rewrite_saxena_1.<locals>.tr�s ���-�-�-�-�-�1�-�-�-�-rj) r�r�� get_periodrir$rQr�rr�r) r�r�r�r{r6r�rgrrr�rms @@rh�_rewrite_saxena_1rp�s����� �"�a� � �D�A�q� �!�*�a� (� (�D�A�q� �\�\�^�^�F��Q��'�'�A� �S��V�V�A��Q��� �A� �&� &�'�A�.�.�.�.�.�.� �g�b�b���h�h���1�8� � �b�b���h�h���1�8� � ���c��� �rjc �0 �|j}t|j|��\}}tt |j��t |j��t |j��t |j��g��\}}}} || kr_d�} tt| |j��| |j ��| |j��| |j ��||z ��|��Sd�|jD��d�|jD��z} t| �} | d�|j D��z } | d�|j D��z } t| �} t|j�� | dz|z dz z| |z k}d�}d �}|d ��|d |||||| f��|d t!|j��t!|j ��f��|d t!|j��t!|j ��f��|d| | |f��g}g}d|k|| kd|kg}d|kd|kt#| |dz��t%tt#|d��t#||dz������g}d|kt#| |��g}t't)|dz ��dz��D]>}|t+t-t/|����|d|zz t0z��gz }�?|dkt-t/|����|t0zkg} t+|d��| g}|rg}|||fD]}|t|| z|z�gz }�||z }|d|��| g}|rg}tt#|d��|dz|k|| kt-t/|����|t0zkg|�R�g}||z }|d|��| |g}|rg}t|| kd|k|dkt#t-t/|����|t0z��g|�R�g}|t|| dz kt#|d��t#t-t/|����d��g|�R�gz }||z }|d|��g}|t#|| ��t#|d��t#t/|��d��t+|d��gz }|s|| gz }g}t3|j|j��D]\}}|||z gz }�|tt5|���dkgz }t|�}||gz }|d|g��t|dkt-t/|����|t0zk��g}|s|| gz }t|�}||gz }|d|g��t7|�S)aV Return a condition under which the mellin transform of g exists. Any power of x has already been absorbed into the G function, so this is just $\int_0^\infty g\, dx$. See [L, section 5.6.1]. (Note that s=1.) If ``helper`` is True, only check if the MT exists at infinity, i.e. if $\int_1^\infty g\, dx$ exists. c��d�|D��S)Nc��g|]}d|z ��Srr��rer{s rhr�z4_check_antecedents_1.<locals>.tr.<locals>.<listcomp>s��%�%�%�a�A��E�%�%�%rjr�rs rhrz _check_antecedents_1.<locals>.trs��%�%�1�%�%�%� %rjc�6�g|]}t|�� dk��Sr�r!�rer�s rhr�z(_check_antecedents_1.<locals>.<listcomp>s$�� $� $� $�!�B�q�E�E�6�A�:� $� $� $rjc�:�g|]}ddt|��z k��Srrvrs rhr�z(_check_antecedents_1.<locals>.<listcomp>s&��'D�'D�'D�!��A��1���I� �'D�'D�'Drjc�6�g|]}t|�� dk��Srrvrws rhr�z(_check_antecedents_1.<locals>.<listcomp>s$�� )� )� )�1�R��U�U�F�Q�J� )� )� )rjc�:�g|]}ddt|��z k��Srrvrs rhr�z(_check_antecedents_1.<locals>.<listcomp>s&�� ,� ,� ,�a�A��B�q�E�E� �M� ,� ,� ,rjrSr�c��t|�dSrc)�_debug)�msgs rhr]z#_check_antecedents_1.<locals>.debug"s���� � � � rjc�&�t||��dSrc��_debugf)�stringr#s rhr^z$_check_antecedents_1.<locals>.debugf%s���������rjz$Checking antecedents for 1 function:z* delta=%s, eta=%s, m=%s, n=%s, p=%s, q=%sz ap = %s, %sz bq = %s, %sz" cond_3=%s, cond_3*=%s, cond_4=%srz case 1:z case 2:z case 3:z extra case:z second extra case:)rr�r�rrr�r�r�r��_check_antecedents_1rQrrrUr!r�r�rrXr r/rr$r*r�ziprrV) r�r{�helperr�etar6r�rtr�r�r�tmp�cond_3� cond_3_star�cond_4r]r^�conds�case1�tmp1�tmp2�tmp3r=�extrar��case2�case3� case_extrarmr�r�� case_extra_2s rhr�r�sX�� �G�E� �A�J�� *� *�F�C���C���I�I�s�1�4�y�y�#�a�d�)�)�S���Y�Y�?�@�@�J�A�q�!�Q��1�u�u� &� &� &�#�G�B�B�q�t�H�H�b�b���l�l�,.�B�q�t�H�H�b�b���l�l�A�c�E�%K�%K�$%�'�'� '� %� $�q�t� $� $� $�'D�'D�q�t�'D�'D�'D� D�C� �#�Y�F�� )� )��� )� )� )�)�C�� ,� ,�1�8� ,� ,� ,�,�C��s�)�K��!�$�x�x�i�1�q�5�1�9�a�-�'�!�a�%�/�F������� �E� 0�1�1�1� �F� 7� �3��1�a�� #�%�%�%� �F�?�T�!�$�Z�Z��a�h���8�9�9�9� �F�?�T�!�$�Z�Z��a�h���8�9�9�9� �F� /�&�+�v�1N�O�O�O� �E� �E� ��F�A��E�1��6� "�D� ��F�A��F�B�q�!�a�%�L�L�#�c�"�Q��(�(�B�q�!�a�%�L�L�.I�.I�*J�*J� K�D� ��F�B�q�!�H�H� �D� �7�5��7�#�#�a�'� (� (�F�F�� ��C�+�C�0�0�1�1�E�A�a�C�K��3C�D�D�E�E��� �1�9�c�-�c�2�2�3�3�e�B�h�>� ?�C� ��Q�Z�Z�� �E� �����D�$� �+�+�� �#��C��%��)�*�*��� �U�N�E� �E�+�u�����H�E� ���� ��A�q���1�q�5�A�:�q�A�v��(��-�-�.�.��r��9�C�<A�C�C�C� D�E� �U�N�E� �E�+�u�����V� �E� ���� ��Q���Q���� �2�c�2E�c�2J�2J�.K�.K�U�SU�X�+V�+V������ �E� �c�!�q�1�u�*�b���l�l�B�s�3F�s�3K�3K�/L�/L�a�,P�,P�Y�SX�Y�Y�Y� Z�Z�E� �U�N�E� �E�+�u�����J��2�a��8�8�R��q�\�\�2�.A�#�.F�.F��+J�+J�B�s�TU�J�J�W�W�J� ���v�h�� � �A��A�D�!�$�������1� �a�!�e�W� ����2�c�1�g�;�;��?�#�#�J��j�!�J� �j�\��E� �E�/�J�<�(�(�(���� �3�':�3�'?�'?�#@�#@�5��8�#K�L�L�M�L� �!���� � �� �%�L� �l�^��E� �E� �<�.�1�1�1� �u�:�rjc�|�ddlm}t|j|��\}}d|z }|jD]}|t |dz��z}�|jD]}|t d|z dz ��z}�|jD]}|t d|z dz ��z}�|jD]}|t |dz��z}�|t|����S)a� Evaluate $\int_0^\infty g\, dx$ using G functions, assuming the necessary conditions are fulfilled. Examples ======== >>> from sympy.abc import a, b, c, d, x, y >>> from sympy import meijerg >>> from sympy.integrals.meijerint import _int0oo_1 >>> _int0oo_1(meijerg([a], [b], [c], [d], x*y), x) gamma(-a)*gamma(c + 1)/(y*gamma(-d)*gamma(b + 1)) r)� gammasimprS) r�r�r�r�r�rOr�rrr&)r�r{r�r�r6ror�r�s rh� _int0oo_1r�rs���)�(�(�(�(�(� �A�J�� *� *�F�C�� �C�%�C� �T���� �u�Q��U�|�|���� �T� � �� �u�Q��U�Q�Y������ �X� � �� �u�Q��U�Q�Y������ �X���� �u�Q��U�|�|���� �9�Z��_�_� %� %�%rjc�������fd�}t|���\}}t|j���\}} t|j���\}} | dkdkr| } t|��}| dkdkr| } t|��}| jr| jsdS| j| j} } | j| j}} t | |z| | z��}|| |zz}|| | zz}t||��\}}t||��\}}||��}||��}|||zz}t|j���\}}t|j���\}}|dz|z dz �|t|��|�zzz }�fd�}t||j ��||j ��||j ��||j ��|�z��}t|j |j |j |j |�z��}ddlm}||d���||fS) a� Rewrite the integral ``fac*po*g1*g2`` from 0 to oo in terms of G functions with argument ``c*x``. Explanation =========== Return C, f1, f2 such that integral C f1 f2 from 0 to infinity equals integral fac ``po``, ``g1``, ``g2`` from 0 to infinity. Examples ======== >>> from sympy.integrals.meijerint import _rewrite_saxena >>> from sympy.abc import s, t, m >>> from sympy import meijerg >>> g1 = meijerg([], [], [0], [], s*t) >>> g2 = meijerg([], [], [m/2], [-m/2], t**2/4) >>> r = _rewrite_saxena(1, t**0, g1, g2, t) >>> r[0] s/(4*sqrt(pi)) >>> r[1] meijerg(((), ()), ((-1/2, 0), ()), s**2*t/4) >>> r[2] meijerg(((), ()), ((m/2,), (-m/2,)), t/4) c ����t|j���\}}|���}t|j|j|j|jt||����|zz��Src) r�r�rorQr�rr�rri)r�r�r��perrhr{s ��rh�pbz_rewrite_saxena.<locals>.pb�sb����a�j�!�,�,���1��l�l�n�n���q�t�Q�X�q�t�Q�X�+�A�s�G�<�<�Q��T�A�C�C� CrjrTNrSc� ���fd�|D��S)Nc���g|]}|�z��Sr�r�)rer�r,s �rhr�z/_rewrite_saxena.<locals>.tr.<locals>.<listcomp>�s���#�#�#�A��C��#�#�#rjr�)rr,s �rhrz_rewrite_saxena.<locals>.tr�s���#�#�#�#��#�#�#�#rj�� powdenest��polar)r�r�r� is_Rationalr�r�rrr$rQr�rr�rr�r�)r�r��g1�g2r{rhr�r6rm�b1�b2�m1�n1�m2�n2�tau�r1�r2�C1�C2�a1r��a2rr�r,s `` @rh�_rewrite_saxenar��sY�����6C�C�C�C�C�C� �"�a� � �D�A�q� �2�;�� *� *�E�A�r� �2�;�� *� *�E�A�r� �Q��4����S�� �R�[�[�� �Q��4����S�� �R�[�[�� �>������� �T�2�4��B� �T�2�4��B� �r�"�u�b��e� � �C� �r�"�u��B� �r�"�u��B� ��B� � �F�B�� ��B� � �F�B�� ��B���B� ��B���B��2�b�5�L�C� �2�;�� *� *�E�B�� �2�;�� *� *�E�B�� �q�5�!�)�a�-�C� �s�1�v�v��C��� �C�$�$�$�$�$� ���B�E���B�B�r�y�M�M�2�2�b�e�9�9�b�b���m�m�R��T� J� J�B� ���� �2�5�"�)�R��T� :� :�B�(�(�(�(�(�(� �9�S�� %� %� %�r�2� -�-rjc��2���+�,�-�.�/�0�1�2�3�4�5�t�j|��\�2}t�j|��\�-}tt�j��t�j��t�j��t�j��g��\}}�4�5tt�j��t�j��t�j��t�j��g��\}}�.�0||z�4�5zdz z }||z�.�0zdz z } �j�4�5z dz zdz�1�j�.�0z dz zdz�,�0�.z �5�4z z } d�5�4z z �,z �1z } t�0|z |z ztt�-����z�0�.z z �/t�5|z |z ztt�2����z�5�4z z �3td��td�2||�4�5|�1f��td�-||�.�0| �,f��td| | �/�3f����fd�} | ��} t�fd��jD���}t�fd ��jD���}t�,�.�0fd ��jD���}t�,�.�0fd ��jD���}t�1�4�5fd ��jD���}t�1�4�5fd ��jD���}t| ��dt�1dz �0�.z z�5�4z �0�.z zz�,dz �5�4z zz��zzdk}t| ��dt�1dz �0�.z z�5�4z �0�.z zz�,dz �5�4z zz��zz dk}tt�2����|tzk}t!tt�2����|tz��}tt�-����| tzk}t!tt�-����| tz��}t#|| z tztjz��}t'|�-z�2z ��}t'|�2z�-z ��}|d|z krytt!| d��|| zdkt)t+|d��t�,�1z�5z�4z ��dkt�,�1z�0z�.z ��dk����}�n7d�}tt!| d��|dz | zdkt)tt+|d��||����tt�,�1z�5z�4z ��dkt!|d��������}tt!| d��| dz |zdkt)tt+|d��||����tt�,�1z�0z�.z ��dkt!|d��������}t)||��} �0�.z t�-��d�0�.z z zzt-�/��z�5�4z t�2��d�5�4z z zzt-�3��zz} t/| dk��dkr| dk}!�ng�-�.�/�0�2�3�4�5fd�}"t1|"dd��|"dd��ztt!t�2��d��t!t�-��d����f|"t3t�-����d��|"t3t�-����d��ztt!t�2��d��t+t�-��d����f|"dt3t�2������|"dt3t�2������ztt+t�2��d��t!t�-��d����f|"t3t�-����t3t�2������df��}#| dktt!| d��t+|#d��t| ��dk��tt!| d��t!|#d��t| ��dk��g}$t)|$�}!n#t4$rd}!YnwxYw| df|df|df|df|df|df|df|df|df|df|df|df|df|df|!d ffD]\}%}&td!|&|%f���g�+�+fd"�}'�+t||z|z|zdk|jdu| jdu| ||||��gz �+|'d���+tt!�4�5��t!|d��| jdu�2jdut�1��dk| |||� � gz �+|'d���+tt!�.�0��t!| d��|jdu�-jdut�,��dk| |||� � gz �+|'d���+tt!�.�0��t!�4�5��t!|d��t!| d���2jdu�-jdut�,��dkt�1��dkt+�2�-��| ||� � gz �+|'d���+tt!�.�0��t!�4�5��t!|d��t!| d���2jdu�-jdut�,�1z��dkt+�-�2��| ||� � gz �+|'d���+t�.�0k|jdu|jdu| dk| |||||� � gz �+|'d���+t�.�0k|jdu|jdu| dk| |||||� � gz �+|'d���+t�4�5k|jdu| jdu|dk| |||||� � gz �+|'d���+t�4�5k|jdu| jdu|dk| |||||� � gz �+|'d���+t�.�0kt!�4�5��t!|d��| dk�2jdut�1��dk| ||||� � gz �+|'d���+t�.�0kt!�4�5��t!|d��| dk�2jdut�1��dk| ||||� � gz �+|'d���+tt!�.�0���4�5k|dkt!| d���-jdut�,��dk| ||||� � gz �+|'d���+tt!�.�0���4�5k|dkt!| d���-jdut�,��dk| ||||� � gz �+|'d���+t�.�0k�4�5k|dk| dk| ||||||� � gz �+|'d���+t�.�0k�4�5k|dk| dk| ||||||� � gz �+|'d ���+t�.�0k�4�5k|dk| dk| ||||||||� � gz �+|'d#���+t�.�0k�4�5k|dk| dk| ||||||||� � gz �+|'d$���+tt!|d��|jdu|jdu| jdu| ||��gz �+|'d%���+tt!|d��|jdu|jdu| jdu| ||��gz �+|'d&���+tt!|d��|jdu| jdu| jdu| ||��gz �+|'d'���+tt!|d��|jdu| jdu| jdu| ||��gz �+|'d(���+tt!||zd��|jdu| jdu| ||||��gz �+|'d)���+tt!||zd��|jdu| jdu| ||||��gz �+|'d*��t;�|d�+��}(t;�|d�+��})�+t|)t!|d���4|k|jdu|| ||��gz �+|'d,���+t|)t!|d���5|k|jdu|| ||��gz �+|'d-���+t|(t!|d���.|k| jdu|| ||��gz �+|'d.���+t|(t!|d���0|k| jdu|| ||��gz �+|'d/��t)�+�}*t/|*��dkr|*S�+t||z�.kt!|d��t!| d��|jdu|jdu| jdutt�-����||z�.z dztzk| ||||!� � gz �+|'d0���+t||z�0kt!|d��t!| d��|jdu|jdu| jdutt�-����||z�0z dztzk| ||||!� � gz �+|'d1���+tt!�.�0dz ��t!|d��t!| d��|jdu|jdu| dk| tztt�-����k| ||||!� � gz �+|'d2���+tt!�.�0dz��t!|d��t!| d��|jdu|jdu| dk| tztt�-����k| ||||!� � gz �+|'d3���+t�.�0dz kt!|d��t!| d��|jdu|jdu| dk| tztt�-����ktt�-����||z�.z dztzk| ||||!� � gz �+|'d4���+t�.�0dzkt!|d��t!| d��|jdu|jdu| dk| tztt�-����ktt�-����||z�0z dztzk| ||||!� � gz �+|'d5���+tt!|d��t!| d��||zdk|jdu| jdu|jdutt�2����||z�4z dztzk| ||||!� � gz �+|'d6���+tt!|d��t!| d��||z�5k|jdu| jdu|jdutt�2����||z�5z dztzk| ||||!� � gz �+|'d7���+tt!|d��t!| d��t!�4�5dz ��|jdu| jdu|dk|tztt�2����ktt�2����|dztzk| ||||!� � gz �+|'d8���+tt!|d��t!| d��t!�4�5dz��|jdu| jdu|dk|tztt�2����ktt�2����|dztzk| ||||!� � gz �+|'d9���+tt!|d��t!| d���4�5dz k|jdu| jdu|dk|tztt�2����ktt�2����||z�4z dztzk| ||||!� � gz �+|'d:���+tt!|d��t!| d���4�5dzk|jdu| jdu|dk|tztt�2����ktt�2����||z�5z dztzk| ||||!� � gz �+|'d;��t)�+�S)<z> Return a condition under which the integral theorem applies. r�rSzChecking antecedents:z1 sigma=%s, s=%s, t=%s, u=%s, v=%s, b*=%s, rho=%sz1 omega=%s, m=%s, n=%s, p=%s, q=%s, c*=%s, mu=%s,z" phi=%s, eta=%s, psi=%s, theta=%sc�����fD]>}tj|j|j��D]\}}||z }|jr |jrdS��?dS)NFT)r r r�r�� is_integer� is_positive)r�rf�j�diffr�r�s ��rh�_c1z_check_antecedents.<locals>._c1�sm����b�� !� !�A�!�)�!�$���5�5� !� !���1��1�u���?�!�t�'7�!� �5�5�5�� !��trjc�V��g|]%}�jD]}td|z|z��dk���&S�rSr)r�r!�rerfr�r�s �rhr�z&_check_antecedents.<locals>.<listcomp>s;���?�?�?�Q���?�?�A�r�!�a�%�!�)�}�}�q� �?�?�?�?rjc�V��g|]%}�jD]}td|z|z��dk���&S)rSr�)r�r!r�s �rhr�z&_check_antecedents.<locals>.<listcomp>s;���C�C�C��R�U�C�C��r�!�a�%�!�)�}�}�u�$�C�C�C�Crjc���g|]?}��z td|zdz ��zt���z tdd��k��@S�rS�����r��r!r�rerf�mur�r�s ���rhr�z&_check_antecedents.<locals>.<listcomp>sH���O�O�O�A��A��r�!�a�%�!�)�}�}�$�r�"�v�v�-���Q���?�O�O�Orjc���g|]<}��z td|z��zt���z tdd��k��=Sr�r�r�s ���rhr�z&_check_antecedents.<locals>.<listcomp>sD���K�K�K���A��r�!�a�%�y�y� �2�b�6�6�)�H�R��O�O�;�K�K�Krjc���g|]?}��z td|zdz ��zt���z tdd��k��@Sr�r��rerf�rho�urs ���rhr�z&_check_antecedents.<locals>.<listcomp>sH���P�P�P�Q��A��r�!�a�%�!�)�}�}�$�r�#�w�w�.��"�a���@�P�P�Prjc���g|]<}��z td|z��zt���z tdd��k��=Sr�r�r�s ���rhr�z&_check_antecedents.<locals>.<listcomp>sD���L�L�L���A��r�!�a�%�y�y� �2�c�7�7�*�X�b�!�_�_�<�L�L�Lrjrc�^�|dko'ttd|z ����tkS)a�Returns True if abs(arg(1-z)) < pi, avoiding arg(0). Explanation =========== If ``z`` is 1 then arg is NaN. This raises a TypeError on `NaN < pi`. Previously this gave `False` so this behavior has been hardcoded here but someone should check if this NaN is more serious! This NaN is triggered by test_meijerint() in test_meijerint.py: `meijerint_definite(exp(x), x, 0, I)` rS)r$r#r)r_s rh�_condz!_check_antecedents.<locals>._cond$s(����6�2�c�#�a�!�e�*�*�o�o��2� 2rjFc����|��z zt���d��z z zzt���z|� �z zt���d� �z z zzt���zzSr�)r$r9) �c1�c2�omegar��psir��sigma�thetar�rs ��������rh� lambda_s0z%_check_antecedents.<locals>.lambda_s0Ssk����1�q�5�z�#�e�*�*�q�!�a�%�y�"9�9�#�c�(�(�B��!�a�%�j��U���a��Q��i�!8�8��U���C�D�Drjr�Tr�r�r@rArB�� � rCrDrErF�z c%s: %sc�8��td|�df��dS)Nz case %s: %sr�r)�countr�s �rh�prz_check_antecedents.<locals>.prls"�����%��r��!3�4�4�4�4�4rjr��������)r��E1�E2�E3�E4��������� �!�"�#)r�r�rrr�r�r�r�r�rr$r*r|r�rUr!rr,r�r&rVrr8rdr6r%� TypeErrorr�� is_negativer�)6r�r�r{r6rmr�r�rt�bstar�cstar�phir�r�r�r��c3�c4�c5�c6�c7�c8�c9�c10�c11�c12�c13�z0�zos�zso�c14r��c14_alt�lambda_c�c15r��lambda_sr�r�rfr�� mt1_exists� mt2_existsr�r�r�r�r�r�r�r�r�r�r�rs6`` @@@@@@@@@@@rh�_check_antecedentsr �s�����������������b�k�1�-�-�H�E�1��b�k�1�-�-�H�E�1��C���J�J��B�E� � �C���J�J��B�E� � �C�D�D�J�A�q�!�Q��C���J�J��B�E� � �C���J�J��B�E� � �C�D�D�J�A�q�!�Q� ��E�Q��U�A�I� �E� ��E�Q��U�A�I� �E� �%�1�q�5�!�)� �a� �C� ��!�a�%��� �Q� �B� �a�%�1�q�5�/�C� �q�1�u�+�� �S� �C� �q�1�u�q�y�>�C� 3�E� :� :�;�;� ;�a�!�e� D�C� ��Q����^�c�"5�e�"<�"<�=�=� =��A�� F�E� � "�#�#�#� � ?� �A�q�!�Q��s� +�-�-�-� � ?� �A�q�!�Q��r� *�,�,�,� � 0�3��S�%�2H�I�I�I������� ����B� �?�?�?�?�"�%�?�?�?� @�B� �C�C�C�C�b�e�C�C�C� D�B� �O�O�O�O�O�O���O�O�O� P�B� �K�K�K�K�K�K�R�U�K�K�K� L�B� �P�P�P�P�P�P�"�%�P�P�P� Q�B� �L�L�L�L�L�L�b�e�L�L�L� M�B� �c�(�(�Q�r�3��7�Q��U�+�q�1�u�q�1�u�o�=�� �B ��!�e�A����� �� �B� �c�(�(�Q�r�3��7�Q��U�+�q�1�u�q�1�u�o�=�� �B ��!�e�A����� �� �B� �"�5�)�)� *� *�U�2�X� 5�C� �S�$�U�+�+� ,� ,�e�B�h� 7� 7�C� �"�5�)�)� *� *�U�2�X� 5�C� �S�$�U�+�+� ,� ,�e�B�h� 7� 7�C� �u�u�}� �b� ��� 0� 1� 1�B� �R��X�e�^� $� $�C� �R��X�e�^� $� $�C� �a��e�|�|��"�S�!�*�*�e�e�m�q�0��R��Q�Z�Z��B��H�q�L�1�$4�!5�!5��!9���S��1� �q�(�)�)�A�-�/�/�0�0��� 3� 3� 3��"�S�!�*�*�e�a�i�%�/�1�4��S��C����U�U�3�Z�Z�0�0���B��H�q�L�1�,�-�-��1�2�c�1�:�:�>�>�@�@�A�A���b��a�j�j�%�!�)�e�"3�q�"8��S��C����U�U�3�Z�Z�0�0���B��H�q�L�1�,�-�-��1�2�c�1�:�:�>�>�@�@�A�A����g��������E�3�u�:�:��1�q�5� �2�2�3�s�8�8�;��1�u�c�%�j�j�1�a�!�e�9�-�-�c�%�j�j�8�9�� �h��l� #� #�u� ,� ,��a�<�C�C� D� D� D� D� D� D� D� D� D� D� D� D�!��)�B��#�#�I�I�b�"�$5�$5�5��R�+�E�2�2�A�6�6��;N�u�;U�;U�WX�8Y�8Y�Z�Z�\���4� 3�E� :� :�;�;�R�@�@���4�Pc�di�Pj�Pj�Kk�Kk�mo�Ap�Ap�p��R�+�E�2�2�A�6�6��;N�u�;U�;U�WX�8Y�8Y�Z�Z�\���2�t�$7��$>�$>�?�?�@�@���2�t�Tg�hm�Tn�Tn�Oo�Oo�Ap�Ap�p��R�+�E�2�2�A�6�6��;N�u�;U�;U�WX�8Y�8Y�Z�Z�\���4� 3�E� :� :�;�;�T�BU�V[�B\�B\�=]�=]�^�^�`d�e�g�g�H��a�<��r�(�A����8�Q����C���2��F�F��r�(�A����8�Q����C���1��E�E�G�C��c�(�C��� ��������������G�b�!�W�r�1�g��A�w��Q��"�a����G�b�!�W�r�1�g��R�y�3��)��"�I��R�y�3��)�c�2�Y�@�(�(���a� � �a��Y�'�'�'�'� �E�5�5�5�5�5� �c�!�A�#�a�%��'�Q�,�� 1�T� 9�5�;L�PT�;T�VX�Z\�^`�be������E��B�q�E�E�E� �c�"�Q��(�(�B�u�a�L�L�%�*;�t�*C�U�EV�Z^�E^�`b�cf�`g�`g�jk�`k��b�"�c�#�#�$�$�E��B�q�E�E�E� �c�"�Q��(�(�B�u�a�L�L�%�*;�t�*C�U�EV�Z^�E^�`b�ce�`f�`f�ij�`j��b�"�c�#�#�$�$�E��B�q�E�E�E� �c�"�Q��(�(�B�q�!�H�H�b���l�l�B�u�a�L�L��#�t�+�U�->�$�-F��2���QR� �TV�WZ�T[�T[�^_�T_��U�E�"�"�B��B�0�0�1�1�E��B�q�E�E�E� �c�"�Q��(�(�B�q�!�H�H�b���l�l�B�u�a�L�L��#�t�+�U�->�$�-F��2�PS�8� � �WX�HX��U�E�"�"�B��B�0�0�1�1�E��B�q�E�E�E� �c�!�a�%���$�.��0A�T�0I�5�TU�:��b�"�b�#�s�,�,�-�-�E��B�q�E�E�E� �c�!�a�%���$�.��0A�T�0I�5�TU�:��b�"�b�#�s�,�,�-�-�E��B�q�E�E�E� �c�!�a�%���$�.��0A�T�0I�5�TU�:��b�"�b�#�s�,�,�-�-�E��B�q�E�E�E� �c�!�a�%���$�.��0A�T�0I�5�TU�:��b�"�b�#�s�,�,�-�-�E��B�q�E�E�E� �c�!�a�%��A�q���2�e�Q�<�<��!��U�=N�RV�=V��S�'�'�A�+�r�2�r�2�s�4�4�5�5�E��B�r�F�F�F� �c�!�a�%��A�q���2�e�Q�<�<��!��U�=N�RV�=V��S�'�'�A�+�r�2�r�2�s�4�4�5�5�E��B�r�F�F�F� �c�"�Q��(�(�A��E�5�A�:�r�%��|�|�U�=N�RV�=V��R�&�&�1�*�b�"�b�"�c�3�3�4�4�E��B�r�F�F�F� �c�"�Q��(�(�A��E�5�A�:�r�%��|�|�U�=N�RV�=V��R�&�&�1�*�b�"�b�"�c�3�3�4�4�E��B�r�F�F�F� �c�!�a�%��Q���� �E�Q�J��b�"�b�"�c�3�0�0�1�1�E��B�r�F�F�F� �c�!�a�%��Q���� �E�Q�J��b�"�b�"�c�3�0�0�1�1�E��B�r�F�F�F� �c�!�a�%��Q���� �E�Q�J��b�"�b�"�b�#�s�C�9�9�:�:�E��B�r�F�F�F� �c�!�a�%��Q���� �E�Q�J��b�"�b�"�b�#�s�C�9�9�:�:�E��B�r�F�F�F� �c�"�Q��(�(�A�M�T�1�5�3D��3L�c�o�ae�Ne�gi�km�or�s�s� t�t�E��B�r�F�F�F� �c�"�Q��(�(�A�M�T�1�5�3D��3L�c�o�ae�Ne�gi�km�or�s�s� t�t�E��B�r�F�F�F� �c�"�Q��(�(�A�M�T�1�5�3D��3L�c�o�ae�Ne�gi�km�or�s�s� t�t�E��B�r�F�F�F� �c�"�Q��(�(�A�M�T�1�5�3D��3L�c�o�ae�Ne�gi�km�or�s�s� t�t�E��B�r�F�F�F� �c�"�Q�q�S�!�*�*�e�/�4�7��9J�d�9R��b�"�c�3�(�(�)�)�E��B�r�F�F�F� �c�"�Q�q�S�!�*�*�e�/�4�7��9J�d�9R��b�"�c�3�(�(�)�)�E��B�r�F�F�F�&�b�!�D�9�9�9�J�%�b�!�D�9�9�9�J� �c�*�b��A�h�h��A��u�/@�D�/H�#�r�SU�WY�Z�Z� [�[�E��B�t�H�H�H� �c�*�b��A�h�h��A��u�/@�D�/H�#�r�SU�WY�Z�Z� [�[�E��B�t�H�H�H� �c�*�b��A�h�h��A��u�/@�D�/H�#�r�SU�WY�Z�Z� [�[�E��B�t�H�H�H� �c�*�b��A�h�h��A��u�/@�D�/H�#�r�SU�WY�Z�Z� [�[�E��B�t�H�H�H� �E� �A��!�}�}������ �c�!�a�%�!�)�R��1�X�X�r�#�q�z�z�1�=�D�3H�%�J[�_c�Jc�ej�ev�z~�e~��)�%�0�0�1�1�Q��U�Q�Y��]�B�4F�F��b�#�s�C�)�)�*�*�E��B�r�F�F�F� �c�!�a�%�!�)�R��1�X�X�r�#�q�z�z�1�=�D�3H�%�J[�_c�Jc�ej�ev�z~�e~��)�%�0�0�1�1�Q��U�Q�Y��]�B�4F�F��b�#�s�C�)�)�*�*�E��B�r�F�F�F� �c�"�Q��A��,�,��1�a���"�S�!�*�*�a�m�t�6K�U�M^�bf�Mf��1�*�e�B�h��-@��-G�-G�)H�)H�H��b�#�s�C�)�)�*�*�E��B�r�F�F�F� �c�"�Q��A��,�,��1�a���"�S�!�*�*�a�m�t�6K�U�M^�bf�Mf��1�*�e�B�h��-@��-G�-G�)H�)H�H��b�#�s�C�)�)�*�*�E��B�r�F�F�F� �c�!�a�!�e�)�R��1�X�X�r�#�q�z�z�1�=�D�3H�%�J[�_c�Jc��1�*�e�B�h��-@��-G�-G�)H�)H�H��)�%�0�0�1�1�Q��U�Q�Y��]�B�4F�F��b�#�s�C�)�)�*�*�E��B�r�F�F�F� �c� �A��E� �2�a��8�8�R��Q�Z�Z���$�)>��@Q�UY�@Y�[`�de�[e���(�S�!4�U�!;�!;�<�<�<��)�%�0�0�1�1�Q��U�Q�Y��]�B�4F�F��b�#�s�C� )�)�*�*�E� �B�r�F�F�F� �c�"�Q��(�(�B�s�A�J�J��A��� �1�=�D�3H�%�J[�_c�Jc�ej�ev�z~�e~��)�%�0�0�1�1�Q��U�Q�Y��]�B�4F�F��b�#�s�C�)�)�*�*�E��B�r�F�F�F� �c�"�Q��(�(�B�s�A�J�J��A��� �1�=�D�3H�%�J[�_c�Jc�ej�ev�z~�e~��)�%�0�0�1�1�Q��U�Q�Y��]�B�4F�F��b�#�s�C�)�)�*�*�E��B�r�F�F�F� �c�"�Q��(�(�B�s�A�J�J��1�a�!�e� � �a�m�t�6K�U�M^�bf�Mf��1�*�e�B�h��-@��-G�-G�)H�)H�H��)�%�0�0�1�1�U�Q�Y��N�B��b�#�s�C�)�)�*�*�E��B�r�F�F�F� �c�"�Q��(�(�B�s�A�J�J��1�a�!�e� � �a�m�t�6K�U�M^�bf�Mf��1�*�e�B�h��-@��-G�-G�)H�)H�H��)�%�0�0�1�1�U�Q�Y��N�B��b�#�s�C�)�)�*�*�E��B�r�F�F�F� �c� �1�a���"�S�!�*�*�a�!�a�%�i���$�)>��@Q�UY�@Y�[`�de�[e� �b��3�*�5�1�1�2�2�2� � �� &� &�'�'�1�q�5�1�9�q�=�"�*<�<� �B��S�#� �� � �E� �B�r�F�F�F� �c� �1�a���"�S�!�*�*�a�!�a�%�i���$�)>��@Q�UY�@Y�[`�de�[e� �b��3�*�5�1�1�2�2�2� � �� &� &�'�'�1�q�5�1�9�q�=�"�*<�<� �B��S�#� �� � �E� �B�r�F�F�F� �u�:�s�K#c7�7 d�dc���t|j|��\}}t|j|��\}}d�}||j��t|j��z}t|j��||j��z}||j��t|j��z} t|j��||j��z} t||| | ||z ��|z S)a� Express integral from zero to infinity g1*g2 using a G function, assuming the necessary conditions are fulfilled. Examples ======== >>> from sympy.integrals.meijerint import _int0oo >>> from sympy.abc import s, t, m >>> from sympy import meijerg, S >>> g1 = meijerg([], [], [-S(1)/2, 0], [], s**2*t/4) >>> g2 = meijerg([], [], [m/2], [-m/2], t/4) >>> _int0oo(g1, g2, t) 4*meijerg(((0, 1/2), ()), ((m/2,), (-m/2,)), s**(-2))/s**2 c��d�|D��S)Nc��g|]}| ��Sr�r�rts rhr�z(_int0oo.<locals>.neg.<locals>.<listcomp>s�����q�����rjr�rs rh�negz_int0oo.<locals>.negs����A����rj)r�r�r�r�r�rrrQ) r�r�r{r�r6r�rr�r�r�r�s rh�_int0oor s���"�B�K�� +� +�F�C���b�k�1�-�-�H�E�1���� ��R�U���d�2�5�k�k� !�B� �b�i���3�3�r�y�>�>� )�B� ��R�U���d�2�5�k�k� !�B� �b�i���3�3�r�y�>�>� )�B� �2�r�2�r�5��9� -� -�c� 1�1rjc �@�� �t||��\}� t|j|��\}��� fd�}ddlm}|||� �z zz d���t ||j��||j��||j��||j��|j��fS)z Absorb ``po`` == x**s into g. c�"����fd�|D��S)Nc� ��g|] }|��z z�� Sr�r�)rer�r�rms ��rhr�z2_rewrite_inversion.<locals>.tr.<locals>.<listcomp>,s!���#�#�#�A��A�a�C��#�#�#rjr�rns ��rhrz_rewrite_inversion.<locals>.tr+s ���#�#�#�#�#��#�#�#�#rjrr�Tr�) r�r�r�r�rQr�rr�r) r�r�r�r{r6r�rr�r�rms @@rh�_rewrite_inversionr&s����� �"�a� � �D�A�q� �!�*�a� (� (�D�A�q�$�$�$�$�$�$�(�(�(�(�(�(� �I�c�!�a��c�(�l�$� /� /� /� �B�B�q�t�H�H�b�b���l�l�B�B�q�t�H�H�b�b���l�l�A�J� O� O� Q�Qrjc� ��������td���j�t����\}}|dkr,td��tt ������S�fd���fd��t t �j��t �j��t �j ��t �j ��g��\}}}}||z|z }||z |z } || z dz } ||z ��dkr t j } n�dkrd} n t j } d�z dz t�j �zt�j �z �z ��j} td|||||| | �f��td | �| f���j|dz ks|dkr||kstd ��d St!j�j�j��D]'\} }| |z jr| |krtd ��d S�(||kr*td ��t'��fd��jD���S��fd�}���fd�}���fd�}���fd�}g}|t'd|kd|k| t(z| z t(dz k| dk|�t+t jt(z| dzz��z����gz }|t'|dz|k|dz|k| dk| t(dz k|dk||z dzt(z| z t(dz k|�t+t jt(z||z z��z��|�t+t j t(z||z z��z����gz }|t'||k|dk| dk�| zt(z| z t(dz k|�����gz }|t't/t'||dz kd|k|�dz k��t'|dz||zk||z||zdz k����| dk| t(dz k|dzt(z| z t(dz k|�t+t jt(z| z��z��|�t+t j t(z| z��z����gz }|t'd|k| dk| dk| | t(zzt(dz k|| zt(z| z t(dz k|�t+t jt(z| z��z��|�t+t j t(z| z��z����gz }||dkgz }t/|�S)z7 Check antecedents for the laplace inversion integral. z#Checking antecedents for inversion:rz Flipping G.c ���t|� ��\}}||z}|||zz}||z}g}|ttjt |��zt zdz ��z}|ttj t |��zt zdz ��z} |r|} n| } |t tt|d��t |��dk��t |��dk��gz }|t t|d��tt|��d��t |��dkt | ��dk��gz }|t t|d��tt|��d��t |��dkt | ��dkt |��dk��gz }t|�S)Nr�rr�) r�r,rr�r!rrUrVrrr") r�r�r�r_�plus�coeff�exponentr��wp�wm�wr{s �rh�statement_halfz4_check_antecedents_inversion.<locals>.statement_half<s����(��A�.�.���x� �X� �� �U�A�X� �� �X� ���� �s�1�?�2�a�5�5�(��+�A�-�.�.� .�� �s�A�O�#�B�q�E�E�)�"�,�Q�.�/�/� /�� � ��A�A��A� �#�b��A�q���2�a�5�5�A�:�.�.��1���� �<�<�=�=�� �#�b��A�h�h��2�a�5�5�!� � �b��e�e�a�i��A�����C�C�D�D�� �#�b��A�h�h��2�a�5�5�!� � �b��e�e�a�i��A���!����e�e�r�k�#�#�$� $���5�z�rjc �X��t�||||d���||||d����S)zW Provide a convergence statement for z**a * exp(b*z**c), c/f sphinx docs. TF)rU)r�r�r�r_rs �rh� statementz/_check_antecedents_inversion.<locals>.statementNs@����>�>�!�Q��1�d�3�3�!�>�!�Q��1�e�4�4�6�6� 6rjr�rSz9 m=%s, n=%s, p=%s, q=%s, tau=%s, nu=%s, rho=%s, sigma=%sz epsilon=%s, theta=%s, delta=%sz- Computation not valid for these parameters.Fz Not a valid G function.z$ Using asymptotic Slater expansion.c�2��g|]}�|dz dd�����Sr�r��rer�rr_s ��rhr�z0_check_antecedents_inversion.<locals>.<listcomp>|�-���=�=�=�1�Y�Y�q�1�u�a��A�.�.�=�=�=rjc�<���t��fd��jD���S)Nc�2��g|]}�|dz dd�����Sr�r�r!s ��rhr�z;_check_antecedents_inversion.<locals>.E.<locals>.<listcomp>r"rj)rUr�)r_r�rs`��rh�Ez'_check_antecedents_inversion.<locals>.E~s)�����=�=�=�=�=���=�=�=�>�>rjc�(����� d�z |��Sr�r�)r_r�rr�s ���rh�Hz'_check_antecedents_inversion.<locals>.H�s����y�����%���3�3�3rjc�*����� d�z |d��S)NrSTr��r_r�rr�s ���rh�Hpz(_check_antecedents_inversion.<locals>.Hp�s!����~�e�e�V�Q�u�W�a��>�>�>rjc�*����� d�z |d��S)NrSFr�r)s ���rh�Hmz(_check_antecedents_inversion.<locals>.Hm�s!����~�e�e�V�Q�u�W�a��?�?�?rj)r|r�r��_check_antecedents_inversionrrrr�r�r�r�r��NaNrrr�r r r�rUrr,r�rV)r�r{r6r�r�rtr�r�r�r�r��epsilonrr�r�r%r'r*r,r�r�rrr�r_s`` @@@@@rhr-r-2s%��������� � 0�1�1�1� � �A� �!�Q� � �D�A�q��1�u�u������+�G�A�J�J��:�:�:������$6�6�6�6�6��C���I�I�s�1�4�y�y�#�a�d�)�)�S���Y�Y�?�@�@�J�A�q�!�Q� �a�%�!�)�C� �Q����B� ��8�Q�,�C� ��E�E� ��z�z��&��� ��������%���%�i��]�S�!�$�Z� '�#�q�t�*� 4�e� ;�E� �G�E� � G� ��1�a��b�#�u� -�/�/�/� � .��%��0G�H�H�H� �G�q��s�N�N�q�A�v�v�!�q�&�&��>�?�?�?��u� �!�!�$���-�-�����1� ��E� � �!�a�%�%� �.� /� /� /��5�5�� �A�v�v��5�6�6�6��=�=�=�=�=���=�=�=�>�>�?�?�?�?�?�?�4�4�4�4�4�4�4�?�?�?�?�?�?�?�@�@�@�@�@�@�@� �E� �c�!�q�&�!�q�&�#�b�&�5�.�B�q�D�"8�%�!�)��!�A�c�!�/�"�,�b�1�f�5�6�6�6�7�7�9�9�:�:�E� �c�!�a�%�1�*�a�!�e�q�j�%�!�)�U�R��T�\�1��6��q�5�1�9�b�.�5�(�B�q�D�0��"�Q�s�1�?�2�-�q�1�u�5�6�6�6�7�7��"�Q�s�A�O�+�B�.��A��6�7�7�7�8�8�:�:�;�;�E�  �c�!�q�&�!�q�&�%�!�)��7�?�B�&��.�"�Q�$�6���!���>�>�?�?�E� �c�"�S��a�!�e��Q�#�X�s�e�A�g�~�>�>���Q��!�a�%���Q��1�q�5�!�)�);�<�<�>�>��!�)�U�R��T�\�C�!�G�R�<�%�+?�2�a�4�+G��"�Q�s�1�?�2�-�b�0�1�1�1�2�2��"�Q�s�A�O�+�B�.�r�1�2�2�2�3�3� 5�5�6�6�E�  �c�!�q�&�#��'�5�1�9�e�c�"�f�n�r�!�t�.C���=�"�$�u�,��1��4��"�Q�s�1�?�2�-�b�0�1�1�1�2�2��"�Q�s�A�O�+�B�.�r�1�2�2�2�3�3�5�5�6�6�E�  �a�1�f�X��E� �u�:�rjc ���t|j|��\}}tt|j|j|j|j|||zz ��| ��\}}||z |zS)zO Compute the laplace inversion integral, assuming the formula applies. )r�r�r rQr�rr�r)r�r{r�r�r�rs rh�_int_inversionr1�s[�� �!�*�a� (� (�D�A�q� �'�!�$���!�$���!�A�q�D�&�I�I�A�2� N� N�D�A�q� �Q�3�q�5�Lrjc�� � �!�ddlm}m�!m}m� t siat t ��t|t��r�t|j |��� |��\}}t|��dkrdS|d}|j r|j|ks |jjsdSn||krdSddt|j|j|j|j||z��fgdfS|}|�|t,��}t/|t,��}|t v�rKt |} | D�]:\} } } } |�| d���}|�ri}|���D](\}}t5t7|d���d���||<�)|}t| t8��s| �|��} | d kr��t| t8t:f��s"t5| �|����} t=| ��d kr��t| t>��s | |��} g}| D�]&\}}tAt5|�|���t,|��d���|��} |�|���t,|��}n#tB$rY��wxYwtE||fz��#tHj%tHj&tHj'��r��t|j|j|j|jt5|j d�����}|�(||fz����(|r|| fcS��<|sdStSd ��� �!fd �}|}tUd d |��}d�} |||||d d���\}}}|||||��}n #|$rd}YnwxYw|��tWdd ��}||j,vrmt[||��r] ||�|||z��|||dd ���\}}}|||||���|d��}n #|$rd}YnwxYw|�5|�#tHj%tHj.tHj&��rtSd��dSt_j0|��}g}|D]�}|� |��\}}t|��dkrtcd���|d}tA|j |��\}}||dt|j|j|j|jt5t7|d���d���||zz��fgz }��tSd|��|dfS)aH Try to rewrite f as a sum of single G functions of the form C*x**s*G(a*x**b), where b is a rational number and C is independent of x. We guarantee that result.argument.as_coeff_mul(x) returns (a, (x**b,)) or (a, ()). Returns a list of tuples (C, s, G) and a condition cond. Returns None on failure. rS)�mellin_transform�inverse_mellin_transform�IntegralTransformError�MellinTransformStripErrorNrT)�old)�lift)�exponents_onlyFz)Trying recursive Mellin transform method.c ��� �||||dd���S#�$r=ddlm}�|tt|������|||dd���cYSwxYw)z� Calling simplify() all the time is slow and not helpful, since most of the time it only factors things in a way that has to be un-done anyway. But sometimes it can remove apparent poles. T)� as_meijerg�needevalr)�simplify)r�r=rZr )�Frmr{�stripr=r6r4s ��rh�my_imtz_rewrite_single.<locals>.my_imt s����  0�+�+�A�q�!�U�7;�d�L�L�L� L��(� 0� 0� 0� /� /� /� /� /� /�+�+�����q� � �*�*�+�+�Q��5��$�0�0�0� 0� 0� 0� 0���s��?A�Armzrewrite-singlec �4�t||d���}|�^ddlm}|\}}t||d�����}t ||ft ||t jt jf��df��St ||t jt jf��S)NT)� only_doubler�� hyperexpand� nonrepsmall)�rewrite) �_meijerint_definite_4r�rD�_my_unpolarifyr6rTrr�rL)rgr{r�rDror�s rh� my_integratorz&_rewrite_single.<locals>.my_integrators��� !�!�Q�D� 9� 9� 9�� �=� 2� 2� 2� 2� 2� 2��I�C�� ���S�-�!H�!H�!H�I�I�C��c�4�[�&�q�1�a�f�a�j�*A�B�B�D�I�K�K� K���A�q�v�q�z�2�3�3�3rj)� integratorr=r<r�)rJr<r=z"Recursive Mellin transform failed.zUnexpected form...z"Recursive Mellin transform worked:)2� transformsr3r4r5r6� _lookup_tabler�r�rQr[r�r�rr�r�r,r�r�rr�rr�r_r�r��itemsr&r'rbrWrdr�r�� ValueErrorr rnrrL�ComplexInfinity�NegativeInfinityr�r|r*r%r�r0r.rr��NotImplementedError)"rgr{� recursiver3r5rr��f_r�rr��termsr�r�r��subs_rYrZror�r�r�r@rmrIr>r?r6r�rmr�r�r6r4s" @@rh�_rewrite_singlerV�sq����;�;�;�;�;�;�;�;�;�;�;�;� �,�� ��]�+�+�+��!�W��� P��!�*�a�(�(�5�5�a�8�8���q� �q�6�6�A�:�:��4� �a�D�� �8� ��v��{�{�!�%�"3�{��t�� �!�V�V��4��A�w�q�t�Q�X�q�t�Q�X�u�Q�w�G�G�H�I�4�O�O� �B� ���q�!� � �A���1� � �A��M��� �!� ��*+�# %�# %� &�G�U�D�$��7�7�7��7�-�-�D��! %���#�z�z�|�|�A�A�G�C��!+�H�R�d�,C�,C�,C�;?�"A�"A�"A�E�#�J�J���!�$��-�-�+��9�9�T�?�?�D��5�=�=��!�$��{�(;�<�<�7�%�d�i�i��o�o�6�6�D��d�#�#�u�,�,��!�%��.�.�(�!�E�$�K�K�E���#�*�*�F�C��'� �3�8�8�D�>�>�3F�3F�q�!�3L�3L�BF�)H�)H�)H�IJ�L�L�B�!��F�F�4�L�L�-�-�a��3�3����%�!�!�!� ��!���� �r�Q�D�y�*�.�.�q�z�1�;L�a�N`�a�a�!� ����a�h���a�h� *�1�:�d� K� K� K�M�M�A��J�J�r�Q�D�y�)�)�)�)��%���9�$�$�$�� ���t� � 6�7�7�7� 0� 0� 0� 0� 0� 0� �A��s�$�a�(�(�A�4�4�4��&�&�q�!�Q�=�05��F�F�F� ��5�!� �F�1�a��E� "� "���� !���� ���������y� �C�)� *� *�� �A�N� "� "�|�A�q�'9�'9� "� �.�.�q�v�v�a��1��~�~�q�!�:G�8<�u�N�N�N� ��5�!��F�1�a��E�*�*�/�/��1�5�5����)� � � ����� �����y�A�E�E�!�*�a�e�Q�->�?�?�y��3�4�4�4��t� �=�� � �D� �C� � (� (���~�~�a� � ���1� �q�6�6�A�:�:�%�&:�;�;� ;� �a�D���a�j�!�,�,���1� ��A�w�q�t�Q�X�q�t�Q�X�)�(�#$�4�+1�+1�+1�AE� G� G� G� !�1�� %�&�&�'�(� (��� � /��3�3�3� ��9�s7� .J8�8 K�K�#N=�=O�O�6AQ�Q�Qc�x�t||��\}}}t|||��}|r|||d|dfSdS)z� Try to rewrite ``f`` using a (sum of) single G functions with argument a*x**b. Return fac, po, g such that f = fac*po*g, fac is independent of ``x``. and po = x**s. Here g is a result from _rewrite_single. Return None on failure. rrSN)r�rV)rgr{rRr�r�r�s rh� _rewrite1rXJsS���A�q�!�!�J�C��Q���1�i�(�(�A��#��B��!��a��d�"�"�#�#rjc ����t|���\}}}t�fd�t|��D����rdSt|��}|sdSt t |�fd��fd��fd�g����}t jd|��D]e\}\}}t|�|��} t|�|��} | r9| r7t| d| d��} | dkr||| d | d | fcS�fdS) a  Try to rewrite ``f`` as a product of two G functions of arguments a*x**b. Return fac, po, g1, g2 such that f = fac*po*g1*g2, where fac is independent of x and po is x**s. Here g1 and g2 are results of _rewrite_single. Returns None on failure. c3�>�K�|]}t|�d��duV��dS)FN)rVr.s �rhriz_rewrite2.<locals>.<genexpr>as4����� L� L�t�?�4��E� *� *�d� 2� L� L� L� L� L� LrjNc ���ttt|d�����tt|d�������S�NrrS)�maxrr��r�r{s �rhr|z_rewrite2.<locals>.<lambda>g�=���#�c�*�Q�q�T�1�-�-�.�.��J�q��t�Q�4G�4G�0H�0H�I�I�rjc ���ttt|d�����tt|d�������Sr\)r]rr�r^s �rhr|z_rewrite2.<locals>.<lambda>hr_rjc ���ttt|d�����tt|d�������Sr\)r]rr�r^s �rhr|z_rewrite2.<locals>.<lambda>isD���#�c�0��1��q�9�9�:�:��0��1��q�9�9�:�:�<�<�rj�FTrSFr) r�r/rrr�rr r rVrU) rgr{r�r�r�rrR�fac1�fac2r�r�r�s ` rh� _rewrite2reXsT����A�q�!�!�J�C��Q� � L� L� L� L�y��|�|� L� L� L�L�L���t��!���A� ���t� �W�Q�I�I�I�I�I�I�I�I� <� <� <� <�=�>�>� ?� ?�A� $-�#4�]�A�#F�#F�3�3�� �<�D�$� �T�1�i� 0� 0�� �T�1�i� 0� 0�� � 3�"� 3��r�!�u�b��e�$�$�D��u�}�}��B��1��r�!�u�d�2�2�2�2�� 3�3rjc��t|��}g}tt||��tjhzt ���D]y}t |�|||z��|��}|s�,|�|||z ��}t|tt��r|� |���v|cS|� t��r�td��tt!|��|��}|rat#|t$��s7ddlm}|t+|��|�t.����S|�|��|rt3t5|����SdS)a# Compute an indefinite integral of ``f`` by rewriting it as a G function. Examples ======== >>> from sympy.integrals.meijerint import meijerint_indefinite >>> from sympy import sin >>> from sympy.abc import x >>> meijerint_indefinite(sin(x), x) -cos(x) r��*Try rewriting hyperbolics in terms of exp.r��collectN)rr�r�rr�r�_meijerint_indefinite_1r�rdrPrQr�rnr3r|�meijerint_indefiniter2r�r��sympy.simplify.radsimprir r�r,�extend�nextr)rgr{�resultsr�ro�rvris rhrkrkus��� �� � �A��G� �*�1�a�0�0�A�F�8�;�AQ� R� R� R����%�a�f�f�Q��A��&6�&6��:�:��� � ��h�h�q�!�a�%� � �� ��U�G� $� $� � �N�N�3� � � � ��J�J�J��u�u� � � ���;�<�<�<� !� '�� *� *�A�/�/�� � ��b�$�'�'� @�:�:�:�:�:�:��w�|�B�/�/����#���?�?�?� �N�N�2� � � ��&��G�G�$�$�%�%�%�&�&rjc �����td|d���ddlm}m}t |���}|�dS|\}}}}td|��t j} |D�]�\} } } t| j���\} }t|���\}}|| z }|| z�d|zzz|z }|dz|z �tdd t j ��}�fd �}td �|| j ��D����ritt| j��t| j��d�z gzt| j ��� gzt| j��|�� }ngtt| j��d�z gzt| j��t| j ��t| j��� gz|��}|jrA|��d���t jt j��sd}nd}||�|| �|zz��|� ��}| |||zd ���z } ���fd�}t/| d���} | jr<g}| jD]%\}}t5||����}|||fgz }�&t7|ddi�} nt5|| ����} t7| t5|��ft9|���d f��S)z0 Helper that does not attempt any substitution. z,Trying to compute the indefinite integral of�wrtr)rDr�Nz could rewrite:rSr�zmeijerint-indefinitec� ���fd�|D��S)Nc���g|]}|�z��Sr�r�)rer�r�s �rhr�z7_meijerint_indefinite_1.<locals>.tr.<locals>.<listcomp>�s���'�'�'��A��G�'�'�'rjr�)r�r�s �rhrz#_meijerint_indefinite_1.<locals>.tr�s���'�'�'�'�Q�'�'�'� 'rjc3�8K�|]}|jo |dkdkV��dS)rTN)r�rws rhriz*_meijerint_indefinite_1.<locals>.<genexpr>�s2����C�C�Q�q�|�0��a��D� 0�C�C�C�C�C�Crj)�placeTr�c���tt|��d���}tj|����d��S)a�This multiplies out superfluous powers of x we created, and chops off constants: >> _clean(x*(exp(x)/x - 1/x) + 3) exp(x) cancel is used before mul_expand since it is possible for an expression to have an additive constant that does not become isolated with simple expansion. Such a situation was identified in issue 6369: Examples ======== >>> from sympy import sqrt, cancel >>> from sympy.abc import x >>> a = sqrt(2*x + 1) >>> bad = (3*x*a**5 + 2*x - a**5 + 1)/a**2 >>> bad.expand().as_independent(x)[0] 0 >>> cancel(bad).expand().as_independent(x)[0] 1 F)�deeprS)r rZr� _from_args� as_coeff_add)ror{s �rh�_cleanz'_meijerint_indefinite_1.<locals>._clean�s@���.�����5�1�1�1���~�c�.�.�q�1�1�!�4�5�5�5rj)�evaluater|F)r|r�rDr�rXrr�r�r�r*r�r/r�rQr�r�rr�is_extended_nonnegativer�rnr.rOr7rarmrHr6rT)rgr{rDr�rr�r��glr�rorrmr�r�r�r6r��fac_r�rr�rvr{r`r�r�s ` @rhrjrj�s@���� � 9�1�e�Q�G�G�G�5�5�5�5�5�5�5�5� �1�a���B� �z��t���C��R�� � �b�!�!�!� �&�C��%-�%-���1�a��a�j�!�,�,���1��b�!�$�$���1� �Q����Q�w��Q��U��#�a�'���1�u�a�i�� �3�.��� 6� 6�� (� (� (� (� (� �C�C�"�"�Q�T�(�(�C�C�C� C� C� ^���Q�T� � �D���N�N�a��e�W�4�d�1�4�j�j�S�D�6�6I�4�PQ�PX�>�>�[\�^�^�^�A�A���Q�T� � �a��e�W�$�d�1�8�n�n�d�1�4�j�j�$�q�x�.�.�UX�TX�SY�BY�[\�^�^�A� � $� �Q�V�V�A�q�\�\�-=�-=�a�e�Q�EV�-W�-W� ��E�E��E� �K����q�!�A�q�D�&�)�)�� 7� 7� 7�� �y�y��a��t�,�,�,�,���6�6�6�6�6�4 ��t� ,� ,� ,�C� ��*����H� � �D�A�q��v�v�a�y�y�)�)�A� ��A��x� �G�G���1�5�1�1����V�V�C�[�[�)�)�� �c�>�$�/�/�0�8�A�q�>�>�4�2H� I� I�Irjc� �td||||f��t|��}|�t��rt d��dS|�t ��rt d��dS||||f\}}}}t d��}|�||��}|}||krtj dfSg} |tj ur7|tj ur)t|�|| ��|| | ��S|tj u�r9t d��t||��} t d| ��t| td� ��tj gzD]�} t d | ��| jst d ���)t#|�||| z��|��} | �t d ���bt#|�|| |z ��|��} | �t d ����| \} }| \} }t%t'||����}|dkrt d����| | z}||fcS�n\|tj ur-t|||tj ��}|d |dfS||ftj tj fkrHt#||��}|r4t)|dt*��r| �|���n�|S�n�|tj ur�t||��D]�}||z dkdkr�td|��t#|�|||z��t/||z|z ��z|��}|r5t)|dt*��r| �|����|cS��|�|||z��}||z }d}|tj urut1tjt5|��z��}t7|��}|�|||z��}|t/||z ��|zz}tj }t d||��t d|��t#||��}|r3t)|dt*��r| �|��n|S|�t8��r�t d��tt;|��|||��}|r{t=|t>��sQddl m!}|tE|d��|d�#t0����f|dd�z}|S| �$|��| rtKtM| ����SdS)a� Integrate ``f`` over the interval [``a``, ``b``], by rewriting it as a product of two G functions, or as a single G function. Return res, cond, where cond are convergence conditions. Examples ======== >>> from sympy.integrals.meijerint import meijerint_definite >>> from sympy import exp, oo >>> from sympy.abc import x >>> meijerint_definite(exp(-x**2), x, -oo, oo) (sqrt(pi), True) This function is implemented as a succession of functions meijerint_definite, _meijerint_definite_2, _meijerint_definite_3, _meijerint_definite_4. Each function in the list calls the next one (presumably) several times. This means that calling meijerint_definite can be very costly. z$Integrating %s wrt %s from %s to %s.z+Integrand has DiracDelta terms - giving up.Nz5Integrand has Singularity Function terms - giving up.r{Tz Integrating -oo to +oo.z Sensible splitting points:)r��reversez Trying to split atz Non-real splitting point.z' But could not compute first integral.z( But could not compute second integral.Fz) But combined condition is always false.rrSzTrying x -> x + %szChanged limits tozChanged function torgrh)'r�rrnr@r|rRrr�rr�rPrL�meijerint_definiter�r�r�is_extended_real�_meijerint_definite_2r9rUrdrQr�rAr,r�r#r$r3r2r�r�rlrir r�rmrnr)rgr{r�r�rS�x_�a_�b_r)ror�r��res1�res2�cond1�cond2r�ro�splitr�rpris rhr�r��s���< � 2�Q��1�a�L�A�A�A��� � �A��u�u�Z�����<�=�=�=��t��u�u� �!�!���F�G�G�G��t���1�a�Z�N�B��B�� �c� � �A� ���q�!� � �A� �A��A�v�v����~���G��A� ���1�A�J�#6�#6�!�!�&�&��Q�B�-�-��Q�B���;�;�;� �a� � � ��*�+�+�+�*�1�a�0�0� ��-�y�9�9�9�� �'7��F�F�F�!�&��Q� � �A� �)�1� -� -� -��%� ��4�5�5�5��(�����1�q�5�)9�)9�1�=�=�D��|��@�A�A�A��(�����1�q�5�)9�)9�1�=�=�D��|��A�B�B�B���K�D�%��K�D�%��S���.�.�/�/�D��u�}�}��B�C�C�C����+�C���9� � � �) �, �a�j��� ��A�q�!�*�5�5���A��w��A���� �Q��A�F�A�J�'� '� '�#�A�q�)�)�� � ��C��F�G�$�$� ����s�#�#�#�#�� �  � �� �?�?�/��1�5�5� '� '����I��N�t�+�+��0�%�8�8�8�/����q�!�e�)�0D�0D�1:�1�u�9�q�=�1I�1I�1J�KL�N�N�C��'���A���0�0�'�#�N�N�3�/�/�/�/�#&�J�J�J�� �F�F�1�a�!�e� � �� ��E�� �� �A�J� � ��a�o�c�!�f�f�,�-�-�C��A���A����q�#�a�%� � �A� ��1�q�5�!�!�#�%� %�A�� �A��"�A�q�)�)�)��$�a�(�(�(�#�A�q�)�)�� � ��C��F�G�$�$� ����s�#�#�#�#�� � �v�v� �!�!� ��;�<�<�<� � '�� +� +�R��R�9�9�� � ��b�$�'�'� �:�:�:�:�:�:��g�l�2�a�5�1�1�2�a�5�;�;�s�3C�3C�D�D�F��A�B�B��O��� � �N�N�2� � � ��&��G�G�$�$�%�%�%�&�&rjc�P�|dfg}|dd}|h}t|��}||vr||dfgz }|�|��t|��}||vr||dfgz }|�|��|�tt ��r=tt |����}||vr||dfgz }|�|��|�tt��r2ddl m }||��}||vr||dfgz }|�|��|S) z6 Try to guess sensible rewritings for integrand f(x). zoriginal integrandr�rr r zexpand_trig, expand_mul)� sincos_to_sumztrig power reduction) r r�r rnr;r3rr8r9�sympy.simplify.fur�)rgr{ro�orig�saw�expandedr��reduceds rh�_guess_expansionr�sc�� �#� $� %�C� �r�7�1�:�D� �&�C��$���H��s��� ��<�(�)�)�� ��������d�|�|�H��s��� ��8�$�%�%�� ������� �x�x�%�'9�:�:���k�$�/�/�0�0�� �3� � � �X�8�9�:� :�C� �G�G�H� � � � �x�x��S����3�3�3�3�3�3��-��%�%�� �#� � � �W�4�5�6� 6�C� �G�G�G� � � � �Jrjc���tdd|d���}|�||��}|}|dkrtjdfSt ||��D]+\}}t d|��t ||��}|r|cS�,dS)a� Try to integrate f dx from zero to infinity. The body of this function computes various 'simplifications' f1, f2, ... of f (e.g. by calling expand_mul(), trigexpand() - see _guess_expansion) and calls _meijerint_definite_3 with each of these in succession. If _meijerint_definite_3 succeeds with any of the simplified functions, returns this result. r{zmeijerint-definite2T)�positiver�TryingN)r*r�rr�r�r|�_meijerint_definite_3)rgr{�dummyr�� explanationros rhr�r��s��� �3�-�q�4� @� @� @�E� ���q�%���A� �A��A�v�v��v�t�|��*�1�a�0�0�����;��x��%�%�%�#�A�q�)�)�� � ��J�J�J� ��rjc�<��t|���}|r|ddkr|S|jrotd���fd�|jD��}t d�|D����r6g}t j}|D]\}}||z }||gz }�t|�}|dkr||fSdSdSdS)z� Try to integrate f dx from zero to infinity. This function calls _meijerint_definite_4 to try to compute the integral. If this fails, it tries using linearity. rSFz#Expanding and evaluating all terms.c�0��g|]}t|�����Sr�)rG)rer�r{s �rhr�z)_meijerint_definite_3.<locals>.<listcomp>�s$���<�<�<��%�a��+�+�<�<�<rjc3�K�|]}|duV�� dSrcr�)rer�s rhriz(_meijerint_definite_3.<locals>.<genexpr>�s&����+�+��q��}�+�+�+�+�+�+rjN)rG�is_Addr|rmrlrr�rU)rgr{ro�ressr�r�r�s ` rhr�r��s���� ��1� %� %�C� ��s�1�v����� ��x� ��4�5�5�5�<�<�<�<�Q�V�<�<�<�� �+�+�d�+�+�+� +� +� ��E��&�C�� � ���1��q����!�� ����U� �A��E�z�z��A�v� � � � � ��zrjc�:�tt|����Src)rdr&)rgs rhrHrH�s�� �j��m�m� $� $�$rjc ��ddlm}td|��|s�t||d���}|��|\}}}}td|||��tj} |D]g\} } }| dkr� t || z||| zz||��\} }| | t||��zz } t|t||����}|dkrn�ht|��}|dkrtd��n*td | ��t|| ����|fSt||��}|��)d D�]'} |\}}} }}td ||| |��tj} | D]�\}}}|D]�\}}}t||z|z||||zzz|||| ��}|�td ��dS|\} }}td | ||��t|t|||����}|dkrn| | t|||��zz } ����t|��}|dkrtd| ����td| f��|r| |fcSt|| ����|fcSdSdS)a� Try to integrate f dx from zero to infinity. Explanation =========== This function tries to apply the integration theorems found in literature, i.e. it tries to rewrite f as either one or a product of two G-functions. The parameter ``only_double`` is used internally in the recursive algorithm to disable trying to rewrite f as a single G-function. rrC� IntegratingF)rRN�#Could rewrite as single G function:�But cond is always False.z&Result before branch substitutions is:rbz!Could rewrite as two G functions:zNon-rational exponents.zSaxena subst for yielded:z&But cond is always False (full_pb=%s).z)Result before branch substitutions is: %s)r�rDr|rXrr�rpr�rUr�rHrer�r rr�)rgr{rBrDrr�r�r�r�rorrmrhr�r�r��s1�f1r��s2�f2r��f1_�f2_s rhrGrG�s��+�*�*�*�*�*� �=�!���� �>� �q�!�u� -� -� -�� �>�!� �C��Q�� �8�#�r�1� E� E� E��&�C�� � ���1�a���6�6��(��Q���1�a�4���A�>�>���1��q��1�a���(�(���4�!5�a��!;�!;�<�<���5�=�=��E�!�!�$�'�'�D��u�}�}��2�3�3�3�3��?��E�E�E�%�k�k�#�&6�&6�7�7��=�=� �1�a���B� �~�$� >� >�G�$&� !�C��R��T� �6��R��R� H� H� H��&�C� � � � ��B��"$� � �J�B��B�'��B��r� �2�a�"�r�'�l�?�(*�B��7�<�<�A��y��8�9�9�9������"#�K�A�s�C��6��3��D�D�D��t�%7��S�!�%D�%D�E�E�D��u�}�}����1�W�S�#�q�1�1�1�1�C�C���!�$�'�'�D��u�}�}��@�'�J�J�J�J��C�c�W�M�M�M��%���9�$�$�$�%�k�k�#�&6�&6�7�7��=�=�=�=�9�~� >� >rjc ���|}|}tdd���}|�||��}td|��t||��std��dStj}|jrt|j��}nt|t��r|g}nd}|�r�g}g}|�rn|� ��} t| t��r�t| ��} | jr || jz }�M t| jd|��\} } n#t$rd} YnwxYw| dkr|�| ��n�|�| ��n�| jr�t| ��} | jr || jz }��|| jjvr\ t| j |��\} } n#t$rd} YnwxYw| dkr*|�| t'| j��z��|�| ��n|�| ��|��nt)|�}t+|�}||jvr�td ||��t-t/|��d��} | d krtd ��dS|t1||z��z}td || ��t3|�||��| f��St5||��}|���|\}}}} td |||��tj}|D]a\}}}t7||z|||zz||��\}}||t9|||��zz }t;| t=||����} | d krn�bt?| ��} | d krtd��dStd|��ddl m!}t?||����}|�"tF��s|tG|��z}|�|||z��}t| tH��s| �|||z��} ddl%m&}t3|�||��| f||�||��||d��df��SdS)a� Compute the inverse laplace transform $\int_{c+i\infty}^{c-i\infty} f(x) e^{tx}\, dx$, for real c larger than the real part of all singularities of ``f``. Note that ``t`` is always assumed real and positive. Return None if the integral does not exist or could not be evaluated. Examples ======== >>> from sympy.abc import x, t >>> from sympy.integrals.meijerint import meijerint_inversion >>> meijerint_inversion(1/x, x, t) Heaviside(t) r�Tr�zLaplace-invertingzBut expression is not analytic.NrrSz.Expression consists of constant and exp shift:Fz3but shift is nonreal, cannot be a Laplace transformz1Result is a delta function, possibly conditional:r�r�z"Result before branch substitution:rC)�InverseLaplaceTransform)'rr�r|r0rr��is_Mulr�rmr�r,�popr r�r�r�r�r�r�r.rrrr"r@r6rXrr1rUr-rHr�rDrnrArbrKr�)rgr{r�rS�t_�shiftrmr`� exponentialsr#r^r�r�r�rorr�r�r�rrmrDr�s rh�meijerint_inversionr�!s���$ �B� �B� �c�����A� ���r�1� � �A� � ��"�"�"� ��1� � ���0�1�1�1��t� �F�E��x���A�F�|�|��� �A�s� � ���s����� �"���� �� $��(�(�*�*�C��#�s�#�#� $��c�{�{���;���D�I�%�D���)�#�(�1�+�q�9�9�D�A�q�q��*�����A�A�A�������6�6� �'�'��*�*�*�*��N�N�3�'�'�'�'��� $��c�{�{���;���D�I�%�D���C�H�1�1�1��-�c�g�q�9�9���1�1��.�������������A�v�v�$�+�+�A�c�#�(�m�m�O�<�<�<����s�#�#�#�#����s�#�#�#�;� $�<�\�"�� ��M��������?��E�J�J�J��"�U�)�)�Q���� �5�=�=� �H� I� I� I��4�� �1�u�9�%�%�%���B�C��N�N�N��#�(�(�1�b�/�/�4�0�1�1�1� �1�a���B� �~����R��D��4�c�2�q�A�A�A��f��� � �G�A�q�!�%�c�!�e�R��1��W�a��;�;�D�A�q� �1�^�A�q�!�,�,�,� ,�C��t�9�!�Q�?�?�@�@�D��u�}�}�����d�#�#�� �5�=�=� �.� /� /� /� /� /� �7�� =� =� =� 2� 2� 2� 2� 2� 2� ���S�!1�!1�2�2�C��7�7�9�%�%� $��y��|�|�#���(�(�1�a�%�i�(�(�C��d�D�)�)� /��y�y��A��I�.�.�� ;� ;� ;� ;� ;� ;��c�h�h�q�"�o�o�t�4�5�5�b�g�g�a��n�n�a��T�R�R�TX�Y�[�[� [�/�~s$�5D� D#�"D#�F(�( F7�6F7)rgrr{rr�r�r�)F)�r�� __future__rr �sympyr� sympy.corerr�sympy.core.addr�sympy.core.basicr�sympy.core.cacher �sympy.core.containersr �sympy.core.exprtoolsr �sympy.core.functionr r rrr�sympy.core.mulr�sympy.core.intfuncr�sympy.core.numbersrr�sympy.core.relationalrrr�sympy.core.sortingrr�sympy.core.symbolrrrr�sympy.core.sympifyr�(sympy.functions.combinatorial.factorialsr �$sympy.functions.elementary.complexesr!r"r#r$r%r&r'r(r)r*r+�&sympy.functions.elementary.exponentialr,r-r.�#sympy.functions.elementary.integersr/�%sympy.functions.elementary.hyperbolicr0r1r2r3�(sympy.functions.elementary.miscellaneousr5�$sympy.functions.elementary.piecewiser6r7�(sympy.functions.elementary.trigonometricr8r9r:r;�sympy.functions.special.besselr<r=r>r?�'sympy.functions.special.delta_functionsr@rA�*sympy.functions.special.elliptic_integralsrBrC�'sympy.functions.special.error_functionsrDrErFrGrHrIrJrKrLrMrN�'sympy.functions.special.gamma_functionsrO�sympy.functions.special.hyperrPrQ�-sympy.functions.special.singularity_functionsrR� integralsrT�sympy.logic.boolalgrUrVrWrXrY� sympy.polysrZr[�sympy.utilities.iterablesr\�sympy.utilities.miscr]r|r^r�r_rdr��sympy.utilities.timeutilsr��timeitr�rNr�r�r�r�r�r�rrrrr r#�__annotations__r*r%r0r9rdrirpr�r�r�r rrr-r1rLrVrXrerkrjr�r�r�r�rHrGr�r�rjrh�<module>r�s5�����8#�"�"�"�"�"�������������������������"�"�"�"�"�"�$�$�$�$�$�$�'�'�'�'�'�'�-�-�-�-�-�-�8�8�8�8�8�8�8�8�8�8�8�8�8�8�������#�#�#�#�#�#�+�+�+�+�+�+�+�+�:�:�:�:�:�:�:�:�:�:�8�8�8�8�8�8�8�8�:�:�:�:�:�:�:�:�:�:�:�:�&�&�&�&�&�&�>�>�>�>�>�>���������������������������G�F�F�F�F�F�F�F�F�F�7�7�7�7�7�7�9�9�9�9�9�9�9�9�9�9�9�9�9�9�9�9�9�9�J�J�J�J�J�J�J�J�������������M�M�M�M�M�M�M�M�M�M�M�M�I�I�I�I�I�I�I�I�M�M�M�M�M�M�M�M�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�9�9�9�9�9�9�8�8�8�8�8�8�8�8�M�M�M�M�M�M�������J�J�J�J�J�J�J�J�J�J�J�J�J�J�&�&�&�&�&�&�&�&�9�9�9�9�9�9�0�0�0�0�0�0�2�2�2�2�2�2� �E�#�J�J�����JP�JP�JP�b/�.�.�.�.�.� ��)� � �� N� N� N� N� � � � � �*� � � �H�H�H�D���BI�I�I� !�!�!�H$�$�$�N���.I�I�I�> 0� 0� 0� Q�Q�Q�D�D�D�2+-��,�,�,�,�  �  �  �#�#�#�O�O�O� y�y�y�y�v"�"�"� � � � ����*m�m�m�m�`&�&�&�<F.�F.�F.�F.�Rj�j�j�` 2�2�2�: Q� Q� Q�w�w�w�t���� � ��I�I�I��� ��I�X #� #� #� #�3�3�3�:"&�"&�"&�JWJ�WJ�WJ�t�G&�G&���G&�T���@���<���0%�%�%��D>�D>�D>���D>�Nn[�n[�n[�n[�n[rj
Memory