Ë
    7^(hþS ã                   óä  — d Z ddlZddlZddlmZmZmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZmZmZmZmZmZmZmZmZmZ ddlmZmZ dd	lmZmZmZmZm Z m!Z!m"Z"m#Z# dd
l$m%Z% ddl&m'Z'm(Z(m)Z) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2m3Z3 ddl4m5Z5m6Z6m7Z7m8Z8 ddl9m:Z:m;Z;m<Z< ddl=m>Z>m?Z? ddl@mAZAmBZBmCZCmDZD ddlEmFZFmGZGmHZHmIZI ddlJmKZKmLZL ddlMmNZNmOZOmPZP ddlQmRZRmSZSmTZTmUZU ddlVmWZW ddlXmYZYmZZZ ddl[m\Z\m]Z]m^Z^ ddl_m`Z`maZambZbmcZcmdZd ddlemfZf ddlgmhZh ddlimjZj ddlkmlZl ddlmmnZn ddlompZp dd lqmrZr dd!lsmtZtmuZumvZv dd"lwmxZx dayd#„ Zzd$„ Z{d%„ Z|ezd&„ «       Z}ezd'„ «       Z~ezd(„ «       Ze
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‘ G d;„ d<e]«      Z’dPd=„Z“ezd>„ «       Z”ezd?„ «       Z•e
d@„ «       Z–ezdA„ «       Z—ezdB„ «       Z˜ezdC„ «       Z™ezdD„ «       ZšezdE„ «       Z›ezdF„ «       ZœezdG„ «       Z�ezdH„ «       ZžezdI„ «       ZŸezdJ„ «       Z ezdK„ «       Z¡ G dL„ dMe]«      Z¢dQdN„Z£dO„ Z¤y)RzLaplace 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                 ó   ‡ — ˆ fd„}|S )Nc                  óf  •— ddl m} |s ‰| i |¤ŽS t        dk(  rt        dt        j
                  ¬«       t        ddt        z  ›‰j                  ›| ›�t        j
                  ¬«       t        dz  a‰j                  dk(  s‰j                  d	k(  rDd
t         _        t        ddt        z  z  t        j
                  ¬«        ‰| i |¤Ž}dt         _        n ‰| i |¤Ž}t        dz  at        ddt        z  ›d|›�t        j
                  ¬«       t        dk(  rt        dt        j
                  ¬«       |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       €úU/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/integrals/laplace.pyÚwrapzDEBUG_WRAP.<locals>.wrap1   só   ø€ Ý%ñ Ù˜Ð( Ñ(Ð(ä˜Š>Ü�-¤c§j¡jÕ1Ý˜t¤Iš~¨t¯}ª}¹dÐCÜ—:‘:õ	ä�Q‰ˆ	à—‘Ð!AÒAØ—‘Ð!IÒIØ %ŒEÔÜÐ*¨d´9©nÑ=ÄCÇJÁJÕOÙ˜4Ð* 6Ñ*ˆFØ $ŒEÕá˜4Ð* 6Ñ*ˆFÜ�Q‰ˆ	Ý $¤y£.±&Ð9ÄÇ
Á
ÕKÜ˜Š>Ü�-¤c§j¡jÕ1Øˆó    © )rm   ro   s   ` rn   Ú
DEBUG_WRAPrr   0   s   ø€ ôð4 €Krp   c                 ód   — ddl m} |r(t        ddt        z  ›| ›�t        j
                  ¬«       y y )Nr   r[   r_   r`   r]   )rd   r\   rf   re   rg   rh   )Útextr\   s     rn   Ú_debugru   N   s$   € Ý!áÝ˜T¤)š^©TÐ2¼¿¹ÖDð rp   c                 óÌ   ‡‡‡‡‡— ˆfd„Šˆˆˆˆfd„Šˆfd„Šˆfd„}d„ }ddl m}  || «      }  || t        ‰«      }  || t        ˆfd„«      }  || 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                 ó`   •— | ‰k(  ry| j                   r| j                  ‰k(  r| j                  S y )Nra   )Úis_PowÚbaser'   )ÚexÚss    €rn   Úpowerz_simplifyconds.<locals>.powerv   s*   ø€ Ø�Š7ØØ�9Š9˜Ÿ™ AšØ—6‘6ˆMØrp   c                 ó  •— | j                  ‰«      r|j                  ‰«      ryt        | t        «      r| j                  d   } t        |t        «      r|j                  d   }| j                  ‰«      r ‰d|z  d| z  «      S  ‰|«      }|€y	 |dkD  r,t        | «      t        ‰«      |z  k  t        j
                  k(  ry|dk  r-t        | «      t        ‰«      |z  k\  t        j
                  k(  ryyy# t        $ r Y yw xY w)z_ Return True only if |ex1| > |ex2|, False only if |ex1| < |ex2|.
            Else return None. Nr   ra   FT)ÚhasÚ
isinstancer$   rj   r   ÚtrueÚ	TypeError)Úex1Úex2ÚnÚaÚbiggerr|   r{   s      €€€€rn   r†   z_simplifyconds.<locals>.bigger}   sæ   ø€ ð �7‰7�1Œ:˜#Ÿ'™' !œ*ØÜ�cœ3ÔØ—(‘(˜1‘+ˆCÜ�cœ3ÔØ—(‘(˜1‘+ˆCØ�7‰7�1Œ:Ù˜!˜C™%  3¡Ó'Ð'Ù�#‹JˆØˆ9Øð	Ø�1Šuœ#˜c›(¤c¨!£f¨a¡iÑ/´A·F±FÒ:ØØ�1Šuœ#˜c›(¤c¨!£f¨a¡iÑ/´A·F±FÒ:Øð ;ˆuøäò 	Ùð	ús   Â0C3 Ã 0C3 Ã3	C?Ã>C?c                 ó¤   •— | j                   st        | t        «      r|j                   st        |t        «      s| |k  S  ‰| |«      }|�| S | |k  S )z simplify x < y )Úis_positiver   r$   )ÚxÚyÚrr†   s      €rn   Úrepliez_simplifyconds.<locals>.replie“   sL   ø€ à—’¤*¨Q´Ô"4ØŸš¬°A´sÔ);Ø˜‘EˆNÙ�1�a‹LˆØˆ=Ø�5ˆLØ�A‘ˆrp   c                 ó8   •—  ‰| |«      }|dv ryt        | |«      S )N©TFT)r   )r‰   rŠ   Úbr†   s      €rn   Úrepluez_simplifyconds.<locals>.replue�   s&   ø€ Ù�1�a‹LˆØ�ÑØÜ˜!˜QÓÐrp   c                 ó>   — | dv rt        | «      S  | j                  |Ž S )NrŽ   )ÚboolÚreplace)rz   rj   s     rn   Úreplz_simplifyconds.<locals>.repl£   s$   € Ø�ÑÜ˜“8ˆOØˆr�z‰z˜4Ð Ð rp   r   )Úcollect_absc                 ó   •—  ‰|| «      S ©Nrq   )r‰   rŠ   rŒ   s     €rn   ú<lambda>z _simplifyconds.<locals>.<lambda>«   s   ø€ ¡v¨a°£|€ rp   )Úsympy.simplify.radsimpr•   r   r   r   r   )	Úexprr{   r…   r�   r”   r•   r†   r|   rŒ   s	    ``   @@@rn   Ú_simplifycondsr›   U   s`   ü€ ôB÷ô,ô ò!õ
 3Ù�tÓ€DÙ�”b˜&Ó!€DÙ�”bÓ3Ó4€DÙ�”j &Ó)€DÜˆT‹7€Nrp   c                 ó@   — t        | | j                  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Ó5Ð5rp   c                ó  ‡‡‡‡— t        d«      Š| j                  t        «      ryt        | t	        ‰ ‰z  «      z  ‰t
        j                  t
        j                  f«      }|j                  t        «      s;t        |j                  ‰‰«      |«      t
        j                  t
        j                  fS |j                  sy|j                  d   \  }}|j                  t        «      ryˆˆfd„}t        |«      D �cg c]
  } ||«      ‘Œ }}|D �	cg c]0  }	|	d   t
        j                   k7  sŒ|	d   t
        j                  ur|	‘Œ2 }
}	|
s&|D �	cg c]  }	|	d   t
        j                   k7  sŒ|	‘Œ }
}	t#        t%        |
«      «      }d„ Š|j'                  ˆfd„¬«       |sy|d   \  }}ˆˆfd	„}|rt)        |‰|«      }t)        |‰|«      }t        |j                  ‰‰«      |«       ||«      t+         ||«      «      fS c c}w c c}	w c c}	w )
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{   Nr   c                 óˆ  •‡— ddl m} t        j                  }t        j                  }t        t        | «      «      } t        dt        ‰g¬«      \  }}}}}}	}
|t        t        ‰|z   |z  «      «      z  |k  |t        t        ‰|z   |z  «      «      z  |k  t        t        ‰|z   |z  |z  |«      «      |k  t        t        ‰|z   |z  |z  |«      «      |k  t        t        t        ‰|z   «      |z  |z  |«      «      |k  t        t        t        ‰|z   «      |z  |z  |«      «      |k  f}| D �]÷  }t        j                  }g }t        |«      D �]¡  }|j                  r$‰|j                   j"                  v r|j$                  }|j                  r"t'        |t(        t*        f«      r|j,                  }|D ]  }|j/                  |«      Š‰sŒ n ‰r9‰|   j0                  r*‰|   ‰|   z  t2        dz  k(  rt5        ‰‰|   z   «       dk  }|j/                  |t7        |t        t        ‰|
z  «      «      z  |z  «      t        ‰|z  «      |	z  z  z
  dk  «      Š‰sN|j/                  t7        |t        t        ‰|z  |
z  |«      «      |z  z
  «      t        ‰|z  «      |	z  z  dk  «      Š‰sW|j/                  |t7        t        t        t        ‰«      |z  |
z  |«      «      |z  «      t        ‰|z  «      |	z  z  z
  dk  «      Š‰r*t9        ˆfd„||||	|
