
    Rie                        d dl mZ d dlmZmZ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 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!m"Z"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- d dl.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z:m;Z; d dl<m=Z= d dl>m?Z? d dl m@Z@ d dlmAZA d dlBmCZCmDZDmEZE d ZFd ZGd ZHd ZId ZJeCd             ZKd ZLd ZMd ZNd  ZOd! ZPd" ZQd# ZRd$ ZSd% ZTd& ZUd' ZVeEd(             ZWd) ZXd* ZYd+ ZZd, Z[d- Z\d. Z]d/ Z^eCd0             Z_d1 Z`eCd2             Zad3 Zbd4 Zcd5 Zdd6 ZeeEd7             Zfd8S )9    )Expr)
DerivativeFunctionLambdaexpand)EIRationalcompnanoopizoo)Eq)S)Symbolsymbols)Absadjointarg	conjugateimresign	transpose)exp	exp_polarlog)sqrt)	Piecewise)acosatanatan2cossin)
DiracDelta	Heaviside)Integral)Matrix)FunctionMatrix)MatrixSymbol)ImmutableMatrixImmutableSparseMatrix)SparseMatrix)Interval)	unchanged)ArgumentIndexError)XFAILraises_both_exp_powc                 l    t          |                                 |                                d          S )z7Check whether two complex numbers are numerically closegư>)r   n)abs     Olib/python3.11/site-packages/sympy/functions/elementary/tests/test_complexes.pyN_equalsr:      s$    qssuue$$$    c            
         t          d          \  } }t          dd          \  }}t          dd          }t          dd          }t          t                    t          u sJ t          t                    t          u sJ t          t                     t           u sJ t          d          dk    sJ t          d	          d	k    sJ t          d
          d
k    sJ t          t
                    t
          k    sJ t          t
                     t
           k    sJ t          t          |           sJ t          | t          z            t          |            k    sJ t          |t          z            dk    sJ t          |          |k    sJ t          |t          z            t          |z  k    sJ t          |          dk    sJ t          | |z             t          |           t          |          z   k    sJ t          | |z             t          |           |z   k    sJ t          t          |                     t          |           k    sJ t          dt          z             dk    sJ t          | t          z             t          |           k    sJ t          | |t          z  z             t          |           t          |          z
  k    sJ t          | |t          z  z             t          |           k    sJ t          t          dt          z                      t          d          k    sJ t          dt          z   dz            
                    d          dk    sJ t          t          |                     t          |           k    sJ t          t          |                     t          |           k    sJ t          |                                           t          |           dfk    sJ t          ||z  | z                                |          t          || z            k    sJ t          ||z  | z                                |          t          |z  t          |           z  k    sJ t          t          ||t          z  z                       |dz  |dz  z   t          d	d          z  t!          t#          ||          dz            z  k    sJ t          |d|t          z  z   z            d|z  k    sJ t          d	t          ||t          z  z             z   dz            |dz  |dz  z   t          d	d          z  t!          t#          ||          dz            z  dz  t$          j        z   k    sJ t          |                               t                    | t$          j        t          |           z  z
  k    sJ | t          |          z                       t          t                    | |z   t$          j        t          |          z  z
  k    sJ t          dd          }t          dd          }t          d          } t          |          j        sJ t          |           j        J t          |          j        du sJ t          t$          j                  t$          j        u sJ t          d          \  }}}	t3          d||          }
t          |
          t$          j        |
t          |
          z   z  k    sJ t5          d	dt          z  z   dgddt          z  gg          }
t          |
          t5          d	dgddgg          k    sJ t7          d	dt          z  z   ddt          z  z
  gddt          z  gg          }
t          |
          t7          d	dgddgg          k    sJ t9          d t;          d          D                       }t          |          t5          g dg dg dg dg dg          z
  t5          j        d          k    sJ t          |          t5          g dg dg dg dg dg          z
  t5          j        d          k    sJ t?          ddtA          ||f||t          z  z                       }t          |          t5          g d g d!g d"g          k    sJ d S )#Nx,ya,bTrealri	imaginaryr         complex      r7   	algebraicttranscendentalxFn m lAc                 F    g | ]fd t          d          D             S )c                 0    g | ]}d z  |t           z  z   S )rG   r	   ).0rB   js     r9   
<listcomp>z&test_re.<locals>.<listcomp>.<listcomp>m   s%    333QqsQqSy333r;      range)rX   rY   s    @r9   rZ   ztest_re.<locals>.<listcomp>m   s4    FFF3333%((333FFFr;   r[   )r   r   r   r   r   )rG   rG   rG   rG   rG   )rK   rK   rK   rK   rK   )   r^   r^   r^   r^   )   r_   r_   r_   r_   )r   rE   rG   rJ   rK   )r   r   r   )rE   rE   rE   )rG   rG   rG   )!r   r   r   r   r   r   r0   r	   r   r   r   r   as_real_imagdiffr   r
   r$   r#   r   HalfrewriteImaginaryUnitis_algebraicComplexInfinityNaNr+   r)   r,   r.   r]   zerosr*   r   )rQ   yr7   r8   rA   rB   rN   r6   mlrS   Xs               r9   test_rerm      s   5>>DAq5t$$$DAqsAsd###Ac77c>>>>b66R<<<<rc77rc>>>>a55A::::a55A::::b66R<<<<a55A::::qb66aR<<<<Rac77r!uufac77a<<<<a55A::::ac77a!ea55A::::a!e9911%%%%a!e991	!!!!bee991a!e99>>>>a!e991a!A#g;;"Q%%"Q%%-''''a!A#g;;"Q%%c!A#hh<<3q66!!!!q1uqj>>   ..!3333illr!uu$$$$RUUr!uu$$$$a55BqEE1:----ac!e99>>!1Q3''''ac!e99>>!!BqEE	))))Q1W a4!Q$;!Q7E!QKKM8J8JJK K K Ka1qs7m!####q4AaC== !#$$	
