Ë
    7^(h1W  ã            	       ó\  — d Z ddlmZ ddl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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	l!m"Z" dd
l#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 d„ Z7 e*jp                  e«      d„ «       Z9 e+jp                  e«      d„ «       Z9 e+jp                  e«      d„ «       Z9 e+jp                  e«      d„ «       Z9 e+jp                  e«      d„ «       Z9 e+jt                  ee«      d„ «       Z9 e+jt                  ee«      d„ «       Z9 e+jp                  e«      d„ «       Z9 e+jp                  e«      d„ «       Z9 e,jp                  e«      d„ «       Z9 e,jp                  e«      d„ «       Z9 e,jp                  e«      d„ «       Z9 e,jp                  e«      d„ «       Z9 e,jt                  ee«      d„ «       Z9 e,jp                  e«      d„ «       Z9 e,jp                  e«      d„ «       Z9 e,jp                  e«      d „ «       Z9 e,jp                  e«      d!„ «       Z9 e,jp                  e	«      d"„ «       Z9 e,jp                  e«      d#„ «       Z9 e,jp                  e«      d$„ «       Z9 e,jp                  e«      d%„ «       Z9 e-jp                  e«      d&„ «       Z9 e-jp                  e«      d'„ «       Z9 e-jp                  e«      d(„ «       Z9 e-jp                  e«      d)„ «       Z9 e-jp                  e«      d*„ «       Z9 e-jp                  e«      d+„ «       Z9 e-jt                  ee«      d,„ «       Z9 e-jp                  e«      d-„ «       Z9 e-jp                  e «      d.„ «       Z9 e.jp                  e«      d/„ «       Z9 e.jp                  e«      d0„ «       Z9 e.jp                  e«      d1„ «       Z9 e.jt                  ee«      d2„ «       Z9 e.jp                  e«      d3„ «       Z9 e.jt                  e"e«      d4„ «       Z9 e.jp                  e«      d5„ «       Z9 e.jp                  e «      d6„ «       Z9 e/jp                  e«      d7„ «       Z9 e/jp                  e«      d8„ «       Z9 e/jp                  e«      d9„ «       Z9 e/jp                  e«      d:„ «       Z9 e/jp                  e«      d;„ «       Z9 e/jt                  ee«      d<„ «       Z9 e/jp                  e«      d=„ «       Z9 e0jp                  e«      d>„ «       Z9 e0jp                  e«      d?„ «       Z9 e0jp                  e«      d@„ «       Z9 e0jp                  e«      dA„ «       Z9 e0jp                  e«      dB„ «       Z9 e0jp                  e«      dC„ «       Z9 e0jp                  e«      dD„ «       Z9 e0jt                  ee«      dE„ «       Z9 e0jp                  e«      dF„ «       Z9 e1jp                  e«      dG„ «       Z9 e1jp                  e«      dH„ «       Z9 e1jp                  e«      dI„ «       Z9 e1jp                  e«      dJ„ «       Z9 e1jt                  ee«      dK„ «       Z9 e1jp                  e«      dL„ «       Z9 e1jp                  e«      dM„ «       Z9 e1jp                  e«      dN„ «       Z9 e1jp                  e«      dO„ «       Z9 e1jp                  e «      dP„ «       Z9 e2jp                  e«      dQ„ «       Z9 e2jp                  e«      dR„ «       Z9 e2jp                  e«      dS„ «       Z9 e2jp                  e«      dT„ «       Z9 e2jt                  ee«      dU„ «       Z9 e2jp                  e«      dV„ «       Z9 e2jp                  e«      dW„ «       Z9 e2jp                  e«      dX„ «       Z9 e2jp                  e«      dY„ «       Z9 e2jp                  e «      dZ„ «       Z9d[„ Z; e3jp                  e«      d\„ «       Z9 e3jp                  e«      d]„ «       Z9 e3jp                  e«      d^„ «       Z9 e3jp                  e«      d_„ «       Z9 e3jp                  e«      d`„ «       Z9 e3jt                  ee«      da„ «       Z9 e3jp                  e«      db„ «       Z9 e3jt                  eeee«      dc„ «       Z9 e3jp                  e «      dd„ «       Z9de„ Z<df„ Z=dg„ Z> e4jt                  eeeee«      dh„ «       Z9 e4jp                  e«      di„ «       Z9 e4jt                  eee«      dj„ «       Z9 e4jp                  e«      dk„ «       Z9 e4jp                  e«      dl„ «       Z9 e4jp                  e«      dm„ «       Z9 e5jt                  ee eeee«      dn„ «       Z9 e5jp                  e«      do„ «       Z9 e5jp                  e«      dp„ «       Z9 e5jp                  e«      dq„ «       Z9 e5jp                  e«      dr„ «       Z9 e6jt                  ee eeeee«      ds„ «       Z9 e6jp                  e«      dt„ «       Z9 e6jp                  e«      du„ «       Z9 e6jp                  e«      dv„ «       Z9 e6jp                  e«      dw„ «       Z9 e6jp                  e"«      dx„ «       Z9yy)zzj
This module contains query handlers responsible for Matrices queries:
Square, Symmetric, Invertible etc.
é    )Ú	conjuncts)ÚQÚask)Útest_closed_group)Ú
MatrixBase)ÚBlockMatrixÚBlockDiagMatrixÚDeterminantÚ
DiagMatrixÚDiagonalMatrixÚHadamardProductÚIdentityÚInverseÚMatAddÚMatMulÚMatPowÚ
MatrixExprÚMatrixSliceÚMatrixSymbolÚ	OneMatrixÚTraceÚ	TransposeÚ
ZeroMatrix)Úreblock_2x2)ÚFactorization)ÚDFT)Ú	fuzzy_and)Úsift)ÚBasicé   )ÚSquarePredicateÚSymmetricPredicateÚInvertiblePredicateÚOrthogonalPredicateÚUnitaryPredicateÚFullRankPredicateÚPositiveDefinitePredicateÚUpperTriangularPredicateÚLowerTriangularPredicateÚDiagonalPredicateÚIntegerElementsPredicateÚRealElementsPredicateÚComplexElementsPredicatec                 ó"   — | |j                   v ryy ©NT)Ú
predicates©Ú	predicateÚexprÚassumptionss      úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/assumptions/handlers/matrices.pyÚ_Factorizationr6      s   € Ø�D—O‘OÑ#Øð $ó    c                 ó@   — | j                   d   | j                   d   k(  S ©Nr   é   ©Úshape©r3   r4   s     r5   Ú_r>   #   s   € à�:‰:�a‰=˜DŸJ™J q™MÑ)Ð)r7   c           	      óÄ  ‡— | j                  «       \  }}t        ˆfd„|j                  D «       «      ryt        t	        j
                  | «      ‰«      ryt        |j                  «      dk\  ru|j                  d   |j                  d   j                  k(  rKt        |j                  «      dk(  ryt        t	        j                  t        |j                  dd Ž «      ‰«      S y y )Nc              3   ó\   •K  — | ]#  }t        t        j                  |«      ‰«      –— Œ% y ­w©N©r   r   Ú	symmetric©Ú.0Úargr4   s     €r5   ú	<genexpr>z_.<locals>.<genexpr>-   s!   øè ø€ Ò