fD «       «      rt5        ‰«      ‰|   kD  }|j;                  t4        d„ «      j=                  t5        ‰«      ‰«      }|j                  r0|j>                  dv s"|jA                  ‰«      s|jA                  ‰«      s||gz  }�ŒO ||‰«      }|j                  r|j>                  dv r||gz  }�Œz|jB                  ‰k(  r  y	tE        |jB                  |«      }�Œ¤ |t        j                  urtG        ||«      }�ŒætI        |tK        |Ž «      }�Œú ||j                  r|jL                  fS |fS )
z7 Turn ``conds`` into a strip and auxiliary conditions. r   ©Ú_solve_inequalityzp q w1 w2 w3 w4 w5©ÚclsÚexcludeé   c              3   ó<   •K  — | ]  }‰|   j                   –— Œ y ­wr—   )rˆ   )Ú.0ÚwildÚms     €rn   ú	<genexpr>zH_laplace_transform_integration.<locals>.process_conds.<locals>.<genexpr>ø   s   øè ø€ ò -°T˜Q˜t™W×0Õ0ñ -ùs   ƒc                 óD   — | j                  «       j                  «       d   S ©Nr   )r   Úas_real_imag)r‰   s    rn   r˜   zG_laplace_transform_integration.<locals>.process_conds.<locals>.<lambda>ü   s   €  !§(¡(£*×"9Ñ"9Ó";¸AÑ">€ rp   )z==z!=N)'Úsympy.solvers.inequalitiesr£   r   ÚNegativeInfinityr€   rJ   rI   r   r    r$   r#   r&   r%   ÚInfinityrK   Úis_RelationalÚrhsÚfree_symbolsÚreversedr   r   r   ÚreversedsignÚmatchrˆ   r   r!   r2   Úallr“   ÚsubsÚrel_opr~   Últsr.   r-   rM   rL   Ú	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‰fˆÜœ& ›-Ó(ˆÜ#*Ø ¤d°Q°Cô$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Ó5¸Ñ:ÜÔ! 1 r¡6¨A¡+¨a¡-°Ó4Ó5¸Ñ;ÜÔ!¤:¨a°"©fÓ#5¸Ñ"9¸!Ñ";¸RÓ@ÓAÀBÑFÜÔ!¤:¨a°"©fÓ#5¸Ñ"9¸!Ñ";¸RÓ@ÓAÀRÑGðIˆð ó -	*ˆAÜ—‘ˆBØˆDÜ˜q“\ó &+�Ø—?’? q¨A¯E©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£~Ñ$5°bÑ$8Ó 9¼#¸aÀ¹e»*Àb¹.Ñ HÑHÈ1ÑLÓM�ÙØŸ™Ü˜A¤Ô$5°a¸±e¸B±hÀÓ$BÓ CÀBÑ FÑFÓGÜ˜A˜r™E›
 B™ñ'Ø)*ñ+ó,�Añ ØŸ™ØœCÜÔ 1´*¸Q³-ÀÑ2CÀBÑ2FÈÓ JÓKÈBÑNóä! ! R¡%›j¨"™nñ-ñ -à/0ñ1ó2�Añ œó -Ø˜B  B¨ð>,ô -ô -ä˜1›  !¡™�AØ—Y‘YÜÑ>ó@ß@DÁÄRÈÃUÈAÃð ð ŸOšO¨q¯x©x¸<Ñ/GØŸ6™6 !œ9¨B¯F©F°1¬IØ˜Q˜C‘K�DÙÙ(¨¨QÓ/�Ø×)Ò)¨T¯[©[¸LÑ-HØ˜Q˜C‘K�DÙØ—8‘8˜q’=Úä˜TŸX™X rÓ*’BðM&+ðN œŸ™Ñ#Ü˜˜A“J’ä˜#œr 4˜yÓ)’ð[-	*ð\  3×#4Ò#4�#—-‘-Ð=Ð=¸#Ð=Ð=rp   ra   c                 ó,   — | dv ry| j                  «       S )NrŽ   r   )Ú	count_opsrž   s    rn   Úcntz+_laplace_transform_integration.<locals>.cnt  s   € Ø�=Ñ ØØ�~‰~ÓÐrp   c                 ó&   •— | d     ‰| d   «      fS ©Nr   ra   rq   )r‰   rÓ   s    €rn   r˜   z0_laplace_transform_integration.<locals>.<lambda>  s   ø€ ˜q ™t˜e¡S¨¨1©£YÐ/€ rp   ©Úkeyc                 ó(   •— | j                  ‰‰«      S r—   )rº   )rš   r{   Ús_s    €€rn   Úsbsz+_laplace_transform_integration.<locals>.sbs!  s   ø€ Ø�y‰y˜˜BÓÐrp   )r   r~   r:   rD   r'   r   ÚZeror²   rE   rF   rº   r±   r€   Úis_Piecewiserj   rK   ÚfalseÚlistr   Úsortr›   r   )ÚfrÏ   rÙ   ÚsimplifyÚFÚcondrÐ   rÈ   r¾   r‰   Úconds2r…   r¿   rÚ   rÓ   r{   s    ``           @@rn   rb   rb   ¹   s¿  û€ ô 	ˆc‹
€Aà‡u�uŒZÔØä�!”C˜˜˜1™“I‘+ ¤1§6¡6¬1¯:©:Ð6Ó7€Aà�5‰5”Œ?Ü˜Ÿ™  2›¨Ó1´1×3EÑ3EÄqÇvÁvÐMÐMà�>Š>Øà�f‰f�Q‰i�G€A€tØ‡u�uŒX„Øõ=>ô~ (1°£Ö7 !‰]˜1ÕÐ7€EÐ7Øö :�A ! A¡$Ü�g‰gó#Ø˜A™$¤a×&8Ñ&8Ñ8ò ð :€Fð :áØ"Ö6˜ a¨¡d¬a¯g©g£o’!Ð6ˆÐ6Ü”˜“Ó!€Eò ð 
‡J�JÓ/€JÔ0áØØ�1‰X�F€A€sõ áÜ˜1˜a Ó#ˆÜ˜S ! QÓ'ˆÜ�Q—V‘V˜A˜r“] HÓ-©s°1«v´zÁ#ÀcÃ(Ó7KÐKÐKùò- 8ùò:ùò 7s   Ã9G:ÄG?Ä*G?ÅHÅ'Hc                 óÞ   — t        | t        «      s| S | j                  |«      x}�|j                  «       S | j                  }| j
                  D �cg c]  }t        ||«      ‘Œ }} ||Ž S c c}w )a  
    This is an internal helper function that traverses through the expression
    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)`.
    )r   r   Úas_polyÚas_exprrm   rj   Ú_laplace_deep_collect)rà   rÏ   rÀ   rm   r#   rj   s         rn   rè   rè   )  si   € ô �aœÔØˆØ�Y‰Y�q‹\ÐˆÐ&Ø�y‰y‹{ÐØ�6‰6€DØ56·V±VÖ<¨cÔ! # qÕ)Ð<€DÐ<Ù�ˆ;Ðùò =s   ÁA*c                  ó°/  ‡— t        d«      Št        d«      } t        d‰g¬«      }t        d‰g¬«      }t        d‰g¬«      }t        d‰g¬«      }t        d‰g¬«      }ˆfd	„}t        d
«       g ||| z  t        j                  t        j
                  |f‘t        |‰z  |z
  «      t        |  |z  |z  «      t        |«      z  t        t        |dkD  |dk\  «      t        |dk  |dk  «      «      t        j                  |f‘t        |‰z  |z
  «      t        d«      t        t        |dk  |dk\  «      t        |dkD  |dk  «      «      t        j                  |f‘t        |‰z  |z
  «      t        |  |z  |z  «      | z  t        |dkD  |dkD  «      t        j
                  |f‘t        |‰z  |z
  «      dt        |  |z  |z  «      z
  | z  t        |dk  |dk  «      t        j
                  |f‘t        |‰z  |z
  «      d| z  t        |dkD  |dk  «      t        j
                  |f‘t        |‰z  |z
  «      dt        |dk  |dkD  «      t        j
                  |f‘‰d| dz  z  t        j                  t        j
                  |f‘d|‰z  |z   z  t        | |z  | z  «       t        | |z  | z  «      z  |z  t        t        ||z  «      «      t        k  t        j
                  |f‘dt!        |‰z  |z   «      z  t!        |t        z  | z  «      t        ||z  | z  «      z  t#        t!        ||z  | z  «      «      z  |z  t        t        ||z  «      «      t        k  t        j
                  |f‘|‰z  |z   t        d«       dz  z  d|t        d«       dz  z  z  dt        | z  |z  t        d«      dz  z  z  t        ||z  | z  «      z  t#        t!        ||z  | z  «      «      z  |z  z
  t        t        ||z  «      «      t        k  t        j
                  |f‘t!        ‰«      ‰|z   z  t!        t        | z  «      t        t!        |«      z  t        || z  «      z  t#        t!        || z  «      «      z  z
  t        t        |«      «      t        k  t        j
                  |f‘d|t!        ‰«      z  ‰dz  z   z  t        |t        d«      dz  z  z  t        || z  «      z  t#        t!        || z  «      «      z  t        j                  t        j
                  |f‘‰|z  t%        |dz   «      | |dz   z  z  |dkD  t        j
                  |f‘|‰z  |z   |z  t'        |dz   ||z  | z  «      t        | |z  | z  «      z  | |dz   z  z  |z  t        |dkD  t        t        ||z  «      «      t        k  «      t        j
                  |f‘‰|z  ‰|z   z  ||z  t%        |dz   «      z  t'        | || z  «      z  t        |dkD  t        t        |«      «      t        k  «      t        j
                  |f‘t        |‰z  |z
  «      t        | «      | |z
  z  t        j                  t)        |«      |f‘‰t        |‰z  |z
  «      z  t        | «      | |z
  dz  z  t        j                  t)        |«      |f‘‰|z  t        |‰z  «      z  t%        |dz   «      | |z
  |dz   z  z  t)        |«      dkD  t)        |«      |f‘t        | ‰dz  z  «      t!        t        dz  |z  «      t        | dz  dz  |z  «      z  t#        | t!        d|z  «      z  «      z  t)        |«      dkD  t        j
                  |f‘‰t        | ‰dz  z  «      z  dd|z  z  dt!        t        «      z  d|z  t        d«      dz  z  z  | z  t#        | t!        d|z  «      z  «      z  z
  t)        |«      dkD  t        j
                  |f‘t        | ‰z  «      dt!        || z  «      z  t+        ddt!        || z  «      z  «      z  t)        |«      dk\  t        j
                  |f‘t!        ‰«      t        | ‰z  «      z  t        d«      dz  t!        t        | dz  z  «      z  ddt!        || z  «      z  z   z  t        dt!        || z  «      z  «      z  t)        |«      dk\  t        j
                  |f‘t        | ‰z  «      t!        ‰«      z  t!        t        | z  «      t        dt!        || z  «      z  «      z  t)        |«      dk\  t        j
                  |f‘t        | ‰z  «      ‰t!        ‰«      z  z  t!        t        |z  «      t        dt!        || z  «      z  «      z  t)        |«      dkD  t        j
                  |f‘‰|z  t        | ‰z  «      z  d|| z  |dz   dz  z  z  t+        |dz   dt!        || z  «      z  «      z  t)        |«      dkD  t        j
                  |f‘t        | t        ‰ «      z  «      ||  z  t-        | |«      z  t        j                  t        j
                  |f‘t        | t        ‰«      z  «      || z  t'        |  |«      z  t)        |«      dkD  t        j
                  |f‘t/        |‰z  «      t/        t        t        j0                  «      | z  |z  «       | z  |dkD  t        j
                  |f‘t/        d|‰z  z   «      t        | |z  «       | z  t        |  |z  «      z  t        t        |«      «      t        k  t        j
                  |f‘t/        |‰z  |z   «      t/        |«      t        | |z  |z  «      | z  |z  t        |  |z  «      z  z
  | z  |z  t        |dkD  t        t        |«      «      t        k  «      t        j
                  |f‘t/        ‰«      t!        ‰«      z  t!        t        | z  «       t/        d| z  t        t        j0                  «      z  «      z  t        j                  t        j
                  |f‘‰|z  t/        ‰«      z  t%        |dz   «      | | dz
  z  z  t3        |dz   «      t/        | «      z
  z  t)        |«      dkD  t        j
                  |f‘t/        |‰z  «      dz  t/        t        t        j0                  «      | z  |z  «      dz  t        dz  dz  z   | z  |dkD  t        j
                  |f‘t5        |‰z  «      || dz  |dz  z   z  t        j                  t        t7        |«      «      |f‘t        t5        |‰z  «      «      || dz  |dz  z   z  t9        t        | z  dz  |z  «      z  |dkD  t        j
                  |f‘t5        |‰z  «      ‰z  t;        || z  «      t        j                  t        t7        |«      «      |f‘t5        |‰z  «      dz  ‰z  t/        dd|dz  z  | dz  z  z   «      dz  t        j                  dt        t7        |«      «      z  |f‘t5        |‰z  «      dz  ‰dz  z  |t;        d|z  | z  «      z  | t/        dd|dz  z  | dz  z  z   «      z  dz  z
  t        j                  dt        t7        |«      «      z  |f‘t=        |‰z  «      | | dz  |dz  z   z  t        j                  t        t7        |«      «      |f‘t=        |‰z  «      dz  | dz  d|dz  z  z   | dz  d|dz  z  z   z  | z  t        j                  dt        t7        |«      «      z  |f‘t5        |‰z  «      t5        |‰z  «      z  d|z  |z  | z  | dz  ||z   dz  z   z  | dz  ||z
  dz  z   z  t        j                  t        t7        |«      «      t        t7        |«      «      z   |f‘t=        |‰z  «      t5        |‰z  «      z  || dz  |dz  z
  |dz  z   z  | dz  ||z   dz  z   z  | dz  ||z
  dz  z   z  t        j                  t        t7        |«      «      t        t7        |«      «      z   |f‘t=        |‰z  «      t=        |‰z  «      z  | | dz  |dz  z   |dz  z   z  | dz  ||z   dz  z   z  | dz  ||z
  dz  z   z  t        j                  t        t7        |«      «      t        t7        |«      «      z   |f‘t?        |‰z  «      || dz  |dz  z
  z  t        j                  t        t)        |«      «      |f‘tA        |‰z  «      | | dz  |dz  z
  z  t        j                  t        t)        |«      «      |f‘t?        |‰z  «      dz  d|dz  z  | dz  d|dz  z  | z  z
  z  t        j                  dt        t)        |«      «      z  |f‘tA        |‰z  «      dz  | dz  d|dz  z  z
  | dz  d|dz  z  | z  z
  z  t        j                  dt        t)        |«      «      z  |f‘t?        |‰z  «      ‰z  t/        | |z   | |z
  z  «      dz  t        j                  t        t)        |«      «      |f‘‰|z  t?        |‰z  «      z  t%        |dz   «      dz  | |z
  | dz
  z  | |z   | dz
  z  z
  z  |dkD  t        |«      |f‘‰|z  tA        |‰z  «      z  t%        |dz   «      dz  | |z
  | dz
  z  | |z   | dz
  z  z   z  |dkD  t        |«      |f‘tC        |‰z  «      t        | dz  d|z  dz  z  «      t#        | d|z  z  «      z  | z  dt        t        |«      «      z  t        k  t        j
                  |f‘tE        ||‰z  «      ||z  t!        | dz  |dz  z   «      | t!        | dz  |dz  z   «      z   |z  z  z  t)        |«      dkD  t        t7        |«      «      |f‘‰|z  tE        ||‰z  «      z  d|z  t!        t        «      z  t%        |t        jF                  z   «      z  ||z  z  | dz  |dz  z   | t        jF                  z
  z  z  t        t)        |«      t        jF                   kD  tI        ||«      «      t        t7        |«      «      |f‘‰|z  tE        ||‰z  «      z  d|dz   z  t!        t        «      z  t%        |t        d«      dz  z   «      z  ||z  z  | z  | dz  |dz  z   | t        d«      dz  z
  z  z  t        t)        |«      dkD  tI        ||dz   «      «      t        t7        |«      «      |f‘tE        d|t!        ‰dz  |‰z  z   «      z  «      t        || z  |t!        | dz  |dz  z   «      z  z
  «      t!        | dz  |dz  z   «      z  t        t        |«      «      t        k  t        t7        |«      «      |f‘tK        ||‰z  «      ||z  t!        | dz  |dz  z
  «      | t!        | dz  |dz  z
  «      z   |z  z  z  t)        |«      dkD  t        t)        |«      «      |f‘‰|z  tK        ||‰z  «      z  d|z  t!        t        «      z  t%        |t        jF                  z   «      z  ||z  z  | dz  |dz  z
  | t        jF                  z
  z  z  t        t)        |«      t        jF                   kD  tI        ||«      «      t        t)        |«      «      |f‘‰|z  tK        ||‰z  «      z  d|dz   z  t!        t        «      z  t%        |t        d«      dz  z   «      z  ||z  z  | z  | dz  |dz  z
  | t        d«      dz  z
  z  z  t        t)        |«      dkD  tI        ||dz   «      «      t        t)        |«      «      |f‘tM        d|‰z  «      dt        z  tO        | |z  «      z  t!        | dz  |dz  z   «      z  t        j                  t        t7        |«      «      |f‘t+        d|‰z  «      t/        | t!        | dz  |dz  z
  «      z   |z  «      t!        | dz  |dz  z
  «      z  t        j                  t)        |«       |f‘}|‰| fS )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        | ‰«      S r—   )rè   )rà   rÏ   s    €rn   Údcoz!_laplace_build_rules.<locals>.dcoS  s   ø€ Ô,¨Q°Ó2Ð2rp   z&_laplace_build_rules is building rulesr   ra   r§   é   g      ø?éÿÿÿÿé   éþÿÿÿé   )(r   r    ru   r   r€   rÛ   r:   r'   r$   rL   rM   r±   r;   r>   r#   r   r/   r=   r@   rB   r!   r8   rA   r(   Ú
EulerGammar?   r3   r"   r*   r4   r2   r+   r)   r<   r7   ÚHalfr   r6   r9   r,   )	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Ü
Ð3Ô4ð|Ø	
ˆAˆa‰CÜ	
�‰”—‘˜ð	ð|ô 
�A�a‘C˜‘EÓ	œC   1¡ Q¡›K¬¨A«Ñ.Ü	ŒC��A‘�q˜A‘vÓ¤ A¨¡E¨1°©6Ó 2Ó	3Ü	
×	Ñ	˜Sð	"ð|ô 
�A�a‘C˜‘EÓ	œA˜a›DÜ	ŒC��A‘�q˜A‘vÓ¤ A¨¡E¨1°©6Ó 2Ó	3Ü	
×	Ñ	˜Sð	"ð|ô 
�1�Q‘3�q‘5Ó	œ3 ˜r !™t A™v›; q™=Ü	ˆQ�‰U�A˜‘EÓ	œAŸF™F Cð	)ð|ô 
�1�Q‘3�q‘5Ó	˜Aœc 1 " Q¡$ q¡&›k™M¨1Ñ,Ü	ˆQ�‰U�A˜‘EÓ	œAŸF™F Cð	)ð|ô 
�1�Q‘3�q‘5Ó	˜1˜Q™3Ü	ˆQ�‰U�A˜‘FÓ	œQŸV™V Sð	*ð|ô 
�1�Q‘3�q‘5Ó	˜1Ü	ˆQ�‰U�A˜‘EÓ	œAŸF™F Cð	)ð|ð" 
ˆAˆa�‰d‰FÜ	
�‰”—‘˜ð	ð#|ð& 
ˆAˆa‰C�‰E‰”S˜!˜˜A™˜a™“[�L¤ Q B q¡D¨¡F£Ñ+¨AÑ-Ü	ŒS��1‘‹X‹œÑ	œQŸV™V Sð	*ð'|ð* 
Œ4��!‘�A‘‹;‰œ˜Qœr™T !™V›¤S¨¨1©¨Q©£ZÑ/´´T¸!¸A¹#¸a¹%³[Ó0AÑAÀ!ÑCÜ	ŒS��1‘‹X‹œÑ	œQŸV™V Sð	*ð+|ð. ˆA‰#ˆa‰%”A�a“D�5˜‘7Ñ	Ø	
ˆ1”�!“ˆu�Q‰w‰<‰˜œ2˜a™4 ™6¤Q q£T¨!¡VÑ,Ñ,¬S°°1±°Q±«ZÑ7¼$¼tÀAÀaÁCÈÁE»{Ó:KÑKÈAÑMÑ	MÜ	ŒS��1‘‹X‹œÑ	œQŸV™V Sð	*ð/|ô4 
ˆa‹�!�A‘#‰œœR ™T›
¤2¤d¨1£g¡:¬c°!°A±#«hÑ#6´t¼DÀÀ1Á»I³Ñ#FÑFÜ	ŒS�‹V‹”rÑ	œ1Ÿ6™6 3ð	(ð5|ð8 
ˆAŒd�1‹g‰I˜˜C™Ñ Ñ	!¤2 a¬!¨A«$¨q©&¡k¡>´#°a¸±c³(Ñ#:¼4ÄÀQÀqÁSÃ	»?Ñ#JÜ	
�‰”—‘˜ð	ð9|ð< 
ˆA‰Œu�Q�q‘S‹z˜!˜a ™c™(Ñ"Ø	
ˆR‰”—‘˜ð	ð=|ð@ ˆA‰#ˆa‰%�!‰”Z  !¡ Q q¡S¨¡UÓ+¬C°°°1±°Q±«KÑ7¸¸A¸a¹C¹Ñ@ÀÑBÜ	ˆQ�‰V”Sœ˜Q˜q™S›“]¤RÑ'Ó	(¬!¯&©&°#ð	7ðA|ðD 
ˆA‰ˆq�‰s‰�Q˜‘Tœ%  !¡›*‘_¤Z°°°A°a±CÓ%8Ñ8Ü	ˆQ�‰V”Sœ˜Q›“[¤2Ñ%Ó	&¬¯©°ð	5ðE|ôH 
ˆQˆq‰S�‰W‹”s˜C˜4“y ! A¡#‘Ü	
�‰”�A“˜ð	ðI|ðL 
Œ3ˆq�‰s�3‰w‹<‰œ˜c˜T› A a¡C¨!¡8Ñ+Ü	
�‰”�A“˜ð	ðM|ðP 
ˆA‰Œc�!�A‘#‹h‰œ˜a ™c›
 A a¡C¨1¨Q©3¡<Ñ/Ü	ˆA‹�‰”R˜“U˜Cð	!ðQ|ôT 
ˆaˆR��1‘‰W‹”tœB˜q™D ™F“|¤C¨¨1©¨Q©¨q©£MÑ1´$°q¼¸aÀ¹c»±{Ó2CÑCÜ	ˆA‹�‰”A—F‘F˜Cð	!ðU|ðX 
Œ3�ˆr�!�Q‘$‰w‹<‰Ø	
ˆAˆa‰C‰�”4œ“8‘˜Q˜q™S¤A a£D¨¡F™OÑ+¨AÑ-¬d°1´T¸!¸A¹#³Y±;Ó.?Ñ?Ñ	?Ü	ˆA‹�‰”A—F‘F˜Cð	!ðY|ô^ 
ˆaˆR�‰T‹�A”d˜1˜Q™3“i‘K¤¨¨1¬T°!°A±#«Y©;Ó 7Ñ7Ü	ˆA‹�!‰”Q—V‘V˜Sð	"ð_|ôb 
ˆa‹”�a�R˜‘T“Ñ	Ü	
ˆ1‹ˆa‰””R˜˜1™‘W“Ñ	˜q ¤4¨¨!©£9¡™}Ñ	-¬c°"´T¸!¸A¹#³Y±,Ó.?Ñ	?Ü	ˆA‹�!‰”Q—V‘V˜Sð	"ðc|ôh 
ˆaˆR�‰T‹”4˜“7Ñ	œD¤ A¡›J¤s¨2¬d°1°Q±3«i©<Ó'8Ñ8Ü	ˆA‹�!‰”Q—V‘V˜Sð	"ði|ôl 
ˆaˆR�‰T‹�A”d˜1“g‘IÑ	¤¤R¨¡T£
¬3¨r´$°q¸±s³)©|Ó+<Ñ <Ü	ˆA‹�‰”A—F‘F˜Cð	!ðm|ðp 
ˆA‰Œc�1�"�Q‘$‹i‰˜˜A˜a™C A a¡C¨¡7Ñ+Ñ+¬G°A°a±C¸¼4ÀÀ!Á»9¹Ó,EÑEÜ	ˆA‹�‰”A—F‘F˜Cð	!ðq|ôB 
ˆaˆR”�Q�B“‰Z‹˜!˜q˜b™'¤*¨Q°Ó"2Ñ2Ü	
�‰”—‘˜ð	ðC|ôF 
ˆaˆR”�A“‰Y‹˜˜A™œj¨!¨¨QÓ/Ñ/Ü	ˆA‹�‰”A—F‘F˜Cð	!ðG|ôJ 
ˆQˆq‰S‹”CœœAŸL™LÓ)¨!Ñ+¨AÑ-Ó.Ð.¨qÑ0Ø	
ˆQ‰”—‘˜ð	ðK|ôN 
ˆQˆq�‰s‰U‹”c˜!˜A™#“h�Y˜q‘[¤ Q B q¡D£Ñ)Ü	ŒS�‹V‹”rÑ	œ1Ÿ6™6 3ð	(ðO|ôR 
ˆQˆq‰S�‰U‹”c˜!“fœS  1¡ Q¡›Z¨™\¨!™^¬B°¨r°!©t«HÑ4Ñ4°aÑ7¸Ñ9Ü	ˆQ�‰U”Cœ˜A›“K¤"Ñ$Ó	%¤q§v¡v¨sð	4ðS|ôV 
ˆQ‹”�Q“‰œ$œr !™t›*˜¤S¨¨1©¬S´·±Ó->Ñ)>Ó%?Ñ?Ü	
�‰”—‘˜ð	ðW|ðZ 
ˆA‰Œc�!‹f‰”e˜A˜a™C“j  a R¨¡T¡Ñ*¬G°A°a±C«L¼¸Q»Ñ,?Ñ@Ü	ˆA‹�‰”Q—V‘V˜Sð	"ð[|ô^ 
ˆQˆq‰S‹�1‰”sœ3œqŸ|™|Ó,¨QÑ.¨qÑ0Ó1°1Ñ4´R¸±U¸1±WÑ<¸aÑ?Ø	
ˆQ‰”—‘˜ð	ð_|ôb 
ˆU�1‰W‹�u˜a ™d 5¨!¡8™mÑ,Ü	
�‰””R˜“Y“ ð	&ðc|ôf 
ŒS��q‘‹\Ó	˜E 1 a¡4¨¨q©¡=Ñ1´$´r¸!±t¸A±v¸e±|Ó2DÑDØ	�‰”A—F‘F˜Cð	!ðg|ôj 
ˆU�1‰W‹�a‰œ˜e A™g›Ü	
�‰””R˜“Y“ ð	&ðk|ôn 
ˆU�1‰W‹�q‰˜Ñ	œC  ! E¨1¡H¡*¨Q°©T¡/Ñ 1Ó2°1Ñ4Ü	
�‰�”3”r˜%“y“>Ñ! 3ð	(ðo|ôr 
ˆU�1‰W‹�q‰˜˜A™Ñ	Ø	Œt�A�e‘G˜A‘I‹Ñ	˜q¤ Q q¨°©¡z°!°Q±$¡Ñ%6Ó!7Ñ7¸Ñ9Ñ	9Ü	
�‰�”3”r˜%“y“>Ñ! 3ð	(ðs|ô@ 
ˆU�1‰W‹�q˜!˜Q™$˜u a™x™-Ñ(Ü	
�‰””R˜“Y“ ð	&ðA|ôD 
ˆU�1‰W‹�q‰˜1˜a™4  %¨¡(¡
™?¨Q°©T°!°E¸1±H±*©_Ñ=¸aÑ?Ü	
�‰�”3”r˜%“y“>Ñ! 3ð	(ðE|ôP 
ˆQˆq‰S‹”#�a˜‘c“(Ñ	˜A˜a™C ™E !™G Q¨¡T¨1¨Q©3°©(¡]Ñ3°Q¸±T¸1¸Q¹3À¹(±]ÑCÜ	
�‰””R˜“U“œC¤ 1£›JÑ&¨ð	-ðQ|ô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“œC¤ 1£›JÑ&¨ð	-ðU|ôX 
ˆ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“œC¤ 1£›JÑ&¨ð	-ðY|ô\ 
ˆa�‰c‹�A�q˜!‘t˜A˜q™D‘y‘MÜ	
�‰””R˜“U“˜Sð	"ð]|ô` 
ˆa�‰c‹�A�q˜!‘t˜A˜q™D‘y‘MÜ	
�‰””R˜“U“˜Sð	"ða|ôd 
ˆa�‰c‹�A‰�q˜˜A™‘v˜q !™t A a¨¡d¡F¨1¡H™}Ñ-Ü	
�‰�”3”r˜!“u“:‘˜sð	$ðe|ôh 
ˆa�‰c‹�A‰˜˜1™˜Q˜q !™t™V™ a¨¡d¨1¨Q°©T©6°!©8¡mÑ4Ü	
�‰�”3”r˜!“u“:‘˜sð	$ði|ôl 
ˆa�‰c‹�1‰”c˜1˜Q™3  1¡™+Ó& qÑ(Ü	
�‰””R˜“U“˜Sð	"ðm|ðp 
ˆA‰Œd�1�Q‘3‹i‰œ˜q ™s› A™¨¨!©°¨r°!©t¡}°a¸±c¸a¸RÀ¹T±]Ñ'BÑCØ	
ˆR‰”�Q“˜ð	ðq|ðt 
ˆA‰Œd�1�Q‘3‹i‰œ˜q ™s› A™¨¨!©°¨r°!©t¡}°a¸±c¸a¸RÀ¹T±]Ñ'BÑCØ	
ˆR‰”�Q“˜ð	ðu|ôb 
ˆQˆq‰S‹”3�q˜!‘t˜Q˜q™S 1™H‘}Ó%¤d¨1¨a°©c©7£mÑ3°AÑ5Ø	
Œ3Œs�1‹v‹;‰œÑ	œQŸV™V Sð	*ðc|ô~ 
��A�a‘C‹˜!˜Q™$¤ Q¨¡T¨!¨Q©$¡Y£°´4¸¸1¹¸QÀ¹T¹	³?Ñ1BÀQÑ0FÑ FÑGÜ	ˆA‹�‰”Sœ˜A›“Z ð	&ð|ðB 
ˆA‰Œg�a˜˜1™‹oÑ	Ø	
ˆA‰Œd”2‹h‰”u˜QœqŸv™v™X“Ñ	& q¨!¡tÑ	+¨Q°©T°!°Q±$©Y¸1¸"¼Q¿V¹V¹)Ñ,DÑ	DÜ	ŒR�‹U”a—f‘f�W‰_œb  A›hÓ	'¬¬R°«U«°Sð	:ðC|ðH 
ˆA‰Œg�a˜˜1™‹oÑ	Ø	
ˆQˆq‰S‰”$”r“(Ñ	œ5 ¤1 Q£4¨¡6¡›?Ñ	*¨1¨a©4Ñ	/°Ñ	1°1°a±4¸¸1¹±9ÀÀÄ1ÀQÃ4ÈÁ6Á	Ñ2JÑ	JÜ	ŒR�‹U�R‰Zœ˜A˜q ™s›Ó	$¤c¬"¨Q«%£j°#ð	7ðI|ôV 
��A”d˜1˜a™4  !¡™8“nÑ$Ó	%Ü	ˆQˆq‰S�”4˜˜1™˜Q ™T™	“?Ñ"Ñ"Ó	#¤D¨¨A©¨a°©d©£OÑ	3Ü	ŒS�‹V‹”rÑ	œ3œr !›u›: sð	,ðW|ô\ 
��A�a‘C‹˜!˜Q™$¤ Q¨¡T¨!¨Q©$¡Y£°´4¸¸1¹¸QÀ¹T¹	³?Ñ1BÀQÑ0FÑ FÑGÜ	ˆA‹�‰”Sœ˜A›“Z ð	&ð]|ð` 
ˆA‰Œg�a˜˜1™‹oÑ	Ø	
ˆA‰Œd”2‹h‰”u˜QœqŸv™v™X“Ñ	& q¨!¡tÑ	+¨Q°©T°!°Q±$©Y¸1¸"¼Q¿V¹V¹)Ñ,DÑ	DÜ	ŒR�‹U”a—f‘f�W‰_œb  A›hÓ	'¬¬R°«U«°Sð	:ða|ðf 
ˆA‰Œg�a˜˜1™‹oÑ	Ø	
ˆQˆq‰S‰”$”r“(Ñ	œ5 ¤1 Q£4¨¡6¡›?Ñ	*¨1¨a©4Ñ	/°Ñ	1°1°a±4¸¸1¹±9ÀÀÄ1ÀQÃ4ÈÁ6Á	Ñ2JÑ	JÜ	ŒR�‹U�R‰Zœ˜A˜q ™s›Ó	$¤c¬"¨Q«%£j°#ð	7ðg|ôp 
��A�a‘C‹˜"œR™%¤ a¨¡c£
Ñ*¬4°°1±°Q¸±T±	«?Ñ:Ü	
�‰””R˜“U“˜Sð	"ðq|ôt 
��A�a‘C‹œ#˜q¤4¨¨1©¨Q°©T©	£?Ñ2°AÑ5Ó6¼¸QÀ¹TÀ!ÀQÁ$¹Y»ÑHÜ	
�‰”"�Q“%�˜ð	ðu|Ððz # A qÐ(Ð(rp   c                 ó†  — t        d|g¬«      }t        dd¬«      }| j                  |«      }|r“||   j                  d   j	                  |«      } |j                  ||z  «      }|r[||   j
                  rL||   dk7  rDt        d«       t        d||   z  ||   j                  |«      z  ||||   z  d¬	«      \  }}	}
||	|
fS y
)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   )Únargsr   z     rule: time scaling (4.1.4)F©rá   N)	r    r   r¸   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‰k˜!‰n×$Ñ$ QÓ'ˆØˆc�i‰i˜˜!™‹nˆÙ�3�q‘6×%Ò%¨#¨a©&°Aª+ÜÐ4Ô5Ü*Ø�#�a‘&‘˜˜Q™Ÿ™ Q›Ñ'¨¨A¨c°!©f©H¸uôF‰IˆAˆr�2à�r˜2�;ÐØrp   c                 ó  — t        d|g¬«      }t        d«      }t        d«      }| j                  t        |«      |z  «      x}�r<||   j                  ||z
  «      x}r“||   j                  rOt	        d«       t        ||   j                  ||||   z   «      ||d¬«      \  }}	}
t        ||    |z  «      |z  |	|
fS ||   j                  r&t	        d«       t        ||   ||d¬«      \  }}	}
||	|
fS ||   j                  ||z
  «      x}rw||   j                  r;t	        d	«       t        d
t        |||   z
  «      z
  ||   z  ||d¬«      \  }}	}
||	|
fS ||   j                  rt	        d«       ddt        j                  fS y)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Š   rù   z     rule: time shift (4.1.4)Frû   z8     rule: Heaviside factor; negative time shift (4.1.4)z      rule: Heaviside window openra   z"     rule: Heaviside window closedr   N)r    r¸   r;   rˆ   ru   rý   rº   r'   Úis_negativer   r€   )rà   rÏ   r{   r…   rŠ   rù   rþ   rÿ   r‹   r   r  s              rn   Ú_laplace_rule_heavisider  ,  s   € ô 	ˆS˜1˜#Ô€AÜˆS‹	€AÜˆS‹	€AØ�g‰g”i “l QÑ&Ó'Ð'€sÑ'Ø�a‘&—,‘,˜q 1™uÓ%Ð%ˆ3Ð%Ø�1‰v×!Ò!ÜÐ6Ô7Ü.Ø˜‘F—K‘K  1 s¨1¡v¡:Ó.°°1¸uôF‘	��2�rä˜S ™V˜G a™KÓ(¨1Ñ,¨b°"Ð5Ð5Ø�1‰v×!Ò!ÜØNôPä.¨s°1©v°q¸!ÀeÔL‘	��2�rØ˜2˜r�{Ð"Ø�a‘&—,‘,˜q 1™uÓ%Ð%ˆ3Ð%Ø�1‰v×!Ò!ÜÐ9Ô:Ü.Øœ 1 s¨1¡v¡:Ó.Ñ.°#°a±&Ñ8¸!¸QÈôP‘	��2�rà˜2˜r�{Ð"Ø�1‰v×!Ò!ÜÐ;Ô<Ø˜1œaŸf™f�~Ð%Ørp   c                 óP  — t        d|g¬«      }t        d«      }t        d«      }| j                  t        |«      |z  «      }|rc||   j                  |«      j                  ||z  «      }|r;t	        d«       t        ||   ||||   z
  d¬«      \  }}	}
||	t        ||   «      z   |
fS y)	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)Frû   N)r    r¸   r'   rü   ru   rý   r!   )rà   rÏ   r{   r…   rŠ   r  rþ   rÿ   r‹   r   r  s              rn   Ú_laplace_rule_expr  V  s«   € ô 	ˆ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Ð)Ð)Ørp   c           
      ó^  — t        d|g¬«      }t        d|g¬«      }t        d«      }t        d«      }| j                  t        |«      |z  «      }|�rQ||   j                  t        «      �s8||   j	                  |«      j                  ||z  |z
  «      }|�rt        d«       ||   ||   z  }	t        |	«      dk\  rÓt        |	«      dk(  rÅt        ||    ||   z  |z  «      ||   z  }
|
j                  t        t        «      r#|
j                  t        «      j                  «       }
|
j                  «       D �cg c]  }|j                  |||   ||   z  «      ‘Œ c}\  }}|dk7  r*||z  ||   z  t         j"                  t         j$                  fS ydt         j"                  t         j$                  fS ||   j'                  |«      ràt)        ||   |«      }|i k7  rÌt+        |j-                  «       «      d	hk(  r¯t/        ||   |«      }t1        t3        |j5                  «       «      D �cg c]V  }t        |«      dk(  rFt        |«      dk\  r8t        | |z  «      ||   j                  ||«      z  |j                  ||«      z  ‘ŒX c}Ž }|t         j"                  t         j$                  fS yc c}w c c}w )
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Š   r  z#     rule: multiply with DiracDeltar   Nra   )r    r¸   r:   r~   rü   ru   r!   r"   r'   r3   r2   Úrewriter5   ÚratsimpÚas_numer_denomrº   r   r±   r€   Úis_polynomialrQ   ÚsetÚvaluesr   r   rÞ   Úkeys)rà   rÏ   r{   r…   r�   rŠ   r  rþ   rÿ   ÚlocÚfnr‰   r„   rË   ÚroÚsloper‹   s                    rn   Ú_laplace_rule_deltar  m  sY  € ô 	ˆS˜1˜#Ô€AÜˆS˜1˜#Ô€AäˆS‹	€AÜˆS‹	€AØ
�'‰'”*˜Q“- ‘/Ó
"€CÚ
�3�q‘6—:‘:œjÕ)Ø�!‰f�n‰n˜QÓ×%Ñ% a¨¡c¨!¡eÓ,ˆÚÜÐ8Ô9Ø�a‘&˜˜Q™‘-ˆCÜ�#‹w˜!Š|¤ 3£¨1¢Ü˜#˜a™&˜  Q¡™¨Ñ)Ó*¨3¨q©6Ñ1�Ø—6‘6œ#œsÔ#ð Ÿ™¤DÓ)×1Ñ1Ó3�BØ:<×:KÑ:KÓ:MÖN°Q˜Ÿ™˜q # a¡&¨¨Q©¡-Õ0ÒN‘��1Ø˜’6Ø˜a™C  A¡™J¬×(:Ñ(:¼A¿F¹FÐCÐCààœ1×-Ñ-¬q¯v©vÐ6Ð6Øˆq‰6×Ñ Ô"Ü�s˜1‘v˜qÓ!ˆBØ�RŠxœC §	¡	£Ó,°°Ò3Ü˜S ™V Q›�Üä# B§G¡G£I›öMØ´"°Q³%¸1²*ÄÀAÃÈ!Âô ˜1˜"˜Q™$“i  A¡§¡¨A¨qÓ 1Ñ1°%·*±*¸QÀÓ2BÓBò MðN�ð œ1×-Ñ-¬q¯v©vÐ6Ð6Øùò OùòMs   Ä7"J%È$AJ*c                 ó:  — t         j                  g}t         j                  g}t        j                  | «      D ]N  }|j	                  t
        t        t        t        t        «      r|j                  |«       Œ>|j                  |«       ŒP t        |Ž }t        |Ž }||fS )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~   r3   r2   r+   r)   r'   Úappend)r  ÚtrigsÚotherÚtermrà   rù   s         rn   Ú_laplace_trig_splitr  š  s{   € ô �U‰UˆG€EÜ�U‰UˆG€EÜ—‘˜bÓ!ò ˆØ�8‰8”Cœœd¤D¬#Ô.Ø�L‰L˜Õà�L‰L˜Õð	ô
 	ˆUˆ€AÜˆUˆ€AØˆaˆ4€Krp   c                 óˆ  — t        d|g¬«      }t        d|g¬«      }t        d|g¬«      }g }g }| j                  t        «      j                  «       }t	        j
                  |«      D ]Ö  }|j                  |«      s"|j                  d|ddt        dt        di«       Œ6t        |j                  d¬	«      |«      }|j                  |t        ||z  |z   «      z  «      x}	�O|j                  d|	|   t        |	|   «      z  d|	|   t        t        |	|   «      t        t        |	|   «      i«       ŒÆ|j                  |«       ŒØ ||fS )
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…   r   r'   )Úcombine)r    r
  r'   r   r   r  r~   r  r!   r"   rè   Úpowsimpr¸   )
rà   rÏ   r  r   rÀ   ÚxmÚxnÚx1r  r‹   s
             rn   Ú_laplace_trig_expsumr'  ­  s+  € ô 
ˆ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ØÜ$ T§\¡\¸% \Ó%@À!ÓDˆà—‘˜Aœc " Q¡$ r¡'›l™NÓ+Ð+ˆAÐ8Ø�I‰IØ�Q�q‘Tœ#˜a ™e›*‘_ c¨1¨R©5Ü”B�q˜‘u“Iœr¤2 a¨¡e£9ð.õ /ð �I‰I�d�Oðð ˆrˆ6€Mrp   c           	      ó˜  ‡— g }g }d„ Šˆfd„}ˆfd„}ˆfd„}ˆfd„}d„ }	t        | «      dkD  �r�| j                  «       }
d}d}d}t        t        | «      «      D ]£  }|
t           | |   t           k(  }|
t           | |   t            k(  }|
t           | |   t           k(  }|
t           | |   t            k(  }|r|r|
t           dk7  r|
t           dk7  r|}Œ||r|r|
t           dk7  r|}Œ�|sŒ’|sŒ•|
t           dk7  sŒ¢|}Œ¥ |�ˆ|�†|�„|j                   ||
| |   d	   | |   d	   | |   d	   |«      «       |j                  t        t        |
d
   «      «      «       |||g}|j                  d¬«       |D ]  }| j                  |«       Œ �n#|�I|j                   ||
| |   d	   |«      «       |j                  |
t           «       | j                  |«       nØ|�R|j                   ||
| |   d	   |«      «       |j                  t        |
t           «      «       | j                  |«       n„|�R|j                   ||
| |   d	   |«      «       |j                  t        |
t           «      «       | j                  |«       n0|j                   |	|
|«      «       |j                  |
t           «       t        | «      dkD  r�Œ�t        |Ž t        |Ž fS )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                 ó6  — | j                  «       }t        t        |«      «      D ]q  }||   j                  «       }|d   j	                  t
        «      r||   j                  t        «      ||<   ŒJ|d   t        |d   z  z   j                  t        «      ||<   Œs |S rÕ   )	ÚcopyÚrangeÚlenr¯   r~   r"   r
  r2   r   )ÚcoeffsÚncr!  Úris       rn   Ú_simpcz"_laplace_trig_ltex.<locals>._simpcÙ  s†   € Ø�[‰[‹]ˆÜ”s˜2“w“ò 	7ˆAØ�A‘×#Ñ#Ó%ˆBØ�!‰u�y‰yœŒ}Ø˜1™Ÿ™¤cÓ*��1’à˜A™¤ 2 a¡5¡™×1Ñ1´#Ó6��1’ð	7ð ˆ	rp   c           
      ó  •— | d   | d   | t            | t           f\  }}}}||z   |z   |z   |||z   |z
  |z
  z  dt        z  |z  |z  z
  dt        z  |z  |z  z   |dz  | |z
  |z
  |z
  z  |dt        z  |z  |z  dt        z  |z  |z  z   z  z   d|dz  z  |z  z   d|dz  z  |z  z   |dz  | |z
  |z   |z   z  |dz  dt        z  |z  |z  dt        z  |z  |z  z   dt        z  |z  |z  z
  dt        z  |z  |z  z
  z  z   |d|dz  z  |z  d|dz  z  |z  z
  z  z   g}	t        j                  t        j
                  d|dz  z  d|dz  z  z
  t        j
                  |dz  d|dz  z  |dz  z  z   |dz  z   g}
t        t         ‰|	«      t        t        |	«      «      d d d…   «      D ��cg c]  \  }}|||z  z  ‘Œ c}}Ž }t        t        |
t        t        |
«      «      d d d…   «      D ��cg c]  \  }}|||z  z  ‘Œ c}}Ž }||z  S c c}}w c c}}w )Nr…   r!  r§   rñ   rï   rð   )
r!   r"   r   r   r  rÛ   r   Úzipr+  r,  )Út1Úk1Úk2Úk3r{   r…   Úk0Úa_rÚa_ir.  Údcr‰   rŠ   r„   rË   r0  s                  €rn   Ú	_quadpolez%_laplace_trig_ltex.<locals>._quadpoleã  sf  ø€ Ø˜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‰E”1—6‘6˜1˜S !™V™8 a¨¨Q©¡hÑ.Ü�F‰F�C˜‘F˜Q˜s A™v™X c¨1¡f™_Ñ,¨s°A©vÑ5ð7ˆô Ü!$¡V¨B£Z´´s¸2³w³ÁÀ"ÀÑ1EÓ!F×G™˜˜Aˆa��1‘‹fÓGðIˆäÜ!$ R¬¬s°2«w«¹¸"¸Ñ)=Ó!>×?™˜˜Aˆa��1‘‹fÓ?ðAˆà�‰sˆ
ùó Hùã?s   Æ"H
Ç%H
c           
      óü  •— | d   | d   | t            | t           f\  }}}}||z   | |z  ||z  z
  dt        z  |z  |z  z   g}t        j                  d|z  |dz  |dz  z   g}t        t         ‰|«      t        t        |«      «      d d d…   «      D �	�
cg c]  \  }	}
|	||
z  z  ‘Œ c}
}	Ž }t        t        |t        t        |«      «      d d d…   «      D �	�
cg c]  \  }	}
|	||
z  z  ‘Œ c}
}	Ž }||z  S c c}
}	w c c}
}	w ©Nr…   r!  r§   rò   rð   ©	r!   r"   r   r   r  r   r2  r+  r,  )r3  r4  r{   r…   r7  r8  r9  r.  r:  r‰   rŠ   r„   rË   r0  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‰e�R˜‘V˜S !™V c¨1¡f™_Ð-ˆÜÜ!$¡V¨B£Z´´s¸2³w³ÁÀ"ÀÑ1EÓ!F×G™˜˜Aˆa��1‘‹fÓGðIˆäÜ!$ R¬¬s°2«w«¹¸"¸Ñ)=Ó!>×?™˜˜Aˆa��1‘‹fÓ?ðAˆà�‰sˆ
ùó Hùã?s   ÂC2
ÃC8
c           
      ó
  •— | d   | d   | t            | t           f\  }}}}||z   ||z  ||z  z
  dt        z  |z  |z  z
  g}t        j                  dt        z  |z  |dz   |dz  z
  g}t        t         ‰|«      t        t        |«      «      d d d…   «      D �	�
cg c]  \  }	}
|	||
z  z  ‘Œ c}
}	Ž }t        t        |t        t        |«      «      d d d…   «      D �	�
cg c]  \  }	}
|	||
z  z  ‘Œ c}
}	Ž }||z  S c c}
}	w c c}
}	w r=  r>  )r3  r5  r{   r…   r7  r8  r9  r.  r:  r‰   rŠ   r„   rË   r0  s                €rn   Ú_rspolez#_laplace_trig_ltex.<locals>._rspole  s  ø€ Ø˜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‰e�Rœ‘T˜#‘X  Q¡˜w¨¨a©Ñ/Ð0ˆÜÜ!$¡V¨B£Z´´s¸2³w³ÁÀ"ÀÑ1EÓ!F×G™˜˜Aˆa��1‘‹fÓGðIˆäÜ!$ R¬¬s°2«w«¹¸"¸Ñ)=Ó!>×?™˜˜Aˆa��1‘‹fÓ?ðAˆà�‰sˆ
ùó Hùã?s   ÂC9
ÃC?
c           
      ó¶  •— | d   | d   }}||z   |||z
  z  g}t         j                  t         j                  |dz   g}t        t	         ‰|«      t        t        |«      «      d d d…   «      D ��cg c]  \  }}|||z  z  ‘Œ c}}Ž }	t        t	        |t        t        |«      «      d d d…   «      D ��cg c]  \  }}|||z  z  ‘Œ c}}Ž }
|	|
z  S c c}}w c c}}w )Nr…   r!  r§   rð   )r   r  rÛ   r   r2  r+  r,  )r3  r6  r{   r…   r7  r.  r:  r‰   rŠ   r„   rË   r0  s              €rn   Ú_sypolez#_laplace_trig_ltex.<locals>._sypole  sÔ   ø€ Ø�3‘˜˜C™ˆ2ˆØ�2‰g�q˜"˜r™'‘{Ð#ˆÜ�e‰e”Q—V‘V˜a ™d˜UÐ#ˆÜÜ!$¡V¨B£Z´´s¸2³w³ÁÀ"ÀÑ1EÓ!F×G™˜˜Aˆa��1‘‹fÓGðIˆäÜ!$ R¬¬s°2«w«¹¸"¸Ñ)=Ó!>×?™˜˜Aˆa��1‘‹fÓ?ðAˆà�‰sˆ
ùó Hùã?s   Á0C
Â3C
c                 ó.   — | d   | d   }}|}||z
  }||z  S )Nr…   r!  rq   )r3  r{   r…   r7  r„   rË   s         rn   Ú_simplepolez'_laplace_trig_ltex.<locals>._simplepole  s*   € Ø�3‘˜˜C™ˆ2ˆØˆØ�‰EˆØ�‰sˆ
rp   r   Nr!  r…   T)Úreverse)
r,  Úpopr+  r!   r"   r  r$   rß   r   r-   )r$  rÏ   r{   ÚresultsÚplanesr;  r?  rA  rC  rE  r3  Ú	i_imagsymÚ	i_realsymÚ
i_pointsymÚiÚreal_eqÚrealsymÚimag_eqÚimagsymÚindices_to_popr0  s                       @rn   Ú_laplace_trig_ltexrS  Î  sÀ  ø€ ð €GØ€Fòôô.ôôòô ˆb‹'�A‹+Ø�V‰V‹XˆØˆ	Øˆ	Øˆ
ô
 ”s˜2“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ô3ð �M‰Mœ#œb  C¡›kÓ*Ô+ð (¨°JÐ?ˆNØ×Ñ¨ÐÔ-Ø#ò �Ø—‘�q•	òàÐ"Ø�N‰N™7 2 r¨)¡}°SÑ'9¸1Ó=Ô>Ø�M‰M˜"œR™&Ô!Ø�F‰F�9ÕØÐ"Ø�N‰N™7 2 r¨)¡}°SÑ'9¸1Ó=Ô>Ø�M‰Mœ#˜b¤™f›+Ô&Ø�F‰F�9ÕØÐ#Ø�N‰N™7 2 r¨*¡~°cÑ':¸AÓ>Ô?Ø�M‰Mœ#˜b¤™f›+Ô&Ø�F‰F�:Õà�N‰N™; r¨1Ó-Ô.Ø�M‰M˜"œR™&Ô!ôq ˆb‹'�AŒ+ôt �ˆ=œ#˜v˜,Ð&Ð&rp   c           
      ód  — t        dd¬«      }| j                  t        t        t        t
        «      syt        | j                  ||«      «      \  }}t        ||«      \  }}t        |«      dkD  ry|j                  |«      s&t        |||«      \  }}	||z  |	t        j                  fS g }
g }t        |||d¬«      \  }}}|D ]O  }|j                  |d   |j                  |||d	   z
  «      z  «       |
j                  |t        |d	   «      z   «       ŒQ t!        |Ž j                  ||«      t#        |
Ž |fS )
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©ÚrealNr   Frû   r!  r…   )r   r~   r3   r2   r+   r)   r  rº   r'  r,  rS  r   r€   rý   r  r!   r   r-   )r  Út_r{   rÏ   rà   rù   r$  r%  r‹   rÀ   rI  rH  ÚGÚG_planeÚG_condr&  s                   rn   Ú_laplace_rule_trigr[  [  s#  € ô 	ˆc˜Ô€Aà�6‰6”#”sœD¤$Ô'Øä˜rŸw™w r¨1›~Ó.�D€A€qÜ! ! QÓ'�F€Bˆä
ˆ2ƒw�‚{àà�5‰5�Œ8Ü! " a¨Ó+‰ˆˆ1Ø�‰s�A”q—v‘vˆ~Ðð ˆØˆÜ/°°1°aÀ%ÔHÑˆˆ7�FØò 	/ˆBØ�N‰N˜2˜c™7 1§6¡6¨!¨Q¨r°#©w©YÓ#7Ñ7Ô8Ø�M‰M˜'¤" R¨¡W£+Ñ-Õ.ð	/ô �ˆ=×Ñ˜a Ó$¤c¨6 l°FÐ:Ð:rp   c                 óŽ  — t        d|g¬«      }t        d|g¬«      }t        d«      }| j                  |t        |||f«      z  «      }|r÷||   j                  rè||   j
                  D �cg c]  }|j                  |«      ‘Œ }}t        |«      dk(  r¯t        d«       g }	t        ||   «      D ]^  }
|
dk(  r||   j                  |d«      }n!t        ||   ||
f«      j                  |d«      }|	j                  |||   |
z
  dz
  z  |z  «       Œ` t        ||   ||d¬	«      \  }}}||   |||   z  |z  t        |	Ž z
  z  ||fS y
