§
    OŠtjç  ã                   óÒ   — 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
 d dlmZ d dlmZmZmZ d dlmZmZ d dlmZ d d	lmZ d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#dS )é    )ÚPermutation)Ú	unchanged)ÚMatrix)ÚMatMulÚBlockDiagMatrixÚDeterminantÚInverse)ÚMatrixSymbol)Ú
ZeroMatrixÚ	OneMatrixÚIdentity)ÚMatrixPermuteÚPermutationMatrix)Úraises)ÚSymbolc                  ób  — t          ddg¦  «        } t          t          | ¦  «        sJ ‚t          t          d„ ¦  «         t          | ¦  «                             ¦   «         t          ddgddgg¦  «        k    sJ ‚t          t          | ¦  «        t          ddd¦  «        z  t          ¦  «        sJ ‚d S )Né   r   c                  ó    — t          d¦  «        S )N©r   r   é   )r   © ó    úo/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/matrices/expressions/tests/test_permutation.pyú<lambda>z.test_PermutationMatrix_basic.<locals>.<lambda>   s   € Õ0°Ñ;Ô;€ r   ÚAr   )
r   r   r   r   Ú
ValueErrorÚas_explicitr   Ú
isinstancer
   r   ©Úps    r   Útest_PermutationMatrix_basicr!      s®   € Ý�Q˜�FÑÔ€AÝÕ&¨Ñ*Ô*Ð*Ð*Ð*Ý