C°#Œ3Œq�{‰{˜3Ó ×-Ñ
Cùó   ƒ),Tr    r   éÿÿÿÿr:   )
Úas_coeff_mmulÚallÚargsr   r   ÚdiagonalÚlenÚTrC   r   ©r3   r4   ÚfactorÚmmuls    `  r5   r>   r>   *   s­   ø€ à×%Ñ%Ó'�L€FˆDÜ
Ó
C¸¿¹Ô
CÔCØô Œ1�:‰:�dÓ˜[Ô)ØÜ
ˆ4�9‰9ƒ~˜Ò˜tŸy™y¨™|¨t¯y©y¸©}¯©Ò>Üˆt�y‰y‹>˜QÒØÜ”1—;‘;œv t§y¡y°°2 Ð7Ó8¸+ÓFÐFð  ?Ðr7   c                 ó0  — | j                   \  }}t        t        j                  |«      |«      }|sy t        t        j                  |«       |«      }|s$|dk(  r>t        t        j
                  |«      |«      rt        t        j                  |«      |«      S y ©NF)rL   r   r   ÚintegerÚnegativeÚ
invertiblerC   ©r3   r4   ÚbaseÚexpÚint_expÚnon_negatives         r5   r>   r>   8   sx   € ð —	‘	�I€Dˆ#Ü”!—)‘)˜C“. +Ó.€GÙØÜœŸ
™
 3›Ð'¨Ó5€LÙ˜¨Ò-Ü¤§¡¨TÓ 2°KÔ@Ü”1—;‘;˜tÓ$ kÓ2Ð2Ør7   c                 ó@   ‡— t        ˆfd„| j                  D «       «      S )Nc              3   ó\   •K  — | ]#  }t        t        j                  |«      ‰«      –— Œ% y ­wrA   rB   rD   s     €r5   rG   z_.<locals>.<genexpr>G   s!   øè ø€ ÒG°cŒs”1—;‘;˜sÓ# [×1ÑGùrH   ©rK   rL   r=   s    `r5   r>   r>   E   s   ø€ äÓG¸T¿Y¹YÔGÓGÐGr7   c                 ó    — | j                   syt        t        j                  | «      |«      ryt        j                  | «      t        |«      v ryy ©NFT)Ú	is_squarer   r   rM   rC   r   r=   s     r5   r>   r>   I   sB   € à�>Š>Øô Œ1�:‰:�dÓ˜[Ô)ØÜ‡{�{�4ÓœI kÓ2Ñ2Øð 3r7   c                 ó@   — t        t        j                  | «      |«      S rA   )r   r   Úsquarer=   s     r5   r>   r>   T   s   € äŒq�x‰x˜‹~˜{Ó+Ð+r7   c                 óT   — t        t        j                  | j                  «      |«      S rA   )r   r   rC   rF   r=   s     r5   r>   r>   X   s   € äŒq�{‰{˜4Ÿ8™8Ó$ kÓ2Ð2r7   c                 ó®   — t        t        j                  | «      |«      ry| j                  sy t        t        j                  | j
                  «      |«      S r/   )r   r   rM   Úon_diagrC   Úparentr=   s     r5   r>   r>   \   s>   € ô Œ1�:‰:�dÓ˜[Ô)ØØ�<Š<Øä”1—;‘;˜tŸ{™{Ó+¨[Ó9Ð9r7   c                  ó   — yr/   © r=   s     r5   r>   r>   g   ó   € àr7   c                 ó¨   ‡— | j                  «       \  }}t        ˆfd„|j                  D «       «      ryt        ˆfd„|j                  D «       «      ryy )Nc              3   ó\   •K  — | ]#  }t        t        j                  |«      ‰«      –— Œ% y ­wrA   ©r   r   rW   rD   s     €r5   rG   z_.<locals>.<genexpr>q   s!   øè ø€ Ò
D°3Œ3Œq�|‰|˜CÓ  +×.Ñ
DùrH   Tc              3   ó`   •K  — | ]%  }t        t        j                  |«      ‰«      d u –— Œ' y­w©FNrn   rD   s     €r5   rG   z_.<locals>.<genexpr>s   ó.   øè ø€ ò "Øô Œq�|‰|˜CÓ  +Ó.°%Ô7ñ "ùó   ƒ+.F©rJ   rK   rL   ÚanyrP   s    `  r5   r>   r>   n   sK   ø€ à×%Ñ%Ó'�L€FˆDÜ
Ó
D¸$¿)¹)Ô
DÔDØÜ
ó "Ø—y‘yô"ô "àð"r7   c                 óÂ   — | j                   \  }}t        t        j                  |«      |«      }|sy |j                  dk(  rt        t        j
                  |«      |«      S y rT   )rL   r   r   rU   Úis_negativerW   ©r3   r4   rY   rZ   r[   s        r5   r>   r>   w   sP   € ð —	‘	�I€Dˆ#Ü”!—)‘)˜C“. +Ó.€GÙØØ
‡�˜%ÒÜ”1—<‘< Ó% {Ó3Ð3Ør7   c                  ó   — y rA   rj   r=   s     r5   r>   r>   ‚   rk   r7   c                 ó`   — | j                   syt        j                  | «      t        |«      v ryy ra   )rb   r   rW   r   r=   s     r5   r>   r>   †   s*   € à�>Š>ØÜ‡|�|�DÓœY {Ó3Ñ3Øð 4r7   c                  ó   — yr/   rj   r=   s     r5   r>   r>   �   rk   r7   c                  ó   — yrT   rj   r=   s     r5   r>   r>   ‘   ó   € àr7   c                 óN   — | j                   d   dk(  xr | j                   d   dk(  S r9   r;   r=   s     r5   r>   r>   •   ó'   € à�:‰:�a‰=˜AÑÒ4 $§*¡*¨Q¡-°1Ñ"4Ð4r7   c                 óT   — t        t        j                  | j                  «      |«      S rA   )r   r   rW   rF   r=   s     r5   r>   r>   ™   ó   € äŒq�|‰|˜DŸH™HÓ% {Ó3Ð3r7   c                 ón   — | j                   sy t        t        j                  | j                  «      |«      S rA   )rg   r   r   rW   rh   r=   s     r5   r>   r>   �   ó&   € à�<Š<Øä”1—<‘< §¡Ó,¨kÓ:Ð:r7   c                 óV   — | j                   sy| j                  «       | j                  k(  S rT   )rb   ÚrankÚrowsr=   s     r5   r>   r>   ¤   s!   € à�>Š>ØØ�9‰9‹;˜$Ÿ)™)Ñ#Ð#r7   c                 ó   — | j                   syy rT   )rb   r=   s     r5   r>   r>   ª   s   € à�>Š>ØØr7   c                 óÐ  — | j                   sy| j                  dk(  r,t        t        j                  | j
                  d   «      |«      S t        | «      } | j                  dk(  �rƒ| j
                  j                  «       \  \  }}\  }}t        t        j                  |«      |«      dk(  r6t        t        j                  |||j                  z  |z  z
  «      |«      }|�|S t        t        j                  |«      |«      dk(  r6t        t        j                  |||j                  z  |z  z
  «      |«      }|�|S t        t        j                  |«      |«      dk(  r6t        t        j                  |||j                  z  |z  z
  «      |«      }|�|S t        t        j                  |«      |«      dk(  r6t        t        j                  |||j                  z  |z  z
  «      |«      }|�|S y )NF©r:   r:   ©r   r   )r    r    T)	rb   Ú
blockshaper   r   rW   Úblocksr   ÚtolistÚI)r3   r4   ÚAÚBÚCÚDrW   s          r5   r>   r>   °   s�  € à�>Š>ØØ‡�˜&Ò Ü”1—<‘< §¡¨DÑ 1Ó2°KÓ@Ð@Ü�tÓ€DØ‡�˜&Ó ØŸ;™;×-Ñ-Ó/Ñ‰ˆ!ˆQ‘�!�QÜŒq�|‰|˜A‹ Ó,°Ò4ÜœQŸ\™\¨!¨a°!·#±#©g¸©k©/Ó:¸KÓHˆJØÐ%Ø!Ð!ÜŒq�|‰|˜A‹ Ó,°Ò4ÜœQŸ\™\¨!¨a°!·#±#©g¸©k©/Ó:¸KÓHˆJØÐ%Ø!Ð!ÜŒq�|‰|˜A‹ Ó,°Ò4ÜœQŸ\™\¨!¨a°!·#±#©g¸©k©/Ó:¸KÓHˆJØÐ%Ø!Ð!ÜŒq�|‰|˜A‹ Ó,°Ò4ÜœQŸ\™\¨!¨a°!·#±#©g¸©k©/Ó:¸KÓHˆJØÐ%Ø!Ð!Ør7   c           
      óÀ   — | j                   | j                  k7  ry t        | j                  D �cg c]!  }t	        t        j                  |«      |«      ‘Œ# c}«      S c c}w rA   )ÚrowblocksizesÚcolblocksizesr   Údiagr   r   rW   )r3   r4   Úas      r5   r>   r>   Ë   sE   € à×Ñ˜T×/Ñ/Ò/ØÜÀÇÁÖK¸A”cœ!Ÿ,™, q›/¨;Õ7ÒKÓLÐLùÒKs   ®&Ac                 ó²   ‡— | j                  «       \  }}t        ˆfd„|j                  D «       «      r|dk(  ryt        ˆfd„|j                  D «       «      ryy )Nc              3   ó\   •K  — | ]#  }t        t        j                  |«      ‰«      –— Œ% y ­wrA   )r   r   Ú
orthogonalrD   s     €r5   rG   z_.<locals>.<genexpr>×   s!   øè ø€ ÒE°CŒC”—‘˜SÓ! ;×/ÑEùrH   r:   Tc              3   ó`   •K  — | ]%  }t        t        j                  |«      ‰«      d u –— Œ' y­wrp   rn   rD   s     €r5   rG   z_.<locals>.<genexpr>Ú   rq   rr   Frs   rP   s    `  r5   r>   r>   Ô   sR   ø€ à×%Ñ%Ó'�L€FˆDÜÓE¸4¿9¹9ÔEÔEØ�aŠKØÜ
ó "Ø—y‘yô"ô "àð"r7   c                 ó¢   — | j                   \  }}t        t        j                  |«      |«      }|rt        t        j                  |«      |«      S y rA   )rL   r   r   rU   r™   rw   s        r5   r>   r>   Þ   sA   € ð —	‘	�I€Dˆ#Ü”!—)‘)˜C“. +Ó.€GÙÜ”1—<‘< Ó% {Ó3Ð3Ør7   c                 ó�   — t        | j                  «      dk(  r.t        t        j                  | j                  d   «      |«      ryy y )Nr:   r   T)rN   rL   r   r   r™   r=   s     r5   r>   r>   ç   s:   € äˆD�I‰I‹˜!ÒÜ”—‘˜TŸY™Y q™\Ó*¨KÔ8Øð 9ð 	r7   c                 ó¢   — | j                   r!t        t        j                  | «      |«      du ryt        j                  | «      t        |«      v ryy ra   )rb   r   r   rW   r™   r   r=   s     r5   r>   r>   í   sB   € à�NŠNÜœŸ™ TÓ*¨KÓ8¸EÑAØÜ‡|�|�DÓœY {Ó3Ñ3Øð 4r7   c                  ó   — yr/   rj   r=   s     r5   r>   r>   õ   rk   r7   c                  ó   — yrT   rj   r=   s     r5   r>   r>   ù   r|   r7   c                 óT   — t        t        j                  | j                  «      |«      S rA   )r   r   r™   rF   r=   s     r5   r>   r>   ý   r€   r7   c                 ón   — | j                   sy t        t        j                  | j                  «      |«      S rA   )rg   r   r   r™   rh   r=   s     r5   r>   r>     r‚   r7   c                 ó8   — t        t        j                  | |«      S rA   )r6   r   r™   r=   s     r5   r>   r>     s   € äœ!Ÿ,™,¨¨kÓ:Ð:r7   c                 óÄ   ‡— | j                  «       \  }}t        ˆfd„|j                  D «       «      rt        |«      dk(  ryt	        ˆfd„|j                  D «       «      ryy )Nc              3   ó\   •K  — | ]#  }t        t        j                  |«      ‰«      –— Œ% y ­wrA   )r   r   ÚunitaryrD   s     €r5   rG   z_.<locals>.<genexpr>  s    øè ø€ ÒB°ŒC”—	‘	˜#“ ×,ÑBùrH   r:   Tc              3   ó`   •K  — | ]%  }t        t        j                  |«      ‰«      d u –— Œ' y­wrp   rn   rD   s     €r5   rG   z_.<locals>.<genexpr>  rq   rr   F)rJ   rK   rL   Úabsrt   rP   s    `  r5   r>   r>     sW   ø€ à×%Ñ%Ó'�L€FˆDÜÓB¸¿	¹	ÔBÔBÜ�‹K˜1ÒØÜ
ó "Ø—y‘yô"ô "àð"r7   c                 ó¢   — | j                   \  }}t        t        j                  |«      |«      }|rt        t        j                  |«      |«      S y rA   )rL   r   r   rU   r¥   rw   s        r5   r>   r>     s@   € ð —	‘	�I€Dˆ#Ü”!—)‘)˜C“. +Ó.€GÙÜ”1—9‘9˜T“? KÓ0Ð0Ør7   c                 ó¢   — | j                   r!t        t        j                  | «      |«      du ryt        j                  | «      t        |«      v ryy ra   )rb   r   r   rW   r¥   r   r=   s     r5   r>   r>   "  sA   € à�NŠNÜœŸ™ TÓ*¨KÓ8¸EÑAØÜ‡y�y�ƒœ) KÓ0Ñ0Øð 1r7   c                 óT   — t        t        j                  | j                  «      |«      S rA   )r   r   r¥   rF   r=   s     r5   r>   r>   *  s   € äŒq�y‰y˜Ÿ™Ó" KÓ0Ð0r7   c                 ón   — | j                   sy t        t        j                  | j                  «      |«      S rA   )rg   r   r   r¥   rh   r=   s     r5   r>   r>   .  s&   € à�<Š<Øä”1—9‘9˜TŸ[™[Ó)¨;Ó7Ð7r7   c                  ó   — yr/   rj   r=   s     r5   r>   r>   5  rk   r7   c                  ó   — yrT   rj   r=   s     r5   r>   r>   9  r|   r7   c                 ó8   — t        t        j                  | |«      S rA   )r6   r   r¥   r=   s     r5   r>   r>   =  s   € äœ!Ÿ)™) T¨;Ó7Ð7r7   c                 óD   ‡— t        ˆfd„| j                  D «       «      ryy )Nc              3   ó\   •K  — | ]#  }t        t        j                  |«      ‰«      –— Œ% y ­wrA   )r   r   ÚfullrankrD   s     €r5   rG   z_.<locals>.<genexpr>F  ó    øè ø€ Ò
B°Œ3Œq�z‰z˜#‹ ×,Ñ
BùrH   Tr_   r=   s    `r5   r>   r>   D  ó   ø€ ä
Ó
B¸¿	¹	Ô
BÔBØð Cr7   c                 óâ   — | j                   \  }}t        t        j                  |«      |«      }|r?t        t        j                  |«       |«      rt        t        j
                  |«      |«      S y rA   )rL   r   r   rU   rV   r±   rw   s        r5   r>   r>   I  sU   € ð —	‘	�I€Dˆ#Ü”!—)‘)˜C“. +Ó.€GÙ”3œŸ
™
 3›Ð'¨Ô5Ü”1—:‘:˜dÓ# [Ó1Ð1Ør7   c                  ó   — yr/   rj   r=   s     r5   r>   r>   R  rk   r7   c                  ó   — yrT   rj   r=   s     r5   r>   r>   V  r|   r7   c                 óN   — | j                   d   dk(  xr | j                   d   dk(  S r9   r;   r=   s     r5   r>   r>   Z  r~   r7   c                 óT   — t        t        j                  | j                  «      |«      S rA   )r   r   r±   rF   r=   s     r5   r>   r>   ^  ó   € äŒq�z‰z˜$Ÿ(™(Ó# [Ó1Ð1r7   c                 óX   — t        t        j                  | j                  «      |«      ryy r/   )r   r   r™   rh   r=   s     r5   r>   r>   b  s!   € ä
Œ1�<‰<˜Ÿ™Ó$ kÔ2Øð 3r7   c           	      ó¶  ‡— | j                  «       \  }}t        ˆfd„|j                  D «       «      r|dkD  ryt        |j                  «      dk\  r‰|j                  d   |j                  d   j                  k(  r_t        t        j                  |j                  d   «      ‰«      r2t        t        j                  t        |j                  dd Ž «      ‰«      S y y y )Nc              3   ó\   •K  — | ]#  }t        t        j                  |«      ‰«      –— Œ% y ­wrA   ©r   r   Úpositive_definiterD   s     €r5   rG   z_.<locals>.<genexpr>m  s+   øè ø€ ò "Øô ”×#Ñ# CÓ(¨+×6ñ "ùrH   r   Tr    rI   r:   )
rJ   rK   rL   rN   rO   r   r   r±   r¾   r   rP   s    `  r5   r>   r>   j  s½   ø€ à×%Ñ%Ó'�L€FˆDÜó "Ø—y‘yô"ô 	"Ø&,¨q¢jØÜˆD�I‰I‹˜!ÒØ—	‘	˜!‘ §	¡	¨"¡§¡Ò/Ü”A—J‘J˜tŸy™y¨™|Ó,¨kÔ:Ü”1×&Ñ&Ü�D—I‘I˜a �OÐ$ó&Ø'2ó4ð 	4ð ;ð 0ð 	r7   c                 ó^   — t        t        j                  | j                  d   «      |«      ryy )Nr   T)r   r   r¾   rL   r=   s     r5   r>   r>   v  s)   € ô Œ1×Ñ˜tŸy™y¨™|Ó,¨kÔ:Øð ;r7   c                 óD   ‡— t        ˆfd„| j                  D «       «      ryy )Nc              3   ó\   •K  — | ]#  }t        t        j                  |«      ‰«      –— Œ% y ­wrA   r½   rD   s     €r5   rG   z_.<locals>.<genexpr>~  s+   øè ø€ ò "Øô Œq×"Ñ" 3Ó'¨×5ñ "ùrH   Tr_   r=   s    `r5   r>   r>   |  s$   ø€ ä
ó "Ø—y‘yô"ô "àð"r7   c                 ó`   — | j                   syt        j                  | «      t        |«      v ryy ra   )rb   r   r¾   r   r=   s     r5   r>   r>   ‚  s,   € à�>Š>ØÜ×Ñ˜4Ó ¤I¨kÓ$:Ñ:Øð ;r7   c                  ó   — yr/   rj   r=   s     r5   r>   r>   ‰  rk   r7   c                  ó   — yrT   rj   r=   s     r5   r>   r>   �  r|   r7   c                 óN   — | j                   d   dk(  xr | j                   d   dk(  S r9   r;   r=   s     r5   r>   r>   ‘  r~   r7   c                 óT   — t        t        j                  | j                  «      |«      S rA   )r   r   r¾   rF   r=   s     r5   r>   r>   •  s   € äŒq×"Ñ" 4§8¡8Ó,¨kÓ:Ð:r7   c                 ón   — | j                   sy t        t        j                  | j                  «      |«      S rA   )rg   r   r   r¾   rh   r=   s     r5   r>   r>   ™  s(   € à�<Š<Øä”1×&Ñ& t§{¡{Ó3°[ÓAÐAr7   c                 óV   ‡— | j                  «       \  }}t        ˆfd„|D «       «      ryy )Nc              3   ó\   •K  — | ]#  }t        t        j                  |«      ‰«      –— Œ% y ­wrA   ©r   r   Úupper_triangular©rE   Úmr4   s     €r5   rG   z_.<locals>.<genexpr>¦  ó#   øè ø€ Ò
E°qŒ3Œq×!Ñ! !Ó$ k×2Ñ
EùrH   T©Úas_coeff_matricesrK   ©r3   r4   rQ   Úmatricess    `  r5   r>   r>   £  ó-   ø€ à×-Ñ-Ó/Ñ€FˆHÜ
Ó
E¸HÔ
EÔEØð Fr7   c                 óD   ‡— t        ˆfd„| j                  D «       «      ryy )Nc              3   ó\   •K  — | ]#  }t        t        j                  |«      ‰«      –— Œ% y ­wrA   rÊ   rD   s     €r5   rG   z_.<locals>.<genexpr>«  ó#   øè ø€ Ò
J¸Œ3Œq×!Ñ! #Ó&¨×4Ñ
JùrH   Tr_   r=   s    `r5   r>   r>   ©  ó   ø€ ä
Ó
JÀÇ	Á	Ô
JÔJØð Kr7   c                 ó0  — | j                   \  }}t        t        j                  |«      |«      }|sy t        t        j                  |«       |«      }|s$|dk(  r>t        t        j
                  |«      |«      rt        t        j                  |«      |«      S y rT   )rL   r   r   rU   rV   rW   rË   rX   s         r5   r>   r>   ®  óz   € ð —	‘	�I€Dˆ#Ü”!—)‘)˜C“. +Ó.€GÙØÜœŸ
™
 3›Ð'¨Ó5€LÙ˜¨Ò-Ü¤§¡¨TÓ 2°KÔ@Ü”1×%Ñ% dÓ+¨[Ó9Ð9Ør7   c                 óF   — t        j                  | «      t        |«      v ryy r/   )r   rË   r   r=   s     r5   r>   r>   »  ó"   € ä×Ñ˜$Ó¤9¨[Ó#9Ñ9Øð :r7   c                  ó   — yr/   rj   r=   s     r5   r>   r>   À  rk   r7   c                 óN   — | j                   d   dk(  xr | j                   d   dk(  S r9   r;   r=   s     r5   r>   r>   Ä  r~   r7   c                 óT   — t        t        j                  | j                  «      |«      S rA   ©r   r   Úlower_triangularrF   r=   s     r5   r>   r>   È  ó   € äŒq×!Ñ! $§(¡(Ó+¨[Ó9Ð9r7   c                 óT   — t        t        j                  | j                  «      |«      S rA   ©r   r   rË   rF   r=   s     r5   r>   r>   Ì  rá   r7   c                 ón   — | j                   sy t        t        j                  | j                  «      |«      S rA   )rg   r   r   rË   rh   r=   s     r5   r>   r>   Ð  ó(   € à�<Š<Øä”1×%Ñ% d§k¡kÓ2°KÓ@Ð@r7   c                 ó8   — t        t        j                  | |«      S rA   )r6   r   rË   r=   s     r5   r>   r>   ×  ó   € äœ!×,Ñ,¨d°KÓ@Ð@r7   c                 óV   ‡— | j                  «       \  }}t        ˆfd„|D «       «      ryy )Nc              3   ó\   •K  — | ]#  }t        t        j                  |«      ‰«      –— Œ% y ­wrA   ©r   r   rà   rÌ   s     €r5   rG   z_.<locals>.<genexpr>à  rÎ   rH   TrÏ   rÑ   s    `  r5   r>   r>   Ý  rÓ   r7   c                 óD   ‡— t        ˆfd„| j                  D «       «      ryy )Nc              3   ó\   •K  — | ]#  }t        t        j                  |«      ‰«      –— Œ% y ­wrA   rê   rD   s     €r5   rG   z_.<locals>.<genexpr>å  rÖ   rH   Tr_   r=   s    `r5   r>   r>   ã  r×   r7   c                 ó0  — | j                   \  }}t        t        j                  |«      |«      }|sy t        t        j                  |«       |«      }|s$|dk(  r>t        t        j
                  |«      |«      rt        t        j                  |«      |«      S y rT   )rL   r   r   rU   rV   rW   rà   rX   s         r5   r>   r>   è  rÙ   r7   c                 óF   — t        j                  | «      t        |«      v ryy r/   )r   rà   r   r=   s     r5   r>   r>   õ  rÛ   r7   c                  ó   — yr/   rj   r=   s     r5   r>   r>   ú  rk   r7   c                 óN   — | j                   d   dk(  xr | j                   d   dk(  S r9   r;   r=   s     r5   r>   r>   þ  r~   r7   c                 óT   — t        t        j                  | j                  «      |«      S rA   rã   r=   s     r5   r>   r>     rá   r7   c                 óT   — t        t        j                  | j                  «      |«      S rA   rß   r=   s     r5   r>   r>     rá   r7   c                 ón   — | j                   sy t        t        j                  | j                  «      |«      S rA   )rg   r   r   rà   rh   r=   s     r5   r>   r>   
  rå   r7   c                 ó8   — t        t        j                  | |«      S rA   )r6   r   rà   r=   s     r5   r>   r>     rç   r7   c                 ó   — | j                   dv S )N)r‰   rˆ   r;   )r3   s    r5   Ú_is_empty_or_1x1rö     s   € Ø�:‰:Ð)Ð)Ð)r7   c                 ón   ‡— t        | «      ry| j                  «       \  }}t        ˆfd„|D «       «      ryy )NTc              3   ó\   •K  — | ]#  }t        t        j                  |«      ‰«      –— Œ% y ­wrA   ©r   r   rM   rÌ   s     €r5   rG   z_.<locals>.<genexpr>   s    øè ø€ Ò