c c}w )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„   rù   ra   z"     rule: time derivative (4.1.8)r   Frû   N)r    r   r¸   r
   Ú
is_integerrj   r~   Úsumru   r+  rº   r  rý   r   )rà   rÏ   r{   r…   r„   rù   rþ   r  r«   rË   r!  rŠ   r‹   r   r  s                  rn   Ú_laplace_rule_diffr_  |  sV  € ô 	ˆS˜1˜#Ô€AÜˆS˜1˜#Ô€AÜ�SÓ€AØ
�'‰'�!”J˜q 1 a &Ó)Ñ)Ó
*€CÙ
ˆs�1‰v× Ò Ø" 1™vŸ{™{Ö+˜!ˆQ�U‰U�1�XÐ+ˆÐ+Üˆq‹6�QŠ;ÜÐ7Ô8ØˆAÜ˜3˜q™6“]ò ,�Ø˜’6Ø˜A™Ÿ™ A qÓ)‘Aä" 3 q¡6¨A¨q¨6Ó2×7Ñ7¸¸1Ó=�AØ—‘˜˜S ™V A™X a™Z™¨Ñ*Õ+ð,ô +¨3¨q©6°1°aÀ%ÔH‰IˆAˆr�2Ø˜‘F˜A˜s 1™v™I a™K¬#¨q¨'Ñ1Ñ2°R¸Ð<Ð<Øùò ,s   Á*Ec           
      ó€  — | j                   �r—dg}dg}t        j                  | «      D ]6  }|j                  |«      r|j	                  |«       Œ&|j	                  |«       Œ8 t        |«      dkD  �r4t        |«      }t        ||«      j                  «       }t        |«      }|dkD  rÿt        |«      }	t        |	||d¬«      \  }
}}|
g}d}	 t        |d   |«       }|
j                  t        «      r<t        |dz
  «      D ]*  }|j	                  d|dz   z  t        |
