o
    GZŽh%t  ã                   @   sP  d dl mZ d dl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 d dlmZ d dlmZ d d	lmZmZ d d
lmZmZmZmZmZ d dl m!Z!m"Z"m#Z#m$Z$ d dl%m&Z&m'Z'm(Z( d dl)m*Z* d dl+m,Z,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl m9Z9 d dl:m;Z;m<Z<m=Z= d dl>m?Z? d dlm@Z@ d dlAmBZBmCZCmDZD eDdd„ ƒZEeDdd„ ƒZFeDdd„ ƒZGeDdd „ ƒZHeDd!d"„ ƒZIeDd#d$„ ƒZJeDd%d&„ ƒZKd'd(„ ZLd)d*„ ZMeDd+d,„ ƒZNeDd-d.„ ƒZOeDd/d0„ ƒZPeDd1d2„ ƒZQd3d4„ ZRd5d6„ ZSd7d8„ ZTd9d:„ ZUd;d<„ ZVd=d>„ ZWd?d@„ ZXdAdB„ ZYeDdCdD„ ƒZZeDdEdF„ ƒZ[dGdH„ Z\dIdJ„ Z]dKdL„ Z^dMdN„ Z_dOdP„ Z`dQdR„ ZadSdT„ ZbdUdV„ ZcdWdX„ ZdeCdYdZ„ ƒZed[d\„ Zfd]d^„ ZgeDd_d`„ ƒZhdadb„ Zidcdd„ Zjdedf„ Zkdgdh„ ZleDdidj„ ƒZmeDdkdl„ ƒZndmdn„ Zododp„ ZpeCdqdr„ ƒZqdsdt„ Zrdudv„ Zsdwdx„ Ztdydz„ Zud{S )|é    )Úrefine)ÚAccumBounds)ÚProduct)ÚSum)Ú
expand_log)ÚEÚFloatÚIÚRationalÚnanÚooÚpiÚzoo)ÚPow)ÚS)ÚSymbolÚsymbols)ÚadjointÚ	conjugateÚreÚsignÚ	transpose)ÚLambertWÚexpÚ	exp_polarÚlog)ÚcoshÚsinhÚtanh)Úsqrt)ÚcosÚsinÚtan)ÚMatrixSymbol)Úgcd)ÚO)Úsimplify)Úglobal_parameters)Úmatch_real_imag©ÚxÚyÚz)Ú	unchanged)ÚArgumentIndexError)ÚraisesÚXFAILÚ_both_exp_powc                  C   sB  t jrtttƒƒtu sJ ‚n
tttƒƒtu sJ ‚tddd} ttƒtu s&J ‚ttƒtu s.J ‚tt ƒdks7J ‚tdƒdks?J ‚tdƒt	ksGJ ‚tdt ƒ 
¡ tjtd fksXJ ‚tdt ƒ 
¡ tjtd fksiJ ‚ttt d ƒtksuJ ‚ttt ƒdksJ ‚ttt tddƒ ƒt ksJ ‚tdt t ƒdks›J ‚tttt d |  ƒƒdks«J ‚tttt d | tj  ƒƒdks¾J ‚tttt d | tdd	ƒ  ƒƒtksÓJ ‚tttt d | tdd	ƒ  ƒƒt kséJ ‚tttƒƒtksóJ ‚tdttƒ ƒtd ksJ ‚ttttƒ ƒtt ksJ ‚td
ttƒ t	ttƒ  ƒtd
 tt	  ks*J ‚ttttƒ ƒtt ks9J ‚tttƒttƒ ƒtksHJ ‚tdttƒ tt  ƒttt ƒtd  ksaJ ‚td	ttƒ ttƒ dttƒ  ƒtd td	ttƒ ttƒ ƒ ks†J ‚tt ddjdu s“J ‚ttddjdu sŸJ ‚d S )NÚkT©Úintegerr   é   éÿÿÿÿé   é   é   é   F©Úevaluate)r'   Ú