=¨qŒ3Œq�z‰z˜!‹}˜k×*Ñ
=ùrH   )rö   rÐ   rK   rÑ   s    `  r5   r>   r>     s7   ø€ ä˜ÔØØ×-Ñ-Ó/Ñ€FˆHÜ
Ó
=°HÔ
=Ô=Øð >r7   c                 ó0  — | j                   \  }}t        t        j                  |«      |«      }|sy t        t        j                  |«       |«      }|s$|dk(  r>t        t        j
                  |«      |«      rt        t        j                  |«      |«      S y rT   )rL   r   r   rU   rV   rW   rM   rX   s         r5   r>   r>   #  sx   € ð —	‘	�I€Dˆ#Ü”!—)‘)˜C“. +Ó.€GÙØÜœŸ
™
 3›Ð'¨Ó5€LÙ˜¨Ò-Ü¤§¡¨TÓ 2°KÔ@Ü”1—:‘:˜dÓ# [Ó1Ð1Ør7   c                 óD   ‡— t        ˆfd„| j                  D «       «      ryy )Nc              3   ó\   •K  — | ]#  }t        t        j                  |«      ‰«      –— Œ% y ­wrA   rù   rD   s     €r5   rG   z_.<locals>.<genexpr>2  r²   rH   Tr_   r=   s    `r5   r>   r>   0  r³   r7   c                 ó^   — t        | «      ryt        j                  | «      t        |«      v ryy r/   )rö   r   rM   r   r=   s     r5   r>   r>   5  s+   € ä˜ÔØÜ‡z�z�$Óœ9 [Ó1Ñ1Øð 2r7   c                 óN   — | j                   d   dk(  xr | j                   d   dk(  S r9   r;   r=   s     r5   r>   r>   <  r~   r7   c                 óT   — t        t        j                  | j                  «      |«      S rA   )r   r   rM   rF   r=   s     r5   r>   r>   @  r¹   r7   c                 ó†   — t        | «      ry| j                  sy t        t        j                  | j
                  «      |«      S r/   )rö   rg   r   r   rM   rh   r=   s     r5   r>   r>   D  s1   € ä˜ÔØØ�<Š<Øä”1—:‘:˜dŸk™kÓ*¨KÓ8Ð8r7   c                  ó   — yr/   rj   r=   s     r5   r>   r>   M  rk   r7   c                 ó8   — t        t        j                  | |«      S rA   )r6   r   rM   r=   s     r5   r>   r>   Q  s   € äœ!Ÿ*™* d¨KÓ8Ð8r7   c                 óD   ‡ ‡— t        ˆˆ fd„|j                  D «       «      S )z Block Matrix elements. c              3   óB   •K  — | ]  }t         ‰|«      ‰«      –— Œ y ­wrA   )r   )rE   Úbr4   r2   s     €€r5   rG   zBM_elements.<locals>.<genexpr>Z  s   øè ø€ ÒC°!Œs‘9˜Q“< ×-ÑCùs   ƒ)rK   r‹   r1   s   ` `r5   ÚBM_elementsr  X  s   ù€ äÔC°t·{±{ÔCÓCÐCr7   c                 ó:   — t         | |j                  «      |«      S )z Matrix Slice elements. )r   rh   r1   s      r5   ÚMS_elementsr  \  s   € ä‰y˜Ÿ™Ó% {Ó3Ð3r7   c                 ó¢   — t        |j                  d„ «      }|d   |d   }}t        t        t	        |Ž ||«      t        t	        |Ž || «      g«      S )Nc                 ó"   — t        | t        «      S rA   )Ú