||dz   «      z  «       Œ, nE|rC|j	                  |«       t        |dz
  «      D ]!  }|j	                  t        |d   |«       «       Œ# |r3t!        t        |«      D �cg c]  }|||z
  dz
     ||   z  ‘Œ c}Ž }|||fS t#        d|g¬«      }t#        d«      }| j%                  ||z  |z  «      x}rQ||   j&                  rB||   j(                  r3t        ||   ||d¬«      \  }
}}d||   z  t        |
|||   f«      z  ||fS y	# t        $ r d}Y �Œ]w xY wc c}w )
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)``.
    ra   Frû   rð   r§   r„   rê   rù   N)Úis_Mulr   r  r  r  r,  r   rR   Ú
all_coeffsrý   r   Ú
ValueErrorr~   ÚLaplaceTransformr+  r
   r   r    r¸   r]  rˆ   )rà   rÏ   r{   ÚpfacÚofacÚfacÚpexÚpcÚNÚoexÚr_Úp_Úc_ÚderiÚd1r!  r„   r‹   rù   rþ   s                       rn   Ú_laplace_rule_sdiffrq  ™  sL  € ð 	‡xƒxØˆsˆØˆsˆÜ—=‘= Ó#ò 	!ˆCØ× Ñ  Ô#Ø—‘˜CÕ à—‘˜CÕ ð		!ô
 ˆt‹9�q‹=Ü�t“*ˆCÜ�c˜1“×(Ñ(Ó*ˆBÜ�B“ˆAØ�1ŠuÜ˜4“j�Ü/°°Q¸ÀEÔJ‘
��B˜Ø�t�Ø�ðÜ˜t B™x¨Ó+Ð+�Bð —6‘6Ô*Ô+Ü" 1 Q¡3›Zò H˜ØŸ™ R¨1¨Q©3¡K´
¸2¸qÀ!ÀAÁ#Ó0FÑ$FÕGñHáØ—K‘K ”OÜ" 1 Q¡3›Zò 8˜ØŸ™¤T¨$¨r©(°AÓ%6Ð$6Õ7ð8áÜ¼¸q»ÖB°A˜b  1¡ Q¡™i¨¨Q©Ó/ÒBÐC�AØ˜r 2˜;Ð&ô 	ˆS˜1˜#Ô€AÜˆS‹	€AØ�g‰g�a˜‘d˜1‘f‹oÐ€sÐØˆq‰6×Ò  Q¡×!3Ò!3Ü+¨C°©F°A°qÀ5ÔI‰JˆB��BØ˜˜Q™‘<¤ R¨!¨S°©V¨Ó 5Ñ5°r¸2Ð=Ð=Øøô) "ò Ø“Bðüò Cs   Ã
H) ÆH;È)H8È7H8c                 ór  — t        | d¬«      }|j                  rt        |||d¬«      S t        | «      }|j                  rt        |||d¬«      S t        | «      }|j                  rt        |||d¬«      S || k7  rt        |||d¬«      S t        t	        | «      «      }|j                  rt        |||d¬«      S y)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 available 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©Údeeprû   N)r   Úis_Addrý   r   r   )rà   rÏ   r{   r‹   s       rn   Ú_laplace_expandrv  Ì  s«   € ô 	ˆq�uÔ€AØ‡x‚xÜ! ! Q¨°EÔ:Ð:Ü�1‹€AØ‡x‚xÜ! ! Q¨°EÔ:Ð:Üˆq‹	€AØ‡x‚xÜ! ! Q¨°EÔ:Ð:ØˆA‚vÜ! ! Q¨°EÔ:Ð:ÜŒ{˜1‹~Ó€AØ‡x‚xÜ! ! Q¨°EÔ:Ð:Ørp   c                 ó|   — t         t        t        t        t        t
        t        g}|D ]  } || ||«      x}€Œ|c S  y)zk
    This function applies all program rules and returns the result if one
    of them gives a result.
    N)r  r  r  r  r[  r_  rq  )rà   rÏ   r{   Ú
prog_rulesÚp_ruleÚLs         rn   Ú_laplace_apply_prog_rulesr{  é  sN   € ô *Ô+>Ü)Ô+<Ü$Ü$Ô&9ð;€Jð
 ò ˆÙ˜˜1˜a“Ð ˆAÑ-ØŠHðð rp   c                 óš  — t        «       \  }}}d}d}|D ]¥  \  }}	}
}}||k7  r || j                  ||i«      «      }|}|j                  |«      }|sŒ=	 |
j                  |«      }|t
        j                  k(  sŒc|	j                  |«      j                  ||i«      |j                  |«      t
        j                  fc S  y# t        $ r Y Œ´w xY w)zj
    This function applies all simple rules and returns the result if one
    of them gives a result.
    Ú N)r÷   rº   r¸   Úxreplacer�   r   r€   )rà   rÏ   r{   Úsimple_rulesrW  rÙ   Úprep_oldÚprep_fÚt_domÚs_domÚcheckÚplaneÚprepÚmarÈ   s                  rn   Ú_laplace_apply_simple_rulesrˆ  û  sÝ   € ô 0Ó1Ñ€L�"�bØ€HØ€FØ,8ò 4Ñ(ˆˆu�e˜U DØ�tÒÙ˜!Ÿ&™& ! R ›/Ó*ˆFØˆHØ�\‰\˜%Ó ˆÚðØ—N‘N 2Ó&�ð
 ”A—F‘F‹{ØŸ™ rÓ*×/Ñ/°°Q°Ó8ØŸ™ rÓ*¬A¯F©Fð4ò 4ð4ð øô ò ñ ðús   ÁB>Â>	C
Ã	C
c                 óR  — |j                   s;t        dd¬«      }t        | j                  ||i«      |«      j                  ||i«      S t	        | «      }g }|j
                  D �]¼  \  }}t        |t        «      r]||j
                  v rOt        |t        t        f«      r| c S |j                  t        |j                  |j                  z
  «      |z  «       Œtt        |t        «      rst        |j
                  «      dk(  r[|j
                  D ]K  }|j                   |k(  r5|j                  t        |j                  |j                  z
  «      |z  «       ŒG| c c S  Œ÷t        |t"        «      r´t        |j
                  «      dk(  rœ|j
                  \  }}|j                   |k(  rz|j                   |k(  rkd|j$                  v r||}}|j                  t        |j                  |j                  z
  «      t        |j                  |j                  z
  «      z
  |z  «       �Œ·| c S | c S  t'        |Ž 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‹   TrU  r§   ú>)Úis_realr   Ú_piecewise_to_heavisider~  r1   rj   r   r   r   r   r  r;   Úgtsr¼   rL   r,  ÚlhsrM   r»   r   )	rà   rÏ   r‹   r‰   r  rã   Úc2r   r  s	            rn   rŒ  rŒ    s¾  € ð �9Š9Ü�#˜DÔ!ˆÜ& q§z¡z°1°a°&Ó'9¸1Ó=×FÑFÈÈ1ÀvÓNÐNÜ˜AÓ€AØ