A1x1~~%c%1++a-&8&88:QVCD D D D a55==AOBqEE$9 999991Ir2&&!a%!/"Q%%2G*GGGGGsd###As4(((AsAa55a55%%%a55&&&&a  AE))))gGAq!S1Aa55QVIaLL 011111QqSQ1I&''Aa55FQFAq6?++++++!ac'1QqS5)1ac(344Aa55OaVQFO444444FFU1XXFFFGGAa556???*??*??*??*??	, - - - 17Q	@ @ @ @ a556???*??*??*??*??	, - - - 17Q	@ @ @ @ 	q!VQFA!G4455Aa55FIIIyyy)))<========r;   c            
         t          d          \  } }t          dd          \  }}t          dd          }t          dd          }t          t                    t          u sJ t          t          t
          z            t          u sJ t          t           t
          z            t           u sJ t          d          dk    sJ t          d	          dk    sJ t          d
          dk    sJ t          t          t
          z            t          k    sJ t          t           t
          z            t           k    sJ t          t          |           sJ t          | t
          z            t          |           k    sJ t          |t
          z            |k    sJ t          |          dk    sJ t          |t
          z            dk    sJ t          |          t
           |z  k    sJ t          | |z             t          |           t          |          z   k    sJ t          | |z             t          |           k    sJ t          | |t
          z  z             t          |           |z   k    sJ t          t          |           t
          z            t          |           k    sJ t          dt
          z             d	k    sJ t          | t
          z             t          |           d	z   k    sJ t          | |t
          z  z             t          |           t          |          z   k    sJ t          | |t
          z  z             t          |           |z   k    sJ t          t          dt
          z                      t          dz  k    sJ t          dt
          z   dz                                d          dk    sJ t          t          |                     t          |            k    sJ t          t          |                     t          |           k    sJ t          |                                           t          |           dfk    sJ t          ||z  | z                                |          t          || z            k    sJ t          ||z  | z                                |          t
           t          || z            z  k    sJ t          t          ||t
          z  z                       |dz  |dz  z   t!          d	d          z  t#          t%          ||          dz            z  k    sJ t          |d|t
          z  z   z            ||z  k    sJ t          d	t          ||t
          z  z             z   dz            |dz  |dz  z   t!          d	d          z  t#          t%          ||          dz            z  dz  k    sJ t          |                               t                    t(          j         | t          |           z
  z  k    sJ | t          |          z                       t          t                    | t(          j        |t          |          z
  z  z
  k    sJ t          dd          }t          dd          }t          d          } t          |          j        sJ t          |           j        J t          |          j        du sJ t          t(          j                  t(          j        u sJ t          d          \  }}}	t3          d||          }
t          |
          t(          j        dt
          z  z  |
t          |
          z
  z  k    sJ t7          d	dt
          z  z   dgddt
          z  gg          }
t          |
          t7          ddgddgg          k    sJ t9          d	dt
          z  z   ddt
          z  z
  gddt
          z  gg          }
t          |
          t9          ddgddgg          k    sJ t;          d t=          d          D                       }t?          d t=          d          D                       }t          |                                           |k    sJ tC          ddtE          ||f||t
          z  z                       }t          |          t7          g dg dg dg          k    sJ d S )Nr=   r>   Tr?   rA   rB   rC   r   rE   rF   rG   rH   rK   r7   rL   rN   rO   rQ   FrR   rS   rT   rJ   c                 @    g | ]}d  t          d          D             S )c                 (    g | ]}|t           z  |z   S  rW   rX   rB   s     r9   rZ   z&test_im.<locals>.<listcomp>.<listcomp>   s     (((!acAg(((r;   r[   r\   rs   s     r9   rZ   ztest_im.<locals>.<listcomp>   s-    ;;;Q((uQxx(((;;;r;   r[   c                 F    g | ]}t          t          d                     S )r[   )listr]   rs   s     r9   rZ   ztest_im.<locals>.<listcomp>   s$    777d588nn777r;   )r   rE   rG   )#r   r   r   r   r   r	   r   r0   r   r   r   r   r   r`   ra   r   r
   r%   r#   rc   r   rd   re   rf   rg   r+   Oner)   r,   r-   r]   r.   as_immutabler*   r   )rQ   ri   r7   r8   rA   rB   rN   r6   rj   rk   rS   rl   Ys                r9   test_imry   ~   s   5>>DAq5t$$$DAqsAsd###Ac77c>>>>bd88r>>>>rc!e99a55A::::a55A::::b66Q;;;;ac77a<<<<qbd88r>>>>Rac77beeac77a<<<<a55A::::ac77a<<<<a55QBF????a!e9911%%%%a!e991a!A#g;;"Q%%!)####beeAg;;"Q%%a!e99>>>>a!e991	!!!!a!A#g;;"Q%%"Q%%-''''a!A#g;;"Q%%!)####c!A#hh<<2a4q1uqj>>   ..!3333ill1v%%%%RUUr!uu$$$$a55BqEE1:----ac!e99>>!1Q3''''ac!e99>>!R!WW,,,,Q1W a4!Q$;!Q7E!QKKM8J8JJK K K Ka1qs7m!####q4AaC== !#$$	
A1x1~~%c%1++a-&8&88:; ; ; ; a55== 0A1I >>>>>1Ir2&&!aoRUU.K*KKKKKsd###As4(((AsAa55a55%%%a55&&&&a  AE))))gGAq!S1Aa55QUAaC[Q1%566666QqS!aAY'((Aa55FQFAr7+,,,,,,!ac'1QqS5)1ac(344Aa55OaWaV$4555555;;%((;;;	= 	=A77eAhh77788Aa551$$$$q!VQFA!G4455Aa55FIIIyyy)))<========r;   c            
      p   t          d          dk    sJ t          d          dk    sJ t          dt          z            t          k    sJ t          dt          z            t           k    sJ t          d          dk    sJ t          dd	                                          dk    sJ t          t          d	                                          dk    sJ t          t                    t          u sJ t          d
d
t          z  z                                             t          d
          d
d
t          z  z   z  dz  k    sJ t          d
dt          z  z                                             t          d
dt          z  z             k    sJ t          d
d
t          z  z                                             t          dt          z             k    sJ t          t          t          dt          d          z
                                dk    sJ t          t          dt          d          z
                      t          k    sJ t          d          } t          |           j	        du sJ t          |           j
        du sJ t          |           j        J t          |           j        J t          |           j        J t          |           j        J t          |                                           t          |           k    sJ t          d| z            t          |           k    sJ t          d
| z            t          |           k    sJ t          t          | z            t          t          |           z  k    sJ t          dt          z  | z            t           t          |           z  k    sJ t          t          |                     t          t          |                     k    sJ t          dd          }t          dd          }t          dd          }t          d
|z  | z            t          |           k    sJ t          || z            t          |            k    sJ t          ||z  | z            t          |           k    sJ t          dd          } t          |           j        du sJ t          |           j        du sJ t          |           j        du sJ t          |           j        du sJ t          |                               |           d
t#          t           | z            z  k    sJ t          |                                           | t%          |           z  k    sJ t          t          |                     t          |            k    sJ t          dd          } t          |           j        du sJ t          |           j        du sJ t          |           j        du sJ t          |           j        J t          |                               |           d
t#          |           z  k    sJ t          |                                           t          |           k    sJ t          t          |                     t          |           k    sJ t          dd          } t          |           j        du sJ t          |           j        du sJ t          |           j        du sJ t          |           j        du sJ t          |                                           | t%          |           z  k    sJ t          t%          |                     dk    sJ t%          t          |                     dk    sJ t          dd          } t          |           j        du sJ t          |           j        du sJ t          |           j        du sJ t          |           j        du sJ t          |                                           | t%          |           z  k    sJ t          t%          |                     dk    sJ t%          t          |                     dk    sJ d} t          |           j        du sJ t          |           j        du sJ t          |           j        du sJ t          |           j        du sJ t          |                                           dk    sJ t          t%          |                     dk    sJ t%          t          |                     dk    sJ t          ddd          }t          |          j        du sJ t          |          j        du sJ t          |          j        du sJ t          |          j        du sJ t          |          d
z  dk    sJ t          |          dz  j        t          |          dfk    sJ t          t          dd                    j        sJ t          t          dd                    j        J t          t          dd                    j        J t          t          dd                    j        sJ t          t          dd                    j        J t          t          dd                    j        J t          t          ddd                    j        J t          dd          t          d          }} t-          d          }t          |                               t0                    t1          d| dk    fd| dk     fd          k    sJ t          |                              t0                    t          |          k    sJ t          |                               t2                    d
t3          | t5          d          d
z            z  dz
  k    sJ t          |                              t2                    t          |          k    sJ t          |                              t$                    t1          dt7          |d          f|t%          |          z  df          k    sJ t           ||                                        t$                    t1          dt7           ||          d          f ||          t%           ||                    z  df          k    sJ t          t9          t          t:          z            t:          z            t4          j        u sJ t          d d!t          d          z  z              t          dt          d          z             z   t          ddt          d          z  z             z   }t          |          j        t           u st          |          dk    sJ dt          d
          z   d