exp_is_powÚtyper   r*   r   r   r   r   r   Úas_base_expr   ÚExp1r   r	   r
   r   ÚHalfr   r+   r!   Ú	is_finite)r2   © rC   ú`/var/www/auris/lib/python3.10/site-packages/sympy/functions/elementary/tests/test_exponential.pyÚtest_exp_values   s:   ""  &*,22JrE   c                  C   sF  t tt tddƒ ƒt tt d ƒksJ ‚t tt tddƒ ƒt tt tddƒ ƒks-J ‚t tt tddƒ ƒt tt tddƒ ƒksEJ ‚t tt td	d
ƒ ƒt t t d
 ƒks[J ‚t tt tddƒ ƒt tt tddƒ ƒ dksuJ ‚t tt tdd
ƒ ƒt tt tddƒ ƒ t tt tddƒ ƒ dksšJ ‚t dtt tddƒ  ƒt dtt td
dƒ  ƒks¶J ‚t td
ƒtt tddƒ  ƒd
t tt tddƒ ƒ ksÔJ ‚tddd} tddd}t |t t ƒdksìJ ‚t |d t t ƒdksúJ ‚t dd|   t t d ƒtksJ ‚t dd|   t t d ƒt ks!J ‚d S )Né	   r9   é.   é   é   é   é   éýÿÿÿiíÿÿÿr8   é%   é   iõÿÿÿr   éûÿÿÿé   é”   é   r5   r7   r:   é   iùÿÿÿÚnTr3   Úe)Zevenr6   )r   r	   r   r
   r   r   )rT   rU   rC   rC   rD   Útest_exp_periodH   s   *00,4J8<&,rV   c                  C   sš   t ddd} tt| ƒƒ| ksJ ‚tt| ƒƒ| ksJ ‚tjs1t| ƒ ¡ tks'J ‚t| ƒ ¡ tks1J ‚t ddd}tttƒƒtksAJ ‚tt|ƒƒ|ksKJ ‚d S )Nr*   T©Úrealr+   ©Zpolar)r   r   r   r'   r=   Zinverser   r,   ©r*   r+   rC   rC   rD   Útest_exp_log\   s   r[   c                  C   s€   t ttdƒƒdt  ttdƒƒt  ƒ} |  ¡ dksJ ‚t tt ƒt tƒt tƒ ks,J ‚t tt ƒ ¡ t tƒt tƒ ks>J ‚d S ©Nr7   r5   )r   r   r
   r*   Úexpandr+   ©rU   rC   rC   rD   Útest_exp_expandk   s   ( (r_   c                   C   sê   t tƒ ¡ ttfksJ ‚t dt ƒ ¡ tdt fksJ ‚t tt ƒ ¡ ttt fks,J ‚t t ƒ ¡ tt fks:J ‚tt t tƒksDJ ‚tdt  t dt ƒksRJ ‚ttt  t tt ƒks`J ‚t tƒjtju sjJ ‚t tƒj tkssJ ‚d S ©Nr7   )r   r*   r?   r   r+   Úbaser   r@   rC   rC   rC   rD   Útest_exp__as_base_exps   s     rb   c                  C   s’   t tt ƒtks
J ‚tt tt ƒƒtu sJ ‚tt t t ƒƒtu s#J ‚t tt t ƒtks/J ‚t tƒtu s7J ‚tdddd} t | ƒjd u sGJ ‚d S )Nr*   TF)Zextended_realZfinite)	r   r	   r+   r   r   r   r   r   Z
is_complex©r*   rC   rC   rD   Útest_exp_infinityƒ   s   rd   c                  C   s(  t dƒ} tdt| ƒ dd}| | d td ¡|ksJ ‚| | d d¡|ks(J ‚| d  | d t¡ttddƒ ks;J ‚tt| ƒt| d ƒ ƒ tt| ƒƒt¡ttt| d ƒƒ ks[J ‚t| ƒ tt¡t|  ksiJ ‚tddd} td|  ƒ td	|  ƒt¡ttdd	ƒ ks†J ‚td|  d	 ƒ td|  ƒt¡ttddƒ td	ƒ ks£J ‚tddd
} tdt| ƒ ƒ | d t¡ttddƒ ksÀJ ‚tt| t ƒƒ td¡dd| t   ksÖJ ‚tt| t ƒƒ tt¡tt| t ƒƒksìJ ‚tt| t ƒƒ td¡dd| d   ksJ ‚tdƒ tt¡tdƒksJ ‚d S )Nr*   r8   Fr;   r7   rI   TrW   rK   ©Úpositive)	r   r   r   Úsubsr+   r
   r   r   r!   )r*   rU   rC   rC   rD   Útest_exp_subsŽ   s    &@.:.,,."rh   c                  C   s,   t ddd} tt| ƒƒtt| ƒƒksJ ‚d S )Nr*   F©Zcommutative)r   r   r   rc   rC   rC   rD   Útest_exp_adjoint£   s    rj   c                   C   ó    t ttƒƒtt tƒƒksJ ‚d S ©N)r   r   r*   rC   rC   rC   rD   Útest_exp_conjugate¨   s    rm   c                   C   rk   rl   )r   r   r*   rC   rC   rC   rD   Útest_exp_transpose¬   s    rn   c                  C   sÌ  t tƒ t¡ttƒttƒ ksJ ‚t tt ƒ t¡ttƒtttƒ  ks&J ‚t dƒ t¡tdƒtdƒ ks7J ‚t dƒ t¡tdƒtdƒ ksHJ ‚t dƒ t¡tdƒtdƒ ksYJ ‚t tƒ t¡dttd ƒ dttd ƒ  ksrJ ‚t t	t d ƒ t