�:Ð;Ð;Ñ<Ô<Ð<Ý˜QÑÔ×+Ò+Ñ-Ô-µ¸!¸Q¸À!ÀQÀÐ8HÑ1IÔ1IÒIÐIÐIÐIÝÕ'¨Ñ*Ô*­<¸¸QÀÑ+BÔ+BÑBÅFÑKÔKÐKÐKÐKÐKÐKr   c                  ó  — t          g d¢¦  «        } t          | ¦  «        }t          g d¢g d¢g d¢g¦  «        }||z                       ¦   «         |                     ¦   «         |z  k    sJ ‚||z                       ¦   «         ||                     ¦   «         z  k    sJ ‚t          t          g d¢¦  «        ¦  «        }t          t          g d¢¦  «        ¦  «        }t          t          g d¢¦  «        ¦  «        }||z  |k    sJ ‚d S )N©r   r   r   r   )é   é   é   )é   é   é   )r   r   r   )r   r   r   )r   r   r   r   )r    ÚPÚMÚP1ÚP2ÚP3s         r   Útest_PermutationMatrix_matmulr/      sü   € Ý�I�I�IÑÔ€AÝ˜!ÑÔ€AÝ�	�	�	˜9˜9˜9 i i iÐ0Ñ1Ô1€AØˆa‰C×ÒÑÔ !§-¢-¡/¤/°!Ñ"3Ò3Ð3Ð3Ð3Øˆa‰C×ÒÑÔ ! A§M¢M¡O¤OÑ"3Ò3Ð3Ð3Ð3å	�; y y yÑ1Ô1Ñ	2Ô	2€BÝ	�; y y yÑ1Ô1Ñ	2Ô	2€BÝ	�; y y yÑ1Ô1Ñ	2Ô	2€BØˆb‰5�BŠ;ˆ;ˆ;ˆ;ˆ;ˆ;r   c                  óÌ   — t          g d¢¦  «        } t          | ¦  «        }t          g d¢¦  «        }t          |¦  «        }|dz  |k    sJ ‚|dz  t          d¦  «        k    sJ ‚d S )Nr#   ©r   r   r   r   r$   )r   r   r   )Úp1r,   Úp2r-   s       r   Útest_PermutationMatrix_matpowr4   #   sp   € Ý	�Y�Y�YÑ	Ô	€BÝ	˜2Ñ	Ô	€BÝ	�Y�Y�YÑ	Ô	€BÝ	˜2Ñ	Ô	€BØˆq‰5�BŠ;ˆ;ˆ;ˆ;Øˆq‰5•H˜Q‘K”KÒÐÐÐÐÐr   c                  ó¢   — t          ddg¦  «        } t          | ¦  «        j        sJ ‚t          ddg¦  «        } t          | ¦  «        j        rJ ‚d S )Nr   r   )r   r   Úis_Identityr   s    r   Útest_PermutationMatrix_identityr7   ,   sX   € Ý�Q˜�FÑÔ€AÝ˜QÑÔÔ+Ð+Ð+Ð+å�Q˜�FÑÔ€AÝ  Ñ#Ô#Ô/Ð/Ð/Ð/Ð/Ð/r   c                  ó¤  — t          t          g d¢¦  «        ¦  «        } t          | ¦  «                             ¦   «         dk    sJ ‚t          t          g d¢¦  «        ¦  «        } t          | ¦  «                             ¦   «         dk    sJ ‚t          t          g d¢¦  «        ¦  «        } t          | ¦  «                             ¦   «         dk    sJ ‚d S )Nr   r   )r   r   r   éÿÿÿÿr1   )r   r   r   Údoit©r*   s    r   Ú"test_PermutationMatrix_determinantr<   4   s¼   € Ý�+ i i iÑ0Ô0Ñ1Ô1€AÝ�q‰>Œ>×ÒÑ Ô  AÒ%Ð%Ð%Ð%Ý�+ i i iÑ0Ô0Ñ1Ô1€AÝ�q‰>Œ>×ÒÑ Ô  BÒ&Ð&Ð&Ð&Ý�+ i i iÑ0Ô0Ñ1Ô1€AÝ�q‰>Œ>×ÒÑ Ô  AÒ%Ð%Ð%Ð%Ð%Ð%r   c                  óÈ   — t          t          ddd¦  «        ¦  «        } t          | ¦  «                             ¦   «         t          t          ddd¦  «        ¦  «        k    sJ ‚d S )Nr   r   r   )r   r   r	   r:   r;   s    r   Útest_PermutationMatrix_inverser>   =   sW   € Ý�+ a¨¨AÑ.Ô.Ñ/Ô/€AÝ�1‰:Œ:�?Š?ÑÔÕ 1µ+¸aÀÀAÑ2FÔ2FÑ GÔ GÒGÐGÐGÐGÐGÐGr   c            	      óº  — t          t          g d¢¦  «        ¦  «        } t          t          dg¦  «        ¦  «        }|                      t          ¦  «        t          ||||||¦  «        k    sJ ‚t          t          g d¢¦  «        ¦  «        } t          t          dd¦  «        ¦  «        }|                      t          ¦  «        t          |||||¦  «        k    sJ ‚t          t          g d¢¦  «        ¦  «        } |                      t          ¦  «        t          |||¦  «        k    sJ ‚t          t          g d¢¦  «        ¦  «        } t          t          g d¢¦  «        ¦  «        }|                      t          ¦  «        t          |||¦  «        k    sJ ‚t          t          g d¢¦  «        ¦  «        } t          t          g d	¢¦  «        ¦  «        }|                      t          ¦  «        t          |||¦  «        k    sJ ‚t            t          dd
¦  «        dd¦  «        dd¦  «        ¦  «        } |                      t          ¦  «        t          | ¦  «        k    sJ ‚d S )N)r   r   r   r$   r%   r&   r   )r   r   r$   r   r%   r&   r   )r   r   r$   r   r&   r%   )r   r%   r$   r   r   r&   )r$   r   r   r   )r   r%   r   r$   r   r&   )r$   r   r   r   r$   r%   r   r&   )r   r   Úrewriter   )r*   ÚP0ÚP10ÚP3210ÚP3120s        r   Ú.test_PermutationMatrix_rewrite_BlockDiagMatrixrE   B   sX  € Ý�+Ð&8Ð&8Ð&8Ñ9Ô9Ñ:Ô:€AÝ	�;¨ sÑ+Ô+Ñ	,Ô	,€BØ�9Š9•_Ñ%Ô%Ý˜˜B  B¨¨BÑ/Ô/ò0ð 0ð 0ð 0õ 	�+Ð&8Ð&8Ð&8Ñ9Ô9Ñ:Ô:€AÝ
�K¨¨1Ñ-Ô-Ñ
.Ô
.€CØ�9Š9•_Ñ%Ô%Ý˜˜B  R¨Ñ,Ô,ò-ð -ð -ð -õ 	�+Ð&8Ð&8Ð&8Ñ9Ô9Ñ:Ô:€AØ�9Š9•_Ñ%Ô%Ý˜˜S #Ñ&Ô&ò'ð 'ð 'ð 'õ 	�+Ð&8Ð&8Ð&8Ñ9Ô9Ñ:Ô:€AÝ�k¨,¨,¨,Ñ7Ô7Ñ8Ô8€EØ�9Š9•_Ñ%Ô%Ý˜˜E 2Ñ&Ô&ò'ð 'ð 'ð 'õ 	�+Ð&8Ð&8Ð&8Ñ9Ô9Ñ:Ô:€AÝ�k¨,¨,¨,Ñ7Ô7Ñ8Ô8€EØ�9Š9•_Ñ%Ô%Ý˜˜E 2Ñ&Ô&ò'ð 'ð 'ð 'õ 	Ð1Ð+�+ a¨Ñ+Ô+¨A¨qÑ1Ô1°!°QÑ7Ô7Ñ8Ô8€AØ�9Š9•_Ñ%Ô%­¸Ñ);Ô);Ò;Ð;Ð;Ð;Ð;Ð;r   c                  ó  ‡‡‡— t          dd¦  «        Št          ‰¦  «        } t          ddd¦  «        Št          t          ˆfd„¦  «         t          t          ˆfd„¦  «         t          ‰| ¦  «        t          ‰‰¦  «        k    sJ ‚t          t          ˆˆfd„¦  «         t          ddd¬	¦  «        Št          ‰‰¦  «        t          ‰‰¦  «        k    sJ ‚t          ddd¦  «        Št          t          ˆˆfd
„¦  «         d S )Nr   r   r   r   c                  ó>   •— t          t          d¦  «        ‰ ¦  «        S ©NÚx©r   r   r   s   €r   r   z+test_MartrixPermute_basic.<locals>.<lambda>d   s   ø€ �}­V°C©[¬[¸!Ñ<Ô<€ r   c                  ó>   •— t          ‰ t          d¦  «        ¦  «        S rH   rJ   )r   s   €r   r   z+test_MartrixPermute_basic.<locals>.<lambda>e   s   ø€ �}¨Qµ°s±´Ñ<Ô<€ r   c                  ó&   •— t          ‰ ‰d¦  «        S )Nr   ©r   )r   r    s   €€r   r   z+test_MartrixPermute_basic.<locals>.<lambda>h   s   ø€ �}¨Q°°1Ñ5Ô5€ r   r$   ©Úsizec                  ó$   •— t          ‰ ‰¦  «        S )NrM   )r   Úpps   €€r   r   z+test_MartrixPermute_basic.<locals>.<lambda>m   s   ø€ �}¨Q°Ñ3Ô3€ r   )r   r   r
   r   r   r   )r*   r   r    rQ   s    @@@r   Útest_MartrixPermute_basicrR   _   s  øøø€ Ý�A�qÑÔ€AÝ˜!ÑÔ€AÝ�S˜!˜QÑÔ€Aå