t          d          z  z
  d"t          d!          z  z   }tA          |dz            tC          dd          z  }||z
  }	t          |	          j        t           u st          |	          dk    sJ d S d S )#Ng333333?rE   g333333rF   rJ   rT   r   F)evaluaterG   rK   rQ   Tro   ppositiver6   negativerj   rC   r?   )nonzeronz)r   integer)nonnegative)nonpositive)r@   zerori   f)r   T)H0
   r^   3  )"r   r	   doitr   r   r   simplifyr   r   	is_finite
is_complexis_imaginary
is_integeris_realis_zeror   ra   r&   r   argsis_nonnegativeis_nonpositiver   rc   r    r'   r   r   r   r   NegativeOnefuncr   r
   )
rQ   r|   r6   rj   r   ri   r   eqqds
             r9   	test_signr      s   99>>>>::!99>>>>1::!77a<<<<E"""''))Q....U###((**a////99AaC==477A!G#4Q#66666AaC==!!##tA!G}}4444AaC==!!##tAE{{22224DGG$$%%&&!++++Qa[!!""a''''sA77$$$$77%%%%77'''77%%%77?"""77?"""77<<>>T!WW$$$$A;;$q''!!!!!99Q!99$q''	!!!!1Q<<A2d1gg:%%%%	!477!3!33333sT"""AsT"""AsT"""A!A;;$q''!!!!!99a    !A;;$q''!!!!sd###A774''''77&&&&77?e####77?e####77<<??a