¡t
dƒd t
dƒt d  ksJ ‚t t	t d ƒ t
¡tjt
dƒt d  ks¥J ‚tjsét tttƒ ƒ t¡tt ks¹J ‚t ttƒttƒ ƒ t¡tttƒ tttƒ fv sÔJ ‚t tttƒƒt ƒ t¡ttƒt kséJ ‚tddd} tt t	t d ƒd |  | dtfƒ t
¡ ¡ tdd	ƒtd d	  ksJ ‚tt t	t d ƒd |  | dtfƒ t
¡ ¡ ddt
dƒdt  d   ks<J ‚tt t	t d ƒd |  | dtfƒ t
¡ ¡  ¡ dt t
dƒdt   ksdJ ‚d S )
Nr5   r7   r9   r8   rT   Tr3   r   rI   )r   r*   Úrewriter!   r   r   r	   r    r   r   r   r   rA   r'   r=   r   r+   r   r   r   r   Zdoitr
   Úcancel©rT   rC   rC   rD   Útest_exp_rewrite±   s$   "*"""260"6*JP0ÿrr   c                   C   sb   t tƒ t¡dksJ ‚t dt ƒ t¡t dƒksJ ‚t dt d td  ƒ t¡t dƒks/J ‚d S )Nr5   r7   r8   )r   r*   Úas_leading_termrC   rC   rC   rD   Útest_exp_leading_termÈ   s   .rt   c                  C   s~   t dƒ} t| ƒ d| ¡| ksJ ‚t| ƒ d| ¡| d d ks J ‚t| ƒ d| ¡| d d ks0J ‚t| ƒ d| ¡tju s=J ‚d S )Nr*   r5   r8   é   r9   é   r6   )r   r   Útaylor_termr   ÚZerorc   rC   rC   rD   Útest_exp_taylor_termÖ   s
     ry   c                  C   s"   t dddƒ} t| ƒ t¡sJ ‚d S )NÚAr7   )r#   r   Úhas)rz   rC   rC   rD   Útest_exp_MatrixSymbolß   s   r|   c                      ó   t dƒ‰ tt‡ fdd„ƒ d S )Nr*   c                      ó   t ˆ ƒ d¡S r`   )r   ÚfdiffrC   rc   rC   rD   Ú<lambda>æ   ó    z test_exp_fdiff.<locals>.<lambda>©r   r/   r.   rC   rC   rc   rD   Útest_exp_fdiffä   ó   rƒ   c                   C   s@  t tƒtu sJ ‚t tƒtu sJ ‚t t ƒtu sJ ‚t tƒtu s!J ‚t t ƒtu s*J ‚t dƒtu s2J ‚t dƒdks:J ‚t dƒtt ksDJ ‚t tƒdksLJ ‚t t ƒ ¡ dtt  ks[J ‚tt tƒsbJ ‚t t ƒ ¡ t tƒtt  kssJ ‚tt dƒszJ ‚t dƒt dƒtt  ksˆJ ‚t tƒtt d ks”J ‚t t ƒt t d ks¢J ‚t dt ƒtt d t dƒ ks´J ‚t dt ƒ ¡ t t d t dƒ ksÉJ ‚t tt ƒtu sÓJ ‚t t t ƒtu sÞJ ‚t ddƒtu sçJ ‚t ddƒtu sðJ ‚t	t dƒ ƒd dksýJ ‚t t
jƒt dƒ ks
J ‚t d	ƒjt u sJ ‚t d
ƒjt u sJ ‚d S )Nr   r5   r6   r:   iïÿÿÿr7   rI   r8   ru   rH   )r   r   r   r   r	   r   r   r]   r-   r   r   rA   ÚfuncrC   rC   rC   rD   Útest_log_valuesé   s4   "$*r†   c                  C   s<  t ddd\} }tddd}ttjƒdksJ ‚ttƒdksJ ‚tdd	t  ƒd
ks+J ‚ttdƒ tjt  ƒtdƒ tjfksAJ ‚t| |t  ƒ| |fksOJ ‚t| t |t  ƒd| | fksaJ ‚t| | t ƒd| | fksqJ ‚ttddƒ| t ƒdks€J ‚tdd|  ƒdksŒJ ‚ttdƒdd	t   ƒdksœJ ‚d S )Núx,yTrW   Úi©Z	imaginary)r5   r   )r   r5   r8   rI   )r8   rO   r   éþÿÿÿ)NNr5   r7   )	r   r   r(   r   ZOner	   r   rA   r
   )r*   r+   rˆ   rC   rC   rD   Útest_match_real_imag  s   ,$ $r‹   c                  C   sª  t ddƒD ]C} t| dƒdkr'tt| t t d ƒ t¡ƒ| t t d ks'J ‚t ddƒD ]} tt| t t d ƒ t¡ƒ| t t d ksGJ ‚q,qttj	ttdƒ d  ƒt t d ks_J ‚tt
ddƒttdƒ d  ƒtt t
ddƒ ksyJ ‚ttdƒ d ttdƒ d  ƒt t t
dd	ƒ ks–J ‚ttdƒ d ttj	  ƒt t t
d
dƒ ks°J ‚tt
dd	ƒtd
ƒd	  tttd
ƒd t
d
dƒ ƒ  ƒt t t
dd
ƒ ksØJ ‚ttt
d
dƒtd
ƒd  ƒtt
dd	ƒtd
ƒd	    ƒtt t
ddƒ ksÿJ ‚tttdƒd	 tj	 ƒ tttj	tdƒd	  ƒ  ƒtt t
ddƒ ks&J ‚ttdƒ d	 tdƒd	  ttdƒ d	 tdƒd	    ƒt t t
ddƒ ksQJ ‚tdttdƒ  ƒtdƒtt t
ddƒ  kskJ ‚td
d
t  ƒtd
tdƒ ƒtt d	  ks„J ‚ttdƒƒtdtdƒ ƒtt d  ks›J ‚ttdƒ tdƒ ttdƒ  ttdƒ  ƒtd	ƒtt t
ddƒ  ksÂJ ‚ttddtdƒ  ƒ ttddtdƒ  ƒ  ƒtdtdƒ ƒtt t
d
dƒ  ksïJ ‚tdttdtdƒ ƒ tdtdƒ ƒ  ƒtdttdƒd ƒ ƒtt d  ksJ ‚tttt
ddƒ ƒtttt
ddƒ ƒ  ƒtt t
ddƒ ks<J ‚tttt
dd
ƒ ƒtttt
dd
ƒ ƒ  ƒtt t
dd
ƒ ks^J ‚td
dt  tdƒ ƒtd
ƒtt d	  kswJ ‚ttdƒtdƒ d tdƒt  t  ƒtd	ƒtt t
ddƒ  ksœJ ‚ttdƒ dttdƒ   ƒtdtdƒ ƒtt t
ddƒ  ks¿J ‚ttdƒt tddtdƒ  ƒ ttdtdƒ d ƒ   ƒtdƒtt d  ksëJ ‚dtdƒ d d dtdƒ  }t|ttdƒ  ƒttdƒƒtt d  ksJ ‚tt|t|  ƒs+t||t  ƒtu s+J ‚tttdƒdttdƒt ƒ  d ƒsAJ ‚tttdtd
ƒ ƒdt  ƒsSJ ‚d S )Niéÿÿÿrv   r5   i÷ÿÿÿé
   r8   r7   r6   r9   rI   ru   rN   rK   rP   é   iôÿÿÿéüÿÿÿiè  )Úranger$   r   r   r	   r   ro   r   r   rA   r
   r    r!   r-   r   )rT   ÚzerorC   rC   rD   Útest_log_exact!  s>   24ÿ,4:4PNNV42.NZVDD2JFX 2.,(r‘   c                   C   sŒ  t ddƒdks	J ‚t ddƒdksJ ‚t ddƒt dƒt dƒ ks!J ‚t ddƒdt dƒt dƒ  ks2J ‚t ddƒdt dƒt dƒ  ksCJ ‚t ddƒdksLJ ‚t ddƒdksUJ ‚t ddƒtu s^J ‚t ddƒtu sgJ ‚t tddƒd	ƒt tddƒƒt d	ƒ ks|J ‚t tddƒtddƒƒt dƒ t dƒ d ks”J ‚t tddƒtddƒƒt tddƒƒt tddƒƒ ks¯J ‚t tddƒdƒt dƒ t dƒ d ksÄJ ‚d S )