€AØ—F‘Fó  ‰ˆˆDô �dœJÔ'¨A°·±©NÜ˜$¤¤R Ô)ð
 ’à—‘œ 4§8¡8¨d¯h©hÑ#6Ó7¸Ñ:Õ;Ü˜œbÔ!¤c¨$¯)©)£n¸Ò&9à—i‘iò �Ø—6‘6˜Q’;Ø—H‘HœY r§v¡v°·±¡Ó7¸Ñ:Õ;à”Hñ	ô
 ˜œcÔ"¤s¨4¯9©9£~¸Ò':à—Y‘Y‰FˆB�Ø�v‰v˜Š{˜rŸv™v¨š{Ø˜"Ÿ)™)Ñ#Ø ˜�BØ—‘Ü˜rŸv™v¨¯©™Ó/Ü˜rŸv™v¨¯©™Ó/ñ0Ø13ñ4ö5ð ’àŠHðA ôB �ˆ7€Nrp   c          	      ój  — t        d«      }t        d«      }t        d«      }t        d«      }t        | t        «      r*| j                  t        «      s| j                  t
        «      s| S |j                  «       D ]€  \  }}| j                  t	         ||«      ||«      «      x}�||   ||   k(  r |||   «      c S | j                  t         ||«      |||«      «      x}	 €Œi||   ||   k(  sŒu |||   «      c S  | j                  }	| j                  D �
cg c]  }
t        |
|«      ‘Œ }}
 |	|Ž S c c}
w )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…   )r    r   r   r~   rd  ÚInverseLaplaceTransformÚitemsr¸   rm   rj   Úlaplace_correspondence)rà   ÚfdictrÀ   r{   rÏ   r…   rŠ   ÚYr«   rm   r#   rj   s               rn   r“  r“  F  s(  € ôH 	ˆS‹	€AÜˆS‹	€AÜˆS‹	€AÜˆS‹	€Aä˜1œdÔ#Ø—E‘EÔ*Ô+ØŸ™Ô5Ô6ØˆØ—‘“ò 	‰ˆˆ1à—g‘gÔ.©q°«t°Q¸Ó:Ó;Ð;�ÐHØ�a‘D˜A˜a™D’LÙ�Q�q‘T“7ŠNà—g‘gÔ5±a¸³d¸A¸qÀ!ÓDÓEÐE�Øñà�a‘D˜A˜a™D“LÙ�Q�q‘T“7ŠNð	ð �6‰6€DØ:;¿&¹&ÖA°3Ô" 3¨Õ.ÐA€DÐAÙ�ˆ;Ðùò Bs   ÄD0c                óz  — |j                  «       D ]§  \  }}t        t        |«      «      D ]‹  }|dk(  r| j                   |d«      |d   «      } Œ$|dk(  r1| j                  t	        t         ||«      |«      |d«      |d   «      } ŒZ| j                  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
    r   ra   )r’  r+  r,  r“   r   r
   )rà   rÏ   r”  rŠ   Úicr!  s         rn   Úlaplace_initial_condsr˜  ‚  sº   € ðD —‘“ò K‰ˆˆ2Ü”s˜2“w“ò 	KˆAØ�AŠvØ—I‘I™a ›d B q¡EÓ*‘Ø�a’Ø—I‘Iœd¤:©a°«d°AÓ#6¸¸1Ó=¸rÀ!¹uÓE‘à—I‘Iœd¤:©a°«d°Q¸°FÓ#;¸QÀÓBÀBÀqÁEÓJ‘ñ	KðKð €Hrp   c                óÌ  ‡— t        j                  | «      }g }g }g }g }|D �]  }	|	j                  ‰d¬«      \  }
}|j                  t        «      r\t        j                  |j                  t        «      «      }|D ].  }|j                  ‰d¬«      \  }}|j                  |
|z  |f«       Œ0 Œ‹|j                  t        k(  rn|j                  t        ‰«      «      sTt        j                  t        |‰«      «      }|D ].  }|j                  ‰d¬«      \  }}|j                  |
|z  |f«       Œ0 �Œ|j                  |
|f«       �Œ! |D �]l  \  }
}|j                  t        «      rt        |‰|«      t        j                  df}nö|j                  t        ‰«      «      r5|j                  t        ‰«      «      s|j                  t        ‰«      d«      }t!        |‰|«      x}	 €t#        |‰|«      x}	 €t%        |‰|«      x}�nwt'        ˆfd„|j)                  t*        «      D «       «      rt        |‰|«      t        j                  df}n1t-        |‰||¬«      x}	 �nt        |‰|«      t        j                  df}|\  }}}|j                  |
|z  «       |j                  |«       |j                  |«       �Œo t        |Ž }|r|j/                  d¬«      }t1        |Ž }t3        |Ž }|||fS )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_AddTra   c              3   ó@   •K  — | ]  }|j                  ‰«      –— Œ y ­wr—   ©r~   )r©   ÚundefrW  s     €rn   r¬   z%_laplace_transform.<locals>.<genexpr>Û  s   øè ø€ ÒG u�U—Y‘Y˜r—]ÑGùó   ƒrû   ©Údoit)r   r  Úas_independentr~   rC   r
  r;   r  rm   r0   r:   rŒ  rd  r   r±   rº   rˆ  r{  rv  Úanyr�   r	   rb   rá   r-   rM   )r  rW  rÙ   rá   Úterms_tÚterms_sÚtermsrI  Ú
conditionsÚffr!  ÚftÚ_termsÚ_termr4  Úf1r‹   Úri_Úpi_Úci_rl   r…  Ú	conditions    `                     rn   rý   rý   ¯  sÑ  ø€ ô �m‰m˜BÓ€GØ€GØ€EØ€FØ€Jàó "ˆØ×!Ñ! "¨UÐ!Ó3‰ˆˆ2Ø�6‰6Ô%Ô&Ü—]‘] 2§:¡:¬iÓ#8Ó9ˆFØò )�Ø×-Ñ-¨b¸Ð-Ó?‘��BØ—‘˜a ™d B˜ZÕ(ñ)ð �W‰Wœ	Ò!¨"¯&©&´¸B³Ô*@Ü—]‘]Ô#:¸2¸rÓ#BÓCˆFØò )�Ø×-Ñ-¨b¸Ð-Ó?‘��BØ—‘˜a ™d B˜ZÕ(ò)ð �L‰L˜!˜R˜Ö!ð"ð ó ‰ˆˆ2Ø�6‰6Ô%Ô&Ü! " b¨"Ó-¬q×/AÑ/AÀ4ÐH‰Aà�v‰v”i “mÔ$¨R¯V©V´J¸r³NÔ-Cð —W‘WœY r›]¨AÓ.�ä5°b¸"¸bÓAÐA�QØð ä3°B¸¸BÓ?Ð?�QØð ä)¨"¨b°"Ó5Ð5�QÐBØÜÓG°·±¼Ó0FÔGÔGô & b¨"¨bÓ1´1×3EÑ3EÀtÐL‘Ü5Ø˜˜B¨ô3ð 3�!Ø;?ð@àä% b¨"¨bÓ1´1×3EÑ3EÀtÐL�Ø‰ˆˆc�3Ø�‰�q˜‘uÔØ�‰�cÔØ×Ñ˜#Öð;ô> �'ˆ]€FÙØ—‘ e�Ó,ˆÜ�ˆL€EÜ�ZÐ €Ià�5˜)Ð#Ð#rp   c                   ó&   — e Zd ZdZdZd„ Zd„ Zd„ Zy)rd  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                 óH   — |j                  dd«      }t        ||||¬«      }|S )Nrá   Frû   )Úgetrb   )Úselfrà   rÏ   r{   ÚhintsrF   ÚLTs          rn   Ú_compute_transformz#LaplaceTransform._compute_transform  s'   € Ø—I‘I˜j¨%Ó0ˆ	Ü+¨A¨q°!¸iÔHˆØˆ	rp   c                 óx   — t        |t        | |z  «      z  |t        j                  t        j                  f«      S r—   )rE   r'   r   rÛ   r²   )rµ  rà   rÏ   r{   s       rn   Ú_as_integralzLaplaceTransform._as_integral  s,   € Ü˜œ#˜q˜b ™d›)™ a¬¯©´·±Ð%<Ó=Ð=rp   c                 ó  — |j                  dd«      }|j                  dd«      }t        d| j                  | j                  | j                  f«       | j                  }| j                  }| j                  }t        ||||¬«      }|r|d   S |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)rû   r   )r´  rX   ÚfunctionÚfunction_variableÚtransform_variablerý   )rµ  r¶  Ú_nocondsrF   rW  rÙ   r  r‹   s           rn   r¡  zLaplaceTransform.doit  s�   € ð —9‘9˜Y¨Ó-ˆØ—I‘I˜j¨%Ó0ˆ	äÐ'¨$¯-©-Ø*.×*@Ñ*@Ø*.×*AÑ*Að*Cô 	Dð ×#Ñ#ˆØ×$Ñ$ˆØ�]‰]ˆä˜r 2 r°IÔ>ˆáØ�Q‘4ˆKàˆHrp   N)ri   Ú
__module__Ú__qualname__Ú__doc__Ú_namer¸  rº  r¡  rq   rp   rn   rd  rd  ó  s   „ ñð €Eòò
>órp   rd  c                 ó”  ‡‡‡— ‰j                  dd«      }‰j                  dd«      }t        | t        «      rÖt        | d«      rÊ‰j                  dd«       }|rA|r?d}t	        dd|¬«       t        t        «      5  | j                  ˆˆˆfd	„«      cd
d
d
«       S | D �	cg c]  }	t        |	‰‰fi ‰¤Ž‘Œ }
}	|r:t        |
Ž \  }}} t        | «      g | j                  ¢|‘­Ž }|t        |Ž t        |Ž fS  t        | «      g | j                  ¢|
‘­Ž S t        | ‰‰«      j                  d|¬«      \  }}}|s|||fS |S # 1 sw Y   Œ4xY wc c}	w )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.
                z1.9)Údeprecated_since_versionÚactive_deprecations_targetc                 ó    •— t        | ‰‰fi ‰¤ŽS r—   )Úlaplace_transform)Úfijr¶  r{   rÏ   s    €€€rn   r˜   z#laplace_transform.<locals>.<lambda>¨  s   ø€ Ô 1°#°q¸!Ñ E¸uÑ E€ rp   N©r½  rá   )r´  r   rN   ÚhasattrrU   rW   rV   rÇ  rË  r2  ÚtypeÚshaper-   rM   rd  r¡  )rà   rÏ   r{   Úlegacy_matrixr¶  rÁ  rF   r¾   ÚadtrÌ  Úelements_transÚelementsÚavalsr§  Ú	f_laplacer·  rÀ   rÈ   s    `` `             rn   rË  rË  +  s~  ú€ ðN �y‰y˜ EÓ*€HØ—	‘	˜* eÓ,€Iä�!”ZÔ ¤W¨Q°Ô%<à—I‘I˜i¨Ó/Ð/ˆá‘]Ø7ˆCÜ%ðð
 */Ø+.õô !Ô!8Ó9ñ GØ—{‘{ÝEóG÷Gñ Gð
 01ö2Ø(+ô 0Ø�Q˜ñ$Ø"ó$ð 2ˆNð 2áÜ.1°>Ð.BÑ+�˜% Ø#œD ›GÐ7 Q§W¡WÐ7¨hÒ7�	Ø ¤# u +¬s°JÐ/?Ð?Ð?à”t˜A“wÐ8 §¡Ð8¨Ò8Ð8ä  1 aÓ(×-Ñ-°eØ7@ð .ó B�H€Bˆˆ1ñ Ø�1�aˆxˆàˆ	÷'Gð Güò2s   Á:D9ÂEÄ9Ec                ó°  ‡‡‡— ddl m}mŠ ddlm} t        dd¬«      Šˆˆfd„}| j                  |«      r| j                  |«      } | j                  rKt        | j                  D �cg c]  }t        ||‰||«      ‘Œ c}Ž }	t        |	j                  ‰|«      |«      dfS 	  || |t        ‰ «      dt        j                   fdd	¬
«      \  }	}
|	€g || |‰«      }	|	€y|	j$                  r(|	j                  d   \  }	}
|	j'                  t(        «      ryt        j*                  }
|	j-                  t.        |«      }	|	j$                  r|	j                  ‰|«      
fS t        d«      Št        j0                  fˆˆfd„	}|	j-                  t2        |«      }	d„ }|	j-                  t        |«      }	t        |	j                  ‰|«      |«      
fS c c}w # t"        $ r d}	Y �Œ
w xY w)z6 The backend function for inverse Laplace transforms. r   )Úmeijerint_inversionÚ_get_coeff_exp)Úinverse_mellin_transformrÏ   TrU  c                  óJ  •— t        | «      dk7  rt        | Ž S | d   j                  d   j                  } ‰|‰«      \  }}| d   j                  d   }| d   j                  d   }t	        dt        |«      z  ‰|z  z
  «      |z  t	        ‰|z  dt        |«      z  z
  «      |z  z   S )z3 Simplify a piecewise expression from hyperexpand. rï   r§   r   ra   )r,  r0   rj   Úargumentr;   r$   )rj   r#   ÚcoeffÚexponentÚe1Úe2rÙ  rÏ   s         €€rn   Úpw_simpz7_inverse_laplace_transform_integration.<locals>.pw_simpÈ  s¨   ø€ äˆt‹9˜Š>Ü˜dÐ#Ð#Ø�1‰g�l‰l˜1‰o×&Ñ&ˆÙ(¨¨aÓ0‰ˆˆxØ�!‰W�\‰\˜!‰_ˆØ�!‰W�\‰\˜!‰_ˆä�aœ˜E›
‘l Q¨¡[Ñ0Ó1°"Ñ4Ü�a˜‘k A¤c¨%£j¡LÑ0Ó1°"Ñ4ñ5ð	6rp   NF)Úneedevalr½  Úuc                 óL  •—  | j                   t        ‰ «      ‰«      }|j                  ‰«      rt        | |«      S ddlm}  ||dkD  ‰«      }|j                  ‰k(  r$t        |j                  «      }t        ‰|z   |«      S t        |j                  «      }t        ‰|z    |«      S )Nr   r¢   )	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‰H”S˜!˜“W˜aÓ ˆØ�5‰5�Œ8Ü˜S "Ó%Ð%Ý@Ù  A¡ qÓ)ˆØ�7‰7�aŠ<Ü�C—G‘G“ˆAÜ˜Q ™U BÓ'Ð'ä�C—G‘G“ˆAÜ˜q 1™u˜X rÓ*Ð*rp   c                 ó*   — t        t        | «      «      S r—   )r   r'   )r#   s    rn   Úsimp_expz8_inverse_laplace_transform_integration.<locals>.simp_exp  s   € Üœc #›hÓ'Ð'rp   )Úsympy.integrals.meijerintrØ  rÙ  Úsympy.integrals.transformsrÚ  r   Úis_rational_functionÚapartru  r   rj   rc   rF   rº   r'   r   r²   rH   rÜ   r~   rE   r€   r“   r0   rõ   r;   )râ   r{   rW  r…  rá   rØ  rÚ  rá  ÚXrà   rã   rç  ré  rÙ  rÏ   rã  s                @@@rn   rc   rc   ¼  s²  ú€ ÷ NÝCô 	ˆc˜Ô€Aõ
6ð 	×Ñ˜aÔ Ø�G‰G�A‹Jˆà‡x‚xÜà—v‘vöØô 5°Q¸¸1¸eÀXÕNò ð ˆô ˜Ÿ™  2›¨Ó1°4Ð7Ð7ðÙ*¨1¨a´°a°R³¸4ÄÇÁÐ:LØ48À%ôI‰ˆˆ4ð
 	€yÙ  1 aÓ(ˆØˆ9ØØ�>Š>Ø—f‘f˜Q‘i‰GˆAˆtØ�u‰u”XŒØä—6‘6ˆDØ�I‰I”i Ó)ˆà‡~‚~ð �v‰v�a˜‹}˜dÐ"Ð"äˆc‹
