
    g
]                        d Z ddlmZmZ ddlmZmZ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mZmZmZmZmZmZmZmZmZ ddlmZ ddlm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z, ddlm-Z- ddl.m/Z/ dd	l0m1Z1 dd
l2m3Z3m4Z4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; ddl<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZF d ZG e=j                  eIe      d        ZJ e=j                  eeeeeeee      d        ZJ e=j                  e      d        ZJ e=j                  ee	      d        ZJ e=j                  e      d        ZJ e=j                  e       d        ZJ e=j                  e3e7e5      d        ZJ e>j                  e      d        ZJ e>j                  e      d        ZJ e>j                  eeeeeee      d        ZJ e>j                  e      d        ZJ e>j                  ee      d        ZJ e>j                  e	      d        ZJ e>j                  e#e$e%e+e,      d        ZJ e>j                  e'      d         ZJ e>j                  e"e&      d!        ZJ e>j                  e!e)      d"        ZJ e?j                  e      d#        ZJ e?j                  e      d$        ZJd% ZL e@j                  e eeee(eee*e	      d&        ZJ e@j                  eee      d'        ZJ e@j                  e      d(        ZJ e@j                  e      d)        ZJ e@j                  e      d*        ZJ e@j                  e	      d+        ZJ e@j                  e%e+      d,        ZJ e@j                  e'      d-        ZJ e@j                  e)      d.        ZJ e@j                  e3e7e5      d/        ZJ eAj                  eM      d0        ZJ eAj                  ee      d1        ZJ eAj                  eee	      d2        ZJ eBj                  eM      d3        ZJ eBj                  e      d4        ZJ eBj                  e      d5        ZJ eBj                  e	      d6        ZJ eBj                  e%e+      d7        ZJ eBj                  e'      d8        ZJ eBj                  e4      d9        ZJ eCj                  e e%e'e(ee)eee*e+
      d:        ZJ eCj                  ee      d;        ZJ eCj                  e      d<        ZJ eCj                  ee      d=        ZJ eCj                  e	      d>        ZJ eCj                  e3e7e5      d?        ZJ eCj                  e      d@        ZJdA ZN eDj                  e      dB        ZJ eDj                  e      dC        ZJ eDj                  e      dD        ZJ eDj                  e      dE        ZJ eDj                  e	      dF        ZJ eDj                  e)      dG        ZJ eDj                  e'      dH        ZJ eDj                  ee      dI        ZJ eDj                  e      dJ        ZJ eEj                  eM      dK        ZJ eEj                  e      dL        ZJ eEj                  e      dM        ZJ eEj                  e	      dN        ZJ eEj                  e4      dO        ZJ eFj                  eeeee      dP        ZJ eFj                  eeeee      dQ        ZJ eFj                  ee      dR        ZJ eFj                  e	      dS        ZJ eFj                  e      dT        ZJ eFj                  e#e$e%e+e,      dU        ZJ eFj                  e'      dV        ZJ eFj                  e"e&      dW        ZJ eFj                  e!e)      dX        ZJyY)ZzL
Handlers for predicates related to set membership: integer, rational, etc.
    )Qask)AddBasicExprMulPowS)AlgebraicNumberComplexInfinityExp1FloatGoldenRatioImaginaryUnitInfinityIntegerNaNNegativeInfinityNumberNumberSymbolPipiRationalTribonacciConstantE)
fuzzy_bool)Absacosacotasinatancoscotexpimlogresintan)I)Eq)	conjugate)Determinant
MatrixBaseTrace)MatrixElement)MDNotImplementedError   )test_closed_group   )
IntegerPredicateRationalPredicateIrrationalPredicateRealPredicateExtendedRealPredicateHermitianPredicateComplexPredicateImaginaryPredicateAntihermitianPredicateAlgebraicPredicatec                     	 t        | j                               }| |z
  j                  d      st        y# t        $ r Y yw xY w)Nr   TF)introundequals	TypeErrorexprassumptionsis      T/var/www/openai/venv/lib/python3.12/site-packages/sympy/assumptions/handlers/sets.py_IntegerPredicate_numberrI      sC    	DJJL!A1H$$Q' 		s   36 	AAc                      yNT rE   rF   s     rH   _rN   (           c                      yNFrL   rM   s     rH   rN   rN   ,        rP   c                 .    | j                   }|t        |S N)