isinstancer   )Úxs    r5   ú<lambda>z!MatMul_elements.<locals>.<lambda>a  s   € ¤*¨Q´
Ó";€ r7   FT)r   rL   r   r   r   )Úmatrix_predicateÚscalar_predicater3   r4   ÚdÚfactorsrÒ   s          r5   ÚMatMul_elementsr  `  s\   € ÜˆT�Y‰YÑ;Ó<€AØ˜%™ ! D¡'ˆX€GÜÜœ% ˜/¨;Ð8HÓIÜœ% Ð*¨KÐ9IÓJðLó Mð Mr7   c                 ó8   — t        | |t        j                  «      S rA   )r   r   Úinteger_elementsr=   s     r5   r>   r>   h  ó   € ô ˜T ;´×0BÑ0BÓCÐCr7   c                 óÂ   — | j                   \  }}t        t        j                  |«      |«      }|sy |j                  dk(  rt        t        j
                  |«      |«      S y rT   )rL   r   r   rU   rv   r  rw   s        r5   r>   r>   m  sR   € ð —	‘	�I€Dˆ#Ü”!—)‘)˜C“. +Ó.€GÙØØ
‡�˜%ÒÜ”1×%Ñ% dÓ+¨[Ó9Ð9Ør7   c                  ó   — yr/   rj   r=   s     r5   r>   r>   x  rk   r7   c                 óV   — t        t        j                  t        j                  | |«      S rA   )r  r   r  rU   r=   s     r5   r>   r>   |  ó   € äœ1×-Ñ-¬q¯y©y¸$ÀÓLÐLr7   c                 ó8   — t        t        j                  | |«      S rA   )r  r   r  r=   s     r5   r>   r>   €  ó   € ä”q×)Ñ)¨4°Ó=Ð=r7   c                 ó8   — t        t        j                  | |«      S rA   )r  r   r  r=   s     r5   r>   r>   „  r  r7   c                 ó8   — t        | |t        j                  «      S rA   )r   r   Úreal_elementsr=   s     r5   r>   r>   ‹  s   € ô ˜T ;´·±Ó@Ð@r7   c                 ó0  — | j                   \  }}t        t        j                  |«      |«      }|sy t        t        j                  |«       |«      }|s$|dk(  r>t        t        j
                  |«      |«      rt        t        j                  |«      |«      S y rT   )rL   r   r   rU   rV   rW   r  rX   s         r5   r>   r>   �  sx   € ð —	‘	�I€Dˆ#Ü”!—)‘)˜C“. +Ó.€GÙØÜœŸ
