� ��g�R���dZddlZddlZddlmZmZmZddlmZddl m Z ddl m Z ddl mZmZmZmZmZmZmZmZmZmZddlmZmZdd lmZmZmZmZm Z m!Z!m"Z"m#Z#dd l$m%Z%dd l&m'Z'm(Z(m)Z)dd l*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0dd l1m2Z2m3Z3ddl4m5Z5m6Z6m7Z7m8Z8ddl9m:Z:m;Z;m<Z<ddl=m>Z>m?Z?ddl@mAZAmBZBmCZCmDZDddlEmFZFmGZGmHZHmIZIddlJmKZKmLZLddlMmNZNmOZOmPZPddlQmRZRmSZSmTZTmUZUddlVmWZWddlXmYZYmZZZddl[m\Z\m]Z]m^Z^ddl_m`Z`maZambZbmcZcmdZdddlemfZfddlgmhZhddlimjZjddlkmlZlddlmmnZnddlompZpdd lqmrZrdd!lsmtZtmuZumvZvdd"lwmxZxdayd#�Zzd$�Z{d%�Z|ezd&���Z}ezd'���Z~ezd(���Ze d)���Z�ezd*���Z�ezd+���Z�ezd,���Z�ezd-���Z�ezd.���Z�ezd/���Z�ezd0���Z�ezd1���Z�ezd2���Z�ezd3���Z�ezd4���Z�ezd5���Z�ezd6���Z�ezd7���Z�d8�Z�d9�Z�ezd:���Z�Gd;�d<e]��Z�dQd>�Z�ezd?���Z�ezd@���Z�e dA���Z�ezdB���Z�ezdC���Z�ezdD���Z�ezdE���Z�ezdF���Z�ezdG���Z�ezdH���Z�ezdI���Z�ezdJ���Z�ezdK���Z�ezdL���Z�GdM�dNe]��Z�dRdO�Z�dP�Z�dS)SzLaplace Transforms�N)�S�pi�I)�Add)�cacheit)�Expr) � AppliedUndef� Derivative�expand�expand_complex� expand_mul� expand_trig�Lambda� WildFunction�diff�Subs)�Mul�prod)� _canonical�Ge�Gt�Lt� Unequality�Eq�Ne� Relational)�ordered)�Dummy�symbols�Wild)�re�im�arg�Abs� polar_lift�periodic_argument)�exp�log)�cosh�coth�sinh�asinh)�Max�Min�sqrt)� Piecewise�piecewise_exclusive)�cos�sin�atan�sinc)�besseli�besselj�besselk�bessely)� DiracDelta� Heaviside)�erf�erfc�Ei)�digamma�gamma� lowergamma� uppergamma)�SingularityFunction)� integrate�Integral)� _simplify�IntegralTransform�IntegralTransformError)�to_cnf� conjuncts� disjuncts�Or�And)� MatrixBase)� _lin_eq2dict)�PolynomialError)�roots)�Poly)�together)�RootSum)�sympy_deprecation_warning�SymPyDeprecationWarning�ignore_warnings)�debugfc����fd�}|S)Nc�b��ddlm}|s�|i|��Stdkrtdtj���tddtz��j�|��tj���tdz a�jdks �jd krGd t_td dtzztj����|i|��}d t_n�|i|��}tdzatddtz�d |��tj���tdkrtdtj���|S)Nr�� SYMPY_DEBUGzO ------------------------------------------------------------------------------��file�-LT- � ��_laplace_transform_integration�&_inverse_laplace_transform_integrationFz**** %sIntegrating ...Tz---> zO------------------------------------------------------------------------------ )�sympyr\� _LT_level�print�sys�stderr�__name__)�args�kwargsr\�result�funcs ��g/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/sympy/integrals/laplace.py�wrapzDEBUG_WRAP.<locals>.wrap1sV���%�%�%�%�%�%�� )��4��(��(�(� (� ��>�>� �-�c�j� 1� 1� 1� 1� ��t�I�~�~�t�}�}�d�d�C��:� � � � ��Q�� �� �!A�A�A�� �!I�I�I� %�E� � �*�d�9�n�=�C�J� O� O� O� O��T�4�*�6�*�*�F� $�E� � ��T�4�*�6�*�*�F��Q�� � ��$�y�.�.�.�&�&�9�� �K�K�K�K� ��>�>� �-�c�j� 1� 1� 1� 1�� ��)rmros` rn� DEBUG_WRAPrr0s#��������4 �Krpc�j�ddlm}|r*tddtz�|��tj���dSdS)Nrr[r_r`r])rdr\rfrergrh)�textr\s rn�_debugruNsU��!�!�!�!�!�!��E� ��T�)�^�^�T�T�2���D�D�D�D�D�D�E�Erpc���������fd������fd���fd���fd�}d�}ddlm}||��}||t���}||t�fd���}||t|��}t |��S) a Naively simplify some conditions occurring in ``expr``, given that `\operatorname{Re}(s) > a`. Examples ======== >>> from sympy.integrals.laplace import _simplifyconds >>> from sympy.abc import x >>> from sympy import sympify as S >>> _simplifyconds(abs(x**2) < 1, x, 1) False >>> _simplifyconds(abs(x**2) < 1, x, 2) False >>> _simplifyconds(abs(x**2) < 1, x, 0) Abs(x**2) < 1 >>> _simplifyconds(abs(1/x**2) < 1, x, 1) True >>> _simplifyconds(S(1) < abs(x), x, 1) True >>> _simplifyconds(S(1) < abs(1/x), x, 1) False >>> from sympy import Ne >>> _simplifyconds(Ne(1, x**3), x, 1) True >>> _simplifyconds(Ne(1, x**3), x, 2) True >>> _simplifyconds(Ne(1, x**3), x, 0) Ne(1, x**3) c�J��|�krdS|jr|j�kr|jSdS)Nra)�is_Pow�baser')�ex�ss �rn�powerz_simplifyconds.<locals>.powerws1��� ��7�7��1� �9� ���A����6�M��trpc�`��|����r|����rdSt|t��r |jd}t|t��r |jd}|����r�d|z d|z ��S�|��}|�dS |dkr3t|��t���|zktjkrdS|dkr3t|��t���|zktjkrdSdSdS#t $rYdSwxYw)z_ Return True only if |ex1| > |ex2|, False only if |ex1| < |ex2|. Else return None. NrraFT)�has� isinstancer$rjr�true� TypeError)�ex1�ex2�n�a�biggerr|r{s ����rnr�z_simplifyconds.<locals>.bigger~s<��� �7�7�1�:�:� �#�'�'�!�*�*� ��4� �c�3� � � ��(�1�+�C� �c�3� � � ��(�1�+�C� �7�7�1�:�:� (��6�!�C�%��3��'�'� '� �E�#�J�J�� �9��4� ��1�u�u�#�c�(�(�c�!�f�f�a�i�/�A�F�:�:��u��1�u�u�#�c�(�(�c�!�f�f�a�i�/�A�F�:�:��t��u�:�:��� � � ��4�4� ���s�)7D�"7D� D-�,D-c���|jst|t��r|jst|t��s||kS�||��}|�| S||kS)z simplify x < y )� is_positiverr$)�x�y�rr�s �rn�repliez_simplifyconds.<locals>.replie�sg����� �*�Q��"4�"4� �� � �)3�A�s�);�);� ���E�N� �F�1�a�L�L�� �=��5�L��A��rpc�H���||��}|dvrdSt||��S)N�TFT)r)r�r��br�s �rn�repluez_simplifyconds.<locals>.replue�s2��� �F�1�a�L�L�� � � � ��4��!�Q���rpc�<�|dvrt|��S|j|�S)Nr�)�bool�replace)rzrjs rn�replz_simplifyconds.<locals>.repl�s'�� �� � ���8�8�O��r�z�4� � rpr)� collect_absc����||��S�Nrq)r�r�r�s �rn�<lambda>z _simplifyconds.<locals>.<lambda>�s���v�v�a��|�|�rp)�sympy.simplify.radsimpr�rrrr) �exprr{r�r�r�r�r�r|r�s `` @@@rn�_simplifycondsr�Vs��������B�������������,����� � � � � � !�!�!� 3�2�2�2�2�2� �;�t� � �D� �4��b�&� !� !�D� �4��b�3�3�3�3� 4� 4�D� �4��j�&� )� )�D� �T�7�7�Nrpc�R�t||�t����S)zs Expand an expression involving DiractDelta to get it as a linear combination of DiracDelta functions. )rO�atomsr:�r�s rn�expand_dirac_deltar��s �� ��d�j�j��4�4� 5� 5�5rpc����� � � �td��� |�t��rdSt|t � �z��z�t jt jf��}|�t��s;t|� � ���|��t j t j fS|j sdS|jd\}}|�t��rdS� �fd�� � fd�t|��D��}d�|D��}|s d�|D��}t!t#|����}d�� |�� fd �� ��|sdS|d\}} � �fd �} |r"t'|� |��}t'| � |��} t|� � ���|��| |��t)| | ����fS) z� The backend function for doing Laplace transforms by integration. This backend assumes that the frontend has already split sums such that `f` is to an addition anymore. r{Nrc� ���ddlm}tj}tj}t t |����}tdt�g���\}}}}}} } |tt�|z|z����z|k|tt�|z|z����z|ktt�|z|z|z|����|ktt�|z|z|z|����|kttt�|z��|z|z|����|kttt�|z��|z|z|����|kf} |D�]D} tj } g}t| ��D�]�}|jr�|jjvr|j}|jr#t'|t(t*f��r|j}| D]}|�|����rn��rG�|jr:�|�|z t2dz krt5��|z�� dk}|�|t7|tt�| z����z|z��t�|z��| zzz dk����sc|�t7|tt�|z| z|����|zz ��t�|z��| zzdk����sp|�|t7ttt���|z| z|����|z��t�|z��| zzz dk����r9t9�fd�|||| | fD����rt5����|k}|�t4d����t5������}|jr3|jdvs*|� ���s|� ���s||gz }���||���}|jr |jdvr||gz }���|j!�krd StE|j!| ��} ���| tj urtG| |��}��-tI|tK|���}��F||jr|j&n|fS) z7 Turn ``conds`` into a strip and auxiliary conditions. r��_solve_inequalityzp q w1 w2 w3 w4 w5��cls�exclude�c3�2�K�|]}�|jV��dSr�)r�)�.0�wild�ms �rn� <genexpr>zH_laplace_transform_integration.<locals>.process_conds.<locals>.<genexpr>�s:�����-�-�T�Q�t�W�0�-�-�-�-�-�-rpc�Z�|������dS�Nr)r � as_real_imag)r�s rnr�zG_laplace_transform_integration.<locals>.process_conds.<locals>.<lambda>�s��!�(�(�*�*�"9�"9�";�";�A�">�rp)z==z!=N)'�sympy.solvers.inequalitiesr�r�NegativeInfinityr�rJrIrr r$r#r&r%�InfinityrK� is_Relational�rhs� free_symbols�reversedrrr� reversedsign�matchr�rr!r2�allr��subs�rel_opr~�ltsr.r-rMrL� canonical)�condsr�r��aux�p�q�w1�w2�w3�w4�w5�patterns�c�a_�aux_�d�pat�d_�solnr�r{�ts @��rn� process_condsz5_laplace_transform_integration.<locals>.process_conds�s����@�@�@�@�@�@� � ���f���&��-�-�(�(��#*� �d�Q�C�$9�$9�$9� ��1�b�"�b�"�b� �c�#�q�2�v�q�j�/�/�"�"� "�R� '� �c�#�q�2�v�q�j�/�/�"�"� "�b� (� �!�1�r�6�A�+�a�-��4�4� 5� 5�� :� �!�1�r�6�A�+�a�-��4�4� 5� 5�� ;� �!�:�a�"�f�#5�#5��"9�!�";�R�@�@� A� A�B� F� �!�:�a�"�f�#5�#5��"9�!�";�R�@�@� A� A�R� G� I���- *�- *�A���B��D��q�\�\�& +�& +���?�#�q�A�E�,>�'>�'>�� �A��?�'�z�!�b�"�X�'>�'>�'���A�#���C����� � �A�������+��1��)�+�a��e�A�a�D�j�B�q�D�.@�.@��A��"��I�����*�A��G�G�A��B�s�3�q��t�9�9�~�~�$5�b�$8� 9� 9�#�a��e�*�*�b�.� H�H�1�L�M�M���,�����A��$5�a��e�B�h��$B�$B� C� C�B� F�F�G�G��A�r�E� � �B��'�)*�+�,�,�A��2�����C�� 1�*�Q�-�-��2C�B�2F�� J� J�K�K�B�N���!�!�R�%�j�j�"�n�-�-�/0�1�2�2�A��%��-�-�-�-��B��B��>,�-�-�-�-�-�%��1����!�� �A��Y�Y��>�>�@�@�@D��R��U�U�A�����O��/0�x�<�/G�/G��6�6�!�9�9�0H�,.�F�F�1�I�I�0H��Q�C�K�D��(�(��Q�/�/���)��T�[�L�-H�-H��Q�C�K�D���8�q�=�=��4�4�4��T�X�r�*�*�B�B����#�#���A�J�J����#�r�4�y�)�)����3�#4�=�#�-�-�#�=�=rpc�&��g|] }�|����Srqrq)r�r�r�s �rn� <listcomp>z2_laplace_transform_integration.<locals>.<listcomp>s#��� 7� 7� 7�!�]�]�1� � � 7� 7� 7rpc�f�g|].}|dtjkr|dtju�,|��/S)rar)r�falser��r�r�s rnr�z2_laplace_transform_integration.<locals>.<listcomp>sH��:�:�:�A�!�A�$��g�#�#��A�$�a�&8�8�8��8�8�8rpc�>�g|]}|dtjk�|��S�ra)rr�r�s rnr�z2_laplace_transform_integration.<locals>.<listcomp>s#��6�6�6��a��d�a�g�o�o�!�o�o�orpc�6�|dvrdS|���S)Nr�r)� count_opsr�s rn�cntz+_laplace_transform_integration.<locals>.cnts"�� �=� � ��1��~�~���rpc�8��|d �|d��fS�Nrrarq)r�r�s �rnr�z0_laplace_transform_integration.<locals>.<lambda>s���q��t�e�S�S��1��Y�Y�/�rp��keyc�0��|�����Sr��r�)r�r{�s_s ��rn�sbsz+_laplace_transform_integration.<locals>.sbs"s����y�y��B���rp)rr~r:rDr'r�Zeror�rErFr�r�r�� is_PiecewiserjrK�listr�sortr�r)�fr�r��simplify�F�condr��conds2r�r�r�r�r�r{s `` @@@rnrbrb�s������� �c� � �A��u�u�Z�����t��!�C���1��I�I�+��1�6�1�:�6�7�7�A� �5�5��?�?�N������2����1�1�1�3E�q�v�M�M� �>���t��f�Q�i�G�A�t��u�u�X�����t�=>�=>�=>�=>�=>�=>�~ 8� 7� 7� 7�y���� 7� 7� 7�E�:�:��:�:�:�F� �7�6�6�U�6�6�6�� ����� !� !�E� � � � �J�J�/�/�/�/�J�0�0�0� ���t� �1�X�F�A�s� � � � � � ��(� �1�a�� #� #���S�!�Q�'�'�� �Q�V�V�A�r�]�]�H� -� -�s�s�1�v�v�z�#�#�c�(�(�7K�7K� K�Krpc����t|t��s|S|����x}�|���S|j}�fd�|jD��}||�S)a This is an internal helper function that traverses through the epression tree of `f(t)` and collects arguments. The purpose of it is that anything like `f(w*t-1*t-c)` will be written as `f((w-1)*t-c)` such that it can match `f(a*t+b)`. Nc�0��g|]}t|�����Srq��_laplace_deep_collect)r�r#r�s �rnr�z)_laplace_deep_collect.<locals>.<listcomp>7s$��� <� <� <�c� !�#�q� )� )� <� <� <rp)rr�as_poly�as_exprrmrj)r�r�r�rmrjs ` rnr�r�*sm��� �a�� � ���� �Y�Y�q�\�\���&��y�y�{�{�� �6�D� <� <� <� <�Q�V� <� <� <�D� �4��;�rpc ��O��td���td��}td�g���}td�g���}td�g���}td�g���}td�g���}�fd �}td ��g|||z tjtj|f�t |�z|z ��t| |z|z ��t|��z tt|d k|d k��t|d k|d k����tj |f�t |�z|z ��td ��tt|d k|d k��t|d k|d k����tj |f�t|�z|z ��t| |z|z ��|z t|d k|d k��tj|f�t|�z|z ��d t| |z|z ��z |z t|d k|d k��tj|f�t|�z|z ��d |z t|d k|d k��tj|f�t|�z|z ��d t|d k|d k��tj|f��d |d zz tjtj|f�d |�z|zz t| |z |z�� t| |z |z��z|z tt||z ����tktj|f�d t!|�z|z��z t!|tz|z ��t||z |z��zt#t!||z |z����z|z tt||z ����tktj|f�|�z|ztd�� d z zd |td �� d z zzd t|z|z td ��d z zzt||z |z��zt#t!||z |z����z|z z tt||z ����tktj|f�t!����|zz t!t|z ��tt!|��zt||z��zt#t!||z����zz tt|����tktj|f�d |t!���z�dzzz t|td ��d z zzt||z��zt#t!||z����ztjtj|f��|zt%|d z��||d zzz |dktj|f�|�z|z|zt'|d z||z |z��t| |z |z��z||d zzz |z t|dktt||z ����tk��tj|f��|z�|zz ||zt%|d z��zt'| ||z��zt|dktt|����tk��tj|f�t|�z|z ��t| ��||z z tjt)|��|f��t|�z|z ��zt| ��||z d zz tjt)|��|f��|zt|�z��zt%|d z��||z |d zzz t)|��dkt)|��|f�t| �d zz��t!tdz |z ��t|d zdz |z ��zt#|t!d|z��z ��zt)|��d ktj|f��t| �d zz��zd d |zz d t!t��z d|ztd��d z zz |zt#|t!d|z��z ��zz t)|��d ktj|f�t| �z ��d t!||z ��zt+d d t!||z��z��zt)|��d ktj|f�t!���t| �z ��ztd ��d z t!t|dzz ��zd d t!||z��zzztdt!||z��z��zt)|��d ktj|f�t| �z ��t!���z t!t|z ��tdt!||z��z��zt)|��d ktj|f�t| �z ���t!���zz t!t|z ��tdt!||z��z��zt)|��d ktj|f��|zt| �z ��zd ||z |d zd z zzt+|d zd t!||z��z��zt)|��d ktj|f�tdt!|�z��z��|dzt!t|z��|td�� d z zzt||z ��zt#t!||z ����zz tt|����tktj|f�tdt!|�z��z��t!���z t|z td ��d z zt||z ��zt#t!||z ����ztt|����tktj|f�t| t� ��z��|| zt-||��ztjtj|f�t| t���z��||zt'| |��zt)|��d ktj|f�t/|�z��t/ttj��|z|z �� |z |d ktj|f�t/d |�zz��t||z �� |z t| |z ��ztt|����tktj|f�t/|�z|z��t/|��t||z |z ��|z |zt| |z ��zz |z |zt|d ktt|����tk��tj|f�t/���t!���z t!t|z �� t/d|zttj��z��ztjtj|f��|zt/���zt%|d z��|| d z zzt3|d z��t/|��z zt)|��dktj|f�t/|�z��d zt/ttj��|z|z ��d ztd zdz z|z |d ktj|f�t5|�z��||d z|d zzz tjtt7|����|f�tt5|�z����||d z|d zzz t9t|zd z |z ��z|d ktj|f�t5|�z���z t;||z ��tjtt7|����|f�t5|�z��d z�z t/d d|d zz|d zz z��dz tjd tt7|����z|f�t5|�z��d z�d zz |t;d |z|z ��z|t/d d|d zz|d zz z��zdz z tjd tt7|����z|f�t5d t!|�z��z��t!t|z��|z t!|��z t| |z ��ztjtj|f�t5d t!|�z��z���z tt=t!||z ����ztjtj|f�t?|�z��||d z|d zzz tjtt7|����|f�t?|�z��d z|d zd |d zzz|d zd|d zzzz |z tjd tt7|����z|f�t!���t?d t!|�z��z��zt!t��d z |td�� d z zz|d |zz zt| |z ��ztjtj|f�t?d t!|�z��z��t!���z t!t|z ��t| |z ��ztjtj|f�t5|�z��t5|�z��zd |z|z|z|d z||zd zzz |d z||z d zzz tjtt7|����tt7|����z|f�t?|�z��t5|�z��z||d z|d zz |d zzz|d z||zd zzz |d z||z d zzz tjtt7|����tt7|����z|f�t?|�z��t?|�z��z||d z|d zz|d zzz|d z||zd zzz |d z||z d zzz tjtt7|����tt7|����z|f�tA|�z��||d z|d zz z tjtt)|����|f�tC|�z��||d z|d zz z tjtt)|����|f�tA|�z��d zd |d zz|dzd|d zz|zz z tjd tt)|����z|f�tC|�z��d z|d zd |d zzz |dzd|d zz|zz z tjd tt)|����z|f�tA|�z���z t/||z||z z ��d z tjtt)|����|f��|ztA|�z��zt%|d z��d z ||z | d z z||z| d z zz z|dkt|��|f��|ztC|�z��zt%|d z��d z ||z | d z z||z| d z zzz|dkt|��|f�tAd t!|�z��z��t!t|z��|z t!|��z t||z ��ztjtj|f�tCd t!|�z��z��d |z t!t|z��|z t!|��z t||z ��zt=t!||z ����zztjtj|f�t!���tAd t!|�z��z��zttd ��d z z|td�� d z zz|d z |zzt||z ��zt=t!||z ����z|td ��d z z|dzzz tjtj|f�t!���tCd t!|�z��z��zttd ��d z z|td�� d z zz|d z |zzt||z ��ztjtj|f�tAd t!|�z��z��t!���z ttd ��d z z|td �� d z zzt||z ��zt=t!||z ����ztjtj|f�tCd t!|�z��z��t!���z ttd ��d z z|td �� d z zzt||z ��ztjtj|f�tAt!|�z����d zt!���z ttd ��d z zd z |td �� d z zzt||z ��d z ztjtj|f�tCt!|�z����d zt!���z ttd ��d z zd z |td �� d z zzt||z ��d zztjtj|f�t=|�z��t|d zd |zd zz ��t#|d |zz ��z|z dtt|����ztktj|f�t=t!|�z����t!|��t!||z��z |z tjtEtjt)|�� ��|f�t|�z��t=t!|�z����zt!|��t!|��z ||z z tjtEtjt)|����|f�t=t!|�z ��d z ��d tt!||z�� ��z |z t)|��d ktj|f�t#t!|�z����t!||z��t!|��z t!||z��z |z tjt)|�� |f�t|�z��t#t!|�z����zd |t!||z��zz tjtj|f�t#t!|�z ��d z ��tt!||z�� ��|z t)|��d ktj|f�tG||�z��||zt!|d z|d zz��|t!|d z|d zz��z|zzz t)|��dktt7|����|f��|ztG||�z��zd |zt!t��z t%|tj$z��z||zz|d z|d zz| tj$z zztt)|��tj$ ktK||����tt7|����|f��|ztG||�z��zd |d zzt!t��z t%|td��d z z��z||zz|z|d z|d zz| td��d z z zztt)|��dktK||d z����tt7|����|f�tGd d t!|�z��z��t| |z ��|z tjtj|f��|ztG|d t!|�z��z��z||d z z|| d z zzt| |z ��ztt)|��dktK||tj$z����tj|f�tGd |t!�d z|�zz��z��t||z|t!|d z|d zz��zz ��t!|d z|d zz��z tt|����tktt7|����|f�tM||�z��||zt!|d z|d zz ��|t!|d z|d zz ��z|zzz t)|��dktt)|����|f��|ztM||�z��zd |zt!t��z t%|tj$z��z||zz|d z|d zz | tj$z zztt)|��tj$ ktK||����tt)|����|f��|ztM||�z��zd |d zzt!t��z t%|td��d z z��z||zz|z|d z|d zz | td��d z z zztt)|��dktK||d z����tt)|����|f��|ztM|d t!|�z��z��z||d z z|| d z zzt||z ��ztt)|��dktK||tj$z����tj|f�tOd |�z��dtz tQ||z ��zt!|d z|d zz��z tjtt7|����|f�t+d |�z��t/|t!|d z|d zz ��z|z ��t!|d z|d zz ��z tjt)|�� |f�}|�|fS)aY This is an internal helper function that returns the table of Laplace transform rules in terms of the time variable `t` and the frequency variable `s`. It is used by ``_laplace_apply_rules``. Each entry is a tuple containing: (time domain pattern, frequency-domain replacement, condition for the rule to be applied, convergence plane, preparation function) The preparation function is a function with one argument that is applied to the expression before matching. For most rules it should be ``_laplace_deep_collect``. r�r{r��r�r�r��tau�omegac�$��t|���Sr�r�)r�r�s �rn�dcoz!_laplace_build_rules.<locals>.dcoTs���,�Q��2�2�2rpz&_laplace_build_rules is building rulesrrar��g�?�������������))rr rurr�r�r:r'r$rLrMr�r;r>r#rr/r=r@rBr!r8rAr(� EulerGammar?r3r"r*r4r<r2r+r)r-r7�Halfrr6r9r,) r{r�r�r�r�r�r��laplace_transform_rulesr�s @rn�_laplace_build_rulesr;s�#���$ �c� � �A� �c� � �A� �S�1�#����A� �S�1�#����A� �S�1�#����A� �u�q�c� "� "� "�C� ��1�#� &� &� &�E�2�2�2�2�2� � 3�4�4�4�y� �A�a�C� ����� �y� �A�a�C��E� � �C���1��Q��K�K��A���.� �C��A��q�A�v� � ��A��E�1��6� 2� 2� 3� 3� � �S� "�y� �A�a�C��E� � �A�a�D�D� �C��A��q�A�v� � ��A��E�1��6� 2� 2� 3� 3� � �S� "� y� �1�Q�3�q�5� � �3��r�!�t�A�v�;�;�q�=� �Q��U�A��E� � �A�F�C� )�y� �1�Q�3�q�5� � �A�c�1�"�Q�$�q�&�k�k�M�1�,� �Q��U�A��E� � �A�F�C� )�y� �1�Q�3�q�5� � �1�Q�3� �Q��U�A��F� � �Q�V�S� *�y� �1�Q�3�q�5� � �1� �Q��U�A��E� � �A�F�C� )�y�" �A�a��d�F� ����� �#y�& �A�a�C��E��S�!��A��a��[�[�L��Q�B�q�D��F���+�A�-� �S��1��X�X���� �Q�V�S� *�'y�* �4��!��A��;�;���Q�r�T�!�V� � �S��1��Q��Z�Z�/��T�!�A�#�a�%�[�[�0A�0A�A�!�C� �S��1��X�X���� �Q�V�S� *�+y�. �A�#�a�%�A�a�D�D�5��7� � �1��!���u�Q�w�<���2�a�4��6�Q�q�T�T�!�V�,�,�S��1��Q��Z�Z�7�$�t�A�a�C��E�{�{�:K�:K�K�A�M� M� �S��1��X�X���� �Q�V�S� *�/y�4 �a���!�A�#���R��T� � �2�d�1�g�g�:�c�!�A�#�h�h�#6�t�D��1��I�I���#F�F� �S��V�V���r� �1�6�3� (�5y�8 �A�d�1�g�g�I��C�� � !�2�a�!�A�$�$�q�&�k�>�#�a��c�(�(�#:�4��Q�q�S� � �?�?�#J� ����� �9y�< �A��u�Q�q�S�z�z�!�a��c�(�"� �R����� �=y�@ �A�#�a�%�!��Z��!��Q�q�S��U�+�+�C���1��Q��K�K�7��A�a�C��@��B� �Q��V�S��Q�q�S���]�]�R�'� (� (�!�&�#� 7�Ay�D �A��q��s��Q��T�%��!��*�*�_�Z���A�a�C�%8�%8�8� �Q��V�S��Q���[�[�2�%� &� &���� 5�Ey�H �Q�q�S��W���s�C�4�y�y�!�A�#�� ���A���� �Iy�L �3�q��s�3�w�<�<���c�T���A�a�C�!�8�+� ���A���� �My�P �A��c�!�A�#�h�h���a��c� � �A�a�C�1�Q�3�<�/� �A�����R��U�U�C� !�Qy�T �a�R��1��W���t�B�q�D��F�|�|�C��1��Q��q��M�M�1�$�q��a��c���{�2C�2C�C� �A�����A�F�C� !�Uy�X �3��r�!�Q�$�w�<�<�� �A�a�C���4��8�8��Q�q�S�A�a�D�D��F�O�+�A�-�d�1�T�!�A�#�Y�Y�;�.?�.?�?� ?� �A�����A�F�C� !�Yy�^ �a�R��T���A�d�1�Q�3�i�i�K���1�T�!�A�#�Y�Y�;� 7� 7�7� �A���!��Q�V�S� "�_y�b �a����a�R��T��� � �1���a���R��1��W� � � �q��4��!��9�9��}� -�c�"�T�!�A�#�Y�Y�,�.?�.?� ?� �A���!��Q�V�S� "�cy�h �a�R��T���4��7�7� �D��A��J�J�s�2�d�1�Q�3�i�i�<�'8�'8�8� �A���!��Q�V�S� "�iy�l �a�R��T���A�d�1�g�g�I� ��R��T� � �3�r�$�q��s�)�)�|�+<�+<� <� �A�����A�F�C� !�my�p �A��c�1�"�Q�$�i�i���A�a�C�A�a�C��7�+�+�G�A�a�C��4��!��9�9��,E�,E�E� �A�����A�F�C� !�qy�t �R��Q�q�S� � �\� � � �R���b��d���A��1����a��L�(��Q�q�S���1�D��a��c���O�O�C� C� �S��V�V���r� �1�6�3� (�uy�z �R��Q�q�S� � �\� � �4��7�7� "�R��T�Q�q�T�T�!�V�$4�S��1��X�X�$=�d�4��!��9�9�o�o�$M� �S��V�V���r� �1�6�3� (�{y�~ �a�R��Q�B���Z���!�q�b�'�*�Q��"2�"2�2� ����� �y�B �a�R��A���Y����A��j�!��Q�/�/�/� �A�����A�F�C� !�Cy�F �Q�q�S���C��A�L�)�)�!�+�A�-�.�.�.�q�0� �Q����� �Gy�J �Q�q��s�U���c�!�A�#�h�h�Y�q�[��Q�B�q�D���)� �S��V�V���r� �1�6�3� (�Ky�N �Q�q�S��U���c�!�f�f�S��1��Q��Z�Z��\�!�^�B��r�!�t�H�H�4�4�a�7��9� �Q��U�C��A���K�K�"�$� %� %�q�v�s� 4�Oy�R �Q����Q����$�r�!�t�*�*��S��1��S���->�->�)>�%?�%?�?� ����� �Sy�V �A��c�!�f�f��e�A�a�C�j�j��a�R��T��*�G�A�a�C�L�L��Q���,?�@� �A�����Q�V�S� "�Wy�Z �Q�q�S���1��s�3�q�|�,�,�Q�.�q�0�1�1�1�4�R��U�1�W�<�a�?� �Q����� �[y�^ �U�1�W���u�a��d�5�!�8�m�,� ���R��Y�Y���� &�_y�b �S��q��\�\� � �E�1�a�4��q��=�1�$�r�!�t�A�v�e�|�2D�2D�D� ���A�F�C� !�cy�f �U�1�W���a���e�A�g��� ���R��Y�Y���� &�gy�j �U�1�W���q��� �C��!�E�1�H�*�Q��T�/� 1�2�2�1�4� ���3�r�%�y�y�>�>�!�3� (�ky�n �U�1�W���q���A�� � �t�A�e�G�A�I��� �q��Q�q����z�!�Q�$��%6�!7�!7�7��9� 9� ���3�r�%�y�y�>�>�!�3� (�oy�t �Q�t�A�a�C�y�y�[� � �4��1��:�:�a�<��Q���/��Q�B�q�D� � �9� ����� �uy�x �Q�t�A�a�C�y�y�[� � �!� �R��D��1��I�I���.� ����� �yy�| �U�1�W���q�!�Q�$�u�a�x�-�(� ���R��Y�Y���� &�}y�@ �U�1�W���q��1�a�4��%��(� �?�Q��T�!�E�1�H�*�_�=�a�?� ���3�r�%�y�y�>�>�!�3� (�Ay�D �a����Q�t�A�a�C�y�y�[�!�!� !�4��8�8�A�:�a�1�Q�4�4�%��'�l�#:�A�a��c�E�#B�3��r�!�t�9�9�#L� ����� �Ey�H �Q�t�A�a�C�y�y�[� � �$�q�'�'� !�4��1��:�:�c�1�"�Q�$�i�i�#7� ����� �Iy�L �Q�q�S���#�a��c�(�(� �A�a�C��E�!�G�Q��T�1�Q�3��(�]�3�Q��T�1�Q�3��(�]�C� ���R��U�U���C��1���J�J�&�� -�My�P �Q�q�S���#�a��c�(�(� �A�q�!�t�A�q�D�y��A��~�.��1��a��c�A�X� �>��1��a��c�A�X� �N� ���R��U�U���C��1���J�J�&�� -�Qy�T �Q�q�S���#�a��c�(�(� �A�q�!�t�A�q�D�y��A��~�.��1��a��c�A�X� �>��1��a��c�A�X� �N� ���R��U�U���C��1���J�J�&�� -�Uy�X �a��c���A�q�!�t�A�q�D�y�M� ���R��U�U���S� "�Yy�\ �a��c���A�q�!�t�A�q�D�y�M� ���R��U�U���S� "�]y�` �a��c���A��q��A��v�q�!�t�A�a��d�F�1�H�}�-� ���3�r�!�u�u�:�:��s� $�ay�d �a��c���A���1��Q�q�!�t�V� �a��d�1�Q��T�6�!�8�m�4� ���3�r�!�u�u�:�:��s� $�ey�h �a��c���1��c�1�Q�3��1��+�&�&�q�(� ���R��U�U���S� "�iy�l �A��d�1�Q�3�i�i���q��s���A���!���r�!�t�}�a��c�a�R��T�]�'B�C� �R���Q���� �my�p �A��d�1�Q�3�i�i���q��s���A���!���r�!�t�}�a��c�a�R��T�]�'B�C� �R���Q���� �qy�t �a��Q�q�S� � �k� � �D��A��J�J�q�L��a���0��Q�q�S���9� ����� �uy�x �a��Q�q�S� � �k� � �A�a�C��R��T� � �1� �T�!�W�W� 4�S��1��X�X� =�c�$�q��s�)�)�n�n� L�L� ����� �yy�~ ��G�G�D��4��!��9�9��%�%� %� ��1���a��L��a��d�d�U�1�W�� %�q��s�1�u� -� ��!��H�H� ���a��c���^�^� $�$%��!���Q��K��B��$7� 8� �F�A�F�C�  !�}y�F �a����a��Q�q�S� � �k�"�"� "�B��1���a��L��a��d�d�U�1�W��$=�q��s�1�u�$E�c�!�A�#�h�h�$N� ����� �Gy�J �a��Q�q�S� � �k� � �4��7�7� "� �a��d�d�1�f��a�1�Q�4�4�%��'�l� "�3�q��s�8�8� +�c�$�q��s�)�)�n�n� <� �F�A�F�C� !�Ky�P �a��Q�q�S� � �k� � �4��7�7� "�B��1���a��L��a��d�d�U�1�W��$=�c�!�A�#�h�h�$F� ����� �Qy�T �d�1�Q�3�i�i���!� �D��G�G� #�R�!�A�$�$�q�&�\�!�^�A��1����a��L�%@�#�a��c�(�(�1�*�%M� ����� �Uy�X �d�1�Q�3�i�i���!� �D��G�G� #�R�!�A�$�$�q�&�\�!�^�A��1����a��L�%@�#�a��c�(�(�1�*�%M� ����� �Yy�\ �Q�q�S���3�q�!�t�Q�q�S�1�H�}�%�%�d�1�a��c�7�m�m�3�A�5� �3�s�1�v�v�;�;��� �Q�V�S� *�]y�` �T�!�A�#�Y�Y����a����a��c���*�1�,� ���Q�V�b��e�e�V�$�$�c� +�ay�d �Q�q�S���#�d�1�Q�3�i�i�.�.� �$�q�'�'�$�q�'�'�/�1�Q�3�"7� ���Q�V�R��U�U�#�#�S� *�ey�h �T�!�A�#�Y�Y�q�[� � �A�c�4��!��9�9�*�o�o�-�q�0� �A�����A�F�C� !�iy�l �d�1�Q�3�i�i���4��!��9�9�T�!�W�W�,�d�1�Q�3�i�i�7��9� ��"�Q�%�%��� �my�p �Q�q�S���$�t�A�a�C�y�y�/�/� !�1�a��Q�q�S� � �k�?� ����� �qy�t �d�1�Q�3�i�i��k� � �C��a��c��� �O�O�A�-� �A�����A�F�C� !�uy�x ��A�a�C���!�Q�$��Q��T�!�Q�$�Y����4��1��Q��T� �?�?�1B�Q�0F� F�G� �A�����S��A���Z�Z�� &�yy�| �A��g�a��1��o�o� � �A��d�2�h�h��u�Q�q�v�X��� &�q�!�t� +�Q��T�!�Q�$�Y�1�"�Q�V�)�,D� D� �R��U�U�a�f�W�_�b��A�h�h� '� '��R��U�U���S� :�}y�B �A��g�a��1��o�o� � �Q�q�S��$�r�(�(� �5��1�Q�4�4��6��?�?� *�1�a�4� /�� 1�1�a�4��1��9���1�Q�4�4��6� �2J� J� �R��U�U�R�Z��A�q��s��� $� $�c�"�Q�%�%�j�j�#� 7�Cy�H ��A�d�1�Q�3�i�i�K� � �#�q�b��d�)�)�A�+� ����� �Iy�L �Q����1�T�!�A�#�Y�Y�;�'�'� '��Q�q�S��!�q�b��d�)�);�C���1��I�I�)E� �R��U�U�R�Z��A�q���x��� )� )�1�6�3� 8�My�P ��A�d�1�a�4��!��8�n�n�$� %� %� �Q�q�S��4��1��Q��T� �?�?�"� "� #� #�D��A��a��d��O�O� 3� �S��V�V���r� �3�r�!�u�u�:�:�s� ,�Qy�V ��A�a�C���!�Q�$��Q��T�!�Q�$�Y����4��1��Q��T� �?�?�1B�Q�0F� F�G� �A�����S��A���Z�Z�� &�Wy�Z �A��g�a��1��o�o� � �A��d�2�h�h��u�Q�q�v�X��� &�q�!�t� +�Q��T�!�Q�$�Y�1�"�Q�V�)�,D� D� �R��U�U�a�f�W�_�b��A�h�h� '� '��R��U�U���S� :�[y�` �A��g�a��1��o�o� � �Q�q�S��$�r�(�(� �5��1�Q�4�4��6��?�?� *�1�a�4� /�� 1�1�a�4��1��9���1�Q�4�4��6� �2J� J� �R��U�U�R�Z��A�q��s��� $� $�c�"�Q�%�%�j�j�#� 7�ay�f �Q����1�T�!�A�#�Y�Y�;�'�'� '��Q�q�S��!�q�b��d�)�);�C��!��H�H�)D� �R��U�U�R�Z��A�q���x��� )� )�1�6�3� 8�gy�j ��A�a�C���"�R�%��a��c� � �*�4��1��Q��T� �?�?�:� ���R��U�U���S� "�ky�n ��A�a�C���#�q�4��1��Q��T� �?�?�2�A�5�6�6��Q��T�!�Q�$�Y���H� ��"�Q�%�%��� �oy��t #�A�q� (�(rpc���td|g���}tdd���}|�|��}|r�||jd�|��}|j||z��}|rr||jre||dkrYt d��td||z ||�|��z||||z d� ��\}} } || | fSd S) z� This function applies the time-scaling rule of the Laplace transform in a straight-forward way. For example, if it gets ``(f(a*t), t, s)``, it will compute ``LaplaceTransform(f(t)/a, t, s/a)`` if ``a>0``. r�r��gra)�nargsrz rule: time scaling (4.1.4)F�r�N) r rr�rj�collectr�ru�_laplace_transformrm) r�r�r{r�r�ma1r#�ma2r��pr�crs rn�_laplace_rule_timescaler s��� �S�1�#����A��S��"�"�"�A� �'�'�!�*�*�C� ���!�f�k�!�n�$�$�Q�'�'���c�i��!��n�n�� � �3�q�6�%� �#�a�&�A�+�+� �4� 5� 5� 5�*��#�a�&���Q����Q���'��A�c�!�f�H�u�F�F�F�I�A�r�2��r�2�;� � �4rpc��td|g���}td��}td��}|�t|��|z��x}�rx||�||z ��x}r�||jrht d��t ||�||||z��||d���\}} } t|| |z��|z| | fS||jr1t d��t ||||d���\}} } || | fS||�||z ��x}r�||jrMt d ��t d t|||z ��z ||z||d���\}} } || | fS||jrt d ��d d tj fSd S)a This function deals with time-shifted Heaviside step functions. If the time shift is positive, it applies the time-shift rule of the Laplace transform. For example, if it gets ``(Heaviside(t-a)*f(t), t, s)``, it will compute ``exp(-a*s)*LaplaceTransform(f(t+a), t, s)``. If the time shift is negative, the Heaviside function is simply removed as it means nothing to the Laplace transform. The function does not remove a factor ``Heaviside(t)``; this is done by the simple rules. r�r�r�rz rule: time shift (4.1.4)Frz8 rule: Heaviside factor; negative time shift (4.1.4)z rule: Heaviside window openraz" rule: Heaviside window closedrN) r r�r;r�rurr�r'� is_negativerr�) r�r�r{r�r�rrr r�r r s rn�_laplace_rule_heavisider*s�� �S�1�#����A� �S� � �A� �S� � �A��g�g�i��l�l�Q�&�'�'�'�s�&��a�&�,�,�q�1�u�%�%� %�3� #��1�v�!� 6��6�7�7�7�.���F�K�K��1�s�1�v�:�.�.��1�u�F�F�F� ��2�r��S��V�G�a�K�(�(�1�,�b�"�5�5��1�v�!� #��N�P�P�P�.�s�1�v�q�!�e�L�L�L� ��2�r��2�r�{�"��a�&�,�,�q�1�u�%�%� %�3� &��1�v�!� #��9�:�:�:�.���1�s�1�v�:�.�.�.�#�a�&�8�!�Q��P�P�P� ��2�r��2�r�{�"��1�v�!� &��;�<�<�<��1�a�f�~�%� �4rpc��td|g���}td��}td��}|�t|��|z��}|r�||�|���||z��}|rPt d��t ||||||z d���\}} } || t ||��z| fSdS) a If this function finds a factor ``exp(a*t)``, it applies the frequency-shift rule of the Laplace transform and adjusts the convergence plane accordingly. For example, if it gets ``(exp(-a*t)*f(t), t, s)``, it will compute ``LaplaceTransform(f(t), t, s+a)``. r�r�r��zz$ rule: multiply with exp (4.1.5)FrN)r r�r'rrurr!) r�r�r{r�r�rrr r�r r s rn�_laplace_rule_exprTs��� �S�1�#����A� �S� � �A� �S� � �A� �'�'�#�a�&�&��(� � �C� �*��!�f�n�n�Q���%�%�a��c�*�*�� � *� �9� :� :� :�*�3�q�6�1�a��A��h�49�;�;�;�I�A�r�2��r�"�S��V�*�*�}�b�)� )� �4rpc�t��� � � � ���td�g���� td�g���� td��}td���|�t|���z��� � �rE� ��t���s$� |������ �z� z ��� � �r)t d��� � � � z }t |��dkr�t|��dkr�t� �  � � z �z��� �z}|�tt��r,|� t��� ��}� � � �fd�|���D��\}}|dkr%||z � � z tjtjfSd SdtjtjfS� |����r�t'� |���}|ikr�t)|�����d hkrgt-� |����t/� ����fd �t1|�����D���} | tjtjfSd S) z� If this function finds a factor ``DiracDelta(b*t-a)``, it applies the masking property of the delta distribution. For example, if it gets ``(DiracDelta(t-a)*f(t), t, s)``, it will return ``(f(a)*exp(-a*s), -a, True)``. r�r�r�r�rz# rule: multiply with DiracDeltarc�Z��g|]'}|������z ����(Srqr�)r�r�r�r�r r�s ����rnr�z'_laplace_rule_delta.<locals>.<listcomp>�s3���N�N�N�Q����q�#�a�&��Q��-�0�0�N�N�NrpNrac����g|]o}t|��dk�t|��dk�(t| �z���������z���|��z ��pS)r)r"r!r'r�)r�r�rr{�sloper�rs �����rnr�z'_laplace_rule_delta.<locals>.<listcomp>�sv���M�M�M��"�Q�%�%�1�*�*��A���!����1�"�Q�$�i�i��A�� � �A�q� 1� 1�1�%�*�*�Q��2B�2B�B�AK��rp)r r�r:r~rrur!r"r'r3r2�rewriter5�ratsimp�as_numer_denomrr�r�� is_polynomialrQ�set�valuesrrr��keys)r�r�r{r��loc�fnr�r��ror�r�r�rr rrs `` @@@@@@rn�_laplace_rule_deltar!ks����������� �S�1�#����A� �S�1�#����A� �S� � �A� �S� � �A� �'�'�*�Q�-�-��/� "� "�C� �7�3�q�6�:�:�j�)�)�7��!�f�n�n�Q���%�%�a��c�!�e�,�,�� � 7� �8� 9� 9� 9��a�&��Q��-�C��#�w�w�!�|�|��3���1� � ��#�a�&���Q����)�*�*�3�q�6�1���6�6�#�s�#�#�4����D�)�)�1�1�3�3�B�N�N�N�N�N�N�N�"�:K�:K�:M�:M�N�N�N���1���6�6��a�C��A��J��(:�A�F�C�C��4��1�-�q�v�6�6� �q�6� � �� "� "� 7��s�1�v�q�!�!�B��R�x�x�C�� � � � �,�,���3�3��S��V�Q�����M�M�M�M�M�M�M�M�#�B�G�G�I�I���M�M�M�N���1�-�q�v�6�6� �4rpc�J�tjg}tjg}tj|��D]_}|�t t ttt��r|� |���J|� |���`t|�}t|�}||fS)z� Helper function for `_laplace_rule_trig`. This function returns two terms `f` and `g`. `f` contains all product terms with sin, cos, sinh, cosh in them; `g` contains everything else. ) r�Oner� make_argsr~r3r2r+r)r'�append)r�trigs�other�termr�rs rn�_laplace_trig_splitr)�s����U�G�E� �U�G�E�� �b�!�!���� �8�8�C��d�D�#� .� .� � �L�L�� � � � � �L�L�� � � � � �U� �A� �U� �A� �a�4�Krpc�0�td|g���}td|g���}td|g���}g}g}|�t�����}t j|��D�]}|�|��s(|�d|ddtdtdi���@t|� d� ��|��}|� |t||z|z��z��x} �q|�d| |t| |��zd| |tt| |��tt| |��i����|�|����||fS) a� Helper function for `_laplace_rule_trig`. This function expects the `f` from `_laplace_trig_split`. It returns two lists `xm` and `xn`. `xm` is a list of dictionaries with keys `k` and `a` representing a function `k*exp(a*t)`. `xn` is a list of all terms that cannot be brought into that form, which may happen, e.g., when a trigonometric function has another function in its argument. �c1r��c0r��kr�rr')�combine) r rr'r rr$r~r%r!r"r��powsimpr�) r�r�r+r,r��xm�xn�x1r(r�s rn�_laplace_trig_expsumr3�st�� �d�Q�C� � � �B� �d�Q�C� � � �B� �S�1�#����A� �B� �B� ���3��� � � � �B�� �b�!�!� � ���x�x��{�{� � �I�I�s�D�#�q�"�a��Q�7� 8� 8� 8� �$�T�\�\�%�\�%@�%@�!�D�D�����A�c�"�Q�$�r�'�l�l�N�+�+� +�A� 8� �I�I��Q�q�T�#�a��e�*�*�_�c�1�R�5��B�q��u�I�I�r�2�a��e�9�9�.� /� /� /� /� �I�I�d�O�O�O�O� �r�6�Mrpc �f��g}g}d���fd�}�fd�}�fd�}�fd�}d�} t|��dk�rm|���} d} d} d} tt|����D]�}| t||tk}| t||t k}| t||tk}| t||t k}|r'|r%| tdkr| tdkr|} ��|r|r| tdkr|} ��|r|r| tdkr|} ��| ��| ��| ��|�|| || d || d || d |����|�t t| d ������| | | g}|�d � ��|D]}|�|����n�| �c|�|| || d |����|�| t��|�| ���n!| �o|�|| || d |����|�t | t����|�| ��n�| �o|�|| || d |����|�t | t����|�| ��n?|�| | |����|�| t��t|��dk��mt|�t|�fS) a Helper function for `_laplace_rule_trig`. This function takes the list of exponentials `xm` from `_laplace_trig_expsum` and simplifies complex conjugate and real symmetric poles. It returns the result as a sum and the convergence plane. c��|���}tt|����D]�}||���}|d�t ��r$||�t��||<�`|dt|dzz�t��||<��|Sr�) �copy�range�lenr�r~r"rr2r)�coeffs�ncr-�ris rn�_simpcz"_laplace_trig_ltex.<locals>._simpc�s��� �[�[�]�]���s�2�w�w��� 7� 7�A��A��#�#�%�%�B��!�u�y�y��}�}� 7��1�� � �c�*�*��1����A���2�a�5���1�1�#�6�6��1���� rpc �*���|d|d|t|tf\}}}}||z|z|z|||z|z |z zdtz|z|zz dtz|z|zz|dz| |z |z |z z|dtz|z|zdtz|z|zzzzd|dzz|zzd|dzz|zz|dz| |z |z|zz|dzdtz|z|zdtz|z|zzdtz|z|zz dtz|z|zz zz|d|dzz|zd|dzz|zz zzg} tjtjd|dzzd|dzzz tj|dzd|dzz|dzzz|dzzg} t �fd�t� | ��tt| ����ddd���D���} t �fd�t| tt| ����ddd���D���} | | z S) Nr�r-r�r�r�c�&��g|] \}}|�|zz��Srqrq�r�r�r�r{s �rnr�z9_laplace_trig_ltex.<locals>._quadpole.<locals>.<listcomp>��%��� G� G� G���A�a��1��f� G� G� Grpr�c�&��g|] \}}|�|zz��Srqrqr?s �rnr�z9_laplace_trig_ltex.<locals>._quadpole.<locals>.<listcomp>��%��� ?� ?� ?���A�a��1��f� ?� ?� ?rp) r!r"rrr#r�r�zipr7r8)�t1�k1�k2�k3r{r��k0�a_r�a_ir:�dcr�r�r<s ` �rn� _quadpolez%_laplace_trig_ltex.<locals>._quadpole�sh�����S�'�2�c�7�B�r�F�B�r�F�:���2�s�C� ��G�b�L�2� � �r�B�w��|�b� � !�A�a�C��G�B�J� .��1��S���� ;��1��r�c�B�h��m�b�(�)��1�Q�3�s�7�2�:��!��C��� �*�+�,��#�q�&��� ����Q��h�r�k�*��1��r�c�B�h��m�b�(�)��1��a��c�#�g�b�j�1�Q�3�s�7�2�:�-��!��C��� �:�Q�q�S��W�R�Z�G�H�I��1�S�!�V�8�B�;��3��6��"��,�-�.�  �� �E�1�6�1�S�!�V�8�a��Q��h�.� �F�C��F�Q�s�A�v�X�c�1�f�_�,�s�A�v�5�7�� � G� G� G� G��V�V�B�Z�Z��s�2�w�w�����"��1E�!F�!F� G� G� G� I�� � ?� ?� ?� ?��R��s�2�w�w�����"��)=�!>�!>� ?� ?� ?� A����s� rpc ����|d|d|t|tf\}}}}||z| |z||zz dtz|z|zzg}tjd|z|dz|dzzg}t �fd�t � |��tt|����ddd���D���} t �fd�t |tt|����ddd���D���} | | z S)Nr�r-r�r�c�&��g|] \}}|�|zz��Srqrqr?s �rnr�z7_laplace_trig_ltex.<locals>._ccpole.<locals>.<listcomp>�r@rpr�c�&��g|] \}}|�|zz��Srqrqr?s �rnr�z7_laplace_trig_ltex.<locals>._ccpole.<locals>.<listcomp>�rBrp� r!r"rrr#rrCr7r8) rDrEr{r�rHrIrJr:rKr�r�r<s ` �rn�_ccpolez#_laplace_trig_ltex.<locals>._ccpole�s �����S�'�2�c�7�B�r�F�B�r�F�:���2�s�C��2�g��r�"�u�q��t�|�a��c�#�g�b�j�0� 1���e�R��V�S�!�V�c�1�f�_� -�� � G� G� G� G��V�V�B�Z�Z��s�2�w�w�����"��1E�!F�!F� G� G� G� I�� � ?� ?� ?� ?��R��s�2�w�w�����"��)=�!>�!>� ?� ?� ?� A����s� rpc ����|d|d|t|tf\}}}}||z||z||zz dtz|z|zz g}tjdtz|z|dz |dzz g}t �fd�t � |��tt|����ddd���D���} t �fd�t |tt|����ddd���D���} | | z S)Nr�r-r�r�c�&��g|] \}}|�|zz��Srqrqr?s �rnr�z7_laplace_trig_ltex.<locals>._rspole.<locals>.<listcomp>r@rpr�c�&��g|] \}}|�|zz��Srqrqr?s �rnr�z7_laplace_trig_ltex.<locals>._rspole.<locals>.<listcomp> rBrprP) rDrFr{r�rHrIrJr:rKr�r�r<s ` �rn�_rspolez#_laplace_trig_ltex.<locals>._rspoles�����S�'�2�c�7�B�r�F�B�r�F�:���2�s�C��2�g�q��t�a��d�{�Q�q�S��W�R�Z�/� 0���e�R��T�#�X��Q��w��a��/� 0�� � G� G� G� G��V�V�B�Z�Z��s�2�w�w�����"��1E�!F�!F� G� G� G� I�� � ?� ?� ?� ?��R��s�2�w�w�����"��)=�!>�!>� ?� ?� ?� A����s� rpc ����|d|d}}||z|||z zg}tjtj|dz g}t�fd�t � |��t t |����ddd���D���}t�fd�t |t t |����ddd���D���}||z S)Nr�r-r�c�&��g|] \}}|�|zz��Srqrqr?s �rnr�z7_laplace_trig_ltex.<locals>._sypole.<locals>.<listcomp>r@rpr�c�&��g|] \}}|�|zz��Srqrqr?s �rnr�z7_laplace_trig_ltex.<locals>._sypole.<locals>.<listcomp>rBrp)rr#r�rrCr7r8) rDrGr{r�rHr:rKr�r�r<s ` �rn�_sypolez#_laplace_trig_ltex.<locals>._sypole s������3���C��2���2�g�q�"�r�'�{� #���e�Q�V�a��d�U� #�� � G� G� G� G��V�V�B�Z�Z��s�2�w�w�����"��1E�!F�!F� G� G� G� I�� � ?� ?� ?� ?��R��s�2�w�w�����"��)=�!>�!>� ?� ?� ?� A����s� rpc�:�|d|d}}|}||z }||z S)Nr�r-rq)rDr{r�rHr�r�s rn� _simplepolez'_laplace_trig_ltex.<locals>._simplepoles*���3���C��2�� �� ��E����s� rprNr-r�T)�reverse) r8�popr7r!r"r%r$r�rr-)r0r�r{�results�planesrLrQrUrYr[rD� i_imagsym� i_realsym� i_pointsym�i�real_eq�realsym�imag_eq�imagsym�indices_to_popr<s @rn�_laplace_trig_ltexri�s�����G� �F���������.������������������ �b�'�'�A�+�+� �V�V�X�X��� �� �� � �s�2�w�w��� � �A���f��1��b� �)�G���f��A��r�� �*�G���f��1��b� �)�G���f��A��r�� �*�G�� �7� �r�"�v��{�{�r�"�v��{�{�� � �� �W� ��B��1���� � �� �W� ��B��1���� ���%�)�*?��*� �N�N�� �"��Y�-��,�b��m�C�.@��Z�.��-�q�2�2� 3� 3� 3� �M�M�#�b��C��k�k�*�*� +� +� +�(��J�?�N� � � �� � -� -� -�#� � �����q� � � � � � � "� �N�N�7�7�2�r�)�}�S�'9�1�=�=� >� >� >� �M�M�"�R�&� !� !� !� �F�F�9� � � � � � "� �N�N�7�7�2�r�)�}�S�'9�1�=�=� >� >� >� �M�M�#�b��f�+�+� &� &� &� �F�F�9� � � � � � #� �N�N�7�7�2�r�*�~�c�':�A�>�>� ?� ?� ?� �M�M�#�b��f�+�+� &� &� &� �F�F�:� � � � � �N�N�;�;�r�1�-�-� .� .� .� �M�M�"�R�&� !� !� !�q �b�'�'�A�+�+�t ��=�#�v�,� &�&rpc ���tdd���}|�tttt ��sdSt |�||����\}}t||��\}}t|��dkrdS|�|��s&t|||��\}} ||z| tj fSg} g} t|||d���\} } }|D]h}| �|d| �|||d z ��z��| �| t|d ��z���it!| ��||��t#| �|fS) z� This rule covers trigonometric factors by splitting everything into a sum of exponential functions and collecting complex conjugate poles and real symmetric poles. r�T��realNrFrr-r�)rr~r3r2r+r)r)r�r3r8rirr�rr%r!rr-)r�t_r{r�r�rr0r1r�r�r_r^�G�G_plane�G_condr2s rn�_laplace_rule_trigrqYsd�� �c�����A� �6�6�#�s�D�$� '� '���t� �r�w�w�r�1�~�~� .� .�D�A�q� !�!�Q� '� '�F�B�� �2�w�w��{�{��t� �5�5��8�8� /�!�"�a��+�+���1���s�A�q�v�~������/��1�a�%�H�H�H���7�F�� /� /�B� �N�N�2�c�7�1�6�6�!�Q�r�#�w�Y�#7�#7�7� 8� 8� 8� �M�M�'�"�R��W�+�+�-� .� .� .� .� ��=� � �a�� $� $�c�6�l�F� :�:rpc����td�g���}td�g���}td��}|�|t|�|f��z��}|�r||j�r �fd�||jD��}t |��dkr�td��g}t||��D]x} | dkr||� �d��} n,t||�| f��� �d��} |� |||| z dz z| z���yt||�|d � ��\} } } |||||z| zt|�z z| | fSd S) a  This function looks for derivatives in the time domain and replaces it by factors of `s` and initial conditions in the frequency domain. For example, if it gets ``(diff(f(t), t), t, s)``, it will compute ``s*LaplaceTransform(f(t), t, s) - f(0)``. r�r�r�rc�:��g|]}|������Srq�r~)r�rr�s �rnr�z&_laplace_rule_diff.<locals>.<listcomp>�s#��� +� +� +�!�Q�U�U�1�X�X� +� +� +rpraz" rule: time derivative (4.1.8)rFrN) r rr�r � is_integerrj�sumrur7r�r%rr)r�r�r{r�r�rrr�r�r-r�r�r r s ` rn�_laplace_rule_diffrwzs���� �S�1�#����A� �S�1�#����A��S���A� �'�'�!�J�q�1�a�&�)�)�)� *� *�C� � =�s�1�v� � =� +� +� +� +�s�1�v�{� +� +� +�� �q�6�6�Q�;�;� �7� 8� 8� 8��A��3�q�6�]�]� ,� ,����6�6��A�� � �A�q�)�)�A�A�"�3�q�6�A�q�6�2�2�7�7��1�=�=�A�����S��V�A�X�a�Z���*�+�+�+�+�*�3�q�6�1�a�%�H�H�H�I�A�r�2���F�A�s�1�v�I�a�K�#�q�'�1�2�R��<� <� �4rpc �2����|j�r�dg}dg}tj|��D]B}|�|��r|�|���-|�|���Ct |��dk�r~t |��}t||������t �����dk�r7t |��}t|||d���\}} } |g�d} t�d|�� } n#t$rd} YnwxYw|� t��rFt�dz ��D]2} ��d| dzzt||| dz��z���3nV| rT��| ��t�dz ��D],} ��t�d|�� ���-| r)t!���fd�t���D���} | | | fSt#d|g���}t#d ��}|�||z|z��x}r^||jrQ||jrDt||||d���\}} } d||zt||||f��z| | fSd S) a This function looks for multiplications with polynoimials in `t` as they correspond to differentiation in the frequency domain. For example, if it gets ``(t*f(t), t, s)``, it will compute ``-Derivative(LaplaceTransform(f(t), t, s), s)``. raFrr�r�c�>��g|]}��|z dz �|z��Sr�rq)r�r��N�deri�pcs ���rnr�z'_laplace_rule_sdiff.<locals>.<listcomp>�s.���B�B�B�A�b��1��Q��i��Q��/�B�B�Brpr�r�rN)�is_Mulrr$rr%r8rrR� all_coeffsrr� ValueErrorr~�LaplaceTransformr7r rr r�rur�)r�r�r{�pfac�ofac�fac�pex�oex�r_�p_�c_�d1r-r�r�rrrzr{r|s @@@rn�_laplace_rule_sdiffr��s������ �x�'��s���s���=��#�#� !� !�C�� � ��#�#� !�� � �C� � � � �� � �C� � � � � �t�9�9�q�=�=��t�*�*�C��c�1���(�(�*�*�B��B���A��1�u�u��4�j�j��/��Q��E�J�J�J� ��B���t������t�B�x��+�+�+�B�B��!�����B�B�B������6�6�*�+�+�8�"�1�Q�3�Z�Z�H�H��� � �R�1�Q�3�K� �2�q�!�A�#�0F�0F�$F�G�G�G�G�H��8��K�K��O�O�O�"�1�Q�3�Z�Z�8�8��� � �T�$�r�(�A�%6�%6�$6�7�7�7�7��'��B�B�B�B�B�B��q���B�B�B�C�A��r�2�;�&� �S�1�#����A� �S� � �A��g�g�a��d�1�f�o�o��s�>� �q�6� � >��Q��!3� >�+�C��F�A�q�5�I�I�I�J�B��B���Q��<��R�!�S��V�� 5� 5�5�r�2�=� =� �4s�0D� D�Dc��t|d���}|jrt|||d���St|��}|jrt|||d���St|��}|jrt|||d���S||krt|||d���Stt |����}|jrt|||d���SdS)a� This function tries to expand its argument with successively stronger methods: first it will expand on the top level, then it will expand any multiplications in depth, then it will try all avilable expansion methods, and finally it will try to expand trigonometric functions. If it can expand, it will then compute the Laplace transform of the expanded term. F��deeprN)r �is_Addrr r)r�r�r{r�s rn�_laplace_expandr��s��� �q�u����A��x�;�!�!�Q��E�:�:�:�:��1� � �A��x�;�!�!�Q��E�:�:�:�:��q� � �A��x�;�!�!�Q��E�:�:�:�:��A�v�v�!�!�Q��E�:�:�:�:��{�1�~�~���A��x�;�!�!�Q��E�:�:�:�:� �4rpc��tttttt t g}|D]}||||��x}�|cS�dS)zk This function applies all program rules and returns the result if one of them gives a result. N)rr!r rrqrwr�)r�r�r{� prog_rules�p_rule�Ls rn�_laplace_apply_prog_rulesr��s[��*�+>�)�+<�$�$�&9�;�J� �������1�a��� �A� -��H�H�H� .� �4rpc���t��\}}}d}d}|D]�\}} } } } || kr"| |�||i����}| }|�|��} | r� | �| ��}n#t$rY�jwxYw|t jkrL| �| ���||i��| �| ��t jfcS��dS)zj This function applies all simple rules and returns the result if one of them gives a result. �N)rr�r��xreplacer�rr�)r�r�r{� simple_rulesrmr��prep_old�prep_f�t_dom�s_dom�check�plane�prep�mar�s rn�_laplace_apply_simple_rulesr��s�� 0�1�1��L�"�b��H� �F�,8�4�4�(��u�e�U�D� �t� � ��T�!�&�&�!�R��/�/�*�*�F��H� �\�\�%� � �� � 4� ��N�N�2�&�&����� � � ��� �����A�F�{�{����r�*�*�/�/��Q��8�8����r�*�*�A�F�4�4�4�4�� �4s�!A7�7 B�Bc�2�|jsKtdd���}t|�||i��|���||i��St |��}g}|jD�]�\}}t |t��r\||jvrSt |ttf��r|cS|� t|j |j z ��|z���wt |t��rft|j��dkrN|jD]E}|j|kr3|� t|j |j z ��|z���@|ccS��t |t"��r�t|j��dkr�|j\}}|j|kri|j|kr^d|jvr||}}|� t|j |j z ��t|j |j z ��z |z�����|cS|cSt'|�S)z� This function converts a Piecewise expression to an expression written with Heaviside. It is not exact, but valid in the context of the Laplace transform. r�Trkr��>)�is_realr�_piecewise_to_heavisider�r1rjrrrrr%r;�gtsr�rLr8�lhsrMr�r) r�r�r�r�rr��c2r,r+s rnr�r�s'�� �9�O� �#�D� !� !� !��&�q�z�z�1�a�&�'9�'9�1�=�=�F�F��1�v�N�N�N��A���A� �A��F� � ���D� �d�J� '� '� �A���N�N��$��R��)�)� <� ��������4�8�d�h�#6�7�7��:�;�;�;�;� ��b� !� !� �c�$�)�n�n��&9�&9��i� � ���6�Q�;�;��H�H�Y�r�v����7�7��:�;�;�;�;��H�H�H�H�H�  � ��c� "� "� �s�4�9�~�~��':�':��Y�F�B���v��{�{�r�v��{�{��"�)�#�#����B�����r�v����/�/��r�v����/�/�0�13�4�5�5�5�5������H�H�H� ��7�Nrpc ����td��}td��}td��}td��}t|t��r4|�t��s|�t ��s|S����D]�\}}|�t ||��||����x}�%||||kr|||��cS|�t ||��|||����x} �%||||kr|||��cS��|j} �fd�|j D��} | | �S)a This helper function takes a function `f` that is the result of a ``laplace_transform`` or an ``inverse_laplace_transform``. It replaces all unevaluated ``LaplaceTransform(y(t), t, s)`` by `Y(s)` for any `s` and all ``InverseLaplaceTransform(Y(s), s, t)`` by `y(t)` for any `t` if ``fdict`` contains a correspondence ``{y: Y}``. Parameters ========== f : sympy expression Expression containing unevaluated ``LaplaceTransform`` or ``LaplaceTransform`` objects. fdict : dictionary Dictionary containing one or more function correspondences, e.g., ``{x: X, y: Y}`` meaning that ``X`` and ``Y`` are the Laplace transforms of ``x`` and ``y``, respectively. Examples ======== >>> from sympy import laplace_transform, diff, Function >>> from sympy import laplace_correspondence, inverse_laplace_transform >>> from sympy.abc import t, s >>> y = Function("y") >>> Y = Function("Y") >>> z = Function("z") >>> Z = Function("Z") >>> f = laplace_transform(diff(y(t), t, 1) + z(t), t, s, noconds=True) >>> laplace_correspondence(f, {y: Y, z: Z}) s*Y(s) + Z(s) - y(0) >>> f = inverse_laplace_transform(Y(s), s, t) >>> laplace_correspondence(f, {y: Y}) y(t) r�r{r�r�Nc�0��g|]}t|�����Srq)�laplace_correspondence)r�r#�fdicts �rnr�z*laplace_correspondence.<locals>.<listcomp>|s$��� A� A� A�3� "�3�� .� .� A� A� Arp) r rrr~r��InverseLaplaceTransform�itemsr�rmrj) r�r�r�r{r�r�r��Yr�rmrjs ` rnr�r�Dsl���H �S� � �A� �S� � �A� �S� � �A� �S� � �A��1�d�#�#���E�E�*�+�+�����5�6�6����� � � � � � ���1��g�g�.�q�q��t�t�Q��:�:�;�;�;��H��a�D�A�a�D�L�L��1�Q�q�T�7�7�N�N�N��g�g�5�a�a��d�d�A�q�!�D�D�E�E�E�����a�D�A�a�D�L�L��1�Q�q�T�7�7�N�N�N�� �6�D� A� A� A� A�!�&� A� A� A�D� �4��;�rpc ���|���D]�\}}tt|����D]�}|dkr&|�|d��|d��}�.|dkrC|�t t ||��|��|d��|d��}�w|�t t ||��||f��|d��||��}����|S)a This helper function takes a function `f` that is the result of a ``laplace_transform``. It takes an fdict of the form ``{y: [1, 4, 2]}``, where the values in the list are the initial value, the initial slope, the initial second derivative, etc., of the function `y(t)`, and replaces all unevaluated initial conditions. Parameters ========== f : sympy expression Expression containing initial conditions of unevaluated functions. t : sympy expression Variable for which the initial conditions are to be applied. fdict : dictionary Dictionary containing a list of initial conditions for every function, e.g., ``{y: [0, 1, 2], x: [3, 4, 5]}``. The order of derivatives is ascending, so `0`, `1`, `2` are `y(0)`, `y'(0)`, and `y''(0)`, respectively. Examples ======== >>> from sympy import laplace_transform, diff, Function >>> from sympy import laplace_correspondence, laplace_initial_conds >>> from sympy.abc import t, s >>> y = Function("y") >>> Y = Function("Y") >>> f = laplace_transform(diff(y(t), t, 3), t, s, noconds=True) >>> g = laplace_correspondence(f, {y: Y}) >>> laplace_initial_conds(g, t, {y: [2, 4, 8, 16, 32]}) s**3*Y(s) - 2*s**2 - 4*s - 8 rra)r�r7r8r�rr )r�r�r�r��icr-s rn�laplace_initial_condsr��s���D�����K�K���2��s�2�w�w��� K� K�A��A�v�v��I�I�a�a��d�d�B�q�E�*�*����a����I�I�d�:�a�a��d�d�A�#6�#6��1�=�=�r�!�u�E�E����I�I�d�:�a�a��d�d�Q��F�#;�#;�Q��B�B�B�q�E�J�J���  K� �Hrpc���tj|��}g}g}g}g}|D�]C} | ��d���\} } | �t��rftj| �t ����} | D]6} | ��d���\}}|�| |z|f���7��| jtkr| �t�����s]tjt| �����} | D]6} | ��d���\}}|�| |z|f���7��,|�| | f����E|D�]�\} } | �t��r t| �|��tjdf}�n*| �t �����rE| �t�����s#| �t ���d��} t!| �|��x} �'t#| �|��x} �t%| �|��x}�n�t'�fd�| �t*��D����rt| �|��tjdf}n5t-| �||���x} �nt| �|��tjdf}|\}}}|�| |z��|�|��|�|�����t|�}|r|�d���}t1|�}t3|�}|||fS) z� Front-end function of the Laplace transform. It tries to apply all known rules recursively, and if everything else fails, it tries to integrate. F��as_AddTraNc3�B�K�|]}|����V��dSr�rt)r��undefrms �rnr�z%_laplace_transform.<locals>.<genexpr>�s-�����G�G�u�U�Y�Y�r�]�]�G�G�G�G�G�Grpr��doit)rr$�as_independentr~rCrr;r%rmr0r:r�r�rr�r�r�r�r��anyr�r rbr�r-rM)rrmr�r��terms_t�terms_s�termsr_� conditions�ffr-�ft�_terms�_termrE�f1r��ri_�pi_�ci_rlr�� conditions ` rnrr�s�����m�B���G��G� �E� �F��J�� "� "���!�!�"�U�!�3�3���2� �6�6�%� &� &� "��]�2�:�:�i�#8�#8�9�9�F�� )� )���-�-�b��-�?�?���B�� � �a��d�B�Z�(�(�(�(� )��W� � !� !�"�&�&��B���*@�*@� !��]�#:�2�r�#B�#B�C�C�F�� )� )���-�-�b��-�?�?���B�� � �a��d�B�Z�(�(�(�(� )� �L�L�!�R�� !� !� !� !������2� �6�6�%� &� &� M�!�"�b�"�-�-�q�/A�4�H�A�A��v�v�i��m�m�$�$� /�R�V�V�J�r�N�N�-C�-C� /��W�W�Y�r�]�]�A�.�.��5�b�"�b�A�A�A�Q�� �3�B��B�?�?�?�Q�� �)�"�b�"�5�5�5�Q�B���G�G�G�G�����0F�0F�G�G�G�G�G� M�&�b�"�b�1�1�1�3E�t�L���5���B��3�3�3�3�!�;?�@��%�b�"�b�1�1�1�3E�t�L�����c�3����q��u����� � �c�������#����� �'�]�F��-����e��,�,�� ��L�E��Z� �I� �5�)� #�#rpc�(�eZdZdZdZd�Zd�Zd�ZdS)r�a� Class representing unevaluated Laplace transforms. For usage of this class, see the :class:`IntegralTransform` docstring. For how to compute Laplace transforms, see the :func:`laplace_transform` docstring. If this is called with ``.doit()``, it returns the Laplace transform as an expression. If it is called with ``.doit(noconds=False)``, it returns a tuple containing the same expression, a convergence plane, and conditions. �Laplacec �X�|�dd��}t||||���}|S)Nr�Fr)�getrb)�selfr�r�r{�hintsrF�LTs rn�_compute_transformz#LaplaceTransform._compute_transforms0���I�I�j�%�0�0� � +�A�q�!�i� H� H� H��� rpc�x�t|t| |z��z|tjtjf��Sr�)rEr'rr�r�)r�r�r�r{s rn� _as_integralzLaplaceTransform._as_integrals-����#�q�b��d�)�)� �a�����%<�=�=�=rpc ��|�dd��}|�dd��}td|j|j|jf��|j}|j}|j}t ||||���}|r|dS|S)�j Try to evaluate the transform in closed form. Explanation =========== Standard hints are the following: - ``noconds``: if True, do not return convergence conditions. The default setting is `True`. - ``simplify``: if True, it simplifies the final result. The default setting is `False`. �nocondsTr�Fz[LT doit] (%s, %s, %s)rr)r�rX�function�function_variable�transform_variabler)r�r��_nocondsrFrmr�rr�s rnr�zLaplaceTransform.doit s����9�9�Y��-�-���I�I�j�%�0�0� ��'�$�-�*.�*@�*.�*A�*C� D� D� D�� #�� � $�� �]�� �r�2�r�I� >� >� >�� � ��Q�4�K��HrpN)ri� __module__� __qualname__�__doc__�_namer�r�r�rqrprnr�r��sR������ � � �E���� >�>�>�����rpr�Tc ��������dd��}��dd��}t|t��r�t|d��r���dd�� }|r]|r[d}t dd|���t t ��5|����fd ���cd d d ��S#1swxYwYnj���fd �|D��} |r<t| �\} } } t|��g|j �| �R�} | t| �t| �fSt|��g|j �| �R�St|�����d|� ��\}}}|s|||fS|S) a� Compute the Laplace Transform `F(s)` of `f(t)`, .. math :: F(s) = \int_{0^{-}}^\infty e^{-st} f(t) \mathrm{d}t. Explanation =========== For all sensible functions, this converges absolutely in a half-plane .. math :: a < \operatorname{Re}(s) This function returns ``(F, a, cond)`` where ``F`` is the Laplace transform of ``f``, `a` is the half-plane of convergence, and `cond` are auxiliary convergence conditions. The implementation is rule-based, and if you are interested in which rules are applied, and whether integration is attempted, you can switch debug information on by setting ``sympy.SYMPY_DEBUG=True``. The numbers of the rules in the debug information (and the code) refer to Bateman's Tables of Integral Transforms [1]. The lower bound is `0-`, meaning that this bound should be approached from the lower side. This is only necessary if distributions are involved. At present, it is only done if `f(t)` contains ``DiracDelta``, in which case the Laplace transform is computed implicitly as .. math :: F(s) = \lim_{\tau\to 0^{-}} \int_{\tau}^\infty e^{-st} f(t) \mathrm{d}t by applying rules. If the Laplace transform cannot be fully computed in closed form, this function returns expressions containing unevaluated :class:`LaplaceTransform` objects. For a description of possible hints, refer to the docstring of :func:`sympy.integrals.transforms.IntegralTransform.doit`. If ``noconds=True``, only `F` will be returned (i.e. not ``cond``, and also not the plane ``a``). .. deprecated:: 1.9 Legacy behavior for matrices where ``laplace_transform`` with ``noconds=False`` (the default) returns a Matrix whose elements are tuples. The behavior of ``laplace_transform`` for matrices will change in a future release of SymPy to return a tuple of the transformed Matrix and the convergence conditions for the matrix as a whole. Use ``legacy_matrix=False`` to enable the new behavior. Examples ======== >>> from sympy import DiracDelta, exp, laplace_transform >>> from sympy.abc import t, s, a >>> laplace_transform(t**4, t, s) (24/s**5, 0, True) >>> laplace_transform(t**a, t, s) (gamma(a + 1)/(s*s**a), 0, re(a) > -1) >>> laplace_transform(DiracDelta(t)-a*exp(-a*t), t, s, simplify=True) (s/(a + s), -re(a), True) There are also helper functions that make it easy to solve differential equations by Laplace transform. For example, to solve .. math :: m x''(t) + d x'(t) + k x(t) = 0 with initial value `0` and initial derivative `v`: >>> from sympy import Function, laplace_correspondence, diff, solve >>> from sympy import laplace_initial_conds, inverse_laplace_transform >>> from sympy.abc import d, k, m, v >>> x = Function('x') >>> X = Function('X') >>> f = m*diff(x(t), t, 2) + d*diff(x(t), t) + k*x(t) >>> F = laplace_transform(f, t, s, noconds=True) >>> F = laplace_correspondence(F, {x: X}) >>> F = laplace_initial_conds(F, t, {x: [0, v]}) >>> F d*s*X(s) + k*X(s) + m*(s**2*X(s) - v) >>> Xs = solve(F, X(s))[0] >>> Xs m*v/(d*s + k + m*s**2) >>> inverse_laplace_transform(Xs, s, t) 2*v*exp(-d*t/(2*m))*sin(t*sqrt((-d**2 + 4*k*m)/m**2)/2)*Heaviside(t)/sqrt((-d**2 + 4*k*m)/m**2) References ========== .. [1] Erdelyi, A. (ed.), Tables of Integral Transforms, Volume 1, Bateman Manuscript Prooject, McGraw-Hill (1954), available: https://resolver.caltech.edu/CaltechAUTHORS:20140123-101456353 See Also ======== inverse_laplace_transform, mellin_transform, fourier_transform hankel_transform, inverse_hankel_transform r�Fr�� applyfuncz#deprecated-laplace-transform-matrixz� Calling laplace_transform() on a Matrix with noconds=False (the default) is deprecated. Either noconds=True or use legacy_matrix=False to get the new behavior. z1.9)�deprecated_since_version�active_deprecations_targetc�"��t|��fi���Sr���laplace_transform)�fijr�r{r�s ���rnr�z#laplace_transform.<locals>.<lambda>�s��� 1�#�q�!� E� E�u� E� E�rpNc�.��g|]}t|��fi�����Srqr�)r�r�r�r{r�s ���rnr�z%laplace_transform.<locals>.<listcomp>�sG���2�2�2�(+�0��Q��$�$�"�$�$�2�2�2rp�r�r�)r�rrN�hasattrrUrWrVr�rC�type�shaper-rMr�r�)r�r�r{� legacy_matrixr�r�rFr��adt�elements_trans�elements�avalsr�� f_laplacer�r�r�s `` ` rnr�r�)s:�����N�y�y��E�*�*�H�� � �*�e�,�,�I��!�Z� � �9�W�Q� �%<�%<�9��I�I�i��/�/�/�� � 9�]� 9�7�C� %�� */�+.� � � � �!�!8�9�9� G� G��{�{�E�E�E�E�E�E�G�G� G� G� G� G� G� G� G� G� G� G� G� G���� G� G� G� G� G�2�2�2�2�2�2�/0�2�2�2�N�� 9�.1�>�.B�+��%��#�D��G�G�7�Q�W�7�h�7�7�7� � �#�u�+�s�J�/?�?�?��t�A�w�w�8���8��8�8�8�8���1�a�(�(�-�-�e�7@�.�B�B�H�B��1� ���1�a�x��� s�B?�?C�Cc������ � ��ddlm}m� ddlm}t dd���� � � fd�}|����r|����}|jrCt���� fd�|j D���}t|� � |�����dfS ||�t� ��d tjfdd � ��\}} n#t $rd }YnwxYw|�l||�� ��}|�d S|jr-|j d\}} |�t&��rd Sn tj} |�t,|��}|jr|� � |��| fSt d ���tjf� �fd � } |�t0| ��}d�} |�t| ��}t|� � |�����| fS)z6 The backend function for inverse Laplace transforms. r)�meijerint_inversion�_get_coeff_exp)�inverse_mellin_transformr�Trkc�x��t|��dkr t|�S|djdj}�|���\}}|djd}|djd}t dt |��z �|zz ��|zt �|zdt |��z z ��|zzS)z3 Simplify a piecewise expression from hyperexpand. r�r�rra)r8r0rj�argumentr;r$)rjr#�coeff�exponent�e1�e2r�r�s ��rn�pw_simpz7_inverse_laplace_transform_integration.<locals>.pw_simp�s���� �t�9�9��>�>��d�#� #��1�g�l�1�o�&��(�.��a�0�0���x� �!�W�\�!�_�� �!�W�\�!�_�� �a��E� � �l�Q��[�0� 1� 1�"� 4� �a��k�A�c�%�j�j�L�0� 1� 1�"� 4� 5� 6rpc �6��g|]}t|��������Srq)rc)r��Xr�r{r�r�s ����rnr�z:_inverse_laplace_transform_integration.<locals>.<listcomp>�s9�������5�Q��1�e�X�N�N���rpNF)�needevalr��uc�l��|jt� �����}|����rt||��Sddlm}||dk���}|j�kr't|j��}t�|z|��St|j��}t�|z |��S)Nrr�) r�r'r~r;r�r�r�r(r�)r#�H0r�r��relr-r�r�s ��rn�simp_heavisidez>_inverse_laplace_transform_integration.<locals>.simp_heaviside�s���� �C�H�S�!��W�W�a� � �� �5�5��8�8� &��S�"�%�%� %�@�@�@�@�@�@����A��q�)�)�� �7�a�<�<��C�G� � �A��Q��U�B�'�'� '��C�G� � �A��q�1�u�X�r�*�*� *rpc�:�tt|����Sr�)r r')r#s rn�simp_expz8_inverse_laplace_transform_integration.<locals>.simp_exps���c�#�h�h�'�'�'rp)�sympy.integrals.meijerintr�r��sympy.integrals.transformsr�r�is_rational_function�apartr�rrjrFr�r'rr�rHr�r~rEr�r�r0r�r;)r�r{rmr�r�r�r�r�r�r�rrr�r�r�s ` `` @@@rnrcrc�s���������N�M�M�M�M�M�M�M�C�C�C�C�C�C� �c�����A� 6� 6� 6� 6� 6� 6� ���a� � �� �G�G�A�J�J���x�8� ���������v���� �������2����1�1�4�7�7��*�*�1�a��a�R���4���:L�48�%�I�I�I���4�4�� !���� �������� �y� � ��1�a� (� (�� �9��4� �>� ��f�Q�i�G�A�t��u�u�X��� ��t� ��6�D� �I�I�i�� )� )���~�#��v�v�a��}�}�d�"�"� �c� � �A� �v� +� +� +� +� +� +� +� � � �)�^�,�,�A�(�(�(� � � �#�x� � �A� �Q�V�V�A�r�]�]�H� -� -�t� 3�3s�!.C� C�Cc�$�ddlm}||��\}}|�|��rc|�|�����}t |��dkr)|\}}}|||d|zz zdz||z z|d|zz dzz z}||z S)Nr)�fractionr�r�)r�r rr�r~r8) r�r{r r�r��cfr�r�r�s rn�_complete_the_square_in_denomr  s���/�/�/�/�/�/� �X�a�[�[�F�Q�����q���4� �Y�Y�q�\�\� $� $� &� &�� �r�7�7�a�<�<��G�A�q�!��A�a��1��g�I��>�!�A�#�%�q�!�A�#�w��l�2�3�A� �Q�3�Jrpc ��td��}td��}td|g���}td|g���}td|g���}td��d�}d �}||z |tj|d f|||z| zz||d z zt | |z��zt |��z tj|d fd |d z|d zzd zz t||z��||zt||z��zz d |d zzz tj|d fd ||zz ||d z zt |��z tj|d fd |||z|zzz t|||z��||zt |��zz tj|d fg}|||fS) z� This is an internal helper function that returns the table of inverse Laplace transform rules in terms of the time variable `t` and the frequency variable `s`. It is used by `_inverse_laplace_apply_rules`. r{r�r�r�r�r�z._inverse_laplace_build_rules is building rulesc�R� |�|��S#t$r|cYSwxYwr�)�factorrP)r�r{s rn�_fracz+_inverse_laplace_build_rules.<locals>._frac&s;�� ��8�8�A�;�;� ��� � � ��H�H�H� ���s �� &�&c��|Sr�rq)r�s rn�samez*_inverse_laplace_build_rules.<locals>.same,s���rprar�r�) rr rurr�r'r@r3r2rA)r{r�r�r�r�rr� _ILT_ruless rn�_inverse_laplace_build_rulesrs��� �c� � �A� �c� � �A� �S�1�#����A� �S�1�#����A� �S�1�#����A� � ;�<�<�<���� ��� �1��a����q�!� �q��s�q�b�k�M�1�q��s�8�C���1��I�I�-�e�A�h�h�6� �F�D�!� � �A�q�D��A��I��>� �C��!��H�H�q��s�3�q��s�8�8�|�3�a��1��f�=� ���q� � �A�q�D��1�q�1�u�:�e�A�h�h�&����a�8� �A�q��s�Q�h�J���A�q��s�+�+�Q��T�%��(�(�]�;� ���q� ��J� �q�!� �rpc�D��|dkr*td��t|��tjfSt ��\}}}d}|�||i��}|D]�\}} } } } || | fkr| || z��} | | f}| �|����r�| }|tjur�fd�|dD��}|d|�}|tjkrHt|��| �����||i��ztjfcS��dS)�@ Helper function for the class InverseLaplaceTransform. raz rule: 1 o---o DiracDelta()r�c�:��g|]}|������Srq)r�)r�r�r�s �rnr�z7_inverse_laplace_apply_simple_rules.<locals>.<listcomp>Us#���5�5�5�1�� � �2���5�5�5rprN) rur:rr�rr�r�r;r�)r�r{r�rr�rm�_prep�fsubsr�r�r�r�r��_Fr�rjr�s @rn�#_inverse_laplace_apply_simple_rulesr@s@���  �A�v�v��0�1�1�1��!�}�}�a�f�$�$�5�7�7��J��B� �E� �F�F�A�r�7�O�O�E�*4� M� M�&��u�e�T�3� �T�3�K� � ���e�C�i���B��3�K�E� �X�X�e�_�_�� � M��A������5�5�5�5��!��5�5�5���A�a�D�$�K���A�F�{�{� ��|�|�E�N�N�2�$6�$6�$;�$;�R��G�$D�$D�D�a�f�L�L�L�L�� �4rpc�V�td|g���}td|g���}td��}|�|t|||f��z��}|rK||jr>t d��t |||||dd���\}} | ||z|z| fSdS) rr�r�r�rz3 rule: t**n*f(t) o---o (-1)**n*diff(F(s), s, n)F�r�� dorationalN)r r�r ruru�_inverse_laplace_transform) r�r{r�r�r�r�rr�r�r�s rn�_inverse_laplace_diffr!]s��� �S�1�#����A� �S�1�#����A� �S� � �A� ����:�a�!�Q��(�(�(� )� )�B� � �b��e�� ��D�E�E�E�)� �q�E�1�a���5�B�B�B���1���R��U�{�1�}�a��� �4rpc��td|g���}td��}|�|��s|t|��ztjfS|�t ��sdS|�t ||z����}|r^||jr3td��t|||z��tjfSt||||��tjfS|�t ||z��|z��}|r^||jr3td��t||||||z|dd� ��St||||��tjfSdS) rr�r�rNz* rule: exp(-a*s) o---o DiracDelta(t-a)z5 rule: exp(-a*s)*F(s) o---o Heaviside(t-a)*f(t-a)FTr) r r~r:rr�r'r�rrur�r )r�r{r�r�r�rrs rn�_inverse_laplace_time_shiftr#ns{�� �S�1�#����A� �S� � �A� �5�5��8�8�'���A������&�&� �5�5��:�:���t� �'�'�#�a��c�(�(� � �C� �C� �q�6� � C� �?� @� @� @��a��A��h�'�'���/� /�*�1�a��E�:�:�A�F�B� B� �'�'�#�a��c�(�(�1�*� � �C� �C� �q�6� � C� �J� K� K� K�-��A���1�S��V�8�U�U�t�M�M�M� M�+�1�a��E�:�:�A�F�B� B� �4rpc���|�|��s|t|��ztjfSt |jx}��dkr�t d|g���}|d�||z ��x}rtt||��j rZtd��t|| |z��t|� |��|||��ztjfSdS)rrar�r�rz& rule: F(s-a) o---o exp(-a*t)*f(t)N)r~r:rr�r8rjr r�r!r�rur'r�rm)r�r{r�r�rjr�r�s rn�_inverse_laplace_freq_shiftr%�s��� �5�5��8�8�'���A������&�&� �1�6�>�4���a��� ��q�c� "� "� "���q�'�-�-��!��$�$� $�B� I�"�R��U�)�)�*?� I� �;� <� <� <��R��U�F�1�H� � �'����q� � �1�a��?�?�@�AB��I� I� �4rpc��td|g���}td��}|�||z|z��}|r�||jr�||jr�t d��t |||||dd���\}}|�t|��d��}|�t��rt||||��|fSt|��t||||��z|fSd S) rr�r�rz+ rule: s**n*F(s) o---o diff(f(t), t, n)FTrraN) r r�rur�rur r�r;r~r�r) r�r{r�r�r�rrr�r�s rn�_inverse_laplace_time_diffr'�s �� �S�1�#����A� �S� � �A� �'�'�!�Q�$�q�&�/�/�C� �6�s�1�v� �6�S��V�%7�6��<�=�=�=�)� ��F�A�q�%�%�D�B�B�B���1� �I�I�i��l�l�A� &� &�� �5�5�(� )� )� 6���1�c�!�f�%�%�q�(� (��Q�<�<��Q��3�q�6� 2� 2�2�A�5� 5� �4rpc ��9������td�g����td�g����td�g����td�g����d}tj}|���}�����fd�|D��}d|vrdStj}g} g} g} |D]o} | �dkr|| z}�| �jr| �| ���7| �jr| �| ���Z| �| ���pt| ��fd �� ��} t| ��fd �� ��} t| ��dkrdSt| ��d k�r�t| ��dk�r�| d�d kr�| d�tj kr�| d�| d�z } d | d�z |z}| jrr|tt��z t|��z || zt| dz|z��zt| t|��z��zz }td���n�| d�dkr�| d�tj kr�| d�| d�z }|dz} d | d�dzz |z}|jr�|d dtt��z t| ��zt|��zz d d| z|zz t| |z��zt!t| ��t|��z��d z zzz}td���n�| d�dkr�| d�tj kr�| d�| d�z } d | d�dzz |z}| jr�|dtt��z | dz|zd zzt|��z| |zt| dz|z��zd| dzz|zdzzt| t|��z��zz z}td���n�| d�dk�r| d�tj kr�| d�| d�z } d | d�dzz |zdz }| jr�||d| dzz|dzzd| dzz|zzdzzt| dz|z��zt| t|��z��zdtt��z | dzz|td��dz zzd| dzz|zdzzz z}td���nl| d�tj kr�| d�dkrpt| d�| d�z ��} d t| d���z |z}|t#d| |z��z}td���n�t| ��d k�r�t| ��d k�r�| d�dk�r"| d�tj k�r| d�tj kr�| d�dkr�| d�} t| d���| d�z |z}|d| dzz|dzzd| dzz|zzd zzt| dz|z��zt| t|��z��zdtt��z | z| dz|zdzzt|��zz }td��| d�d k�rK| d�d k�r8| d�tj k�r| d�d k�r| d�| d�z } | d�| d�z }t| d���| d�z |z}|t| |z��t|��z tt��z t| |z ��t| |z��zt!t| |z ��t|��z��zzz}td���nt| ��dk� r}t| ��dk� ri| d�d k�r | d�d kr�| d �tj kr�| d �d kr�| d �dkr�| d� | d�z } d t| d ���z | d�z |z}| jra|t| ��z t| |z��zt!t| ��t|��z��z}td���n�| d�d kr�| d�d kr�| d�dkr�| d �d kr�| d �tj kr�| d �| d �z } d | d�z | d �z | z |z}| jrJ|d t| dz|z��t| t|��z��zz z}td���n�| d�d kr�| d�tj kr�| d �tj kr�| d �d kr�| d �dkr�| d�| d�z } d | d�t| d ���zz |z}| jrG|t| dz|z��zt| t|��z��z}td���n�| d�td�� dz k�r+| d�d k�r| d�dk�r| d �d kr�| d �tj kr�| d �| d �z } d | d�td��dz z| d �zz | dzz |z}| jru|dtt��z | zt|��zt| dz|z��t| t|��z��zzd z z}td ���ns| d�dk�r@| d�tj k�r#| d �d k�r| d �d kr�| d �dkr�| d�| d�z }|dz} d | d�dzz | d �z |z}|jr�|d | z d|zd | z z t| |z��ztt| ��t|��z��zzdtt��z t| ��z t|��zz z}td!���n | d�dk�r/| d�tj k�r| d �tj kr�| d �d kr�| d �dkr�| d�| d�z } d | d�dzz t| d ���z |z}| jrx|dtt��z t|��zd| z|zt| dz|z��zt| t|��z��zz z}td"��� n�| d�dk�r%| d�tj k�r| d �tj kr�| d �d kr�| d �dkr�| d�} |t| d ���z | d�z }|d| dzz|zd z|zt| dz|z��zt| t|��z��zdtt��z | z|td��dz zzz z}td#��� n�| d�d k�r| d�d k�r| d �tj kr�| d �d kr�| d�| d�z } | d �| d �z }|t| d ���z | d�z }|d t|| z ��z t| |z��zt!t|| z ��t|��z��zz}td$��� n}t| ��dk�r�t| ��d k�r�| d�d k�r�| d�d k�r�| d �d k�r�| d �tj k�r�| d�tj k�r�| d�d k�ro| d�dk�r\| d �| d �z }|dz} | d� | d�z }t| d���| d�z | d �z | |z z |z}|jr�|jr�|| t| |z��ztt| ��t|��z��zt| ��t|��zt||z��ztt|��t|��z��zz|t||z��zz z}td%���n`| d�d k�rD| d�d k�r1| d�dk�r| d �d k�r | d �tj kr�| d�d kr�| d�tj kr�| d�| d�z }| d �| d �z } | |zdkr|| d�| d�z | d �z |z}|dt| dz|z��zt| t|��z��zd z z}td&���n | d �d k�r�| d �d k�rm| d �dk�rZ| d�dk�rG| d�tj k�r*| d�dk�r| d�tj kr�| d�| d�z }| d�| d�z } | |zdkr�| d�dz| d �z | d�dzz |z}|d d'| dzz|zt| dz|z��zt| t|��z��zzd'tt��z | zt|��zz z}td(���nv| d �d k�r�| d �d k�r�| d �dk�r}| d�dk�rj| d�tj k�rM| d�dk�r:| d�tj k�r| d�| d�z }| d�| d�z } | |zdkr�| d�dz| d �z | d�dzz |z}|dd'| dzz|dzzd'| dzz|zzd zzt| dz|z��zt| t|��z��zd'tt��z | zt|��zd| dzz|zd zzz d z z}td)���n�t| ��dk�r�t| ��dk�r�| d�d k�ru| d�dk�rb| d�d k�rO| d �d k�r<| d �d k�r)| d�tj k�r | d�d kr�| d � | d �z } d | d�z | d �z t| d���z |z}| jr�|| td�� dz zt| |z��zt!t| ��t|��z��zd| z tt��z t|��zz z}td*���n| d�d k�r�| d�d k�r�| d �d k�r�| d �tj k�r�| d�tj k�r�| d�d k�r�| d�dk�rt| d �| d �z }|dz} | d� | d�z }d | d�z | d �z t| d���z t|��| |z zz }|jr�|jr�|t|��t| |z��ztt| ��t|��z��zt| ��t||z��zt!t|��t|��z��zzt|��t||z��zz z}td+��|�dSt%|��|z|fS),rr�r�r�r�r�Nc�R��g|]#}|����zz�z�z����$Srq)r�)r�r�r�r�r�r�r{s �����rnr�z/_inverse_laplace_irrational.<locals>.<listcomp>�s5��� -� -� -�Q�!�'�'�1�Q��T�6�!�8�a�-� � � -� -� -rprc�:��|�|�dk|�fSr�rq�r�r�r�s ��rnr�z-_inverse_laplace_irrational.<locals>.<lambda>������1��q��t�q�y�!�A�$�(?�rpr�c�:��|�|�dk|�fSr�rqr+s ��rnr�z-_inverse_laplace_irrational.<locals>.<lambda>�r,rprar�r�z rule 5.3.4r�z rule 5.3.10�����r�z rule 5.3.13�����r�� r�z rule 5.3.16z rule 5.3.35/44z rule 5.3.14z rule 5.3.22z rule 5.3.1z rule 5.3.5z rule 5.3.7z rule 5.3.8z rule 5.3.11z rule 5.3.12z rule 5.3.15z rule 5.3.23z rule 5.3.6z rule 5.3.17�z rule 5.3.18z rule 5.3.19z rule 5.3.2z rule 5.3.9)r rr��as_ordered_factorsr#r�r%r�sortedr8r�r/rr'r=rur<r7r;)rr{r�r�rlr��far�� constants�zeros�poles�restr(r��k_�a_sq�b_�a_numr�r�r�r�s ` @@@@rn�_inverse_laplace_irrationalr=�s/������� �S�1�#����A� �S�1�#����A� �S�1�#����A� �S�1�#����A� �F���I� � � � � �B� -� -� -� -� -� -� -� -�"� -� -� -�B� �r�z�z��t���I� �E� �E� �D����� ��7�a�<�<�!�$��I�I� �!�W� � � �L�L�� � � � � �!�W� � � �L�L�� � � � � �K�K�� � � � � �5�?�?�?�?�?� @� @� @�E� �5�?�?�?�?�?� @� @� @�E� �4�y�y�A�~�~��t� �5�z�z�Q���3�u�:�:��?�?� ��8�A�;�"� � ��q��!����!6�!6��q��!��U�1�X�a�[�(�B��5��8�A�;��y�(�B��~� *��t�B�x�x�K��Q���'��r�E�#�b�!�e�A�g�,�,�&�t�B�t�A�w�w�J�'7�'7�7�8���(�)�)�)�� �1�X�a�[�B� � �5��8�A�;�!�&�#8�#8���8�A�;�u�Q�x��{�*�D��q��B��5��8�A�;��>�!�)�+�B��� +���A�d�2�h�h�J�t�B�x�x�/��Q���7�7��1�R�4��6��3�r�!�t�9�9�,�c�$�r�(�(�4��7�7�2B�.C�.C�A�.E�F�G�H���)�*�*�*�� �1�X�a�[�B� � �5��8�A�;�!�&�#8�#8��q��!��U�1�X�a�[�(�B��5��8�A�;��>�!�)�+�B��~� +���$�r�(�(� �B��E�!�G�A�I�.�t�A�w�w�6��1��S��Q��q��\�\�)�1�R��U�7�1�9�Q�;�7��R��Q���Z�8H�8H�H�I�J���)�*�*�*�� �1�X�a�[�B� � �5��8�A�;�!�&�#8�#8��q��!��U�1�X�a�[�(�B��5��8�A�;��>�!�)�+�A�-�B��~� +���1�R��U�7�1�a�4�<��2�q�5��� �2�1�4�5�c�"�a�%��'�l�l�B��R��Q���Z�(�(�)��$�r�(�(� �2�q�5�(��Q�q�T�T�!�V��4�a��A��g�a�i��k�B�C�D���)�*�*�*�� �1�X�a�[�Q�V�G� #� #��a��� �q�(8�(8��e�A�h�q�k�%��(�1�+�-�.�.�B��4��a��� �$�$�$�Y�.�B��'�!�R��T�*�*�+�F� �(� )� )� )�� �U���q���S��Z�Z�1�_�_��a��� �r�!�!�e�A�h�q�k�Q�V�&;�&;��a��� �q�v�%�%�%��(�1�+��*:�*:��q��!��B��e�A�h�q�k�"�"�5��8�A�;�.�y�8�B��A�b�!�e�G�A�q�D�L��2�q�5����*�1�,�-�c�"�a�%��'�l�l�:��R��Q���Z� � �!�#$�T�"�X�X�:�b�=�"�a�%��'�!�)�#<�T�!�W�W�#D�E� � �%� &� &� &��a��� �r�!�!�e�A�h�q�k�Q�&6�&6��a��� �q�v�%�%�%��(�1�+��*:�*:��q��!��U�1�X�a�[�(�B��q��!��U�1�X�a�[�(�B��e�A�h�q�k�"�"�5��8�A�;�.�y�8�B��C���A��J�J�t�A�w�w�&�t�B�x�x�/��R��U� � ����A��J�J�1�"�4��2��;�;�t�A�w�w�#6�7�7�18�8�9� � �%� &� &� &�� �U���q���S��Z�Z�1�_�_��a��� �r�!�!�e�A�h�q�k�Q�&6�&6��a��� ���w�&�&�5��8�A�;�!�+;�+;��a��� �q� � ���(�1�+��e�A�h�q�k�)�B��4��a��� �$�$�$�U�1�X�a�[�0��:�B��~� *��T�"�X�X�+�c�"�Q�$�i�i�/��D��H�H�T�!�W�W�4D�0E�0E�E���(�)�)�)���a��� �r�!�!�e�A�h�q�k�Q�&6�&6�5��8�A�;�!�;K�;K��a��� �r�!�!�e�A�h�q�k�Q�V�&;�&;��q��!��U�1�X�a�[�(�B��5��8�A�;��u�Q�x��{�*�2�-�i�7�B��~� *��Q�s�2�q�5��7�|�|�D��D��G�G��,<�,<�<�<�=���(�)�)�)���a��� �r�!�!�e�A�h�q�k�Q�V�&;�&;��a��� ���w�&�&�5��8�A�;�!�+;�+;��a��� �q� � ��q��!��U�1�X�a�[�(�B��E�!�H�Q�K��U�1�X�a�[� 1� 1�1�2�9�<�B��~� *��C��A��a��L�L���b��a���j�)9�)9�9���(�)�)�)���a��� ��!���u�Q�w�&�&�5��8�A�;�!�+;�+;��a��� �q� � �U�1�X�a�[�B�%6�%6��a��� �q�v�%�%� �q��!��U�1�X�a�[�(�B��E�!�H�Q�K�!�A�$�$�q�&�)�%��(�1�+�5�6�r�1�u�<�Y�F�B��~� *���$�r�(�(� �2� �d�1�g�g�-�c�"�a�%��'�l�l�4��4��7�7� �;K�;K�.K�K�A�M�N���(�)�)�)���a��� �r�!�!�e�A�h�q�k�Q�V�&;�&;��a��� �r�!�!�e�A�h�q�k�Q�&6�&6��a��� �q� � ���8�A�;�u�Q�x��{�*�D��q��B��5��8�A�;��>�!�%��(�1�+�-�i�7�B��� +���"���!��A�b�D��#�b��d�)�)�3�D��b���$�q�'�'�9I�4J�4J�J�J��$�r�(�(� �4��8�8�+�D��G�G�3�4�5���)�*�*�*���a��� �r�!�!�e�A�h�q�k�Q�V�&;�&;��a��� ���w�&�&�5��8�A�;�!�+;�+;��a��� �q� � ��q��!��U�1�X�a�[�(�B��5��8�A�;��>�!�$�u�Q�x��{�"3�"3�3�I�=�B��~� +���$�r�(�(� �4��7�7�*��"��Q��s�2�q�5��7�|�|�+�D��D��G�G��,<�,<�<�=�>���)�*�*�*���a��� �r�!�!�e�A�h�q�k�Q�V�&;�&;��a��� ���w�&�&�5��8�A�;�!�+;�+;��a��� �q� � ��q��!��B��4��a��� �,�,�,�U�1�X�a�[�8�B���2�q�5����1��a���B��E�!�G� � �,�T�"�T�!�W�W�*�-=�-=�=��$�r�(�(� �2� �a�!�A�$�$�q�&�k�)�*�+�F� �%� &� &� &� &��a��� �r�!�!�e�A�h�q�k�Q�&6�&6��a��� ���w�&�&�5��8�A�;�!�+;�+;��q��!��U�1�X�a�[�(�B��q��!��U�1�X�a�[�(�B��4��a��� �,�,�,�U�1�X�a�[�8�B���$�r�"�u�+�+� �c�2�#�a�%�j�j�(��T�"�R�%�[�[��a���-@�)A�)A�A�C�F� �%� &� &� &�� �U���q���S��Z�Z�1�_�_��a��� �r�!�!�e�A�h�q�k�Q�&6�&6��a��� �r�!�!�e�A�h�q�k�Q�V�&;�&;��a��� �q�v�%�%�%��(�1�+��*:�*:��a��� �q� � ���8�A�;�u�Q�x��{�*�D��q��B���(�1�+��e�A�h�q�k�)�B��e�A�h�q�k�"�"�5��8�A�;�.�u�Q�x��{�:�B�r�E�B�9�L�B��� *�B�N� *���s�2�a�4�y�y�L��d�2�h�h�t�A�w�w�&6�!7�!7�7���H�H�T�"�X�X�%�c�"�Q�$�i�i�/��T�"�X�X�d�1�g�g�5E�0F�0F�F�G��s�2�a�4�y�y�L�!�"���(�)�)�)���a��� �r�!�!�e�A�h�q�k�Q�&6�&6��a��� �q� � �U�1�X�a�[�B�%6�%6��a��� �q�v�%�%�%��(�1�+��*:�*:��a��� �q�v�%�%��!�H�Q�K��a��� �+�E��q��!��U�1�X�a�[�(�B��%�x�1�}�}��1�X�a�[��q��!��,�U�1�X�a�[�8��B����c�"�a�%��'�l�l�N�4��4��7�7� �#3�#3�3�A�5�7���)�*�*�*���a��� �r�!�!�e�A�h�q�k�Q�&6�&6��a��� �q� � �U�1�X�a�[�B�%6�%6��a��� �q�v�%�%�%��(�1�+��*:�*:��a��� �q�v�%�%��!�H�Q�K��a��� �+�E��q��!��U�1�X�a�[�(�B��%�x�1�}�}��1�X�a�[�!�^�E�!�H�Q�K�/��a��� �Q��>�y�H�����"�a�%��� �#�b�!�e�A�g�,�,�.�t�B�t�A�w�w�J�/?�/?�?�?��d�2�h�h�J�r�M�$�q�'�'�)�*�+���)�*�*�*���a��� �r�!�!�e�A�h�q�k�Q�&6�&6��a��� �q� � �U�1�X�a�[�B�%6�%6��a��� �q�v�%�%�%��(�1�+��*:�*:��a��� �q�v�%�%��!�H�Q�K��a��� �+�E��q��!��U�1�X�a�[�(�B��%�x�1�}�}��1�X�a�[�!�^�E�!�H�Q�K�/��a��� �Q��>�y�H����q��Q��w�q�!�t�|�A�b�!�e�G�A�I�-�a�/�0��R��U�1�W���=���D��G�G��$�$�%�%&�t�B�x�x�Z��]�4��7�7�%:�A�b�!�e�G�A�I�a�K�%H�I�IJ�K�L���)�*�*�*�� �U���q���S��Z�Z�1�_�_��a��� �r�!�!�e�A�h�q�k�Q�&6�&6�5��8�A�;�!�;K�;K��a��� �r�!�!�e�A�h�q�k�Q�&6�&6��a��� ���w�&�&�5��8�A�;�!�+;�+;���(�1�+��e�A�h�q�k�)�B��5��8�A�;��u�Q�x��{�*�4��a��� �+<�+<�<�Y�F�B��~� *���!�A�$�$��q��M�C��1��I�I�-��D��H�H�T�!�W�W�4D�0E�0E�E��b�D��b���M�$�q�'�'�)�*�+���(�)�)�)���a��� �r�!�!�e�A�h�q�k�Q�&6�&6��a��� �r�!�!�e�A�h�q�k�Q�V�&;�&;��a��� ���w�&�&�5��8�A�;�!�+;�+;��a��� �q� � ���8�A�;�u�Q�x��{�*�D��q��B���(�1�+��e�A�h�q�k�)�B��%��(�1�+� �e�A�h�q�k�)�$�u�Q�x��{�*;�*;�;��b���2�b�5�!�#� ��� *�B�N� *����H�H�S��A��Y�Y�&�t�D��H�H�T�!�W�W�,<�'=�'=�=���H�H�S��A��Y�Y�&�s�4��8�8�D��G�G�+;�'<�'<�<�=���H�H�S��A��Y�Y�&�'�(���(�)�)�)� �~��t���|�|�F�"�I�-�-rpc�H�tg}|D]}|||||��x}�|cS�dS�rN)r=�r�r{r�r�r�r�r�s rn�!_inverse_laplace_early_prog_rulesrA�sI�� .�.�J��������1�a��'�'� '�A� 4��H�H�H� 5� �4rpc�x�tttttg}|D]}|||||��x}�|cS�dSr?)r#r%r'r!r=r@s rn�!_inverse_laplace_apply_prog_rulesrC�sY�� .�/J�,�.C�-�/�J��������1�a��'�'� '�A� 4��H�H�H� 5� �4rpc���|jrdSt|d���}|jrt||||dd���St|��}|jrt||||dd���St|��}|jrt||||dd���S|�|��r'|�|�����}|jrt||||dd���SdS)rNFr�Tr)r�r r r rr r�)rr{r�r�r�s rn�_inverse_laplace_expandrE s)��  �y���t��r�����A��x�=�)� �q�!�U�U�t�=�=�=� =��2���A��x�=�)� �q�!�U�U�t�=�=�=� =��r� � �A��x�=�)� �q�!�U�U�t�=�=�=� =� ���q�!�!�� �H�H�Q�K�K� � � � ���x�=�)� �q�!�U�U�t�=�=�=� =� �4rpc ���td��}|�|��}tj|��}g}tjg} |D�]V} | ���\} } | �|�����} | d��fd�| D��} �fd�| �|�����D��}t| ��dkr.|dt|��z}|� |����t| ��dkrI|dt| d |z��z}|� t|��|z����'t| ��dk�r�| ddz }| d|dzz ���}t|��dkrtjg|z}t!|��\}}|dkr'||z|d||zz zzt| |z��z}�n%d}|jr| }d }t%t'|dz|z |�������d}t+|�����}|r]|t| |z��zt/||z��z|||zz |z t| |z��zt1||z��zz}n\|t| |z��zt3||z��z|||zz |z t| |z��zt5||z��zz}|� t|��|z����t7| ||||d� ��\}}|� |��| � |����Xt|�}|r|�d� ��}|t9| �fS) r�x_rc���g|]}|�z ��Srqrq�r�r��dc_leads �rnr�z-_inverse_laplace_rational.<locals>.<listcomp>4s��� $� $� $�A�a��i� $� $� $rpc���g|]}|�z ��SrqrqrIs �rnr�z-_inverse_laplace_rational.<locals>.<listcomp>5s��� ;� ;� ;�A�a��i� ;� ;� ;rprar�r�FTrr�)rr rr$rr�rr�r~r8r:r%r'r;rr��tuplerr�rQrr/r�r)r+r2r3r rM)rr{r�r�r�rGr�r�r�r�r(r�r�rKr:r�r�r��lr��hyp�b2�bsr�r�rlrJs @rn�_inverse_laplace_rationalrQ&s���� ����B� ���� � �A� �M�!� � �E��G��&��J��&$�&$���$�$�&�&���A� �Y�Y�q�\�\� $� $� &� &���Q�%�� $� $� $� $�� $� $� $�� ;� ;� ;� ;����1���!8�!8�!:�!:� ;� ;� ;�� �r�7�7�a�<�<��1��j��m�m�#�A� �N�N�1� � � � � ��W�W��\�\��1��c�2�a�5�&��(�m�m�#�A� �N�N�9�Q�<�<��>� *� *� *� *� ��W�W��\�\��1��a��A��A��q�!�t��#�#�%�%�A��2�w�w�!�|�|��f�X��]����9�9�D�A�q��A�v�v��q�S��A�a��c�E��]�C���1��I�I�-������=����A��C��%��A��a���,�,�1�1�3�3�4�4�Q�7���!�W�W�%�%�'�'���O��#�q�b��d�)�)� �D��A��J�J�.�!�A�a�C�%��2���r�!�t�9�9�2%�%)�"�Q�$�Z�Z�20�0��A��#�q�b��d�)�)� �C��1��I�I�-��1�Q�3��� �3��r�!�t�9�9�0D�S��A��Y�Y�0N�N�A� �N�N�9�Q�<�<��>� *� *� *� *�1��a��E�H��H�H�H�H�B�� �N�N�2� � � � � � �d� #� #� #� #� �'�]�F��-����e��,�,�� �3� �#� #�#rpc����tj|��}g}g}|D�]�} | �t��r>| ��� �������� ��} | ��d���\} } |r,| ����rt| �|||���x} �St| �|��x} �?t| �||��x} �*t| �||��x} �t| �||��x} �n�t�fd�| �t��D����rt!| �||��t"jf} n6t'| �|||���x} �nt!| �||��t"jf} | \} }|�| | z��|�|�����t|�}|r|�d���}t-|�}||fS)z� Front-end function of the inverse Laplace transform. It tries to apply all known rules recursively. If everything else fails, it tries to integrate. Fr�rNc3�B�K�|]}|����V��dSr�rt)r�r�r�s �rnr�z-_inverse_laplace_transform.<locals>.<genexpr>�s-�����B�B�5����2���B�B�B�B�B�Brpr�)rr$r~r'r�rSr�rrQrrArErCr�r�r r�rr�rcr%r�rM)rr�rmr�r�rr�r�r�r(r-r�r�r�r�rlr�s ` rnr r ^sb��� �M�"� � �E��G��J��%�%�� �8�8�C�=�=� ?��9�9�R�"��%�%�.�.�0�0�5�5�b�2�#�>�>�D��"�"�2�e�"�4�4���1�� D�#�8�8��<�<� D�/��r�2�u�x�9�9�9�9����:�!�R��D�D�D����7��2�r�5�I�I�I����-�a��R��?�?�?����7��2�r�5�I�I�I���� � �B�B�B�B�A�G�G�L�,A�,A�B�B�B� B� B� D�)��B��E�:�:�A�F�C�A�A�;��r�2�u�x�9�9�9�9��AE�F� �(��B��E�:�:�A�F�C�A�� ��c����q��u�������#����� �'�]�F��-����e��,�,���Z� �I� �9� �rpc�p�eZdZdZdZed��Zed��Zd�Ze d���Z d�Z d�Z d �Z d S) r�z� Class representing unevaluated inverse Laplace transforms. For usage of this class, see the :class:`IntegralTransform` docstring. For how to compute inverse Laplace transforms, see the :func:`inverse_laplace_transform` docstring. zInverse Laplace�Noner�c �J�|� tj}tj|||||fi|��Sr�)r��_none_sentinelrG�__new__)r�r�r{r�r��optss rnrXzInverseLaplaceTransform.__new__�s0�� �=�+�:�E� �(��a��A�u�E�E��E�E�Erpc�@�|jd}|tjurd}|S)Nr�)rjr�rW)r�r�s rn�fundamental_planez)InverseLaplaceTransform.fundamental_plane�s&��� �!� �� �+�:� :� :��E�� rpc �,�t||||jfi|��Sr�)rcr[)r�r�r{r�r�s rnr�z*InverseLaplaceTransform._compute_transform�s-��5� �q�!�T�+�6�6�/4�6�6� 6rpc��|jj}tt||z��|z||tjtjzz |tjtjzzf��dtjztjzz S)Nr�)� __class__�_crEr'r� ImaginaryUnitr��Pi)r�r�r{r�r�s rnr�z$InverseLaplaceTransform._as_integral�sn�� �N� �� �S��1��X�X�a�Z�!�Q�����)C�%C�"#�a�o�a�j�&@�"@�"B� C� C� �q�t�V�A�O� #� %� &rpc ��|�dd��}|�dd��}td|j|j|jf��|j}|j}|j}|j}t |||||d���}|r|dS|S)r�r�Tr�Fz[ILT doit] (%s, %s, %s)rr)r�rXr�r�r�r[r ) r�r�r�rFr�rmrr�r�s rnr�zInverseLaplaceTransform.doit�s����9�9�Y��-�-���I�I�j�%�0�0� ��(�4�=�+/�+A�+/�+B�+D� E� E� E�� #�� � $�� �]���&�� &� ��B�� �d� D� D� D�� � ��Q�4�K��HrpN)rir�r�r�r�rrWr_rX�propertyr[r�r�r�rqrprnr�r��s��������� �E��U�6�]�]�N� ��s���B�F�F�F� ����X�� 6�6�6�&�&�&�����rpr�c �F�������dd��}��dd��}t|t��r+t|d��r|�����fd���St |������d|���\}}|r|S||fS)a Compute the inverse Laplace transform of `F(s)`, defined as .. math :: f(t) = \frac{1}{2\pi i} \int_{c-i\infty}^{c+i\infty} e^{st} F(s) \mathrm{d}s, for `c` so large that `F(s)` has no singularites in the half-plane `\operatorname{Re}(s) > c-\epsilon`. Explanation =========== The plane can be specified by argument ``plane``, but will be inferred if passed as None. Under certain regularity conditions, this recovers `f(t)` from its Laplace Transform `F(s)`, for non-negative `t`, and vice versa. If the integral cannot be computed in closed form, this function returns an unevaluated :class:`InverseLaplaceTransform` object. Note that this function will always assume `t` to be real, regardless of the SymPy assumption on `t`. For a description of possible hints, refer to the docstring of :func:`sympy.integrals.transforms.IntegralTransform.doit`. Examples ======== >>> from sympy import inverse_laplace_transform, exp, Symbol >>> from sympy.abc import s, t >>> a = Symbol('a', positive=True) >>> inverse_laplace_transform(exp(-a*s)/s, s, t) Heaviside(-a + t) See Also ======== laplace_transform hankel_transform, inverse_hankel_transform r�Tr�Fr�c�$��t|���fi���Sr�)�inverse_laplace_transform)�Fijr�r�r{r�s ����rnr�z+inverse_laplace_transform.<locals>.<lambda> s���1�#�q�!�U�L�L�e�L�L�rpr�)r�rrNr�r�r�r�) r�r{r�r�r�r�rFr�r�s ```` rnrfrf�s�������Z�y�y��D�)�)�H�� � �*�e�,�,�I��!�Z� � �N�W�Q� �%<�%<�N��{�{� L� L� L� L� L� L� L�N�N� N� #�1�a��E� 2� 2� 7� 7�� � 8� +� +�D�A�q������!�t� rpc���������� � �tdt�g���\�� � �����fd���fd����fd���� � ��fd���fd���|��S)zEFast inverse Laplace transform of rational function including RootSumza, b, nr�c����|����s|S|jr �|��S|jr �|��S|jr �|��St |t ��r �|��St �r�)r~r�r}rxrrT�NotImplementedError)�e�_ilt_add�_ilt_mul�_ilt_pow� _ilt_rootsumr{s �����rn�_iltz#_fast_inverse_laplace.<locals>._ilt s�����u�u�Q�x�x� &��H� �X� &��8�A�;�;� � �X� &��8�A�;�;� � �X� &��8�A�;�;� � ��7� #� #� &��<��?�?� "�%� %rpc�>��|jt�|j���Sr�)rm�maprj)rkrps �rnrlz'_fast_inverse_laplace.<locals>._ilt_add- s����q�v�s�4���(�(�)�)rpc�l��|����\}}|jrt�|�|��zSr�)r�r}rj)rkr�r�rpr{s ��rnrmz'_fast_inverse_laplace.<locals>._ilt_mul0 s=����&�&�q�)�)� ��t� �;� &�%� %��t�t�D�z�z�!�!rpc�J��|���z�z�z��}|�||�|�|�}}}|jr>|dkr8� | dz zt||z � z��z|| zt| ��zz S|dkrt||z � z��|z St�r�)r�� is_Integerr'r@rj) rkr��nm�am�bmr�r�r�r{r�s �����rnrnz'_fast_inverse_laplace.<locals>._ilt_pow6 s��������1��q��1� �%�%�� � ��q��5��8�U�1�X�B��B��}� G��a����B�3�q�5�z�#��2��h�q�j�/�/�1�2��s�7�5�"��:�:�3E�F�F��Q�w�w��R��U�8�A�:����+�+�!�!rpc ���|jj}|jj\}t|jt |t �|��������Sr�)�funr�� variablesrT�polyrrS)rkr��variablerps �rnroz+_fast_inverse_laplace.<locals>._ilt_rootsum@ sC����u�z���U�_� ���q�v�v�h����d���0D�0D�E�E�F�F�Frp)rr ) rkr{r�rprlrmrnror�r�r�s ``@@@@@@@@rn�_fast_inverse_laplacer~ s��������������i�T�A�3�7�7�7�G�A�q�!� &� &� &� &� &� &� &� &� &�*�*�*�*�*�"�"�"�"�"�"� "�"�"�"�"�"�"�"�"�G�G�G�G�G� �4��7�7�Nrp)Tr�)�r�rgrd� sympy.corerrr�sympy.core.addr�sympy.core.cacher�sympy.core.exprr�sympy.core.functionr r r r r rrrrr�sympy.core.mulrr�sympy.core.relationalrrrrrrrr�sympy.core.sortingr�sympy.core.symbolrrr �$sympy.functions.elementary.complexesr!r"r#r$r%r&�&sympy.functions.elementary.exponentialr'r(�%sympy.functions.elementary.hyperbolicr)r*r+r,�(sympy.functions.elementary.miscellaneousr-r.r/�$sympy.functions.elementary.piecewiser0r1�(sympy.functions.elementary.trigonometricr2r3r4r5�sympy.functions.special.besselr6r7r8r9�'sympy.functions.special.delta_functionsr:r;�'sympy.functions.special.error_functionsr<r=r>�'sympy.functions.special.gamma_functionsr?r@rArB�-sympy.functions.special.singularity_functionsrC�sympy.integralsrDrErrFrGrH�sympy.logic.boolalgrIrJrKrLrM�sympy.matrices.matrixbaserN�sympy.polys.matrices.linsolverO�sympy.polys.polyerrorsrP�sympy.polys.polyrootsrQ�sympy.polys.polytoolsrR�sympy.polys.rationaltoolsrS�sympy.polys.rootoftoolsrT�sympy.utilities.exceptionsrUrVrW�sympy.utilities.miscrXrerrrur�r�rbr�rr rrr!r)r3rirqrwr�r�r�r�r�r�r�rr�r�rcr rrr!r#r%r'r=rArCrErQr r�rfr~rqrprn�<module>r�s ���� � � � � � � � �����������������$�$�$�$�$�$� � � � � � �&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�%�$�$�$�$�$�$�$�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�&�&�&�&�&�&�2�2�2�2�2�2�2�2�2�2�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�;�;�;�;�;�;�;�;�I�I�I�I�I�I�I�I�I�I�I�I�C�C�C�C�C�C�C�C�C�C�$�$�$�$�$�$�$�$�I�I�I�I�I�I�I�I�I�I�I�I�M�M�M�M�M�M�M�M�M�M�M�M�I�I�I�I�I�I�I�I�A�A�A�A�A�A�A�A�A�A�,�,�,�,�,�,�,�,�,�,�,�,�M�M�M�M�M�M�/�/�/�/�/�/�/�/�:�:�:�:�:�:�:�:�:�:�E�E�E�E�E�E�E�E�E�E�E�E�E�E�0�0�0�0�0�0�6�6�6�6�6�6�2�2�2�2�2�2�'�'�'�'�'�'�&�&�&�&�&�&�.�.�.�.�.�.�+�+�+�+�+�+�I�I�I�I�I�I�I�I�I�I�'�'�'�'�'�'� � ����<E�E�E�X�X�X�v �6�6� ��6� �lL�lL� ��lL�^ � � � �� �  �U)�U)� ��U)�p ��� ���* �&�&� ��&�R ��� ���, �)�)� ��)�X ��� ���$ ��� ���@ �I'�I'� ��I'�X �;�;� ��;�@ ��� ���8 �/�/� ��/�d ��� ���8 ��� ���" ��� ���4 �,�,� ��,�^9�9�9�x* �* �* �Z �@$�@$� ��@$�F5�5�5�5�5�(�5�5�5�pN�N�N�N�b �M4�M4� ��M4�` ��� ��� �%�%� ��%�P ��� ���8 � � � �� �  ��� ���> � � � �� �  ��� ���( �w.�w.� ��w.�t  � � � �� � � � � �� � ��� ���4 �4$�4$� ��4$�n �5�5� ��5�pD�D�D�D�D�/�D�D�D�N:�:�:�:�z*�*�*�*�*rp
Memory