Nr5   r7   r   r8   ru   rN   é   rI   rŒ   )r   r   r   r
   rC   rC   rC   rD   Útest_log_baseK  s   ""*0ÿ.r“   c                  C   s€  t ttdƒƒt tƒksJ ‚t ttƒƒtksJ ‚t ttdƒƒt tƒks$J ‚t tt ƒt tƒt tƒ ks4J ‚t tt ƒ ¡ t tƒt tƒ ksFJ ‚t tt ƒjddt tƒt tƒ ksZJ ‚t tt ƒ ¡ tt tƒ ksjJ ‚t tt ƒjddtt tƒ ks|J ‚t tdƒt tƒt dƒ ks‹J ‚t tdƒdt dƒ ks˜J ‚tddd\} }tddd}t | d ƒdt | ƒ ks´J ‚t | d ƒ ¡ dt | ƒ ksÄJ ‚t td ƒ ¡ dt tƒ ksÔJ ‚t | | ƒ|t | ƒ ksâJ ‚t t| ƒƒ| ksìJ ‚t | | ƒt | ƒt |ƒ ksüJ ‚t | | ƒ ¡ t | ƒt |ƒ ksJ ‚t td	ƒ ƒt td	ƒƒt	t
  ks#J ‚t t| ƒ ƒ| t	t
  ks3J ‚t ttƒ ƒ ¡ tt	t
  ksEJ ‚t t|ƒ ƒ ¡ |t	t
  ksWJ ‚t tt ƒtt tƒ ksfJ ‚t td
 ƒd  ¡ dt tƒ d ks{J ‚t | d
 ƒd  ¡ dt | ƒ d ksJ ‚t t ƒjt u r¥t t ƒjd t ks§J ‚t |  ƒjt u r¼t |  ƒjd |  ks¾J ‚d S )Nr5   T©Úforcer7   zp,qre   ÚrrW   r8   rO   r6   rI   r   )r   r*   r   r+   r]   r   r   r   r   r	   r   r…   Úargs)ÚpÚqr–   rC   rC   rD   Útest_log_symbolic]  s8    $( $   &( $$**.2rš   c                   C   sÈ   t tdt t ƒƒdksJ ‚t tdt t ƒƒtt ksJ ‚t ttt tddƒ ƒƒtt tddƒ ks6J ‚t ttt tddƒ ƒƒtt tddƒ ksNJ ‚t tdt ƒƒdt d	t t  ksbJ ‚d S )
Nr9   r   rO   é   r8   rJ   rK   rL   r7   )r   r   r	   r   r
   rC   rC   rC   rD   Útest_log_expƒ  s
    00,rœ   c                  C   s*  t ddd} t ddd}ttfD ]N}|tƒjd u sJ ‚|tƒjd u s$J ‚||ƒjd u s-J ‚||ƒjd u s6J ‚|| ƒjdu s?J ‚|| ƒjdu sHJ ‚|ttƒƒjdu sSJ ‚|ttƒƒjdu s^J ‚qtt	t
t ddjdksmJ ‚tt	dt
 t ddjdks}J ‚tt	t