�:Ð<Ð<Ð<Ð<Ñ=Ô=Ð=Ý
�:Ð<Ð<Ð<Ð<Ñ=Ô=Ð=å˜˜AÑÔ¥-°°1Ñ"5Ô"5Ò5Ð5Ð5Ð5Ý
�:Ð5Ð5Ð5Ð5Ð5Ñ6Ô6Ð6å	�Q˜ Ð	"Ñ	"Ô	"€BÝ˜˜BÑÔ¥=°°AÑ#6Ô#6Ò6Ð6Ð6Ð6Ý	�Q˜˜1Ñ	Ô	€BÝ
�:Ð3Ð3Ð3Ð3Ð3Ñ4Ô4Ð4Ð4Ð4r   c                  ó~   — t          dd¦  «        } t          ddd¦  «        }t          || ¦  «        j        dk    sJ ‚d S )Nr   r   r   r   r$   )r   r$   )r   r
   r   Úshape©r    r   s     r   Útest_MatrixPermute_shaperV   p   sF   € Ý�A�qÑÔ€AÝ�S˜!˜QÑÔ€AÝ˜˜AÑÔÔ$¨Ò.Ð.Ð.Ð.Ð.Ð.r   c                  ój  — t          ddd¦  «        } t          ddd¦  «        }|                     ¦   «         }t          || d¦  «                             ¦   «         |                     | d¬¦  «        k    sJ ‚t          || d¦  «                             ¦   «         |                     | d¬¦  «        k    sJ ‚d S )	Nr   r   r   r   r$   Úrows)ÚorientationÚcols)r   r
   r   r   Úpermute)r    r   ÚAAs      r   Útest_MatrixPermute_explicitr]   v   s¿   € Ý�A�q˜!ÑÔ€AÝ�S˜!˜QÑÔ€AØ	