€Aä Ÿv™vö +ð 	
�	‰	”)˜^Ó,€Aò(ð 	
�	‰	”#�xÓ €Aä�Q—V‘V˜A˜r“] HÓ-¨tÐ3Ð3ùòcøô "ò Ø‹ðús   Á&GÂ+G ÇGÇGc                 óü   — ddl m}  || «      \  }}|j                  |«      rV|j                  |«      j	                  «       }t        |«      dk(  r)|\  }}}|||d|z  z  z   dz  ||z  z   |d|z  z  dz  z
  z  }||z  S )Nr   )Úfractionrï   r§   )r™   rð  r  ræ   rb  r,  )	rà   r{   rð  r„   rË   Úcfr…   r�   rÈ   s	            rn   Ú_complete_the_square_in_denomrò    s‡   € å/Ù�a‹[�F€QˆØ‡��qÔØ�Y‰Y�q‹\×$Ñ$Ó&ˆÜˆr‹7�aŠ<Ø‰GˆAˆq�!Ø�A�a˜˜1™‘g‘I ‘> ! A¡#Ñ% q¨!¨A©#¡w°¡lÑ2Ñ3ˆAØˆQ‰3€Jrp   c            
      óÐ  — t        d«      } t        d«      }t        d| g¬«      }t        d| g¬«      }t        d| g¬«      }t        d«       d„ }d	„ }|| z  |t        j                  |d
f|| |z   | z  z  ||d
z
  z  t        | |z  «      z  t        |«      z  t        j                  |d
fd
| dz  |dz  z   dz  z  t        ||z  «      ||z  t        ||z  «      z  z
  d|dz  z  z  t        j                  |d
fd
| |z  z  ||d
z
  z  t        |«      z  t        j                  |d
fd
| | |z   |z  z  z  t        |||z  «      ||z  t        |«      z  z  t        j                  |d
fg}|| |fS )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                 óH   — 	 | j                  |«      S # t        $ r | cY S w xY wr—   )ÚfactorrP   )rà   r{   s     rn   Ú_fracz+_inverse_laplace_build_rules.<locals>._frac(  s)   € ð	Ø—8‘8˜A“;ÐøÜò 	ØŠHð	ús   ‚ “! !c                 ó   — | S r—   rq   )rà   s    rn   Úsamez*_inverse_laplace_build_rules.<locals>.same.  s   € ˜�rp   ra   r§   rï   )
r   r    ru   r   r€   r'   r@   r3   r2   rA   )r{   rÏ   r…   r�   rÈ   rö  rø  Ú
_ILT_ruless           rn   Ú_inverse_laplace_build_rulesrú    sˆ  € ô 	ˆ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Ñ-¬e°A«hÑ6Ü�F‰F�D˜!ð	ð 
ˆAˆq‰D��A‘‰I˜‰>Ñ	œC  !¡›H q¨¡s¬3¨q°©s«8¡|Ñ3°a¸¸1¹±fÑ=Ü	
�‰��qð	ð 
ˆAˆq‰D‰�1�q˜1‘u‘:œe A›hÑ&¬¯©°°aÐ8Ø	
ˆAˆq�‰s�Q‰h‰J‰œ A q¨¡sÓ+¨Q°©T´%¸³(©]Ñ;Ü	
�‰��qð	ð€Jð �q˜!ÐÐrp   c                 ó8  — | dk(  r&t        d«       t        |«      t        j                  fS t	        «       \  }}}d}| j                  ||i«      }|D ]Â  \  }}	}
}}|||fk7  r |||z  «      }||f}j                  |«      }|sŒ3|
}|t        j                  ur)|d   D �cg c]  }|j                  |«      ‘Œ }} |d   |Ž }|t        j                  k(  sŒ„t        |«      |	j                  |«      j                  ||i«      z  t        j                  fc S  yc c}w )ú@
    Helper function for the class InverseLaplaceTransform.
    ra   z     rule: 1 o---o DiracDelta()r}  r   N)	ru   r:   r   r€   rú  rº   r¸   r~  r;   )rà   r{   rÏ   rù  rÙ   rW  Ú_prepÚfsubsrƒ  r‚  r„  r†  rg  Ú_Fr‡  rÈ   r‰   rj   s                     rn   Ú#_inverse_laplace_apply_simple_rulesr   B  s  € ð
 	ˆA‚vÜÐ0Ô1Ü˜!‹}œaŸf™fÐ$Ð$ä5Ó7Ñ€J��BØ€EØ�F‰F�A�r�7‹O€Eà*4ò MÑ&ˆˆu�e˜T 3Ø�T˜3�KÒÙ�e˜C‘i“ˆBØ˜3�KˆEØ�X‰X�e‹_ˆÚØˆAØœŸ™‰Ø01°!±Ö5¨1˜Ÿ
™
 2�Ð5�Ð5Ø�A�a‘D˜$�K�Ø”A—F‘F‹{Ü  “| E§N¡N°2Ó$6×$;Ñ$;¸RÀ¸GÓ$DÑDÄaÇfÁfÐLÒLðMð ùò 6s   ÂDc                 ó  — t        d|g¬«      }t        d|g¬«      }t        d«      }| j                  |t        |||f«      z  «      }|r?||   j                  r0t	        d«       t        ||   |||dd¬«      \  }}	| ||   z  |z  |	fS y)	rü  r…   rê   r„   rù   z3     rule: t**n*f(t) o---o (-1)**n*diff(F(s), s, n)F©rá   Ú
dorationalN)r    r¸   r
   r]  ru   Ú_inverse_laplace_transform)
rà   r{   rÏ   r…  r…   r„   rù   r‡  r‹   rÈ   s
             rn   Ú_inverse_laplace_diffr  _  s›   € ô
 	ˆS˜1˜#Ô€AÜˆS˜1˜#Ô€AÜˆS‹	€AØ	
�‰�”:˜a ! Q Ó(Ñ(Ó	)€BÙ	ˆb�‰e×ÒÜÐDÔEÜ)Øˆq‰E�1�a˜¨¸5ôB‰ˆˆ1à��R˜‘U‰{˜1‰}˜aÐÐØrp   c                 ó˜  — t        d|g¬«      }t        d«      }| j                  |«      s| t        |«      z  t        j                  fS | j                  t
        «      sy| j                  t        ||z  «      «      }|rY||   j                  r,t        d«       t        |||   z   «      t        j                  fS t        | |||«      t        j                  fS | j                  t        ||z  «      |z  «      }|rR||   j                  r%t        d«       t        ||   ||||   z   |dd¬	«      S t        | |||«      t        j                  fS y)
rü  r…   rê   rù   Nz*     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:   r   r€   r'   r¸   r  ru   r‘  r  )râ   r{   rÏ   r…  r…   rù   rþ   s          rn   Ú_inverse_laplace_time_shiftr  p  s*  € ô
 	ˆS˜1˜#Ô€AÜˆS‹	€Aà�5‰5�Œ8Ø”˜A“‰¤§¡Ð&Ð&Ø�5‰5”Œ:Øà
�'‰'”#�a˜‘c“(Ó
€CÙ
Øˆq‰6×ÒÜÐ?Ô@Ü˜a  A¡™hÓ'¬¯©Ð/Ð/ä*¨1¨a°°EÓ:¼A¿F¹FÐBÐBà
�'‰'”#�a˜‘c“(˜1‘*Ó
€CÙ
Øˆq‰6×ÒÜÐJÔKÜ-Ø�A‘˜˜1˜S ™V™8 U°UÀtôMð Mô +¨1¨a°°EÓ:¼A¿F¹FÐBÐBØrp   c                 óª  — | j                  |«      s| t        |«      z  t        j                  fS t	        | j
                  x}«      dk(  rŠt        d|g¬«      }|d   j                  ||z
  «      x}rct        ||   «      j                  rKt        d«       t        ||    |z  «      t        | j                  |«      |||«      z  t        j                  fS y)rü  ra   r…   rê   r   z&     rule: F(s-a) o---o exp(-a*t)*f(t)N)r~   r:   r   r€   r,  rj   r    r¸   r!   rˆ   ru   r'   r‘  rm   )râ   r{   rÏ   r…  rj   r…   r‡  s          rn   Ú_inverse_laplace_freq_shiftr	  �  sÃ   € ð
 �5‰5�Œ8Ø”˜A“‰¤§¡Ð&Ð&Ü
�1—6‘6ˆ>ˆ4Ó˜aÒÜ�˜q˜cÔ"ˆØ�q‘'—-‘-  !¡Ó$Ð$ˆBÐ$¬"¨R°©U«)×*?Ò*?ÜÐ;Ô<ä�R˜‘U�F˜1‘H“Ü'¨¯©¨q«	°1°a¸Ó?ñ@ÜABÇÁðIð Ið rp   c                 ó¨  — t        d|g¬«      }t        d«      }| j                  ||z  |z  «      }|r ||   j                  r‘||   j                  r‚t	        d«       t        ||   |||dd¬«      \  }}|j                  t        |«      d«      }|j                  t        «      rt        ||||   «      |fS t        |«      t        ||||   «      z  |fS y	)
rü  r„   rê   rù   z+     rule: s**n*F(s) o---o diff(f(t), t, n)FTr  ra   N)r    r¸   r]  rˆ   ru   r  r“   r;   r~   r‘  r   )	râ   r{   rÏ   r…  r„   rù   rþ   r‹   rÈ   s	            rn   Ú_inverse_laplace_time_diffr  ¡  sÑ   € ô
 	ˆS˜1˜#Ô€AÜˆS‹	€Aà
�'‰'�!�Q‘$�q‘&‹/€CÙ
ˆs�1‰v× Ò  S¨¡V×%7Ò%7ÜÐ<Ô=Ü)Ø�‰F�A�q˜%¨%¸DôB‰ˆˆ1à�I‰I”i “l AÓ&ˆØ�5‰5Ô(Ô)Ü˜˜1˜c !™fÓ% qÐ(Ð(ä˜Q“<¤ Q¨¨3¨q©6Ó 2Ñ2°AÐ5Ð5Ørp   c           	      óü+  ‡‡— t        d|g¬«      }t        d|g¬«      Št        d|g¬«      }t        d|g¬«      Šd}t        j                  }| j                  «       }|D �	cg c]  }	|	j	                  |||z  z  ‰z   ‰z  «      ‘Œ! }
}	d|
v ryt        j
                  }g }g }g }|