t d ddjdksJ ‚tt	t
t d	 ddjd u sJ ‚td
ddjs¦J ‚t ddd}t dddd}t ddd} t dddd}t|ƒjd u sÉJ ‚t|ƒjdu sÒJ ‚tt|  ƒjd u sÝJ ‚tt| ƒjdu sèJ ‚td
ddjdu sóJ ‚tt
t d	 ddjdu sJ ‚tt
t |  ddjdu sJ ‚d S )Nr–   TrW   rˆ   r‰   Fr;   r7   r8   r   Úa)Ú	algebraicÚan)rž   Únonzero)ÚrationalÚrn)r¡   r    )r   r   r   r*   Úis_realZis_imaginaryr   Zis_extended_realr   r   r	   r   Úis_algebraic)r–   rˆ   rU   r   rŸ   r¢   rC   rC   rD   Útest_exp_assumptions‹  s6       $r¥   c                   C   s$   t tddƒƒtttd ƒksJ ‚d S )Nr5   r7   )r   r   r   rC   rC   rC   rD   Útest_exp_AccumBounds®  s   $r¦   c                  C   s  t ddd} t ddd}t ddd}t dddd	}t|ƒjd
u s"J ‚t|ƒjdu s+J ‚tdƒdks3J ‚tdd
djs<J ‚td| ƒjsEJ ‚t| ƒjd u sNJ ‚t|ƒjd
u sWJ ‚tdƒjdu s`J ‚tt| ƒd ƒjskJ ‚tdd
djstJ ‚tdd
djd
u sJ ‚td| ƒjsˆJ ‚d S )Nr˜   Tre   rT   ©Únegativer,   )r   r*   )ZinfiniteZextended_positiveFr7   r   r5   r;   g      à?é*   )	r   r   Úis_positiveZis_extended_positiveÚis_zeroZis_negativer   r¤   Úis_rational)r˜   rT   r,   r*   rC   rC   rD   Útest_log_assumptions³  s    r­   c                  C   sü   t ttt ƒƒks
J ‚tt ƒtttt ƒƒƒksJ ‚tt ƒtttt ƒƒƒks&J ‚dttt ƒttt ƒƒ ƒ } | jjtu s<J ‚dttt ƒtttt ƒƒƒ ƒ } | jjtu sTJ ‚ttt ƒƒ} | jtu saJ ‚t jtushJ ‚tttt ƒƒƒtt ƒksvJ ‚| t ks|J ‚d S )Nr5   )r*   r   Úhashra   r…   r^   rC   rC   rD   Útest_log_hashingÉ  s    r¯   c                   C   s   t tdƒƒdks
J ‚d S r\   )r   r   rC   rC   rC   rD   Útest_log_signÚ  s   r°   c                   C   sh   t dt ƒjddt dƒd tt d  ksJ ‚t dtdƒ ƒjddt tdƒd ƒtt  ks2J ‚d S )Nr5   T)Úcomplexr7   r9   )r   r	   r]   r   r   rC   rC   rC   rD   Útest_log_expand_complexÞ  s   08r²   c                  C   s.   t dƒt dƒ d  ¡ } |  tdƒ¡sJ ‚d S )Nr8   r7   r5   z0.58496250072115618145373)r   ÚevalfÚ
epsilon_eqr   )ÚvaluerC   rC   rD   Útest_log_apply_evalfã  s   r¶   c                  C   s¶  t dƒ} tdt td  ƒjtddtksJ ‚tdt ƒjtddttƒtdƒ ks,J ‚tdt ƒjtddttƒtdƒ ksAJ ‚tdt ƒjtd| d| tdƒ tt  ksYJ ‚tdt ƒjtd| d| tdƒ tt  ksqJ ‚tdt dt td   ƒjtddttƒtdƒ tt  ks’J ‚tdt dt td   ƒjtddttƒtdƒ tt  ks³J ‚tdt dt td   ƒjtddttƒtdƒ ksÐJ ‚tdt dt td   ƒjtddttƒtdƒ dt t  ksóJ ‚tdt ttd   ttd   ƒjtddt t ksJ ‚tdt ttd   ttd   ƒjtddt t ks1J ‚tddt  ƒjtddtt ksEJ ‚tddt  ƒjtddtt ksYJ ‚d S )	Nr˜   r5   r7   )Úcdirr6   rŠ   )r·   Úlogxr8   )r   r   r*   rs   r	   r   ©r˜   rC   rC   rD   Útest_log_leading_termè  s   &**00BB:F>>(,rº   c                  C   st  t dƒ} tdt ƒjtd|  dd| ksJ ‚tdt ƒjtd|  dd| dt t  ks.J ‚ttd ƒ tdd t¡tt t td d  td d  ttd ƒ ksTJ ‚ttd ƒ tdd t ¡t t t td d  td d  ttd ƒ ks|J ‚ttt ttd   d ƒ tdd d¡tt tt  td d  ttd ƒ ks¦J ‚ttt ttd   d ƒ tdd d¡t t tt  td d  ttd ƒ ksÑJ ‚tttd  ttd   d ƒ tdd d¡tt ttd   ttd ƒ ksùJ ‚tttd  ttd   d ƒ tdd d¡tt ttd   ttd ƒ ks"J ‚tdt dt td   ƒ tdd d¡tdƒttƒ ttdƒd td    td ddt d    ttd ƒ ks_J ‚tdt dt td   ƒ tdd d¡dt t tdƒ ttƒ ttdƒ d td    td ddt d    ttd ƒ ks£J ‚tdt dt td   ƒ tdd d¡t t tdƒ ttƒ ttdƒ d td    td ddt d    ttd ƒ ksæJ ‚tdt dt td   ƒ tdd d¡t t tdƒ ttƒ ttdƒd td    td ddt d    ttd ƒ ks(J ‚ttt td  d ƒtt td  d ƒ d ƒ tdd d¡t t ttdƒd ƒ dtdƒ t td  dtdƒ d	   ttd ƒ ksrJ ‚tddt  ƒ tdd d¡tt t td d  ttd ƒ ks•J ‚tddt  ƒ tdd d¡tt t td d  ttd ƒ ks¸J ‚d S )
Nr˜   r5   r9   )r¸   r·   r6   r7   r8   rŠ   ru   )	r   r   r*   Z_eval_nseriesr	   r   r%   r   r   r¹   rC   rC   rD   Útest_log_nseriesý  s`   $0LPTVPR4ÿÿ
ÿ8ÿÿÿ
ÿ>ÿÿ
ÿ>ÿÿ
ÿFÿ&ÿ
ÿFJr»   c                  C   sÌ  t dt ƒ} t tttd d ƒ ƒ}| jttt ddddtd   ddtd    dt  tt d  t tt ƒ ttd ttt fƒ ksIJ ‚| jtt t ddddtd   ddtd    dt  tt d  t t t ƒ ttd tt t fƒ ksƒJ ‚|jttt ddddtd   tt d  t dƒ t tt ƒ ttd ttt fƒ ks²J ‚|jtt t ddddtd   tt d  t dƒ t t t ƒ ttd tt t fƒ ksäJ ‚d S )Nr5   r7   r9   )Zx0rT   r8   rŽ   r6   )r   r*   r   Zseriesr	   r   r   r%   )Úexpr1Zexpr2rC   rC   rD   Útest_log_series  s4   8
ÿ
ÿ
ÿ:
ÿÿ
ÿ4
ÿ
ÿ6ÿÿr½   c                  C   s&  t ddd} t| tdƒtdƒ  ƒ}| ¡ tdƒtdƒ t| ƒ ks$J ‚tddd\}}}t|||  ƒjddt|ƒt|| ƒ ksEJ ‚tt|d	 ƒt|| ƒ ƒ ¡ td	t|ƒ t|ƒ d	t|ƒ t|ƒ  ƒtt|ƒt|ƒ t|ƒt|ƒ  ƒtd	ƒ tt|ƒt|ƒ t|ƒ ƒtd	ƒ fv s”J ‚t|t|d	 ƒ ƒjdd
t|ƒt|d	 ƒ ks®J ‚t|t|d	 ƒ ƒ ¡ d	t|ƒd	  ksÄJ ‚tdƒ\}}t|| ƒjddt|ƒt|ƒ ksÞJ ‚t|| ƒjdd|t|ƒ ksðJ ‚tt|ƒƒjdd|ksþJ ‚tdƒ ¡ d	tdƒ td	ƒ ksJ ‚d S )NÚwTre   rI   r8   úx,y,zF)Úmulr7   )Údeepr‡   r”   rH   )r   r   r]   r   r   )r¾   rU   r*   r+   r,   rC   rC   rD   Útest_log_expand&  s$   $02ÿ*"
þ4,($*rÂ   c                  C   st   t ddd\} }}t| ||  ƒ| |  jddd|t| ƒ |t|| ƒ  |t| ƒ  |t|| ƒ  ks8J ‚d S )Nr¿   Tre   )rÀ   r   )r   r   r]   r)   rC   rC   rD   Útest_log_expand_fail<  s   $ÿÿ
ÿÿrÃ   c                  C   s  t ddd} t| d ƒ ¡ dt| ƒ ksJ ‚tt| dtdƒ  ƒƒdtdƒ t| ƒ ks.J ‚t dƒ}tt|ƒƒ ¡ t|ƒd ksBJ ‚tt|tdƒd  ƒƒtdƒd t|ƒ ksZJ ‚t|d ƒ ¡ t|ƒ ksiJ ‚t|| | d   ƒ ¡ | t|ƒ | d  ksJ ‚d S )Nr*   Tre   r7   r,   r5   r6   )r   r   r]   r   r   )r*   r,   rC   rC   rD   Útest_log_simplifyC  s    0 04rÄ   c                   C   s¨   t tdtƒƒtddƒksJ ‚t tdtƒƒtt dƒksJ ‚t tdtƒƒtjks)J ‚t tdtƒƒtt tƒks8J ‚t tt dƒƒtjksEJ ‚t tt tƒƒtjksRJ ‚d S )Nr5   r   r6   )r   r   r   r   r   ÚNaNrC   rC   rC   rD   Útest_log_AccumBoundsO  s   rÆ   c                  C   sz  t dƒ} ttdƒttƒksJ ‚ttdddttƒksJ ‚tdƒdks$J ‚ttƒdks,J ‚tdt ƒdks6J ‚ttdƒ d ƒtdƒ ksFJ ‚ttƒtu sNJ ‚tddƒt u sXJ ‚tddƒt u sbJ ‚tt d dƒt t d kssJ ‚tdt dƒdks~J ‚td	td	ƒ dƒd	ks‹J ‚tdtdƒ ƒtdƒks™J ‚tt d ƒtt d ks¨J ‚ttdt ƒƒtks´J ‚ttd ƒ 	t¡dttd ƒ t dttd ƒ  ksÑJ ‚tt| ƒ 	t¡tt| ƒt dtt| ƒ  kséJ ‚tt
dƒƒ d
¡ tdd
ƒd¡sûJ ‚ttddƒƒ ¡  tdƒ¡sJ ‚tdƒjdu sJ ‚tdddjs J ‚t ddd}t|ddjs0J ‚t|d ddjd u s>J ‚t| dtj  ddjdu sPJ ‚ttjdddjdu s^J ‚ttddƒdddjslJ ‚tddddjdu syJ ‚td	dddjdu s†J ‚tdddjsJ ‚t dddd}t|ƒjdu s¡J ‚t|ƒjdu s«J ‚t ddd}t|ƒjdu s»J ‚d S )Nr2   r   Fr;   r5   r6   r7   r©   rŠ   é   z 0.701338383413663009202120278965gG³¦þ^Zé9z-0.834310366631110r˜   Tre   rŒ   iöÿÿÿÚna)r    rž   rT   r§   )r   r   r*   r   r   r   r   r	   r   Údiffr   r³   r´   r   r   r£   r   r@   rA   r
   r¤   r«   )r2   r˜   rÈ   rT   rC   rC   rD   Útest_lambertwX  sL    ":0
