ó
    ‰*£hñ  ã                   ór   • S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	J
r
  S SKJr  SSKJr   " S	 S
\	5      rg)é    )Úcheck_assumptions)Ú	fuzzy_and)Ú_sympify)Ú
MatrixKind)ÚSetÚSetKind)Ú
NumberKindé   )Ú
MatrixExprc                   ó^   • \ rS rSrSrSrS r\S 5       r\S 5       r	S r
\S 5       rS	 rS
rg)Ú	MatrixSeté
   a?  
MatrixSet represents the set of matrices with ``shape = (n, m)`` over the
given set.

Examples
========

>>> from sympy.matrices import MatrixSet
>>> from sympy import S, I, Matrix
>>> M = MatrixSet(2, 2, set=S.Reals)
>>> X = Matrix([[1, 2], [3, 4]])
>>> X in M
True
>>> X = Matrix([[1, 2], [I, 4]])
>>> X in M
False

Fc                 ó  • [        U5      [        U5      [        U5      p2nU R                  U5        U R                  U5        [        U[        5      (       d  [	        SR                  U5      5      e[        R                  " XX#5      $ )Nz {} should be an instance of Set.)r   Ú
_check_dimÚ
isinstancer   Ú	TypeErrorÚformatÚ__new__)ÚclsÚnÚmÚsets       Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/matrices/expressions/sets.pyr   ÚMatrixSet.__new__   sf   € Ü˜Q“K¤¨!£¬h°s«mˆcˆØ�‰�qÔØ�‰�qÔÜ˜#œs×#Ñ#ÜÐ>×EÑEÀcÓJÓKÐKÜ�{Š{˜3 1Ó*Ð*ó    c                 ó    • U R                   S S $ ©Né   ©Úargs©Úselfs    r   ÚshapeÚMatrixSet.shape'   s   € à�y‰y˜˜!ˆ}Ðr   c                 ó    • U R                   S   $ r   r   r!   s    r   r   ÚMatrixSet.set+   s   € à�y‰y˜‰|Ðr   c                 ó$  ^ • [        U[        5      (       d  [        SR                  U5      5      eUR                  T R                  :w  a2  [        S UR                  T R                  -    5       5      nU(       a  g g[        U 4S jU 5       5      $ )Nz'{} should be an instance of MatrixExpr.c              3   óL   #   • U  H  n[        U5      R                  v •  M     g 7f©N)r   Ú	is_Symbol)Ú.0Úxs     r   Ú	<genexpr>Ú&MatrixSet._contains.<locals>.<genexpr>3   s   é € ÐWÒ>V¸œx¨›{×4Ö4Ò>Vùs   ‚"$Fc              3   óZ   >#   • U  H   nTR                   R                  U5      v •  M"     g 7fr)   )r   Úcontains)r+   r,   r"   s     €r   r-   r.   7   s#   øé € Ð=²u°!˜Ÿ™×*Ñ*¨1×-Ð-²uùs   ƒ(+)r   r   r   r   r#   Úanyr   )r"   ÚotherÚare_symbolics   `  r   Ú	_containsÚMatrixSet._contains/   sn   ø€ Ü˜%¤×,Ñ,ÜÐE×LÑLÈUÓSÓTÐTØ�;‰;˜$Ÿ*™*Ó$ÜÑW¸e¿k¹kÈDÏJÉJÒ>VÓWÓWˆLÞØØÜÔ=±uÓ=Ó=Ð=r   c                 óˆ   • UR                   (       + =(       a    [        USSS9nUSL a  [        SR                  U5      5      eg)z2Helper function to check invalid matrix dimensionsT)ÚintegerÚnonnegativeFz?The dimension specification {} should be a nonnegative integer.N)Úis_Floatr   Ú
ValueErrorr   )r   ÚdimÚoks      r   r   ÚMatrixSet._check_dim9   sK   € ð —‘Ô÷ 1Ô"3Ø˜¨4ñ#1ˆà�Š;Üð)ß)/©°«ó6ð 6ð r   c                 ó2   • [        [        [        5      5      $ r)   )r   r   r	   r!   s    r   Ú_kindÚMatrixSet._kindC   s   € Ü”z¤*Ó-Ó.Ð.r   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úis_emptyr   Úpropertyr#   r   r4   Úclassmethodr   r?   Ú__static_attributes__rA   r   r   r   r   
   sY   † ñð$ €Hò+ð ñó ðð ñó ðò>ð ñ6ó ð6õ/r   r   N)Úsympy.core.assumptionsr   Úsympy.core.logicr   Úsympy.core.sympifyr   Úsympy.matrices.kindr   Úsympy.sets.setsr   r   Úsympy.core.kindr	   Úmatexprr   r   rA   r   r   Ú<module>rR      s&   ðÝ 4Ý &Ý 'Ý *ß (Ý &Ý ô:/�õ :/r   