A2a4 0 00000077<<>>QQZ''''T!WW$q''))))sA775((((77%%%%77?d""""77?"""77<<??a
1o----77<<>>T!WW$$$$T!WWa((((sD!!!A775((((77%%%%77?d""""77?e####77<<>>QQZ''''A<<1tAww<<1sT"""A775((((77%%%%77?d""""77?e####77<<>>QQZ''''A<<1tAww<<1	A775((((77%%%%77?d""""77?d""""77<<>>QA<<1tAww<<1	dD	1	1	1B88 E))))88$&&&&88t####88u$$$$88Q;!HHaK$r((A....s---..====s---..=EEEs---..=EEEs---..====s&&&''6>>>s&&&''6>>>sE22233BJJJ#D!!!6#;;qAA77??9%%1a!e*r1q5k9556 6 6 677??9%%a000077??9%%9Q1Q446+B+B+B)BQ)FFFFF77??9%%a000077??39aAq]Qs1vvXt<L#M#MMMMM!::c""iBqqttQKK0@11Q44AAaDD		>SWBX&Y&YYYYY 	!B$"##q}4444
rAd1ggI~

	a$q''k!2!2	2T!aQi-5H5H	HB 88=D  DHHMMMM 	
DGGaQi$tAww,.Aq!thq!nn$A	AA77<4477a<<<<<<r;   c                     t           dz  } |                                 | dfk    sJ t          d          }t          |                                          t	          |          dz  t          |          dz  z   t          dd          z  t          t          t          |          t	          |                    dz            z  t	          |          dz  t          |          dz  z   t          dd          z  t          t          t          |          t	          |                    dz            z  fk    sJ t          dd	          \  }}dt          ||t          z  z             z   dz                                  |dz  |dz  z   t          dd          z  t          t          ||          dz            z  dz  t          j        z   |dz  |dz  z   t          dd          z  t          t          ||          dz            z  dz  fk    sJ t          |dz                                            t          |dz            dfk    sJ t          d
d          }t          |dz                                            dt          |          fk    sJ dt          z   dt          z
  z                                  dk    sJ dt          z   dz  dt          z
  z                                  dk    sJ d S )N  r   rQ   rG   rE   rK   r>   Tr?   rB   rC   )r   rE   rJ   )ro   r   )r   r`   r   r   r   r   r
   r$   r#   r%   r   r	   r   rb   abs)r6   rQ   r7   r8   rB   s        r9   test_as_real_imagr   Q  s   
DA
 >>1v%%%% 	sA77!!
Q%%(RUUAX
A	.s5A13F3Fq3H/I/I	IeeQhAHQNN*3uRUUBqEE/B/B1/D+E+EE	GG G G G
 5t$$$DAqa!A#g!//111q!tha  U1a[[]++,,-.0171q!thq!nn,Sq!Q-?-??ACC C C C 1::""$$adQ7777t$$$A1::""$$CFF3333UQUO))++v5555UQJA,,..'999999r;   c                  H   t           dz  } t          |           }t          d          }| |z
                                  dk    sJ t	          | |z
            dk    sJ | |z
                      d||i          dk    sJ | |z
                      d||i          dk    sJ d S )Nr   rQ   rE   subsr   rG   )r   intr   roundr   r6   )r6   rB   rQ   s      r9   test_sign_issue_3068r   o  s    
DAAAsAE==??aA;;! E99QaV9$$q((((E99QaV9$$q((((((r;   c                  >   t          t          d            t          d          \  } t          t                              t                    k    sJ t          | z            j        t          u sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          t                    dk    sJ t          t                     dk    sJ t          t                    t          u sJ t          t                    t          u sJ t          t          t          z            t          k    sJ t          t           t          z            t          k    sJ t          t          z            t                    k    sJ t          t           z            t                    k    sJ t          dz            dt                    z  k    sJ t          dz            d	t                    z  k    sJ t          dt          z  z  | z            dt          z  t          | z            z  k    sJ t          t                              t                    k    sJ t          t                              t                    k    sJ t                                        d
          t          t                    dz  t                    dz  z             k    sJ t!          dd
          }t          dt          z  z  |z            dt          z  |z  t                    z  k    sJ t          dt          z  t          z  z  |z            dt          z  |z  t                    z  k    sJ t!          dd
          t!          dd
          }t          d|z            dk    sJ d|z  z  t                    d|z  z  k    sJ t                                                  t                    k    sJ t%                    t                    k    sJ t                    dz  dz  t                    z  k    sJ t                    dz  dz  k    sJ t                    d|z  z  j        t                    d|z  fk    sJ dt                    z  j        t                    dfk    sJ dt                    dz  z  ddz  t                    z  z  k    sJ t                    dz  t                    dz  z  k    sJ t          dz            dz  t                    z  k    sJ t          t          t          z            t)          t           dz            k    sJ t          ddt          z  z   ddt          z  z   z            dt)          dt+          t-          dd                    z            z  k    sJ t!          dd
          } t          t          | z            dk    sJ t!          d          } t          t          | z            t)          t           t          |           z  dz            k    sJ t!          dd
          t                                                  t                     k    sJ t          ddt          d          z  z              t          dt          d          z             z   t          ddt          d          z  z             z   }t%          |          j        t
          u st%          |          dk    sJ dt          d          z   dt          d          z  z
  dt          d          z  z   }t          |dz            t-          dd          z  }||z
  }t%          |          j        t
          u st%          |          dk    sJ t          dt)          t          t          z  dz            z            dk    sJ t          ddt          z   z            dk    sJ t          ddt          z
  z            dt)          t                    z  k    sJ t          t                    t          u sJ t          t                     t          u sJ t          t          t          z             t          u sJ t          t          t          t          z  z             t          u sJ t!          dd
          }t!          d d
!          }t!          d          t          |          j        sJ t                    j        J t          |          j        d"u sJ t                                                    t                    k    sJ t          t2          fd#           t          t5          dt          z
            t5          dt          z             z            }t%          |          |k    sJ t%          dz            dt                    z  k    sJ t%          ddz  z            }	|	j        r|	dt          dz            z  k    sJ t9          t
          | z            sJ t9          t
          dz   z            sJ t9          t
          | z            sJ t!          d$d
          }t%          |z            t%                    |z  k    sJ t9          t
          t!          dd
          | z            sJ t;          d%d
          }
t           |
          dz             |
          k    sJ t9          t
          t=          d&                    sJ d S )'Nc                  <    t          t          dd                    S )NrG   rJ   )r   r/   rr   r;   r9   <lambda>ztest_Abs.<locals>.<lambda>~  s    c(1a..11 r;   r=   r   rE   rF   ro   rG   g       g       @TrH   r7   r}   rQ   r?   r6   r   rJ   rK   rT   r[   r^      i9 ri   rC   r   r   	   rL   rN   rO   Fc                  H    t                                         d          S )NrG   )r   fdiffrQ   s   r9   r   ztest_Abs.<locals>.<lambda>  s    s1vv||A r;   r|   r   zim(acos(-i + acosh(-g + i))))r3   	TypeErrorr   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   ra   r   r   r   r"   r
   re   r   r1   r!   is_Mulr0   r   r   )ri   r7   r6   r   r   r|   r   rN   r   er   rQ   s              @r9   test_Absr   }  s
   
9112225>>DAqQ==DGG####!99>T!!!!q66Q;;;;q66Q;;;;r77a<<<<q66Q;;;;r77a<<<<s88s????s88r>>>>q2v;;"rBw<<2q1u::QrAv;;#a&&    r!t99#a&&    tAv;;#c!ff*$$$$qtAvax==AbDQqSM))))y||A&&&&SVVA&&&&q66===&&$r!uuax"Q%%(/B*C*CCCCCsT"""AqtAvax==AbDF3q66M))))qtAvaxz??ad1fSVVm++++sAsD!!!AQw<<1qs8s1vv!}$$$$q66;;q>>T!WW$$$$q66SVVq66191SVV####q66191A1tA!}- - - -c!ffH?s1vvrl****SVVQY;!QT#a&&[/))))q662:QA&&&&q!t991SVV####q!t99RCE

""""AaC1qs7#$$c"T(1a..5I5I2I.J.J(JJJJJsAq!t99>>>>sAq!t99RC1IaK((((((sd###Aq66;;q>>d1ggX%%%%
rAd1ggI~

	a$q''k!2!2	2T!aQi-5H5H	HB r77<3#b''Q,,,, 	
DGGaQi$tAww,.Aq!thq!nn$A	AAq66;#Q1qRT!V}""""q1q5z??aa!e}3r77****r77b====s88r>>>>rAv;;"rAbDy>>Rsd###As4(((AsAa55a55%%%a55&&&&q66<<>>T!WW$$$$
6666777 tAE{{4A;;&
'
'Cs88s???? qs88qQxAadFA8(Qs1a4yy[((((S!A#S!QU)$$$$$S!A#sT"""Aqs88s1vvax S&4000!344444t$$$A!a==AAaDD    S!:;;<<<<<<<r;   c                  &   t          dd          } t          |                               t                                                    }|| t          |           z  | t          |            z  z
  k    sJ dD ]+}|                    | |          t          |          k    sJ ,t          d          }t          |                              t                    t          |          k    sJ t          dd          t          d          }} t          |                               t                    t          | | dk    f|  df          k    sJ t          |                              t                    t          |          k    sJ t          |                              t                    |t          |          z  k    sJ t          dd          }t          |                              t                    t          t          |z  t          |z  dk    ft           |z  df          k    sJ t          |                              t                    t          |t          |          z            k    sJ t          |                              t                    t          |d	z             k    sJ t          dd
          }t          t          t           | z            t          t           |z            z
            d	z                      t                    t          t          | z             t          t           |z            z  d	z   t          t           | z            t          t          |z            z  z
  k    sJ d S )NrQ   Tr?   )ro   rF   r   rE   rG   ri   r   rB   rC   rG   extended_real)r   r   rc   r'   r   r   r   r    r   r	   r   r   r   )rQ   r7   rB   ri   s       r9   test_Abs_rewriter     s   sAAy!!((**A)A,,9aR==00000 & &vva||s1vv%%%%%sAq66>>)$$A....#D!!!6#;;qAq66>>)$$	1a1f+Dz(J(JJJJJq66>>)$$A....q66>>$1T!WW9,,,,sd###Aq66>>)$$	1Q3!q/QBqD$<(P(PPPPP q66>>)$$Qy||^(<(<<<<<q66>>)$$adU3333s$'''AaRT3r!t99$%%q(11)<<	QqS	#qbd))a#qbd))C!HH"445 5 5 5 5 5r;   c                     t          dd          } t          | dz            t          |           k    sJ t          | dz            | dz  k    sJ t          dd          } t          | dz            t          |           k    sJ t          | dz            | dz  k    sJ t          ddd          }t          ddd	          }t          |          |k    sJ t          |          | k    sJ d S )
