
    gV                        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/ d dl0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z<m=Z= d dl>m?Z? d dl@mAZA d dl mBZB d dlmCZC d dlDmEZEmFZFmGZG d ZHd ZId ZJd ZKd ZLeEd             ZMd ZNd ZOd  ZPd! ZQd" ZRd# ZSd$ ZTd% ZUd& ZVd' ZWd( ZXeGd)             ZYd* ZZd+ Z[d, Z\d- Z]d. Z^d/ Z_d0 Z`eEd1             Zad2 ZbeEd3             Zcd4 Zdd5 Zed6 Zfd7 ZgeGd8             Zhd9S ):    )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)sinh)
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     k/var/www/html/ai-engine/env/lib/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      r8   	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 )rH   r	   ).0rC   js     r:   
<listcomp>z&test_re.<locals>.<listcomp>.<listcomp>n   s%    333QqsQqSy333r<      range)rY   rZ   s    @r:   r[   ztest_re.<locals>.<listcomp>n   s4    FFF3333%((333FFFr<   r\   )r   r   r   r   r   )rH   rH   rH   rH   rH   )rL   rL   rL   rL   rL   )   r_   r_   r_   r_   )   r`   r`   r`   r`   )r   rF   rH   rK   rL   )r   r   r   )rF   rF   rF   )rH   rH   rH   )!r   r   r   r   r   r   r1   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   )rR   yr8   r9   rB   rC   rO   r7   mlrT   Xs               r:   test_rern      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@   rB   rC   rD   r   rF   rG   rH   rI   rL   r8   rM   rO   rP   rR   FrS   rT   rU   rK   c                 @    g | ]}d  t          d          D             S )c                 (    g | ]}|t           z  |z   S  rX   rY   rC   s     r:   r[   z&test_im.<locals>.<listcomp>.<listcomp>   s     (((!acAg(((r<   r\   r]   rt   s     r:   r[   ztest_im.<locals>.<listcomp>   s-    ;;;Q((uQxx(((;;;r<   r\   c                 F    g | ]}t          t          d                     S )r\   )listr^   rt   s     r:   r[   ztest_im.<locals>.<listcomp>   s$    777d588nn777r<   )r   rF   rH   )#r   r   r   r   r   r	   r   r1   r   r   r   r   r   ra   rb   r   r
   r%   r#   rd   r   re   rf   rg   rh   r,   Oner*   r-   r.   r^   r/   as_immutabler+   r   )rR   rj   r8   r9   rB   rC   rO   r7   rk   rl   rT   rm   Ys                r:   test_imrz      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?rF   g333333rG   rK   rU   r   F)evaluaterH   rL   rR   Trp   ppositiver7   negativerk   rD   r@   )nonzeronz)r   integer)nonnegative)nonpositive)rA   zerorj   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   rb   r'   r   argsis_nonnegativeis_nonpositiver   rd   r    r(   r   r   r   r   NegativeOnefuncr   r
   )
rR   r}   r7   rk   r   rj   r   eqqds
             r:   	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   rR   rH   rF   rL   r?   Tr@   rC   rD   )r   rF   rK   )rp   r   )r   ra   r   r   r   r   r
   r$   r#   r%   r   r	   r   rc   abs)r7   rR   r8   r9   rC   s        r:   test_as_real_imagr   R  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   rR   rF   subsr   rH   )r   intr   roundr   r7   )r7   rC   rR   s      r:   test_sign_issue_3068r   p  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 )NrH   rK   )r   r0   rs   r<   r:   <lambda>ztest_Abs.<locals>.<lambda>  s    c(1a..11 r<   r>   r   rF   rG   rp   rH   g       g       @TrI   r8   r~   rR   r@   r7   r   rK   rL   rU   r\   r_      i9 rj   rD   r   r   	   rM   rO   rP   Fc                  H    t                                         d          S )NrH   )r   fdiffrR   s   r:   r   ztest_Abs.<locals>.<lambda>  s    s1vv||A r<   r}   r   zim(acos(-i + acosh(-g + i))))r4   	TypeErrorr   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   rb   r   r   r   r"   r
   rf   r   r2   r!   is_Mulr1   r   r   )rj   r8   r7   r   r   r}   r   rO   r   er   rR   s              @r:   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 )NrR   Tr@   )rp   rG   r   rF   rH   rj   r   rC   rD   rH   extended_real)r   r   rd   r(   r   r   r   r    r   r	   r   r   r   )rR   r8   rC   rj   s       r:   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 )
NrR   TrI   rH   r@   nn)r   rA   np)r   rA   r   r   r   )rR   r   r   s      r:   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 )NrR   T)finitezF)rJ   r   r}   r~   r   )rationalrC   r   r7   )evenne)rA   r   )oddno)rA   r   )r   r   r   is_extended_realis_rationalis_positiver   is_extended_positiveis_extended_nonnegativer   r   is_evenis_odd)
rR   r   r   r}   r   rC   r   r   or   s
             r:   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 )Nr8   Tr~   rF   rH   )r   r   r	   )r8   s    r:   test_absr   N  sI     	sT"""Aq!a%!|Q
******r<   c            	      T   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          t          t          t          z  d
z                      t          d
z  k    sJ t          t          dt          z                      ddt          z  z
  k    sJ t          t          dt          z  t          z  dz                      dt          z  dz  k    sJ t          t          ddt          z  z
                      ddt          z  z   k    sJ t          t          t          ddt          z  z                                 dt          z  t          d          t          d          z  z   k    sJ t          dd          } t          t          | dt          z  z
                      d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   rF   rG   rH   rL   rK   r   r\   rU   r      r_         i{   rp   rB   Tr@   r   rR   r   r}   )extended_positiver~   r7   r   )r   r   r   r	   r
   r   r   r%   r$   r&   r   r   atomsr   r   rh   r   r   r   r   r   )rB   r   rR   r}   r7   r   s         r:   test_argr   U  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+=====s1R46{{r!t####s2a4yy>>R!B$Y&&&&s2a472:3r6"9,,,,s319~~"qt)++++s3q1Q3w<<  !!RUSVVDGG^%;;;;;sAs1qs7||""""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 )NrF   rR   Tr@   rj   )r   r	   r#   r   rd   )rR   rj   s     r:   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 )