ÿ"$rÊ   c                  C   s|   t dƒ} | jdu sJ ‚| jdusJ ‚dddtdƒ   }|jdus#J ‚dttt tdƒƒƒt tdƒƒ ƒ }|jdus<J ‚d S )Nr6   FTr5   iüÿÿrŠ   r7   )r   Zis_comparablerª   r   r   Z
is_nonzero)rU   Úe2Ze3rC   rC   rD   Útest_issue_5673†  s   $rÌ   c                      r}   )Nr*   c                      r~   r`   )r   r   rC   rc   rC   rD   r€   ’  r   z test_log_fdiff.<locals>.<lambda>r‚   rC   rC   rc   rD   Útest_log_fdiff  r„   rÍ   c                  C   s€   t dƒ} t| ƒ d| ¡| ksJ ‚t| ƒ d| ¡| d  d ks!J ‚t| ƒ d| ¡| d d ks1J ‚t| ƒ d| ¡tju s>J ‚d S )Nr*   r   r5   r7   r9   rI   r6   )r   r   rw   r   rx   rc   rC   rC   rD   Útest_log_taylor_term•  s
   " rÎ   c                  C   s²   t ddd\} }}t| | ƒ ¡ t| | ƒksJ ‚t| | | ƒ ¡ t| | | ƒks-J ‚ttt ƒ ¡ ttƒttƒ ks?J ‚ttt t ƒ ¡ ttƒttƒ ttƒ ksWJ ‚d S )NzA,B,CFri   )r   r   r]   r*   r+   r,   )rz   ÚBÚCrC   rC   rD   Útest_exp_expand_NC  s
    ($4rÑ   c                  C   s`  t ddd} ttƒ ¡ ttƒdfksJ ‚tt ƒ ¡ dttƒfks#J ‚tdt ƒ ¡ dtdt ƒfks5J ‚tdƒ ¡ dtdƒfksCJ ‚t| ƒ ¡ dt|  ƒfksRJ ‚t|  ƒ ¡ t|  ƒdfksbJ ‚tt t ƒ ¡ dttt ƒfksuJ ‚tt |  ƒ ¡ dtt|  ƒfksˆJ ‚t|  ƒ ¡ t|  ƒdfks˜J ‚t ddd	}t| ƒ ¡ t| ƒdfks®J ‚d S )