NrQ   TrH   rG   r?   nn)r   r@   np)r   r@   r   r   r   )rQ   r   r   s      r9   test_Abs_realr     s     	sD!!!A1::Qq!t991sA1::Qq!t991 
$T	2	2	2B	$T	2	2	2Br77b====r77rc>>>>>>r;   c                     t          d          } t          |           j        J t          |           j        du sJ t          |           j        J t          |           j        J t          |           j        J t          |           j        J t          |           j        du sJ t          dd          }t          |          j        du sJ t          |          j        du sJ t          |          j        J t          |          j        J t          |          j        du sJ t          |          j        J t          |          j        du sJ t          ddd          }t          |          j        du sJ t          |          j        du sJ t          |          j        J t          |          j        du sJ t          |          j        du sJ t          |          j	        du sJ t          dd          }t          |          j        du sJ t          |          j        du sJ t          |          j        J t          |          j        du sJ t          |          j	        du sJ t          d	d
          }t          |          j        du sJ t          |          j        du sJ t          |          j
        J t          |          j        J t          |          j        du sJ t          dd          }t          |          j        du sJ t          |          j
        du sJ t          |          j        J t          |          j        du sJ t          dd          }t          ddd          }t          |          j        du sJ t          |          j        du sJ t          |          j        J t          dd          }t          ddd          }	t          |          j        du sJ t          |	          j        du sJ t          |          j        J d S )NrQ   T)finitezF)rI   r   r|   r}   r   )rationalrB   r   r6   )evenne)r@   r   )oddno)r@   r   )r   r   r   is_extended_realis_rationalis_positiver   is_extended_positiveis_extended_nonnegativer   r   is_evenis_odd)
rQ   r   r   r|   r   rB   r   r   or   s
             r9   test_Abs_propertiesr     sr   sAq66>!!!q66"d****q66%%%q66%%%q66 (((q66&...q66)T1111s4   Aq66>T!!!!q66"d****q66%%%q66%%%q66 D((((q66&...q66)T1111sDu---Aq66>T!!!!q66"d****q66%%%q66%%%%q66&$....q66>U""""sT"""Aq66>T!!!!q66"d****q66%%%q66%%%%q66>U""""sT"""Aq66>T!!!!q66%%%%q66$$$q66%%%q66 D((((sD!!!Aq66>T!!!!q66$$$$q66%%%q66 D((((sA	4e	,	,	,Bq66>T!!!!r77?e####q66>!!!sA	4U	+	+	+Bq66=D    r77>U""""q66=     r;   c                  z    t          dd          } t          t          d| z   dz  z            d| z   dz  k    sJ d S )Nr7   Tr}   rE   rG   )r   r   r	   )r7   s    r9   test_absr   M  sI     	sT"""Aq!a%!|Q
******r;   c            	      F   t          d          t          u sJ t          d          dk    sJ t          d          t          k    sJ t          t                    t          dz  k    sJ t          t                     t           dz  k    sJ t          dt          z             t          dz  k    sJ t          dt          z             t          t	          dd          z  k    sJ t          dt          z
            t           dz  k    sJ t          t          dt          z  t          z                      dt          z  k    sJ t          t          dt          z  t          z                      dt          z  k    sJ t          t          ddt          z  t          z  dz  z
                      t          t	          d	d          z  k    sJ t          d
          } t           | d          t           | d          z  z                                 t                    rJ t          d          }t          t          t          |                              t          j        usJ t          t          t          t          |                                        t          j        u sJ t          dd          }t          t          |                    t          j        usJ t          t          t          |                              t          j        u sJ t          dd          }t           ||                    dk    sJ t          dt          z    ||          z            t          dt          z             k    sJ t          dd          }t          |          dk    sJ t          |t          z            t          dz  k    sJ t          dd          }t          |          t          k    sJ t          |t          z            t           dz  k    sJ t          d          }t          t          |                    t          |          k    sJ |t          |dz  z  z   }t          |          t          d|t          z  z             k    sJ d|z  dt          z  |dz  z  z   }t          |          t          dd|z  t          z  z             k    sJ t          dd          }|t          |z  z   }t          |          t          |dt          z   z            k    sJ t          ||z            t          |dt          z   z            k    sJ |t          |          z  t          t          |          z  t!          |          z  z   }t          |          j        d         |k    sJ |dz   t          |dz  dz
  z  z   }t          |          j        d         |k    sJ t          d
          } d|z   | d          dz
  z  d|z   | d          z  z
  }t          |          t          d|z            k    sJ t           | d                    j        t           k    r+t           | d                    j         | d          fk    sJ d S )Nr   rE   rF   rG   rK   rJ   r   r[   rT   r   rQ   rA   Tr   r|   )extended_positiver}   r6   r   ro   r?   )r   r   r   r	   r
   r   r   atomsr   r   r   rg   r   r   r$   r   r   r   r   )r   rQ   rA   r|   r6   r   s         r9   test_argr   T  s   q66S====q66Q;;;;r77b====q66RT>>>>r77rc!eq1u::ArAv;;"Xa^^+++++q1u::"Qy2a  !!QrT))))yBq!!""be++++yQrT!VAX&&''2hr1oo+=====A11Q44!AAaDD&=!!''+++++ 	sAs3q66{{15((((s3s1vv;;  AE))))s$'''As1vv;;ae####s3q66{{qu$$$$---Aqqtt99>>>>Aqqtt|AF++++sT"""Aq66Q;;;;qs88r!tsT"""Aq66R<<<<qs88s1usASVVA&&&&	AadF
Aq66SQqS\\!!!!
1qs1a4xAq66Sac!e__$$$$$A	AaCAq66SAE^^####qs88s1a!e9~~%%%%	#a&&1SVV8CFF?"Aq66;q>Q	
Q!QTAX,Aq66;q>QA	!QQqTTAX1QQqTT!Aq66SAYYqqtt99>S  S1YY^!w%>%>%>%>%>%>r;   c                  ,   t          dt          z             t          dd          k    sJ t          dd          } t          dd          }t          | t          |z  z                                 t                    t          ||           k    sJ d S )NrE   rQ   Tr?   ri   )r   r	   r#   r   rc   )rQ   ri   s     r9   test_arg_rewriter     s    q1u::q!$$$$sAsAq1Q3w<<&&%1++555555r;   c                  ~   t          dd          } t          dd          }t          |           |  k    sJ t          t          | z            t          | z  k    sJ t          |          |k    sJ t          t          |z            t           |z  k    sJ t          | |z            | | z  k    sJ t          t          | z  |z            t          |z  | z  k    sJ t          d          \  }}t          t          |                    |k    sJ t          ||z             t          |          t          |          z   k    sJ t          ||z
            t          |          t          |          z
  k    sJ t          ||z            t          |          t          |          z  k    sJ t          ||z            t          |          t          |          z  k    sJ t          |           t          |           k    sJ t          dd          \  }}t          t          |                    |k    sJ t          ||z             t          |          t          |          z   k    sJ t          ||z
            t          |          t          |          z
  k    sJ t          ||z            t          |          t          |          z  k    sJ t          ||z            d	t          |          z  t          |          z  k    sJ t          |           t          |           k    sJ d S )
Nr7   T)antihermitianr8   )	hermitianx yFcommutativerE   )r   r   r	   r   )r7   r8   rQ   ri   s       r9   test_adjointr     s   s$'''Asd###A1::!1Q3<<1Q31::????1Q3<<A2a41Q3<<A2a41Q3q5>>QqSU""""5>>DAq71::!####1q5>>WQZZ'!**444441q5>>WQZZ'!**444441q5>>WQZZ'!**444441q5>>WQZZ'!**44444A2;;71::+%%%%5e,,,DAq71::!####1q5>>WQZZ'!**444441q5>>WQZZ'!**444441q5>>WQZZ'!**444441q5>>Q^gajj88888A2;;71::+%%%%%%r;   c                  @   t          dd          } t          dd          }t          |           | k    sJ t          t          | z            t           | z  k    sJ t          |          | k    sJ t          t          |z            t          |z  k    sJ t          | |z            |  |z  k    sJ t          t          | z  |z            t          | z  |z  k    sJ t          d          \  }}t          t          |                    |k    sJ t          |                                          t          k    sJ t          ||z             t          |          t          |          z   k    sJ t          ||z
            t          |          t          |          z
  k    sJ t          ||z            t          |          t          |          z  k    sJ t          ||z            t          |          t          |          z  k    sJ t          |           t          |           k    sJ t          dd          } t          dd	          }t          |           j        sJ t          |          j        J t          |          j        d