D ]c  }||   dk(  r||z  }Œ|‰   j                  r|j                  |«       Œ2|‰   j                  r|j                  |«       ŒS|j                  |«       Œe t        |ˆˆfd„¬	«      }t        |ˆˆfd
„¬	«      }t        |«      dk7  ryt        |«      dk(  �r»t        |«      dk(  �r¬|d   ‰   dk(  r |d   |   t        j                  k(  r‡|d   ‰   |d   |   z  }d|d   |   z  |z  }|j                  �r=|t        t        «      z  t        |«      z  ||z  t        |dz  |z  «      z  t        |t        |«      z  «      z  z
  }t!        d«       �nâ|d   ‰   dk(  rÉ|d   |   t        j                  k(  r°|d   ‰   |d   |   z  }|dz  }d|d   |   dz  z  |z  }|j                  �rŠ|ddt        t        «      z  t        |«      z  t        |«      z  z
  dd|z  |z  z
  t        ||z  «      z  t#        t        |«      t        |«      z  «      dz
  z  z   z  }t!        d«       �n|d   ‰   dk(  rÁ|d   |   t        j                  k(  r¨|d   ‰   |d   |   z  }d|d   |   dz  z  |z  }|j                  �r»|dt        t        «      z  |dz  |z  dz   z  t        |«      z  ||z  t        |dz  |z  «      z  d|dz  z  |z  dz   z  t        |t        |«      z  «      z  z
  z  }t!        d«       �nB|d   ‰   dk(  rß|d   |   t        j                  k(  rÆ|d   ‰   |d   |   z  }d|d   |   dz  z  |z  dz  }|j                  �rì||d|dz  z  |dz  z  d|dz  z  |z  z   dz   z  t        |dz  |z  «      z  t        |t        |«      z  «      z  dt        t        «      z  |dz  z  |t        d«      dz  z  z  d|dz  z  |z  dz   z  z
  z  }t!        d«       �nX|d   ‰   t        j                   k(  �r=|d   |   dk(  �r1t        |d   ‰   |d   |   z  «      }dt        |d   |   «      z  |z  }|t%        d||z  «      z  }t!        d«       �nát        |«      dk(  �rút        |«      dk(  �rë|d   ‰   dk(  rå|d   |   t        j                  k(  rÌ|d   ‰   t        j                  k(  r³|d   ‰   dk(  r¨|d   ‰   }t        |d   |   «      |d   |   z  |z  }|d|dz  z  |dz  z  d|dz  z  |z  z   dz   z  t        |dz  |z  «      z  t        |t        |«      z  «      z  dt        t        «      z  |z  |dz  |z  dz   z  t        |«      z  z
  }t!        d«       |d   ‰   dk(  �rÇ|d   |   dk(  �r»|d   ‰   t        j                  k(  �r¡|d   |   dk(  �r•|d   ‰   |d   |   z  }|d   ‰   |d   |   z  }t        |d   |   «      |d   |   z  |z  }|t        | |z  «      t        |«      z  t        t        «      z  t        ||z
  «      t        | |z  «      z  t#        t        ||z
  «      t        |«      z  «      z  z   z  }t!        d«       �nØt        |«      dk(  �rt        |«      dk(  �r|d   ‰   dk(  rÅ|d   |   dk(  rº|d   ‰   t        j                   k(  r |d   |   dk(  r•|d   ‰   dk(  rŠ|d   ‰    |d   |   z  }dt        |d   |   «      z  |d   |   z  |z  }|j                  �r5|t        |«      z  t        ||z  «      z  t#        t        |«      t        |«      z  «      z  }t!        d«       �nê|d   ‰   dk(  r®|d   |   dk(  r£|d   ‰   dk(  r˜|d   ‰   dk(  r�|d   |   t        j                  k(  rt|d   ‰   |d   |   z  }d|d   |   z  |d   |   z  |z  |z  }|j                  �rm|dt        |dz  |z  «      t        |t        |«      z  «      z  z
  z  }t!        d«       �n1|d   ‰   dk(  rÀ|d   |   t        j                  k(  r§|d   ‰   t        j                   k(  r�|d   |   dk(  r‚|d   ‰   dk(  rw|d   ‰   |d   |   z  }d|d   |   t        |d   |   «      z  z  |z  }|j                  �rŸ|t        |dz  |z  «      z  t        |t        |«      z  «      z  }t!        d«       �nf|d   ‰   t        d«       dz  k(  râ|d   |   dk(  r×|d   ‰   dk(  rÌ|d   ‰   dk(  rÁ|d   |   t        j                  k(  r¨|d   ‰   |d   |   z  }d|d   |   t        d«      dz  z  |d   |   z  z  |dz  z  |z  }|j                  �rÊ|dt        t        «      z  |z  t        |«      z  t        |dz  |z  «      t        |t        |«      z  «      z  z   dz
  z  }t!        d«       �nl|d   ‰   dk(  ró|d   |   t        j                  k(  rÚ|d   ‰   dk(  rÏ|d   |   dk(  rÄ|d   ‰   dk(  r¹|d   ‰   |d   |   z  }|dz  }d|d   |   dz  z  |d   |   z  |z  }|j                  �
rê|d|z  d|z  d|z  z
  t        ||z  «      z  t        t        |«      t        |«      z  «      z  z   dt        t        «      z  t        |«      z  t        |«      z  z
  z  }t!        d «       �
nn|d   ‰   dk(  rë|d   |   t        j                  k(  rÒ|d   ‰   t        j                   k(  r¸|d   |   dk(  r­|d   ‰   dk(  r¢|d   ‰   |d   |   z  }d|d   |   dz  z  t        |d   |   «      z  |z  }|j                  �	rÙ|dt        t        «      z  t        |«      z  d|z  |z  t        |dz  |z  «      z  t        |t        |«      z  «      z  z
  z  }t!        d!«       �	nx|d   ‰   dk(  rá|d   |   t        j                  k(  rÈ|d   ‰   t        j                   k(  r®|d   |   dk(  r£|d   ‰   dk(  r˜|d   ‰   }|t        |d   |   «      z  |d   |   z  }|d|dz  z  |z  dz   |z  t        |dz  |z  «      z  t        |t        |«      z  «      z  dt        t        «      z  |z  |t        d«      dz  z  z  z
  z  }t!        d"«       �nŒ|d   ‰   dk(  �r€|d   |   dk(  �rt|d   ‰   t        j                   k(  �rY|d   |   dk(  �rM|d   ‰   |d   |   z  }|d   ‰   |d   |   z  }|t        |d   |   «      z  |d   |   z  }|dt        ||z
  «      z  t        | |z  «      z  t#        t        ||z
  «      t        |«      z  «      z  z  }t!        d#«       �n¹t        |«      dk(  �rét        |«      dk(  �rÚ|d   ‰   dk(  �rn|d   |   dk(  �rb|d   ‰   dk(  �rV|d   |   t        j                  k(  �r<|d   ‰   t        j                  k(  �r"|d   |   dk(  �r|d   ‰   dk(  �r
|d   ‰   |d   |   z  }|dz  }|d   ‰    |d   |   z  }t        |d   |   «      |d   |   z  |d   |   z  ||z
  z  |z  }|j                  �rÊ|j                  �r½||t        ||z  «      z  t        t        |«      t        |«      z  «      z  t        |«      t        |«      z  t        ||z  «      z  t        t        |«      t        |«      z  «      z  z   |t        ||z  «      z  z
  z  }t!        d$«       �n!|d   ‰   dk(  rå|d   |   dk(  rÚ|d   ‰   dk(  rÏ|d   ‰   dk(  rÄ|d   |   t        j                  k(  r«|d   ‰   dk(  r |d   |   t        j                  k(  r‡|d   ‰   |d   |   z  }|d   ‰   |d   |   z  }||z   dk(  �r�|d   |   |d   |   z  |d   |   z  |z  }|dt        |dz  |z  «      z  t        |t        |«      z  «      z  dz
  z  }t!        d%«       �n1|d   ‰   dk(  �r|d   |   dk(  �r|d   ‰   dk(  �r |d   ‰   dk(  rõ|d   |   t        j                  k(  rÜ|d   ‰   dk(  rÑ|d   |   t        j                  k(  r¸|d   ‰   |d   |   z  }|d   ‰   |d   |   z  }||z   dk(  �rš|d   |   dz  |d   |   z  |d   |   dz  z  |z  }|dd&|dz  z  |z  t        |dz  |z  «      z  t        |t        |«      z  «      z  z   d&t        t        «      z  |z  t        |«      z  z
  z  }t!        d'«       �n|d   ‰   dk(  �r|d   |   dk(  �rõ|d   ‰   dk(  �ré|d   ‰   dk(  �rÝ|d   |   t        j                  k(  �rÃ|d   ‰   dk(  �r·|d   |   t        j                  k(  �r�|d   ‰   |d   |   z  }|d   ‰   |d   |   z  }||z   dk(  �rr|d   |   dz  |d   |   z  |d   |   dz  z  |z  }|dd&|dz  z  |dz  z  d&|dz  z  |z  z   dz   z  t        |dz  |z  «      z  t        |t        |«      z  «      z  d&t        t        «      z  |z  t        |«      z  d|dz  z  |z  dz   z  z
  dz
  z  }t!        d(«       �nÁt        |«      dk(  �r²t        |«      dk(  �r£|d   ‰   dk(  �r|d   ‰   dk(  �r|d   |   dk(  r÷|d   ‰   dk(  rì|d   |   dk(  rá|d   ‰   t        j                   k(  rÇ|d   |   dk(  r¼|d   ‰    |d   |   z  }d|d   |   z  |d   |   z  t        |d   |   «      z  |z  }|j                  �rý||t        d«       dz  z  t        ||z  «      z  t#        t        |«      t        |«      z  «      z  d|z  t        t        «      z  t        |«      z  z
  z  }t!        d)«       �n‰|d   ‰   dk(  �r}|d   |   dk(  �rq|d   ‰   dk(  �re|d   |   t        j                  k(  �rK|d   ‰   t        j                   k(  �r0|d   |   dk(  �r$|d   ‰   dk(  �r|d   ‰   |d   |   z  }|dz  }|d   ‰    |d   |   z  }d|d   |   z  |d   |   z  t        |d   |   «      z  t        |«      ||z
  z  z  }|j                  r¬|j                  r |t        |«      t        ||z  «      z  t        t        |«      t        |«      z  «      z  t        |«      t        ||z  «      z  t#        t        |«      t        |«      z  «      z  z   t        |«      t        ||z  «      z  z
  z  }t!        d*«       |€yt'        |«      |z  |fS c c}	w )+rü  r…   rê   r�   r«   r„   Nr   c                 ó&   •— | ‰   | ‰   dk7  | ‰   fS r®   rq   ©r‰   r�   r„   s    €€rn   r˜   z-_inverse_laplace_irrational.<locals>.<lambda>Û  ó   ø€ ¨¨1©¨q°©t°q©y¸!¸A¹$Ð(?€ rp   rÖ   c                 ó&   •— | ‰   | ‰   dk7  | ‰   fS r®   rq   r  s    €€rn   r˜   z-_inverse_laplace_irrational.<locals>.<lambda>Ü  r  rp   ra   rð   r§   z     rule 5.3.4rò   z     rule 5.3.10éýÿÿÿrï   z     rule 5.3.13éüÿÿÿ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    r   r€   Úas_ordered_factorsr¸   r  rˆ   r  r  Úsortedr,  rõ   r/   r   r'   r=   ru   r<   r7   r;   )r  r{   rÏ   r…  r…   r«   rl   r°  Úfar‰   r‡  Ú	constantsÚzerosÚpolesÚrestr  rÉ   Úk_Úa_sqÚb_Úa_numr�   r„   s                        @@rn   Ú_inverse_laplace_irrationalr!  ¶  sÊ  ù€ ô 	ˆS˜1˜#Ô€AÜˆS˜1˜#Ô€AÜˆS˜1˜#Ô€AÜˆS˜1˜#Ô€Aà€FÜ—‘€Ià	×	Ñ	Ó	 €Bà*,Ö	- Qˆ!�'‰'�1�Q˜‘T‘6˜!‘8˜a‘-Õ
 Ð	-€BÐ	-àˆr�zØä—‘€IØ€EØ€EØ€Dàò ˆØ�‰7�aŠ<Ø! $™‰IØ�!‰W× Ò Ø�L‰L˜ÕØ�!‰W× Ò Ø�L‰L˜Õà�K‰K˜Õðô �5Ô?Ô@€EÜ�5Ô?Ô@€Eä
ˆ4ƒy�A‚~Øä
ˆ5ƒz�Qƒœ3˜u›:¨›?Ø�‰8�A‰;˜"Ò  q¡¨!¡´·±Ò!6à�q‘˜!‘˜U 1™X a™[Ñ(ˆBØ�5˜‘8˜A‘;‘˜yÑ(ˆBØ�~‹~à”tœB“x‘K¤ Q£Ñ'Ø�r‘Eœ#˜b !™e A™g›,Ñ&¤t¨B¬t°A«w©JÓ'7Ñ7ñ8ð ô Ð(Ö)Ø�1‰X�a‰[˜BÒ 5¨¡8¨A¡;´!·&±&Ò#8à˜‘8˜A‘;˜u Q™x¨™{Ñ*ˆDØ�q‘ˆBØ�5˜‘8˜A‘; ‘>Ñ! )Ñ+ˆBØ×Óà˜˜Aœd¤2›h™J¤t¨B£xÑ/´°Q³Ñ7Ñ7Ø˜1˜R™4 ™6™¤3 r¨!¡t£9Ñ,¬c´$°r³(¼4À»7Ñ2BÓ.CÀAÑ.EÑFñGñ Hð ô Ð)Ö*Ø�1‰X�a‰[˜BÒ 5¨¡8¨A¡;´!·&±&Ò#8à�q‘˜!‘˜U 1™X a™[Ñ(ˆBØ�5˜‘8˜A‘; ‘>Ñ! )Ñ+ˆBØ�~‹~à˜œ$œr›(™
 B¨¡E¨!¡G¨A¡IÑ.¬t°A«wÑ6Ø˜1™œS  Q¡ q¡›\Ñ)¨1¨R°©U©7°1©9°Q©;Ñ7¼¸RÄÀQÃ¹ZÓ8HÑHñIñ Jð ô Ð)Ö*Ø�1‰X�a‰[˜BÒ 5¨¡8¨A¡;´!·&±&Ò#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ÑBÜ˜R¤ Q£™ZÓ(ñ)àœ$œr›(™
 2 q¡5Ñ(¨¬Q¨q«T°!©V©Ñ4°a¸¸A¹±g¸a±iÀ±kÑBñCñ Dð ô Ð)Ö*Ø�1‰X�a‰[œQŸV™V˜GÓ#¨¨a©°©°qÓ(8ä�e˜A‘h˜q‘k %¨¡(¨1¡+Ñ-Ó.ˆBØ”4˜˜a™ ™Ó$Ñ$ YÑ.ˆBØœ' ! R¨¡TÓ*Ñ+ˆFÜÐ(Ö)ä	ˆU‹�q‹œS ›Z¨1›_à�a‘˜‘˜rÒ! e¨A¡h¨q¡k´Q·V±VÒ&;Ø�a‘˜‘œqŸv™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Ñ:Ü�Rœ˜Q›‘ZÓ ñ!Ø#$¤T¬"£X¡:¨b¡=°"°a±%¸±'¸!±)Ñ#<¼TÀ!»WÑ#DñEð ô Ð%Ô&à�a‘˜‘˜rÓ! e¨A¡h¨q¡k°QÓ&6Ø�a‘˜‘œqŸv™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œt A›wÑ&¤t¬B£xÑ/´°R¸±U³Ü˜˜˜A™“Jñ1Ü"¤4¨¨2©£;¬t°A«wÑ#6Ó7ñ18ñ 8ñ 9ð ô Ð%Ö&ä	ˆU‹�q‹œS ›Z¨1›_à�a‘˜‘˜rÒ! e¨A¡h¨q¡k°QÒ&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™+¤c¨"¨Q©$£iÑ/´´D¸³H¼TÀ!»WÑ4DÓ0EÑE�ÜÐ(Ö)à�a‘˜‘˜rÒ! e¨A¡h¨q¡k°QÒ&6¸5À¹8ÀA¹;È!Ò;KØ�a‘˜‘˜rÒ! e¨A¡h¨q¡k´Q·V±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±Ó,<Ñ<Ñ<Ñ=�ÜÐ(Ö)à�a‘˜‘˜rÒ! e¨A¡h¨q¡k´Q·V±VÒ&;Ø�a‘˜‘¤§¡˜wÒ&¨5°©8°A©;¸!Ò+;Ø�a‘˜‘˜qÒ ð �q‘˜!‘˜U 1™X a™[Ñ(ˆBØ�E˜!‘H˜Q‘K¤ U¨1¡X¨a¡[Ó 1Ñ1Ñ2°9Ñ<ˆBØ�~‹~ØœC  A¡ a¡›L™¬¨b´°a³©jÓ)9Ñ9�ÜÐ(Ö)à�a‘˜‘¤ !£˜u Q™wÒ&¨5°©8°A©;¸!Ò+;Ø�a‘˜‘˜qÒ  U¨1¡X¨a¡[°BÒ%6Ø�a‘˜‘œqŸv™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Ñ-¬c°"°a±%¸±'«l¼4ÀÄ4ÈÃ7Á
Ó;KÑ.KÑKÈAÑMÑNð äÐ(Ö)à�a‘˜‘˜rÒ! e¨A¡h¨q¡k´Q·V±VÒ&;Ø�a‘˜‘˜rÒ! e¨A¡h¨q¡k°QÒ&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ÑJÑJØœ$œr›(™
¤4¨£8Ñ+¬D°«GÑ3ñ4ñ 5ð ô Ð)Ö*à�a‘˜‘˜rÒ! e¨A¡h¨q¡k´Q·V±VÒ&;Ø�a‘˜‘¤§¡˜wÒ&¨5°©8°A©;¸!Ò+;Ø�a‘˜‘˜qÒ ð �q‘˜!‘˜U 1™X a™[Ñ(ˆBØ�5˜‘8˜A‘; ‘>Ñ!¤$ u¨Q¡x°¡{Ó"3Ñ3°IÑ=ˆBØ�~‹~à˜œ$œr›(™
¤4¨£7Ñ*Ø˜"™˜Q™œs 2 q¡5¨¡7›|Ñ+¬D°´D¸³G±Ó,<Ñ<ñ=ñ >ð ô Ð)Ö*à�a‘˜‘˜rÒ! e¨A¡h¨q¡k´Q·V±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±*Ó-=Ñ=Ø”$”r“(‘
˜2‘˜a¤! A£$ q¡&™kÑ)ñ*ñ+ˆFô Ð%Ö&à�a‘˜‘˜rÓ! e¨A¡h¨q¡k°QÓ&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Ñ(¬¬T°"°R±%«[¼¸a»Ñ-@Ó)AÑAñCˆFäÐ%Ö&ä	ˆU‹�q‹œS ›Z¨1›_à�a‘˜‘˜rÓ! e¨A¡h¨q¡k°QÓ&6Ø�a‘˜‘˜rÓ! e¨A¡h¨q¡k´Q·V±VÓ&;Ø�a‘˜‘œqŸv™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£NØØ”s˜2˜a™4“y‘L¤¤d¨2£h¬t°A«wÑ&6Ó!7Ñ7Ü˜“HœT "›XÑ%¤c¨"¨Q©$£iÑ/´´T¸"³X¼dÀ1»gÑ5EÓ0FÑFñGà”s˜2˜a™4“y‘Lñ!ñ"�ô Ð(Ö)à�a‘˜‘˜rÒ! e¨A¡h¨q¡k°QÒ&6Ø�a‘˜‘˜qÒ  U¨1¡X¨a¡[°BÒ%6Ø�a‘˜‘œqŸv™vÒ%¨%°©(°1©+¸Ò*:Ø�a‘˜‘œqŸv™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‘N¤4¨¬4°«7©
Ó#3Ñ3°AÑ5ñ7�äÐ)Ö*à�a‘˜‘˜rÓ! e¨A¡h¨q¡k°QÓ&6Ø�a‘˜‘˜qÓ  U¨1¡X¨a¡[°BÒ%6Ø�a‘˜‘œqŸv™vÒ%¨%°©(°1©+¸Ò*:Ø�a‘˜‘œqŸv™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±JÓ/?Ñ?Ñ?Ø”dœ2“h‘J˜r‘M¤$ q£'Ñ)ñ*ñ+�ô Ð)Ö*à�a‘˜‘˜rÓ! e¨A¡h¨q¡k°QÓ&6Ø�a‘˜‘˜qÓ  U¨1¡X¨a¡[°BÓ%6Ø�a‘˜‘œqŸv™vÓ%¨%°©(°1©+¸Ó*:Ø�a‘˜‘œqŸv™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™Ó$ñ%Ø%&¤t¬B£x¡Z°¡]´4¸³7Ñ%:¸A¸bÀ!¹e¹GÀA¹IÀa¹KÑ%HñIØIJñKñL�ô Ð)Ö*ä	ˆU‹�q‹œS ›Z¨1›_à�a‘˜‘˜rÓ! e¨A¡h¨q¡k°QÓ&6¸5À¹8ÀA¹;È!Ò;KØ�a‘˜‘˜rÒ! e¨A¡h¨q¡k°QÒ&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Ñ-´´D¸³H¼TÀ!»WÑ4DÓ0EÑEØ�b‘Dœœb›‘M¤$ q£'Ñ)ñ*ñ+�ô Ð(Ö)à�a‘˜‘˜rÓ! e¨A¡h¨q¡k°QÓ&6Ø�a‘˜‘˜rÓ! e¨A¡h¨q¡k´Q·V±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¢NØÜ˜“HœS  A¡›YÑ&¤t¬D°«H´T¸!³WÑ,<Ó'=Ñ=Ü˜“HœS  A¡›YÑ&¤s¬4°«8´D¸³GÑ+;Ó'<Ñ<ñ=ä˜“HœS  A¡›YÑ&ñ'ñ(�ô Ð(Ô)à€~Øä˜‹|˜FÑ" IÐ-Ð-ùòQ	 
.s   Á!$AW9c                 óB   — t         g}|D ]  } || |||«      x}€Œ|c S  y©rü  N)r!  ©râ   r{   rÏ   r…  rx  ry  r‹   s          rn   Ú!_inverse_laplace_early_prog_rulesr%  ñ  s;   € ô
 .Ð.€Jàò ˆÙ˜˜1˜a Ó'Ð'ˆAÑ4ØŠHðð rp   c                 ój   — t         t        t        t        t        g}|D ]  } || |||«      x}€Œ|c S  yr#  )r  r	  r  r  r!  r$  s          rn   Ú!_inverse_laplace_apply_prog_rulesr'  þ  sK   € ô
 .Ô/JÜ,Ô.CÜ-ð/€Jð ò ˆÙ˜˜1˜a Ó'Ð'ˆAÑ4ØŠHðð rp   c                 ó¬  — | j                   ryt        | d¬«      }|j                   rt        ||||dd¬«      S t        | «      }|j                   rt        ||||dd¬«      S t        | «      }|j                   rt        ||||dd¬«      S | j	                  |«      r| j                  |«      j                  «       }|j                   rt        ||||dd¬«      S y)rü  NFrs  Tr  )ru  r   r  r   rì  rí  r¡  )r  r{   rÏ   r…  r‹   s        rn   Ú_inverse_laplace_expandr)    s×   € ð
 
‡y‚yØÜˆr˜Ô€AØ‡x‚xÜ)Øˆq�!�U U°tô=ð 	=ä�2‹€AØ‡x‚xÜ)Øˆq�!�U U°tô=ð 	=äˆr‹
€AØ‡x‚xÜ)Øˆq�!�U U°tô=ð 	=à	×Ñ˜qÔ!Ø�H‰H�Q‹K×ÑÓˆØ‡x‚xÜ)Øˆq�!�U U°tô=ð 	=àrp   c          	      óÀ  — t        d«      }| j                  |«      }t        j                  |«      }g }t        j
                  g}	|D �]å  }
|
j                  «       \  }}|j                  |«      j                  «       }|d   }|D �cg c]  }||z  ‘Œ	 }}|j                  |«      j                  «       D �cg c]  }||z  ‘Œ	 }}t        |«      dk(  rHt        |«      dz
  }t        |«      D ]+  }|d   t        |||d   z
  «      z  }|j                  |«       Œ- ŒÒt        |«      dk(  r7|d   t        |d    |z  «      z  }|j                  t        |«      |z  «       �Œt        |«      dk(  �rŠ|d   dz  }|d   |dz  z
  j                  «       }t        |«      dk(  rt        j                   g|z   }t#        |«      \  }}|dk(  r"||z  |d||z  z
  z  z   t        | |z  «      z  }nód}|j$                  r| }d}t'        t)        |dz  |z
  |«      j+                  «       «      d   }t-        |«      j/                  «       }|rM|t        | |z  «      z  t1        ||z  «      z  |||z  z
  |z  t        | |z  «      z  t3        ||z  «      z  z   }nL|t        | |z  «      z  t5        ||z  «      z  |||z  z
  |z  t        | |z  «      z  t7        ||z  «      z  z   }|j                  t        |«      |z  «       �Œ°t9        |