is_integerr1   rE   rF   rets      rH   rN   rN   1       
//C
{##JrP   c                 h    | j                   rt        | |      S t        | |t        j                        S )zw
    * Integer + Integer       -> Integer
    * Integer + !Integer      -> !Integer
    * !Integer + !Integer -> ?
    )	is_numberrI   r3   r   integerrM   s     rH   rN   rN   8   s+     ~~'k::T;		::rP   c                    | j                   rt        | |      S d}| j                  D ]  }t        t	        j
                  |      |      r#|j                  rF|j                  dk(  r$t        t	        j                  d| z        |      c S |j                  dz   ss yt        t	        j                  |      |      r|rd} y y |S )z
    * Integer*Integer      -> Integer
    * Integer*Irrational   -> !Integer
    * Odd/Even             -> !Integer
    * Integer*Rational     -> ?
    Tr4   r2   NF)
r[   rI   argsr   r   r\   is_Rationalqeven
irrational)rE   rF   _outputargs       rH   rN   rN   C   s     ~~'k::Gyy199S>;/55A:qvvaf~{;;UUQY<Q\\#&4#G  NrP   c                 Z    t        t        j                  | j                  d         |      S Nr   )r   r   r\   r^   rM   s     rH   rN   rN   _   s     qyy1&44rP   c                 Z    t        t        j                  | j                  d         |      S rf   )r   r   integer_elementsr^   rM   s     rH   rN   rN   c   "    q!!$))A,/==rP   c                      yrK   rL   rM   s     rH   rN   rN   j   rO   rP   c                      y rU   rL   rM   s     rH   rN   rN   n   rO   rP   c                      yrR   rL   rM   s     rH   rN   rN   r   rS   rP   c                 .    | j                   }|t        |S rU   )is_rationalr1   rW   s      rH   rN   rN   w   s    


C
{##JrP   c                 x    | j                   r| j                         d   ryt        | |t        j                        S )z}
    * Rational + Rational     -> Rational
    * Rational + !Rational    -> !Rational
    * !Rational + !Rational   -> ?
    r2   F)r[   as_real_imagr3   r   rationalrM   s     rH   rN   rN   ~   s2     ~~q!T;

;;rP   c                    | j                   t        k(  rL| j                  }t        t	        j
                  |      |      r t        t	        j                  |       |      S yt        t	        j                  | j                        |      r)t        t	        j
                  | j                         |      S t        t	        j
                  | j                        |      r+t        t	        j                  | j                         |      ryyy)z
    * Rational ** Integer      -> Rational
    * Irrational ** Rational   -> Irrational
    * Rational ** Irrational   -> ?
    NF)	baser   r$   r   r   rq   nonzeror\   primerE   rF   xs      rH   rN   rN      s     yyA~HHqzz!}k*		!}k22
199TXX,1::dii(+66	QZZ!;	/qwwtyy!;/ 0 
0rP   c                     | j                   d   }t        t        j                  |      |      r t        t        j                  |       |      S y rf   r^   r   r   rq   rt   rv   s      rH   rN   rN      s=    		!A
1::a=+&AIIaL=+.. 'rP   c                     | j                   }t        t        j                  |      |      r t        t        j                  |       |      S y rU   )r$   r   r   rq   rt   rv   s      rH   rN   rN      s9    A
1::a=+&AIIaL=+.. 'rP   c                 b    | j                   d   }t        t        j                  |      |      ryy Nr   F)r^   r   r   rq   rv   s      rH   rN   rN      s)    		!A
1::a=+& 'rP   c                     | j                   d   }t        t        j                  |      |      r#t        t        j                  |dz
         |      S y Nr   r2   ry   rv   s      rH   rN   rN      sC    		!A
1::a=+&AIIa!e$$k22 'rP   c                 .    | j                   }|t        |S rU   )is_irrationalr1   rW   s      rH   rN   rN      s    