u sJ d S )Nr7   Tr?   r8   rC   r   rL   rN   rO   F)r   r   r	   r   inverser   re   )r7   r8   rQ   ri   rN   s        r9   test_conjugater     sx   sAsd###AQ<<1QqS>>aRT!!!!Q<<A2QqS>>QqS    QqS>>aRT!!!!QqSUqs1u$$$$5>>DAqYq\\""a''''Q<<!!Y....QUy||ill:::::QUy||ill:::::QUy||ill:::::QUy||ill:::::aR==Yq\\M))))sd###As4(((Aa55a55%%%a55&&&&&&r;   c                      t          d          } t          t          |                     t          |           k    sJ t          t          |                     t          |           k    sJ t          t          |                     t          |           k    sJ t          t          |                     t          |           k    sJ t          t          |                     t          |           k    sJ t          t          |                     t          |           k    sJ  G d dt                    } |            } t          |           t          |           k    sJ t          |           | k    sJ d S )NrQ   c                        e Zd Zd Zd Zd ZdS )+test_conjugate_transpose.<locals>.Symmetricc                     d S Nrr   selfs    r9   _eval_adjointz9test_conjugate_transpose.<locals>.Symmetric._eval_adjoint      4r;   c                     d S r   rr   r   s    r9   _eval_conjugatez;test_conjugate_transpose.<locals>.Symmetric._eval_conjugate  r   r;   c                     | S r   rr   r   s    r9   _eval_transposez;test_conjugate_transpose.<locals>.Symmetric._eval_transpose  s    Kr;   N)__name__
__module____qualname__r   r   r   rr   r;   r9   	Symmetricr     sA        	 	 		 	 		 	 	 	 	r;   r   )r   r   r   r   r   )rQ   r   s     r9   test_conjugate_transposer     s\   sAYq\\""gajj0000Yq\\""gajj00009Q<<  IaLL0000WQZZ  IaLL00009Q<<  IaLL0000WQZZ  IaLL0000    D    		AQ<<71::%%%%Q<<1r;   c                  V   t          dd          } t          |           | k    sJ t          t          | z            t          | z  k    sJ t          d          \  }}t          t          |                    |k    sJ t          ||z             t          |          t          |          z   k    sJ t          ||z
            t          |          t          |          z
  k    sJ t          ||z            t          |          t          |          z  k    sJ t          ||z            t          |          t          |          z  k    sJ t          |           t          |           k    sJ t          dd          \  }}t          t          |                    |k    sJ t          ||z             t          |          t          |          z   k    sJ t          ||z
            t          |          t          |          z
  k    sJ t          ||z            t          |          t          |          z  k    sJ t          ||z            dt          |          z  t          |          z  k    sJ t          |           t          |           k    sJ d S )Nr7   TrH   r   Fr   rE   )r   r   r	   r   )r7   rQ   ri   s      r9   test_transposer     sj   sD!!!AQ<<1QqS>>QqS    5>>DAqYq\\""a''''QUy||ill:::::QUy||ill:::::QUy||ill:::::QUy||ill:::::aR==Yq\\M))))5e,,,DAqYq\\""a''''QUy||ill:::::QUy||ill:::::QUy||ill:::::QUq9Q<</)A,,>>>>>aR==Yq\\M))))))r;   c                  `   ddl m} m} t          d          }t          dd          }t	          d          }i } |d           | d          |fk    sJ  |d	t
          z              | d	t
          z             |fk    sJ  |t          |          d
          t          |          k    sJ  |d	|z   d
          d	|z   k    sJ  | |t
                    |z   d
           | | t
                              |z   k    sJ  ||d           | |          k    sJ  ||d          |k    sJ  | ||          d           | | |                    k    sJ  |d	|z   d           | d	|z             k    sJ  |d	 ||          z   d           | d	 | | |                    z             k    sJ  | ||          |z             \  }}|                    |           ||          |z   k    sJ t          d          }t          dd          }	 |t          t          d          |z  t          | |z   dz   d|	dz  z  z            z  dt          t                    z  |	z  z  |t           t          f          d          t          t          d          |	t          d          z  t          t
          t          z            z  z  t          |	t          d          z  dt          t
          t          z            z  z  t          t
          t          z            z   | | |z             dt          d          z  z  z  dz            z  t          d          z   | |          z  dt          t                    z  z  |t           t          f          k    sJ d S )Nr   )
polar_liftpolarifyrQ   r   T)polarr   rF   rE   Fr   )liftmusigmar}   rG   )$sympy.functions.elementary.complexesr   r   r   r   r	   r   r   r(   r   r   r   r   )
r   r   rQ   r   r   ESnewexr   r   r   s
             r9   test_polarifyr     s"   KKKKKKKKsAs$AA	B8B<<JJrNNB/////8AE??zz!a%00"555558CFF'''3q6611118AE&&&!a%////8AAaDD1H5)))QQzz!}}-=-=-AAAAA8AD!!!ZZ]]22228AD!!!Q&&&&8AAaDDt$$$**Q--(8(888888AE%%%AE):):::::8A!H4(((JJq11ZZ]];K;K7K,L,LLLLL(11Q44!8$$KE4::dqqttax''''	B7T***E 8a3"q1}aqj9:::Ad2hhJu<LM	
RC	 	 " " "%-d1gguYq\\7IIVWXZVZOO6[.[U9Q<<1Yqt__#45i"ooEjjRTQTWXQXFYFY	
9Q<<G  	 	/%aLL/))3A/789$r((
/DFG"b\&S &SS S S S S Sr;   c                  <   ddl m} m}m} ddlm} ddlm} ddlm	} ddl
m}m} ddlm} t          dt           z            d	z   }	t#          dt           z            d	z   }
 |d	          d	k    sJ  ||	          |
k    sJ  ||	d
z            |
d
z  k    sJ  ||	|z            |	|z  k    sJ  ||	|z            |
|z  k    sJ  ||	|z             |
|z   k    sJ  |t%          t'          |	                              t%          t'          |
                    k    sJ  ||d