™
 3›Ð'¨Ó5€LÙ˜¨Ò-Ü¤§¡¨TÓ 2°KÔ@Ü”1—?‘? 4Ó(¨+Ó6Ð6Ør7   c                 óV   — t        t        j                  t        j                  | |«      S rA   )r  r   r  Úrealr=   s     r5   r>   r>   �  s   € äœ1Ÿ?™?¬A¯F©F°D¸+ÓFÐFr7   c                 ó8   — t        t        j                  | |«      S rA   )r  r   r  r=   s     r5   r>   r>   ¡  ó   € ä”q—‘¨¨kÓ:Ð:r7   c                 ó8   — t        t        j                  | |«      S rA   )r  r   r  r=   s     r5   r>   r>   ¥  r#  r7   c                 ó8   — t        | |t        j                  «      S rA   )r   r   Úcomplex_elementsr=   s     r5   r>   r>   ¬  r  r7   c                 ó0  — | j                   \  }}t        t        j                  |«      |«      }|sy t        t        j                  |«       |«      }|s$|dk(  r>t        t        j
                  |«      |«      rt        t        j                  |«      |«      S y rT   )rL   r   r   rU   rV   rW   r&  rX   s         r5   r>   r>   ±  rÙ   r7   c                 óV   — t        t        j                  t        j                  | |«      S rA   )r  r   r&  Úcomplexr=   s     r5   r>   r>   ¾  r  r7   c                 ó8   — t        t        j                  | |«      S rA   )r  r   r&  r=   s     r5   r>   r>   Â  r  r7   c                 ó8   — t        t        j                  | |«      S rA   )r  r   r&  r=   s     r5   r>   r>   Æ  r  r7   c                  ó   — yr/   rj   r=   s     r5   r>   r>   Ê  rk   r7   N)?Ú__doc__Úsympy.logic.boolalgr   Úsympy.assumptionsr   r   Úsympy.assumptions.handlersr   Úsympy.matricesr   Úsympy.matrices.expressionsr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú&sympy.matrices.expressions.blockmatrixr   Ú)sympy.matrices.expressions.factorizationsr   Ú"sympy.matrices.expressions.fourierr   Úsympy.core.logicr   Úsympy.utilities.iterablesr   Ú