C
{##JrP   c                     t        t        j                  |       |      }|r%t        t        j                  |       |      }|y | S |S rU   )r   r   realrq   )rE   rF   _real	_rationals       rH   rN   rN      sD    tk*E

4(+6	}rP   c                 l    | j                         d   j                  d      }|j                  dk7  r| S y )Nr2   r4   rp   evalf_precrD   s      rH   _RealPredicate_numberr      9     	A$$Q'Aww!|u rP   c                      yrK   rL   rM   s     rH   rN   rN           rP   c                      yrR   rL   rM   s     rH   rN   rN          rP   c                 .    | j                   }|t        |S rU   )is_realr1   rW   s      rH   rN   rN      s    
,,C
{##JrP   c                 h    | j                   rt        | |      S t        | |t        j                        S )zT
    * Real + Real              -> Real
    * Real + (Complex & !Real) -> !Real
    )r[   r   r3   r   r   rM   s     rH   rN   rN      s+     ~~$T;77T;77rP   c                     | j                   rt        | |      S d}| j                  D ]H  }t        t	        j
                  |      |      r#t        t	        j                  |      |      r|dz  }H y |S )zx
    * Real*Real               -> Real
    * Real*Imaginary          -> !Real
    * Imaginary*Imaginary     -> Real
    TN)r[   r   r^   r   r   r   	imaginary)rE   rF   resultrd   s       rH   rN   rN      sf     ~~$T;77Fyyqvvc{K(S!;/d]F  rP   c                    | j                   rt        | |      S | j                  t        k(  rWt	        t        j                  | j                  t        z  t        z        t        j                  | j                        z  |      S | j                  j                  t        k(  s3| j                  j                  r| j                  j                  t        k(  rt	        t        j                  | j                  j                        |      r*t	        t        j                  | j                        |      ry| j                  j                  t        z  t        z  }t	        t        j                  d|z        |      r=t	        t        j                  t        j                  |z  | j                  z        |      S yt	        t        j                  | j                        |      rXt	        t        j                  | j                        |      r/t	        t        j                   | j                        |      }|| S yt	        t        j                  | j                        |      r6t	        t        j                  t#        | j                              |      }||S t	        t        j                  | j                        |      rt	        t        j                  | j                        |      r| j                  j$                  r\t	        t        j&                  | j                  j(                        |      r)t	        t        j*                  | j                        |      S t	        t        j                  | j                        |      ryt	        t        j*                  | j                        |      ryt	        t        j,                  | j                        |      ryyyy)a  
    * Real**Integer              -> Real
    * Positive**Real             -> Real
    * Real**(Integer/Even)       -> Real if base is nonnegative
    * Real**(Integer/Odd)        -> Real
    * Imaginary**(Integer/Even)  -> Real
    * Imaginary**(Integer/Odd)   -> not Real
    * Imaginary**Real            -> ? since Real could be 0 (giving real)
                                    or 1 (giving imaginary)
    * b**Imaginary               -> Real if log(b) is imaginary and b != 0
                                    and exponent != integer multiple of
                                    I*pi/log(b)
    * Real**Real                 -> ? e.g. sqrt(-1) is imaginary and
                                    sqrt(2) is not
    Tr4   NF)r[   r   rs   r   r   r   r\   r$   r*   r   r   funcis_Powr   r
   NegativeOneoddr&   r_   ra   r`   positivenegative)rE   rF   rG   r   imlogs        rH   rN   rN     sz   " ~~$T;77yyA~IIdhhqjm$qvvdhh'77
 	
 yy~~!1!1diinn6Iq{{499==);71;;txx(+6
 IIMM!OBqyy1~{+qvvq}}a/$((:;[II
1;;tyy!;/qyy"K0aeeDHHo{3Cw
1;;txx +.AKKDII/= L
166$))k*qvvdhh-xx##txxzz*K81::dii0+>>QYYtxx(+6QZZ		*K8QZZ		*K8 9 . +rP   c                 ^    t        t        j                  | j                  d         |      ryy Nr   T)r   r   r   r^   rM   s     rH   rN   rN   D  s%    
166$))A,- .rP   c                     t        t        j                  | j                  t        z  t
        z        t        j                  | j                        z  |      S rU   )r   r   r\   r$   r*   r   r   rM   s     rH   rN   rN   I  s;    			$((1*R- 166$((#33[ rP   c                 Z    t        t        j                  | j                  d         |      S rf   )r   r   r   r^   rM   s     rH   rN   rN   O  s     qzz$))A,'55rP   c                 Z    t        t        j                  | j                  d         |      S rf   )r   r   real_elementsr^   rM   s     rH   rN   rN   S  s     qtyy|,k::rP   c                     t        t        j                  |       t        j                  |       z  t        j                  |       z  t        j
                  |       z  t        j                  |       z  |      S rU   )r   r   negative_infiniter   zeror   positive_infiniterM   s     rH   rN   rN   Z  sj    q""4(D!" D!" $$T*	+
  rP   c                      yrK   rL   rM   s     rH   rN   rN   c  rO   rP   c                 8    t        | |t        j                        S rU   )r3   r   extended_realrM   s     rH   rN   rN   g  s    T;@@rP   c                 b    t        | t              ry t        t        j                  |       |      S rU   )
isinstancer.   r   r   r   rM   s     rH   rN   rN   n  s$    $
#qvvd|[))rP   c                 \    | j                   rt        t        | |t        j                        S )zZ
    * Hermitian + Hermitian  -> Hermitian
    * Hermitian + !Hermitian -> !Hermitian
    )r[   r1   r3   r   	hermitianrM   s     rH   rN   rN   t  s$     ~~##T;<<rP   c                 :   | j                   rt        d}d}| j                  D ]u  }t        t	        j
                  |      |      r|dz  }n!t        t	        j                  |      |      s yt        t	        j                  |       |      sj|dz  }|dkD  su y |S )z
    As long as there is at most only one noncommutative term:

    * Hermitian*Hermitian         -> Hermitian
    * Hermitian*Antihermitian     -> !Hermitian
    * Antihermitian*Antihermitian -> Hermitian
    r   Tr2   Nr[   r1   r^   r   r   antihermitianr   commutativerE   rF   nccountr   rd   s        rH   rN   rN   ~  s     ~~##GFyyqs#[1d]FQ[[%{3c""K0qLG{  rP   c                 ^   | j                   rt        | j                  t        k(  r0t	        t        j                  | j                        |      ryt        t	        t        j                  | j                        |      r*t	        t        j                  | j                        |      ryt        )z+
    * Hermitian**Integer -> Hermitian
    T)	r[   r1   rs   r   r   r   r   r$   r\   rM   s     rH   rN   rN     ss    
 ~~##yyA~q{{488$k2##
1;;tyy!;/qyy"K0
rP   c                 h    t        t        j                  | j                  d         |      ryt        r   )r   r   r   r^   r1   rM   s     rH   rN   rN     s&    
1;;tyy|$k2
rP   c                 b    t        t        j                  | j                        |      ryt        rK   )r   r   r   r$   r1   rM   s     rH   rN   rN     s"    
1;;txx +.
rP   c                     | j                   \  }}d}t        |      D ]G  }t        ||      D ]6  }t        t        | ||f   t	        | ||f                     }|d }|dk(  s5  y I |t
        |S NTFshaperanger   r+   r,   r1   matrF   rowscolsret_valrG   jconds           rH   rN   rN     s~    JD$G4[q$AbQTIc!Q$i,@ABD|u}    ##NrP   c                      yrK   rL   rM   s     rH   rN   rN     r   rP   c                      yrR   rL   rM   s     rH   rN   rN     r   rP   c                 .    | j                   }|t        |S rU   )
is_complexr1   rW   s      rH   rN   rN     rY   rP   c                 8    t        | |t        j                        S rU   )r3   r   complexrM   s     rH   rN   rN     s    T;		::rP   c                 `    | j                   t        k(  ryt        | |t        j                        S rK   )rs   r   r3   r   r   rM   s     rH   rN   rN     s#    yyA~T;		::rP   c                 Z    t        t        j                  | j                  d         |      S rf   )r   r   complex_elementsr^   rM   s     rH   rN   rN     ri   rP   c                      y rU   rL   rM   s     rH   rN   rN     rO   rP   c                 l    | j                         d   j                  d      }|j                  dk7  r| S y )Nr   r4   r2   r   )rE   rF   rs      rH   _Imaginary_numberr     r   rP   c                      yrK   rL   rM   s     rH   rN   rN     rO   rP   c                 .    | j                   }|t        |S rU   )is_imaginaryr1   rW   s      rH   rN   rN     s    


C
{##JrP   c                 &   | j                   rt        | |      S d}| j                  D ]H  }t        t	        j
                  |      |      r#t        t	        j                  |      |      r|dz  }H y |dk(  ry|dt        | j                        fv ryy)zy
    * Imaginary + Imaginary -> Imaginary
    * Imaginary + Complex   -> ?
    * Imaginary + Real      -> !Imaginary
    r   r2   TFNr[   r   r^   r   r   r   r   len)rE   rF   realsrd   s       rH   rN   rN     s     ~~ {33Eyyq{{3-k*QJE  A:QDII'' (rP   c                    | j                   rt        | |      S d}d}| j                  D ]H  }t        t	        j
                  |      |      r|dz  }(t        t	        j                  |      |      rH y |t        | j                        k(  ry|S )zN
    * Real*Imaginary      -> Imaginary
    * Imaginary*Imaginary -> Real
    Fr   TNr   )rE   rF   r   r   rd   s        rH   rN   rN     s{     ~~ {33FEyyq{{3-d]FQVVC[+.	  C		N"rP   c                 b   | j                   rt        | |      S | j                  t        k(  rS| j                  t
        z  t        z  }t        t        j                  d|z        t        j                  |       z  |      S | j                  j                  t        k(  s3| j                  j                  r| j                  j                  t        k(  rt        t        j                  | j                  j                        |      rt        t        j                  | j                        |      ry| j                  j                  t
        z  t        z  }t        t        j                  d|z        |      r=t        t        j                  t        j                  |z  | j                  z        |      S t        t        j                  | j                        |      rWt        t        j                  | j                        |      r.t        t        j                  | j                        |      }||S yt        t        j                  | j                        |      r5t        t        j                  t!        | j                              |      }|yt        t        j"                  | j                        t        j"                  | j                        z  |      rt        t        j$                  | j                        |      ryt        t        j&                  | j                        |      }|s|S t        t        j                  | j                        |      ryt        t        j                  d| j                  z        |      }|r)t        t        j(                  | j                        |      S |S y)a  
    * Imaginary**Odd        -> Imaginary
    * Imaginary**Even       -> Real
    * b**Imaginary          -> !Imaginary if exponent is an integer
                               multiple of I*pi/log(b)
    * Imaginary**Real       -> ?
    * Positive**Real        -> Real
    * Negative**Integer     -> Real
    * Negative**(Integer/2) -> Imaginary
    * Negative**Real        -> not Imaginary if exponent is not Rational
    r4   FN)r[   r   rs   r   r$   r*   r   r   r   r\   r   r   r   r
   r   r   r&   r   r   rq   r   )rE   rF   arG   r   r   rathalfs           rH   rN   rN   +  sb    ~~ {33yyA~HHQJrM199QqS>QYYq\M1;??yy~~!1!1diinn6Iq{{499==);71;;txx(+6		a"A199QqS>;/1;;q(8488'CDkRR
1;;tyy!;/qyy"K0aeeDHHo{3C

1;;txx +.AKKDII/=
166$))qvvdhh//=qzz$))$k2ajj*K8C
199TXX&4199QtxxZ0+>qzz$))4kBB >rP   c                    t        t        j                  | j                  d         |      r.t        t        j                  | j                  d         |      ryy | j                  d   j
                  t        k(  s9| j                  d   j                  rG| j                  d   j                  t        k(  r'| j                  d   j                  t        t         fv ryt        t        j                  | j                  d         |      }|du ryy )Nr   FT)r   r   r   r^   r   r   r$   r   rs   r   r*   r   )rE   rF   r%   s      rH   rN   rN   c  s    
166$))A,-qzz$))A,'5
 yy|CDIIaL$7$7DIIaL<M<MQR<R99Q<A2w&	Q[[1&	4B	U{ rP   c                     | j                   t        z  t        z  }t        t	        j
                  d|z        t	        j
                  |       z  |      S )Nr4   )r$   r*   r   r   r   r\   )rE   rF   r   s      rH   rN   rN   t  s;    