t(          z            } ||          |k    sJ  |t%          |                    t%          |          k    sJ  ||	|	z  d          |	|
z  k    sJ  | |||	|	z                       |||	|
z            k    sJ  |t'          |	                    t'          |
          k    sJ  | ||	                     ||
          k    sJ  | ||	                     ||
          k    sJ  | ||	                     ||
          k    sJ  | |||	                     |||	          k    sJ  | |t'          |	          t'          |	t          d          z                                  |t'          |
          t'          |
d	z                       k    sJ  | | | d          d
t          d          z                       |dd
          k    sJ  |t+          |	d                    t+          |
d          k    sJ  | ||	d                     ||
d          k    sJ  | | |          dk              |dk    k    sJ  |d          du sJ d S )Nr   )r   principal_branch
unpolarify)Ne)tanh)erf)gamma
uppergammar   r   rE   rG   T)exponents_only)r   r   r   r  sympy.core.relationalr  %sympy.functions.elementary.hyperbolicr  'sympy.functions.special.error_functionsr  'sympy.functions.special.gamma_functionsr  r  	sympy.abcrQ   r   r	   r   r   r%   r   r   )r   r   r  r  r  r  r  r  rQ   r|   urN   s               r9   test_unpolarifyr    s   __________((((((::::::;;;;;;KKKKKKKK!A#AAaC1A:a==A:a==A:adq!t####:adq!t####:ac??ac!!!!:a!eA%%%%:d3q66ll##tCFF||3333 	AbD!!A:a==A:d1gg$q'')))) :ad4000AqD8888:jjAqD))**jjAqD.A.AAAAA :c!ffQ'''':dd1gg$$q'')))):eeAhh5588++++:cc!ffQ'''':jjA&&''::a+;+;;;;;:jjQQ1-=)>)>??@@
3q663q1u::&&' ' ' ':jjA)A,,??@@
1a    :bAhh2a88++++:bbAhh22a88++++:jjmma'((QU3333 :dt######r;   c                  h   t          d          } t          |                               d          t          |           k    sJ t          |                               d          t          |           k    sJ t	          |                               d          t	          |           k    sJ d S )NrQ   T)trig)r   r   r   r   r   r   s    r9   test_issue_4035r  M  s    sAq66==d=##s1vv----77>>t>$$Q////q66==d=##s1vv------r;   c                      t          d          } t          t          |                     t          |           k    sJ d S )NrQ   )r   r   r   s    r9   test_issue_3206r  T  s6    sAs1vv;;#a&&      r;   c                     t          dd          } t          dd          }t          d          } ||                                                               |            ||                               |                                           k    sJ  ||                                                              |           ||                              |                                           k    sJ d S )NrQ   Tr?   ri   rC   r   )r   r   r   ra   rQ   ri   r   s      r9   $test_issue_4754_derivative_conjugater  Y  s    sAsd###AAAaDDNN""1%%!!A$$))A,,)A)A)C)CCCCCAaDDNN""1%%11Q4499Q<<*B*B*D*D)DDDDDDDr;   c                  4   t          dd          } t          dd          }t          d          }t           ||                                         |           t           ||                               |                     k    sJ t	           ||                                         |           t	           ||                               |                     k    sJ t           ||                                        |          t
           t	           ||                              |                    z  k    sJ t	           ||                                        |          t
           t           ||                              |                    z  k    sJ t           ||                                         |                                ||           dt
          | z  z                                             | t          d| dz  z             z  k    sJ t           ||                                         |                                ||           dt
          | dz  z  z                                             d| z  d| d	z  z   z  k    sJ t           ||                                        |                               ||          d|z                                             | t          d|dz  z
            z  k    sJ t           ||                                        |                               ||          t
          |dz  z                                             d|z  d|d	z  z   z  k    sJ d S )
NrQ   Tr?   ri   rC   r   rE   rG   rK   )r   r   r   ra   r   r	   r   r   r   r   r   r  s      r9   test_derivatives_issue_4757r  a  s   sAsd###AAaadd88==r!!A$$))A,,//////aadd88==r!!A$$))A,,//////aadd88==r"QQqTTYYq\\"2"222222aadd88==r"QQqTTYYq\\"2"222222qqtt99>>!!!!!A$$AaC0055771T!ad(^^;KKKKKqqtt99>>!!!!!A$$AadF
3388::ac1q!t8nLLLLqqtt99>>!!!!!A$$A..3355!DQTNN9JJJJJqqtt99>>!!!!!A$$AqD116688AaCQTNJJJJJJr;   c                  v   ddl m}  t          d          }t          d          }t          d          }t          |g|g|gg          }|                                }|t          |t          t          |          dz  t          |          dz  z   t          |          dz  z             z  g|t          t          |          dz  t          |          dz  z   t          |          dz  z             z  g|t          t          |          dz  t          |          dz  z   t          |          dz  z             z  gg          k    sJ t          |dz  |dz  |dz  z   |dz  z   z  |dz  |dz  |dz  z   |dz  z   z  z   |dz  |dz  |dz  z   |dz  z   z  z             |_         | |j                  dk    sJ d S )Nr   r   v0v1v2rG   rE   )sympy.simplify.simplifyr   r   r)   
normalizedr   r   norm)r   r  r  r  VUs         r9   test_issue_11413r#  o  s   000000	B	B	BbT2$  A	ASWWaZ#b''1*$s2wwz12223SWWaZ#b''1*$s2wwz12223SWWaZ#b''1*$s2wwz122235 6 6 6 6 6 6 "a%QQQ./"a%QQQ9N2OORTVWRWY[]^Y^acefafYfikmninYnRooppAF8AFq      r;   c                  Z   ddl m} m}m}m} t          d          }t          dd          } |dt          z              | dt          z   t                    k    sJ  |d|z              | d|z   t                    k    sJ t           |dt          z   dz            t          dz            sJ t           |dt          z
  dz            t           dz            sJ t           | dt          z   dz  d	t          z            t          dz            sJ t           | dt          z
  dz  d	t          z            t           dz            sJ  | ||t                               | |t                    k    sJ  | |dt          z                        |dt          z             k    sJ  |  |dt          z             dt          z             | dt          z   dt          z            k    sJ  |  |dt          z             d	t          z             | dt          z   d	t          z            k    sJ  |  |dt          z             t                     |  |dt          z             t                    k    sJ  | |dt          z                       t          d