Nr8   T)antihermitianr9   )	hermitianx yFcommutativerF   )r   r   r	   r   )r8   r9   rR   rj   s       r:   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 )Nr8   Tr@   r9   rD   r   rM   rO   rP   F)r   r   r	   r   inverser   rf   )r8   r9   rR   rj   rO   s        r:   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 )NrR   c                        e Zd Zd Zd Zd ZdS )+test_conjugate_transpose.<locals>.Symmetricc                     d S Nrs   selfs    r:   _eval_adjointz9test_conjugate_transpose.<locals>.Symmetric._eval_adjoint      4r<   c                     d S r   rs   r   s    r:   _eval_conjugatez;test_conjugate_transpose.<locals>.Symmetric._eval_conjugate  r   r<   c                     | S r   rs   r   s    r:   _eval_transposez;test_conjugate_transpose.<locals>.Symmetric._eval_transpose  s    Kr<   N)__name__
__module____qualname__r   r   r   rs   r<   r:   	Symmetricr     sA        	 	 		 	 		 	 	 	 	r<   r   )r   r   r   r   r   )rR   r   s     r:   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 )Nr8   TrI   r   Fr   rF   )r   r   r	   r   )r8   rR   rj   s      r:   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polarifyrR   r   T)polarr   rG   rF   Fr   )liftmusigmar~   rH   )$sympy.functions.elementary.complexesr   r   r   r   r	   r   r   r)   r   r   r   r   )
r   r   rR   r   r   ESnewexr   r   r   s
             r:   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   rF   rH   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.abcrR   r   r	   r   r   r%   r   r   )r   r  r  r  r	  r
  r  r  rR   r}   urO   s               r:   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 )NrR   T)trig)r   r   r   r   r   r   s    r:   test_issue_4035r  W  s    sAq66==d=##s1vv----77>>t>$$Q////q66==d=##s1vv------r<   c                      t          d          } t          t          |                     t          |           k    sJ d S )NrR   )r   r   r   s    r:   test_issue_3206r  ^  s6    sAs1vv;;#a&&      r<   c                     t          dd          } t          dd          }t          d          } ||                                                               |            ||                               |                                           k    sJ  ||                                                              |           ||                              |                                           k    sJ d S )NrR   Tr@   rj   rD   r   )r   r   r   rb   rR   rj   r   s      r:   $test_issue_4754_derivative_conjugater  c  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 )
NrR   Tr@   rj   rD   r   rF   rH   rL   )r   r   r   rb   r   r	   r   r   r   r   r   r  s      r:   test_derivatives_issue_4757r  k  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v2rH   rF   )sympy.simplify.simplifyr   r   r*   
normalizedr   r   norm)r   r!  r"  r#  VUs         r:   test_issue_11413r)  y  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_argumentrR   r}   Tr~   rH   rF   rK   rL   )r  r+  r   r  r,  r   r	   r   r;   r   r   )r+  r   r  r,  rR   r}   s         r:   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  rF   rH   )r  r  r;   r	   r   r/  s    r:   test_principal_branch_failr0    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~   rR   r   rH   rF   rG   rK   )r  r   r  r   r	   r   r   r;   r   r   r   )r   r  r}   rR   negs        r:   test_principal_branchr4    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   rF   rR   i$rH   r   r   o      r   )r   r   r   r   r   r$   r%   r$  r   r
   r   )	r7   rC   rR   epsbigoner   r   xis	            r:   test_issue_6167_6151r<    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  rT   rH   )r   r   )rF   r   )r  r  r,   )r  rT   s     r:   test_issue_14216r>    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 )NrB   Tr@   r   rF   )r   r   r    )rB   s    r:   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 )NrR   r   rH   rF   r   r   )rR   r8   s     r:   test_issue_22189rB    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)rA   r   nonimaginaryrD   nonzerononimaginary)r   rE   )r   r   r   r   )nrninznis      r:   test_zero_assumptionsrJ    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@   rR   )r   r   r   r   r   r   )r   rR   r   s      r:   test_issue_15893rL    sx    4   AsA	C!IIqqtt	$	$B7799QQqTT

""""""r<   N)i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%   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.setsr0   r1   r2   sympy.testing.pytestr3   r4   r5   r;   rn   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r)  r-  r0  r4  r<  r>  r@  rB  rJ  rL  rs   r<   r:   <module>r_     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 6 6 6 6 6 6 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+ + +B? B? B?J6 6 6& & &6' ' '4  .* * *,  S  S  SF,$ ,$ ,$^. . .! ! !
E E EK K K! ! !0 0 0< ; ; ;= = =< ( ( ( : : :9 9 9( ( ($ $ $  # # # # #r<   