2Aqyy1~1-{;;rP   c                 0    | j                         d   dk(   S )Nr2   r   )rp   rM   s     rH   rN   rN   y  s    !!#A&!+,,rP   c                      y rU   rL   rM   s     rH   rN   rN   }  rO   rP   c                     t        | t              ry t        t        j                  |       |      ryt        t        j
                  |       |      S rK   )r   r.   r   r   r   r   rM   s     rH   rN   rN     s:    $
#
166$<%q{{4 +..rP   c                 \    | j                   rt        t        | |t        j                        S )zr
    * Antihermitian + Antihermitian  -> Antihermitian
    * Antihermitian + !Antihermitian -> !Antihermitian
    )r[   r1   r3   r   r   rM   s     rH   rN   rN     s$     ~~##T;@@rP   c                 :   | j                   rt        d}d}| j                  D ]u  }t        t	        j
                  |      |      r|dz  }n!t        t	        j                  |      |      s yt        t	        j                  |       |      sj|dz  }|dkD  su y |S )z
    As long as there is at most only one noncommutative term:

    * Hermitian*Hermitian         -> !Antihermitian
    * Hermitian*Antihermitian     -> Antihermitian
    * Antihermitian*Antihermitian -> !Antihermitian
    r   FTr2   Nr   r   s        rH   rN   rN     s     ~~##GFyyqs#[1d]FQ[[%{3c""K0qLG{  rP   c                    | j                   rt        t        t        j                  | j
                        |      r0t        t        j                  | j                        |      ryt        t        t        j                  | j
                        |      rTt        t        j                  | j                        |      ryt        t        j                  | j                        |      ryt        )z
    * Hermitian**Integer  -> !Antihermitian
    * Antihermitian**Even -> !Antihermitian
    * Antihermitian**Odd  -> Antihermitian
    FT)r[   r1   r   r   r   rs   r\   r$   r   ra   r   rM   s     rH   rN   rN     s     ~~##
1;;tyy!;/qyy"K0   
Q__TYY'	5qvvdhh-txx+.
rP   c                     | j                   \  }}d}t        |      D ]H  }t        ||      D ]7  }t        t        | ||f   t	        | ||f                      }|d }|dk(  s6  y J |t
        |S r   r   r   s           rH   rN   rN     s    JD$G4[q$AbQTYs1a4y-A,ABCD|u}    ##NrP   c                      yrK   rL   rM   s     rH   rN   rN     r   rP   c                      yrR   rL   rM   s     rH   rN   rN     rS   rP   c                 8    t        | |t        j                        S rU   )r3   r   	algebraicrM   s     rH   rN   rN     s    T;<<rP   c                 R   | j                   t        k(  rTt        t        j                  | j
                        |      r*t        t        j                  | j
                         |      S y | j
                  j                  xr) t        t        j                  | j                         |      S rU   )rs   r   r   r   r   r$   rt   r_   rM   s     rH   rN   rN     sm    yyA~q{{488$k2		$((++[9988LCDII(>$LLrP   c                      | j                   dk7  S rf   )r`   rM   s     rH   rN   rN     s    66Q;rP   c                     | j                   d   }t        t        j                  |      |      r t        t        j                  |       |      S y rf   r^   r   r   r   rt   rv   s      rH   rN   rN     s=    		!A
1;;q>;'AIIaL=+.. (rP   c                     | j                   }t        t        j                  |      |      r t        t        j                  |       |      S y rU   )r$   r   r   r   rt   rv   s      rH   rN   rN     s9    A
1;;q>;'AIIaL=+.. (rP   c                 b    | j                   d   }t        t        j                  |      |      ryy r|   )r^   r   r   r   rv   s      rH   rN   rN     s)    		!A
1;;q>;' (rP   c                     | j                   d   }t        t        j                  |      |      r#t        t        j                  |dz
         |      S y r~   r   rv   s      rH   rN   rN      sC    		!A
1;;q>;'AIIa!e$$k22 (rP   N)O__doc__sympy.assumptionsr   r   
sympy.corer   r   r   r   r	   r
   sympy.core.numbersr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.core.logicr   sympy.functionsr   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   sympy.core.relationalr+   $sympy.functions.elementary.complexesr,   sympy.matricesr-   r.   r/   "sympy.matrices.expressions.matexprr0   sympy.multipledispatchr1   commonr3   predicates.setsr5   r6   r7   r8   r9   r:   r;   r<   r=   r>   rI   register_manyr@   rN   registerr   objectr   rL   rP   rH   <module>r      sT
   % 4 4C C C C C (      $ : 9 9 < 8 %0 0 0  W- .  k=("h(:<< 4  !  S); *; 3  6 35  5  ]EB> C> H% & E" # !  {M8b,.. D! " !  c*	< +	< C  !$ !  tS#s;/ </
 C / !/
 !  s+ ,
 !  s+3 ,3 d# $ e$ % S${BH ]H6FG H   8 8  & = =~ S#& '  
 6 6 [-?; @;  ' ( %$$X/?@ A %$$S#s3A 4A V$* %*
 S!= "= S! "0 S!  "  "!!#s+  , 
 S!  " 
 Z( )"  S#r=#v"c  *:; < 4  !  S); *; 3;  ;
  ]EB> C> 3   ]+ , T" # S! "0 S! "& S!5 "5n S! "  S!< "< "!!&,7- 8- S! " !  (/ )/ !  %A &A !  % &0 !  %  & $ !  , -" "!!/5+%'' "!!/4b "!!#s+= ,= S!M "M X& ' "!!$c3</ =/
 S!/ "/
 "!!$, -
 "!!$,3 -3rP   