||||d¬«      \  }}|j                  |«       |	j                  |«       �Œè t        |Ž }|r|j/                  d¬	«      }|t;        |	Ž fS c c}w c c}w )
rü  Úx_r   ra   r§   rï   FTr  r   )r   rí  r   r  r   r€   r  ræ   rb  r,  Ú	enumerater:   r  r'   r;   rõ  rÛ   Útupler  rÞ   rQ   r  r/   rá   r)   r+   r2   r3   r  rM   )r  r{   rÏ   r…  rá   r+  rà   r¦  r¤  r§  r  r„   rË   r:  Údc_leadr‰   r.  rj  rÈ   r‹   r…   r�   Úlr«   ÚhypÚb2Úbsr©  rã   rl   s                                 rn   Ú_inverse_laplace_rationalr3  (  sR  € ô
 
�‹€BØ
�‰�‹€AÜ�M‰M˜!Ó€EØ€GÜ—&‘&�€JØó ($ˆØ×$Ñ$Ó&‰ˆˆAØ�Y‰Y�q‹\×$Ñ$Ó&ˆØ�Q‘%ˆØ!#Ö$˜Aˆa�‹iÐ$ˆÐ$Ø!"§¡¨1£×!8Ñ!8Ó!:Ö;˜Aˆa�‹iÐ;ˆÐ;Üˆr‹7�aŠ<Ü�B“˜‘	ˆAÜ˜r“]ò "�Ø�a‘Dœ A q¨¨1©¡vÓ.Ñ.�Ø—‘˜qÕ!ñ"ô �‹W˜Š\Ø�1‘”c˜2˜a™5˜& ™(“mÑ#ˆAØ�N‰Nœ9 Q›<¨™>Ö*Ü�‹W˜‹\Ø�1‘�a‘ˆAØ�A‘�q˜!‘t‘×#Ñ#Ó%ˆAÜ�2‹w˜!Š|Ü—f‘f�X ‘]�Ü˜“9‰DˆAˆqØ�AŠvØ�q‘S˜˜A˜a ™c™E™‘]¤C¨¨¨1©£IÑ-‘à�Ø—=’=Ø˜�AØ�CÜœ%  A¡ a¡¨Ó,×1Ñ1Ó3Ó4°QÑ7�Ü˜!“W×%Ñ%Ó'�Ùàœ#˜q˜b ™d›)™¤D¨¨A©£JÑ.°!°A°a±C±%Øñ2Ü ˜r !™t›9ñ2%Ü%)¨"¨Q©$£Zñ20ñ 0ñ ð œ#˜q˜b ™d›)™¤C¨¨1©£IÑ-°°1°Q±3±¸±
¼3À¸rÀ!¹t»9Ñ0DÄSÈÈAÉÃYÑ0NÑN�AØ�N‰Nœ9 Q›<¨™>Ö*ä1Ø�a˜˜E¨HÀôH‰HˆB�à�N‰N˜2ÔØ×Ñ˜dÖ#ðQ($ôT �'ˆ]€FÙØ—‘ e�Ó,ˆØ”3˜
Ð#Ð#Ð#ùòS %ùÚ;s   ÂMÂ5Mc                ój  ‡— t        j                  | «      }g }g }|D �]l  }	|	j                  t        «      r2|	j	                  ‰‰ «      j                  «       j	                  ‰‰ «      }	|	j                  ‰d¬«      \  }
}|r$|	j                  ‰«      rt        |‰|||¬«      x}	 €Ct        |‰|«      x}	 €3t        |‰||«      x}	 €"t        |‰||«      x}	 €t        |‰||«      x}	 �nxt        ˆfd„|j                  t        «      D «       «      rt!        |‰||«      t"        j$                  f}n2t'        |‰|||¬«      x}	 �nt!        |‰||«      t"        j$                  f}|\  }}|j)                  |
|z  «       |j)                  |«       �Œo t        |Ž }|r|j+                  d¬«      }t-        |Ž }||fS )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š  rû   c              3   ó@   •K  — | ]  }|j                  ‰«      –— Œ y ­wr—   r�  )r©   rž  rÙ   s     €rn   r¬   z-_inverse_laplace_transform.<locals>.<genexpr>„  s   øè ø€ ÒB 5�—‘˜2—ÑBùrŸ  r   )r   r  r~   r'   rº   rS   r¢  rì  r3  r   r%  r)  r'  r£  r�   r	   r‘  r   r€   rc   r  rá   rM   )r  rÙ   rW  r…  rá   r  r¦  r¤  r§  r  r!  rà   r‹   r­  r¯  rl   r°  s    `               rn   r  r  b  sì  ø€ ô �M‰M˜"Ó€EØ€GØ€Jàó %ˆØ�8‰8”CŒ=ð —9‘9˜R " Ó%×.Ñ.Ó0×5Ñ5°b¸2¸#Ó>ˆDØ×"Ñ" 2¨eÐ"Ó4‰ˆˆ1á˜t×8Ñ8¸Ô<Ü/Ø�r˜2˜u¨xô9ð 9�àðô :¸!¸RÀÓDÐD�Øðä7¸¸2¸rÀ5ÓIÐI�Øðä-¨a°°R¸Ó?Ð?�Øðä7¸¸2¸rÀ5ÓIÐI�ØðàÜÓB¨A¯G©G´LÓ,AÔBÔBô )¨¨B°°EÓ:¼A¿F¹FÐC‰Aä;Ø�r˜2˜u¨xô9ð 9�ØAEðFð ä(¨¨B°°EÓ:¼A¿F¹FÐCˆAØ‰
ˆˆcØ�‰�q˜‘uÔØ×Ñ˜#ÖðK%ôN �'ˆ]€FÙØ—‘ e�Ó,ˆÜ�ZÐ €Ià�9ÐÐrp   c                   ó\   — e Zd ZdZdZ ed«      Z ed«      Zd„ Ze	d„ «       Z
d„ Zd„ Zd	„ Zy
)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.
    zInverse LaplaceÚNonerÈ   c                 óZ   — |€t         j                  }t        j                  | ||||fi |¤ŽS r—   )r‘  Ú_none_sentinelrG   Ú__new__)r¥   râ   r{   r‰   r…  Úoptss         rn   r:  zInverseLaplaceTransform.__new__©  s0   € Øˆ=Ü+×:Ñ:ˆEÜ ×(Ñ(¨¨a°°A°uÑEÀÑEÐErp   c                 óL   — | j                   d   }|t        j                  u rd }|S )Nrï   )rj   r‘  r9  )rµ  r…  s     rn   Úfundamental_planez)InverseLaplaceTransform.fundamental_plane®  s(   € à—	‘	˜!‘ˆØÔ+×:Ñ:Ñ:ØˆEØˆrp   c                 ó4   — t        |||| j                  fi |¤ŽS r—   )rc   r=  )rµ  râ   r{   rÏ   r¶  s        rn   r¸  z*InverseLaplaceTransform._compute_transformµ  s&   € Ü5Øˆq�!�T×+Ñ+ñ6Ø/4ñ6ð 	6rp   c                 ó<  — | j                   j                  }t        t        ||z  «      |z  ||t        j
                  t        j                  z  z
  |t        j
                  t        j                  z  z   f«      dt        j                  z  t        j
                  z  z  S )Nr§   )Ú	__class__Ú_crE   r'   r   ÚImaginaryUnitr²   ÚPi)rµ  râ   r{   rÏ   rÈ   s        rn   rº  z$InverseLaplaceTransform._as_integral¹  sw   € Ø�N‰N×Ñˆä”S˜˜1™“X˜a‘Z ! Q¬¯©¼¿¹Ñ)CÑ%CØ"#¤a§o¡o´a·j±jÑ&@Ñ"@ð"Bó CàŒq�t‰t‰V”A—O‘OÑ#ñ%ð	&rp   c                 ó8  — |j                  dd«      }|j                  dd«      }t        d| j                  | j                  | j                  f«       | j                  }| j                  }| j                  }| j
                  }t        |||||d¬«      }|r|d   S |S )r¼  r½  Trá   Fz[ILT doit] (%s, %s, %s)r  r   )r´  rX   r¾  r¿  rÀ  r=  r  )	rµ  r¶  rÁ  rF   rÙ   rW  r  r…  r‹   s	            rn   r¡  zInverseLaplaceTransform.doitÀ  s¥   € ð —9‘9˜Y¨Ó-ˆØ—I‘I˜j¨%Ó0ˆ	äÐ(¨4¯=©=Ø+/×+AÑ+AØ+/×+BÑ+Bð+Dô 	Eð ×#Ñ#ˆØ×$Ñ$ˆØ�]‰]ˆØ×&Ñ&ˆä&Ø��B˜¨	¸dôDˆñ Ø�Q‘4ˆKàˆHrp   N)ri   rÂ  rÃ  rÄ  rÅ  r   r9  rA  r:  Úpropertyr=  r¸  rº  r¡  rq   rp   rn   r‘  r‘  ›  sI   „ ñð €EÙ˜6“]€NÙ	ˆs‹€BòFð
 ñó ðò6ò&órp   r‘  c                 ó  ‡‡‡‡— ‰j                  dd«      }‰j                  dd«      }t        | t        «      r#t        | d«      r| j	                  ˆˆˆˆfd„«      S t        | ‰‰‰«      j                  d|¬«      \  }}|r|S ||fS )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        | ‰‰‰fi ‰¤ŽS r—   )Úinverse_laplace_transform)ÚFijr¶  r…  r{   rÏ   s    €€€€rn   r˜   z+inverse_laplace_transform.<locals>.<lambda>	  s   ø€ Ô1°#°q¸!¸UÑLÀeÑL€ rp   rÍ  )r´  r   rN   rÎ  rÇ  r‘  r¡  )	râ   r{   rÏ   r…  r¶  rÁ  rF   r‹   rÈ   s	    ````    rn   rH  rH  â  s�   û€ ðZ �y‰y˜ DÓ)€HØ—	‘	˜* eÓ,€Iä�!”ZÔ ¤W¨Q°Ô%<Ø�{‰{ÞLóNð 	Nô # 1 a¨¨EÓ2×7Ñ7Ø 	ð 8ó +�D€A€qñ Øˆà�!ˆtˆrp   c                 ó˜   ‡‡‡‡‡‡‡‡‡	‡
— t        dt        ‰g¬«      \  ŠŠ	Š
ˆˆˆˆˆfd„Šˆfd„Šˆˆfd„Šˆˆ	ˆ
ˆˆfd„Šˆfd„Š ‰| «      S )zEFast inverse Laplace transform of rational function including RootSumza, b, nr¤   c                 óÞ   •— | j                  ‰«      s| S | j                  r ‰| «      S | j                  r ‰| «      S | j                  r ‰| «      S t	        | t
        «      r ‰| «      S t        ‚r—   )r~   ru  ra  rx   r   rT   ÚNotImplementedError)ÚeÚ_ilt_addÚ_ilt_mulÚ_ilt_powÚ_ilt_rootsumr{   s    €€€€€rn   Ú_iltz#_fast_inverse_laplace.<locals>._ilt#	  s`   ø€ Ø�u‰u�QŒxØˆHØ�XŠXÙ˜A“;ÐØ�XŠXÙ˜A“;ÐØ�XŠXÙ˜A“;ÐÜ˜œ7Ô#Ù “?Ð"ä%Ð%rp   c                 óJ   •—  | j                   t        ‰| j                  «      Ž S r—   )rm   Úmaprj   )rM  rR  s    €rn   rN  z'_fast_inverse_laplace.<locals>._ilt_add1	  s   ø€ Øˆq�v‰v”s˜4 §¡Ó(Ð)Ð)rp   c                 óf   •— | j                  ‰«      \  }}|j                  rt        ‚| ‰|«      z  S r—   )r¢  ra  rL  )rM  rÝ  rš   rR  r{   s      €€rn   rO  z'_fast_inverse_laplace.<locals>._ilt_mul4	  s3   ø€ Ø×&Ñ& qÓ)‰ˆˆtØ�;Š;Ü%Ð%Ø‘t˜D“zÑ!Ð!rp   c                 ó  •— | j                  ‰‰z  ‰z   ‰z  «      }|�j|‰   |‰   |‰   }}}|j                  r5|dk  r0‰	| dz
  z  t        ||z   ‰	z  «      z  || z  t        | «      z  z  S |dk(  rt        ||z   ‰	z  «      |z  S t        ‚rÕ   )r¸   Ú
is_Integerr'   r@   rL  )
rM  r¸   ÚnmÚamÚbmr…   r�   r„   r{   rÏ   s
        €€€€€rn   rP  z'_fast_inverse_laplace.<locals>._ilt_pow:	  s¨   ø€ Ø—‘˜˜1™˜q™ 1™Ó%ˆØÐØ˜q™ 5¨¡8¨U°1©X�B�ˆBØ�}Š}  a¢Ø˜B˜3˜q™5‘z¤#¨¨2© h¨q¡j£/Ñ1°2¸°s±7¼5À"À»:Ñ3EÑFÐFØ�QŠwÜ˜R ™U˜8 A™:“¨Ñ+Ð+Ü!Ð!rp   c                 ó¾   •— | j                   j                  }| j                   j                  \  }t        | j                  t        |t         ‰|«      «      «      «      S r—   )Úfunrš   Ú	variablesrT   Úpolyr   rS   )rM  rš   ÚvariablerR  s      €rn   rQ  z+_fast_inverse_laplace.<locals>._ilt_rootsumD	  s@   ø€ Ø�u‰u�z‰zˆØ—U‘U—_‘_‰
ˆÜ�q—v‘vœv h´¹¸d»Ó0DÓEÓFÐFrp   )r   r    )rM  r{   rÏ   rR  rN  rO  rP  rQ  r…   r�   r„   s    ``@@@@@@@@rn   Ú_fast_inverse_laplacer`  	  sI   ÿù€ ä�i¤T°A°3Ô7�G€A€qˆ!÷&ð &ô*õ"÷"ð "ôGñ
 �‹7€Nrp   )Tr—   )¥rÄ  rg   rd   Ú
sympy.corer   r   r   Úsympy.core.addr   Úsympy.core.cacher   Úsympy.core.exprr   Úsympy.core.functionr	   r
   r   r   r   r   r   r   r   r   Úsympy.core.mulr   r   Úsympy.core.relationalr   r   r   r   r   r   r   r   Úsympy.core.sortingr   Úsympy.core.symbolr   r   r    Ú$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.piecewiser0   r1   Ú(sympy.functions.elementary.trigonometricr2   r3   r4   r5   Úsympy.functions.special.besselr6   r7   r8   r9   Ú'sympy.functions.special.delta_functionsr:   r;   Ú'sympy.functions.special.error_functionsr<   r=   r>   Ú'sympy.functions.special.gamma_functionsr?   r@   rA   rB   Ú-sympy.functions.special.singularity_functionsrC   Úsympy.integralsrD   rE   rë  rF   rG   rH   Úsympy.logic.boolalgrI   rJ   rK   rL   rM   Úsympy.matrices.matrixbaserN   Úsympy.polys.matrices.linsolverO   Úsympy.polys.polyerrorsrP   Úsympy.polys.polyrootsrQ   Úsympy.polys.polytoolsrR   Úsympy.polys.rationaltoolsrS   Úsympy.polys.rootoftoolsrT   Úsympy.utilities.exceptionsrU   rV   rW   Úsympy.utilities.miscrX   re   rr   ru   r›   rŸ   rb   rè   r÷   r  r  r  r  r  r'  rS  r[  r_  rq  rv  r{  rˆ  rŒ  r“  r˜  rý   rd  rË  rc   rò  rú  r   r  r  r	  r  r!  r%  r'  r)  r3  r  r‘  rH  r`  rq   rp   rn   ú<module>r€     sÄ  ðÙ Û 
Û ß Ñ Ý Ý $Ý  ÷&÷ &÷ &÷ %÷<÷ <ó <å &ß 2Ñ 2÷5÷ 5ç ;ß IÓ Iß CÑ C÷$ç IÓ Iß MÓ Mß Iß AÑ A÷,ó ,å Mß /÷:ñ :ç EÕ EÝ 0Ý 6Ý 2Ý 'Ý &Ý .Ý +÷Iñ Iå 'à€	òò<EòXðv ñ6ó ð6ð ñlLó ðlLð^ ñó ðð  	ñX)ó 	ðX)ðv ñó ðð* ñ&ó ð&ðR ñó ðð, ñ)ó ð)ðX ñó ðð$ ñó ðð@ ñI'ó ðI'ðX ñ;ó ð;ð@ ñó ðð8 ñ/ó ð/ðd ñó ðð8 ñó ðð" ñó ðð4 ñ,ó ð,ò^9òx*ðZ ñ@$ó ð@$ôF5Ð(ô 5ópNðb ñM4ó ðM4ð` ñó ðð 	ñ%ó 	ð%ðP ñó ðð8 ñó ðð  ñó ðð> ñó ðð  ñó ðð( ñw.ó ðw.ðt	 ñ	ó ð	ð ñó ðð ñó ðð4 ñ6$ó ð6$ðr ñ5ó ð5ôpDÐ/ô DóN:óz*rp   