z  k    sJ  | d|z  |           | ||          k    sJ  | t          |z  |           | ||          k    sJ t           |dt          z                       t          dt          z             k    sJ d S )Nr   )periodic_argumentr   r   unbranched_argumentrQ   r|   Tr}   rG   rE   rJ   rK   )r   r%  r   r   r&  r   r	   r   r:   r   r   )r%  r   r   r&  rQ   r|   s         r9   test_periodic_argumentr'  ~  s   {{{{{{{{{{{{sAsT"""Aq1u%%):):1q5")E)EEEEEq1u%%):):1q5")E)EEEEE''Q
33RT:::::''Q
33bSU;;;;;%%q1uqj!B$77A>>>>>%%q1uqj!B$77"Q?????//26677!R  ! ! ! ! zz!a%00115H5HQ5O5OOOOOZZA.."55!a%2&&' ' ' 'ZZA.."55!a%2&&' ' ' 'ZZA..33**QU++R001 1 1 1 zz!a%0011RT9999QqS!$$(9(9!Q(?(?????RT1%%):):1a)@)@@@@@zz!a%  !!SQZZ//////r;   c                  p    ddl m}  t           | dt          z   dz  t          dz            d          sJ d S )Nr   r   rE   rG   )r   r   r:   r	   r   r)  s    r9   test_principal_branch_failr*    sM     FEEEEE$$a!eaZA66:::::::r;   c                     ddl m} m} t          dd          }t          d          }t          dd          } | | |          |           |||          k    sJ  | | dt          z             |           |dt          z   |          k    sJ  |d|z  |          d |||          z  k    sJ  |d	t
                    t          d          k    sJ  |d
dt
          z            t          t          t
          z            k    sJ  |d
t
                    t          d          k    sJ  |t          dt
          z  t          z            |z  dt
          z             |t          t          t
          z            |z  dt
          z            k    sJ  ||t          t
          t          z            z  dt
          z            |t          t           t
          z            z  k    sJ  |t          t           t
          z  dz             | |          z  dt
          z            t          t           t
          z  dz            |z  k    sJ t           |d	t          z   dz  dt
          z            dt          z            sJ t           |d	t          z   dz  dt
          z            dt          z            sJ t           |d	t          z   dz  d	t
          z            dt          z            sJ  ||t                    j        |u sJ  ||d          j        |u sJ  ||t                     j        |u sJ  ||t                    j        |u sJ d S )Nr   )r   r   r|   Tr}   rQ   r   rG   rE   rF   rJ   )r   r   r   r   r	   r   r   r:   r   r   r   )r   r   r|   rQ   negs        r9   test_principal_branchr.    s   SSSSSSSSsT"""AsA
t
$
$
$CJJqMM1--1A1A!Q1G1GGGGGJJq1u--q115E5Ea!eQ5O5OOOOOAaC##q)9)9!Q)?)?'?????Ar""ill2222B"%%1R48888B##y||3333Iad1f--a/2661R4*AbD112 2 2 2C	"Q$/266#i2>N>N:NNNNNIqbeAg..zz#>"EE1"R%'3    $$a!eaZ266!<<<<<$$a!eaZ266!<<<<<$$a!eaZ266!<<<<< Aq!!&*:::::Ar""'+;;;;;As##(,<<<<<As##(,<<<<<<<r;   c                     t           dz  } t          |           }t          | |z
            dk    sJ t          | |z
            | |z
  k    sJ t	          d          }t           dz  }t           dz  }t          |          dz  t          |          dz  z   }||z  |z
  |z   }ddlm} t           ||                    dk    sJ dd	dt          dd
          fD ]+}t          |
                    ||                    dk    sJ ,d S )Nr   rE   rQ   i$rG   r   r  o      r   )r   r   r   r   r   r$   r%   r  r   r
   r   )	r6   rB   rQ   epsbigoner   r   xis	            r9   test_issue_6167_6151r6    s"   
DAAAA;;!q1u::QsA
e)C
d(C
a&&!)c!ffai
CC#A000000!!!!B8Ar??+ ( (AFF1bMM""a'''''( (r;   c                      ddl m}  t          ddd          } | |d                   |d         k    sJ  | |d         |d         z            |d         |d         z  k    sJ d S )Nr   )r  rS   rG   )r   r   )rE   r   )r   r  r+   )r  rS   s     r9   test_issue_14216r8    s    ??????S!QA:ag!D')))):agago&&!D'!D'/999999r;   c                      t          dd          } t          | t          d| dk    fd| z
  df          z             sJ d S )NrA   Tr?   r   rE   )r   r   r    )rA   s    r9   test_issue_14238r:    sM    sAq9aQZ!a%7778888888r;   c                      t          d          } t          dd| z  z
            dz
  d| z
  fD ]0}t          |          t          |           z
  dk    s
J |            1d S )NrQ   r   rG   rE   r   r   )rQ   r7   s     r9   test_issue_22189r<    sq    sA1qs7mmaQ' ( (1vvQB1$$$a$$$$( (r;   c                     t          ddd          } t          dd          }t          ddd          }t          |           j        J t          |           j        du sJ t          |          j        J t          |          j        J t          |          j        du sJ t          |          j        J d S )	NnonrealFT)r@   r   nonimaginaryrC   nonzerononimaginary)r   rD   )r   r   r   r   )nrninznis      r9   test_zero_assumptionsrD    s    		d	3	3	3B	%	0	0	0B'euEEEDb66>!!!b66>U""""b66>!!!b66>!!!d88u$$$$d88#####r;   c                     t          dd          } t          dd          }t          t           | |                     | |                    }|                                t           | |                    k    sJ d S )Nr   Tr?   rQ   )r   r   r   r   r   r   )r   rQ   r   s      r9   test_issue_15893rF    sx    4   AsA	C!IIqqtt	$	$B7799QQqTT

""""""r;   N)gsympy.core.exprr   sympy.core.functionr   r   r   r   sympy.core.numbersr   r	   r
   r   r   r   r   r   r  r   sympy.core.singletonr   sympy.core.symbolr   r   r   r   r   r   r   r   r   r   r   &sympy.functions.elementary.exponentialr   r   r   (sympy.functions.elementary.miscellaneousr   $sympy.functions.elementary.piecewiser    (sympy.functions.elementary.trigonometricr!   r"   r#   r$   r%   'sympy.functions.special.delta_functionsr&   r'   sympy.integrals.integralsr(   sympy.matrices.denser)   %sympy.matrices.expressions.funcmatrixr*   "sympy.matrices.expressions.matexprr+   sympy.matrices.immutabler,   r-   sympy.matricesr.   sympy.sets.setsr/   r0   r1   sympy.testing.pytestr2   r3   r4   r:   rm   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.  r6  r8  r:  r<  rD  rF  rr   r;   r9   <module>rY     s               F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G $ $ $ $ $ $ " " " " " " / / / / / / / / h h h h h h h h h h h h h h h h h h h h H H H H H H H H H H 9 9 9 9 9 9 : : : : : : R R R R R R R R R R R R R R K K K K K K K K . . . . . . ' ' ' ' ' ' @ @ @ @ @ @ ; ; ; ; ; ; M M M M M M M M ' ' ' ' ' ' $ $ $ $ $ $ % % % % % % 2 2 2 2 2 2 = = = = = = = = = =% % %
]> ]> ]>@W> W> W>rw0 w0 w0t: : :< 
) 
) 
)e= e= e=P5 5 54  $9! 9! 9!x+ + +9? 9? 9?x6 6 6& & &6' ' '4  .* * *,  S  S  SF,$ ,$ ,$^. . .! ! !
E E EK K K! ! !0 0 0< ; ; ;= = =< ( ( ( : : :9 9 9( ( ($ $ $  # # # # #r;   