sympy.corer   Úpredicates.matricesr!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r6   Úregisterr>   Úregister_manyrö   r  r  r  rj   r7   r5   ú<module>r<     sB  ðñõ
 *ß $Ý 8Ý %÷÷ ÷ ÷ ÷ õ ?Ý CÝ 2Ý &Ý *Ý ÷5÷ 5÷ 5õ 5òð €×Ñ˜*Ó%ñ*ó &ð*ð Ð×Ñ˜VÓ$ñGó %ðGð Ð×Ñ˜VÓ$ñ
ó %ð
ð Ð×Ñ˜VÓ$ñHó %ðHð Ð×Ñ˜\Ó*ñó +ðð "Ð×!Ñ! )¨ZÓ8ñ,ó 9ð,ð "Ð×!Ñ! '¨9Ó5ñ3ó 6ð3ð Ð×Ñ˜[Ó)ñ:ó *ð:ð Ð×Ñ˜XÓ&ñó 'ðð Ð×Ñ˜fÓ%ñó &ðð Ð×Ñ˜fÓ%ñó &ðð Ð×Ñ˜fÓ%ñó &ðð Ð×Ñ˜lÓ+ñó ,ðð #Ð×"Ñ" 8¨WÓ5ñó 6ðð Ð×Ñ˜jÓ)ñó *ðð Ð×Ñ˜iÓ(ñ5ó )ð5ð Ð×Ñ˜iÓ(ñ4ó )ð4ð Ð×Ñ˜kÓ*ñ;ó +ð;ð Ð×Ñ˜jÓ)ñ$ó *ð$ð
 Ð×Ñ˜jÓ)ñó *ðð
 Ð×Ñ˜kÓ*ñó +ðð4 Ð×Ñ˜oÓ.ñMó /ðMð Ð×Ñ˜fÓ%ñó &ðð Ð×Ñ˜fÓ%ñó &ðð Ð×Ñ˜fÓ%ñó &ðð
 Ð×Ñ˜lÓ+ñó ,ðð Ð×Ñ˜hÓ'ñó (ðð Ð×Ñ˜jÓ)ñó *ðð #Ð×"Ñ" 7¨IÓ6ñ4ó 7ð4ð Ð×Ñ˜kÓ*ñ;ó +ð;ð Ð×Ñ˜mÓ,ñ;ó -ð;ð Ð×Ñ˜6Ó"ñó #ðð Ð×Ñ˜6Ó"ñó #ðð Ð×Ñ˜<Ó(ñó )ðð  Ð×Ñ ¨Ó3ñ1ó 4ð1ð Ð×Ñ˜;Ó'ñ8ó (ð8ð  Ð×Ñ  XÓ.ñó /ðð Ð×Ñ˜:Ó&ñó 'ðð Ð×Ñ˜=Ó)ñ8ó *ð8ð Ð×Ñ˜FÓ#ñó $ðð Ð×Ñ˜FÓ#ñó $ðð Ð×Ñ˜HÓ%ñó &ðð Ð×Ñ˜JÓ'ñó (ðð Ð×Ñ˜IÓ&ñ5ó 'ð5ð !Ð× Ñ  ¨)Ó4ñ2ó 5ð2ð Ð×Ñ˜KÓ(ñó )ðð $Ð×#Ñ# FÓ+ñ	4ó ,ð	4ð $Ð×#Ñ# FÓ+ñó ,ðð
 $Ð×#Ñ# FÓ+ñó ,ðð
 $Ð×#Ñ# LÓ1ñó 2ðð $Ð×#Ñ# HÓ-ñó .ðð $Ð×#Ñ# JÓ/ñó 0ðð $Ð×#Ñ# IÓ.ñ5ó /ð5ð )Ð×(Ñ(¨°)Ó<ñ;ó =ð;ð $Ð×#Ñ# KÓ0ñBó 1ðBð #Ð×"Ñ" 6Ó*ñó +ðð
 #Ð×"Ñ" 6Ó*ñó +ðð #Ð×"Ñ" 6Ó*ñ
ó +ð
ð #Ð×"Ñ" <Ó0ñó 1ðð (Ð×'Ñ'¨°*Ó=ñó >ðð #Ð×"Ñ" 9Ó-ñ5ó .ð5ð #Ð×"Ñ" 9Ó-ñ:ó .ð:ð #Ð×"Ñ" 7Ó+ñ:ó ,ð:ð #Ð×"Ñ" ;Ó/ñAó 0ðAð #Ð×"Ñ" =Ó1ñAó 2ðAð
 #Ð×"Ñ" 6Ó*ñó +ðð
 #Ð×"Ñ" 6Ó*ñó +ðð #Ð×"Ñ" 6Ó*ñ
ó +ð
ð #Ð×"Ñ" <Ó0ñó 1ðð (Ð×'Ñ'¨°*Ó=ñó >ðð #Ð×"Ñ" 9Ó-ñ5ó .ð5ð #Ð×"Ñ" 9Ó-ñ:ó .ð:ð #Ð×"Ñ" 7Ó+ñ:ó ,ð:ð #Ð×"Ñ" ;Ó/ñAó 0ðAð #Ð×"Ñ" =Ó1ñAó 2ðAò*ð Ð×Ñ˜FÓ#ñó $ðð Ð×Ñ˜FÓ#ñ
ó $ð
ð Ð×Ñ˜FÓ#ñó $ðð Ð×Ñ˜LÓ)ñó *ðð Ð×Ñ˜IÓ&ñ5ó 'ð5ð !Ð× Ñ  ¨)Ó4ñ2ó 5ð2ð Ð×Ñ˜KÓ(ñ9ó )ð9ð !Ð× Ñ  °¸XÀzÓRñó Sðð Ð×Ñ˜MÓ*ñ9ó +ð9òDò4òMð (Ð×'Ñ'¨°_ÀfØ	ˆ9óñDóðDð #Ð×"Ñ" 6Ó*ñó +ðð (Ð×'Ñ'¨°)¸ZÓHñó Iðð #Ð×"Ñ" 6Ó*ñMó +ðMð #Ð×"Ñ" ;Ó/ñ>ó 0ð>ð #Ð×"Ñ" ;Ó/ñ>ó 0ð>ð %Ð×$Ñ$ [°-ÀØ
ˆE�9óñAóðAð  Ð×Ñ Ó'ñ
ó (ð
ð  Ð×Ñ Ó'ñGó (ðGð  Ð×Ñ Ó,ñ;ó -ð;ð  Ð×Ñ Ó,ñ;ó -ð;ð (Ð×'Ñ'¨°]ÀOØˆV�U˜Ió'ñDó'ðDð #Ð×"Ñ" 6Ó*ñ
ó +ð
ð #Ð×"Ñ" 6Ó*ñMó +ðMð #Ð×"Ñ" ;Ó/ñ>ó 0ð>ð #Ð×"Ñ" ;Ó/ñ>ó 0ð>ð #Ð×"Ñ" 3Ó'ñó (ñr7   