�Š‰Œ€BÝ˜˜A˜qÑ!Ô!×-Ò-Ñ/Ô/Ø
�
Š
�1 &ˆ
Ñ)Ô)ò*ð *ð *ð *å˜˜A˜qÑ!Ô!×-Ò-Ñ/Ô/Ø
�
Š
�1 &ˆ
Ñ)Ô)ò*ð *ð *ð *ð *ð *r   c                  óÒ  — t          ddd¦  «        } t          ddd¦  «        }t          || d¦  «                             t          ¦  «                             ¦   «         t          || d¦  «                             ¦   «         k    sJ ‚t          || d¦  «                             t          ¦  «                             ¦   «         t          || d¦  «                             ¦   «         k    sJ ‚d S )Nr   r   r   r   r$   )r   r
   r   r@   r   r   rU   s     r   Ú!test_MatrixPermute_rewrite_MatMulr_   €   sÞ   € Ý�A�q˜!ÑÔ€AÝ�S˜!˜QÑÔ€Aå˜˜A˜qÑ!Ô!×)Ò)­&Ñ1Ô1×=Ò=Ñ?Ô?Ý�a˜˜AÑÔ×*Ò*Ñ,Ô,ò-ð -ð -ð -å˜˜A˜qÑ!Ô!×)Ò)­&Ñ1Ô1×=Ò=Ñ?Ô?Ý�a˜˜AÑÔ×*Ò*Ñ,Ô,ò-ð -ð -ð -ð -ð -r   c                  ó   — t          ddd¦  «        } t          ddd¦  «        }t          || ¦  «                             ¦   «         t          || ¦  «        k    sJ ‚t          dd¬¦  «        } t          ddd¦  «        }t          || ¦  «                             ¦   «                              ¦   «         t          || ¦  «                             ¦   «         k    sJ ‚t          ddd¦  «        } t          d¦  «        }t          || d¦  «                             ¦   «                              ¦   «         t          || d¦  «                             ¦   «         k    sJ ‚t          || d¦  «                             ¦   «                              ¦   «         t          || d¦  «                             ¦   «         k    sJ ‚t          dd¦  «        }t          || ¦  «                             ¦   «         |k    sJ ‚t          dd¦  «        }t          || ¦  «                             ¦   «         |k    sJ ‚t          ddd¦  «        }t          dddd¦  «        }t          dddd¦  «        }t          t          ||d¦  «        |d¦  «        }|                     ¦   «         |                     ¦   «                              ¦   «         k    sJ ‚t          t          ||d¦  «        |d¦  «        }|                     ¦   «         |                     ¦   «                              ¦   «         k    sJ ‚d S )Nr   r   r   r   r$   rN   r%   )r   r
   r   r:   r   r   r   r   )r    r   r2   r3   Úexprs        r   Útest_MatrixPermute_doitrb   Š   sÙ  € Ý�A�q˜!ÑÔ€AÝ�S˜!˜QÑÔ€AÝ˜˜AÑÔ×#Ò#Ñ%Ô%­°q¸!Ñ)<Ô)<Ò<Ð<Ð<Ð<å�A˜AÐÑÔ€AÝ�S˜!˜QÑÔ€AÝ˜˜AÑÔ×#Ò#Ñ%Ô%×1Ò1Ñ3Ô3Ý�a˜ÑÔ×'Ò'Ñ)Ô)ò*ð *ð *ð *õ 	�A�q˜!ÑÔ€AÝ�‰Œ€AÝ˜˜A˜qÑ!Ô!×&Ò&Ñ(Ô(×4Ò4Ñ6Ô6Ý�a˜˜AÑÔ×*Ò*Ñ,Ô,ò-ð -ð -ð -å˜˜A˜qÑ!Ô!×&Ò&Ñ(Ô(×4Ò4Ñ6Ô6Ý�a˜˜AÑÔ×*Ò*Ñ,Ô,ò-ð -ð -ð -õ 	�1�aÑÔ€AÝ˜˜AÑÔ×#Ò#Ñ%Ô%¨Ò*Ð*Ð*Ð*Ý�!�Q‰Œ€AÝ˜˜AÑÔ×#Ò#Ñ%Ô%¨Ò*Ð*Ð*Ð*å�S˜!˜QÑÔ€AÝ	�Q˜˜1˜aÑ	 Ô	 €BÝ	�Q˜˜1˜aÑ	 Ô	 €BÝ� q¨"¨aÑ0Ô0°"°aÑ8Ô8€DØ×ÒÑÔ §¢¡¤×!8Ò!8Ñ!:Ô!:Ò:Ð:Ð:Ð:Ý� q¨"¨aÑ0Ô0°"°aÑ8Ô8€DØ×ÒÑÔ §¢¡¤×!8Ò!8Ñ!:Ô!:Ò:Ð:Ð:Ð:Ð:Ð:r   N)$Úsympy.combinatoricsr   Úsympy.core.exprr   Úsympy.matricesr   Úsympy.matrices.expressionsr   r   r   r	   Ú"sympy.matrices.expressions.matexprr
   Ú"sympy.matrices.expressions.specialr   r   r   Ú&sympy.matrices.expressions.permutationr   r   Úsympy.testing.pytestr   Úsympy.core.symbolr   r!   r/   r4   r7   r<   r>   rE   rR   rV   r]   r_   rb   r   r   r   ú<module>rl      s·  ðØ +Ð +Ð +Ð +Ð +Ð +Ø %Ð %Ð %Ð %Ð %Ð %Ø !Ð !Ð !Ð !Ð !Ð !ð2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ Nð%ð %ð %ð %ð %ð %ð %ð %à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø $Ð $Ð $Ð $Ð $Ð $ðLð Lð Lð
ð 
ð 
ð ð  ð  ð0ð 0ð 0ð&ð &ð &ðHð Hð Hð
<ð <ð <ð:5ð 5ð 5ð"/ð /ð /ð*ð *ð *ð-ð -ð -ð;ð ;ð ;ð ;ð ;r   