NrT   Tr§   r5   rŠ   r7   r   Fri   )r   r   r*   Zas_numer_denomr	   )rT   r   rC   rC   rD   Útest_as_numer_denom¦  s   $ && $rÒ   c                  C   s$  t ddd\} }tttd ƒƒdksJ ‚ttdƒƒdksJ ‚ttddt  ƒƒtdƒks.J ‚ttd	 ƒ ¡ ttd	 ƒks>J ‚tttƒƒtksHJ ‚t| | ƒ ¡ t| ƒt|ƒ ksZJ ‚t| t ƒ ¡ tt| ƒ ksjJ ‚tdƒjdkssJ ‚td
t	 t ƒjdd 
¡ d dks‡J ‚tdƒjdu sJ ‚d S )Nzx yTrY   r9   r5   r   r7   r8   rŒ   g      ð?rI   rq   )r   Úabsr   r	   r   rT   r   r,   r]   r   Zas_real_imagr¬   rZ   rC   rC   rD   Ú
test_polar·  s     $ (rÔ   c                  C   sh   t dƒ} t dƒ\}}}}tt| | |d|f|d|fƒƒ}| ¡ tt| | ƒ|d|f|d|fƒks2J ‚d S )Nr¾   zm n i jr   )r   r   r   r]   r   )r¾   ÚmrT   rˆ   ÚjÚexprrC   rC   rD   Útest_exp_summationÌ  s    0rØ   c            	      C   sH  ddl m} m} tdddd\}}tddd\}}tddd	}td
ƒ}tt|| |d| fƒƒ}t|ƒ|ks7J ‚| ¡ t|t|ƒ |d| fƒksIJ ‚tt|| ||  |d| f|d|fƒƒ}t|ƒ|kseJ ‚| ¡ t|t|ƒ |t|ƒ  |d| f|d|fƒksJ ‚ttd| ddfƒƒ}t|ƒ|ks“J ‚| ¡ |ks›J ‚|jddttdƒ| ddfƒks­J ‚ttt	|| ƒ|d| fƒƒ}| ¡ t|| |d| fƒksËJ ‚ttt	|| ƒ|d| fƒƒ}| ¡ |ksáJ ‚|jddt|| |d| fƒksóJ ‚tt|d t
|ƒ |d| f|d|fƒƒ}| ¡ tdt|ƒ t|ƒ |d| f|d|fƒks"J ‚d S )Nr   ©rT   rÕ   úi,jT©rf   r4   r‡   re   r,   rW   r¾   r5   rŠ   r9   r”   r7   )Ú	sympy.abcrT   rÕ   r   r   r   r&   r]   r   r   rÓ   )	rT   rÕ   rˆ   rÖ   r*   r+   r,   r¾   r×   rC   rC   rD   Útest_log_productÓ  s,   $(8$ $(:rÝ   c                  C   sÊ   ddl m} m} tdddd\}}tddd\}}ttt|| |d| fƒƒƒt|t|ƒ |d| fƒks5J ‚ttt|| ||  |d| f|d|fƒƒƒt|t|ƒ |t|ƒ  |d| f|d|fƒkscJ ‚d S )	Nr   rÙ   rÚ   TrÛ   r‡   re   r5   )rÜ   rT   rÕ   r   r&   r   r   r   )rT   rÕ   rˆ   rÖ   r*   r+   rC   rC   rD   Ú test_log_product_simplify_to_sumò  s   8**ÿrÞ   c                  C   sè   t ttdddƒt ttdƒƒksJ ‚tttdddƒtttdƒƒks$J ‚tddd} tt| ƒtdƒƒ}tt| ƒtdƒƒ}tt| ƒtdƒdd}tt| ƒtdƒdd}t t||ƒƒt t||ƒƒksbJ ‚tt||ƒƒtt||ƒƒksrJ ‚d S )NrŒ   Fr;   r+   Tre   rI   )r&   r   r*   r   r   r   )r+   Úl1Úb1Úl2Úb2rC   rC   rD   Útest_issue_8866ü  s   $$ $rã   c                   C   sª  t dƒt dƒ d jddt dƒt dƒ ksJ ‚t dƒt dƒ jddt dƒt dƒ d ks0J ‚t dƒt dƒ jdddt d	ƒt dƒ  ksHJ ‚t dƒt dƒ t d
ƒ  jdddks]J ‚tt dƒddt dƒdt dƒ  ksqJ ‚tt dƒt dƒ ddt dƒt dƒ d ks‰J ‚tt dƒt d	ƒ t dƒ ddddt dƒ t d	ƒ  t dƒ ks«J ‚tt dƒt d	ƒ t dƒ ddt dƒt dƒ t d	ƒdt dƒ  t d	ƒ  ksÓJ ‚d S )NrH   r8   r7   T)Úfactorr   rR   r5   rI   rv   é   rK   Fé-   é   é   é   )r   r]   r   rC   rC   rC   rD   Útest_log_expand_factor	  s   000*(0ÿ*ÿrê   c                  C   s$   t dddd} t| ƒjdu sJ ‚d S )NrT   TrÛ   )r   r   Zis_nonnegativerq   rC   rC   rD   Útest_issue_9116  s   rë   c                   C   sT  t tttdt ƒƒ ƒ t¡tjksJ ‚t tttdt ƒƒ ƒ t¡tjks(J ‚ttdt ƒƒ t¡tjks8J ‚ttdt ƒƒ t¡tjksHJ ‚ttdt ƒd ƒ t¡tdtdƒƒks^J ‚t tttdt ƒd ƒ ƒ t¡dkssJ ‚ttdt ƒd ƒ t¡tjks…J ‚t tttdt ƒd ƒ ƒ t¡tjks›J ‚ttdt ƒd ƒ t¡tt	 tdƒƒks²J ‚t tttdt ƒd ƒ ƒ t¡tddƒksÊJ ‚tt
dt ƒd ƒ t¡tt	 dƒksßJ ‚t ttt
dt ƒd ƒ ƒ t¡tddƒks÷J ‚ttdt ƒd ƒ t¡tt	 t	ƒksJ ‚t dt ttdt ƒd ƒ ƒ t¡tdt	ƒks(J ‚d S )Nr5   r7   r   r8   )r   r*   r   r    rs   r   rÅ   r"   r   r   r!   rC   rC   rC   rD   Útest_issue_18473  s   ((  ,*$,.0*0,:rì   N)vZsympy.assumptions.refiner   Z!sympy.calculus.accumulationboundsr   Zsympy.concrete.productsr   Zsympy.concrete.summationsr   Zsympy.core.functionr   Zsympy.core.numbersr   r   r	   r
   r   r   r   r   Zsympy.core.powerr   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z$sympy.functions.elementary.complexesr   r   r   r   r   Z&sympy.functions.elementary.exponentialr   r   r   r   Z%sympy.functions.elementary.hyperbolicr   r   r   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr    r!   r"   Z"sympy.matrices.expressions.matexprr#   Zsympy.polys.polytoolsr$   Zsympy.series.orderr%   Zsympy.simplify.simplifyr&   Zsympy.core.parametersr'   r(   rÜ   r*   r+   r,   Zsympy.core.exprr-   r.   Zsympy.testing.pytestr/   r0   r1   rE   rV   r[   r_   rb   rd   rh   rj   rm   rn   rr   rt   ry   r|   rƒ   r†   r‹   r‘   r“   rš   rœ   r¥   r¦   r­   r¯   r°   r²   r¶   rº   r»   r½   rÂ   rÃ   rÄ   rÆ   rÊ   rÌ   rÍ   rÎ   rÑ   rÒ   rÔ   rØ   rÝ   rÞ   rã   rê   rë   rì   rC   rC   rC   rD   Ú<module>   s¶    (
,










)*&
"

	
-
	


	