Ë
    7^(h*  ã                   ó0  — d dl mZmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
Z
d„ Zd„ Zd eg d	¢ge«       eg d
¢g d¢ge«      fd ede«       ede«      fd ede«       ede«      fd ede«       ede«      fd ede«       ede«      fd eddgddgge«       ede«      fd eddgddgge«       eddgge«      fd edgdgge«       ede«      fd eddgge«       eddgge«      fd eg d¢g d ¢g d!¢g d"¢g d#¢ge«       eg d$¢g d%¢g d&¢g d'¢g d(¢ge«      fg
Zd)„ Zd*„ Zd+„ Zd,„ Ze
j$                  j'                  d-e«      d.„ «       Ze
j$                  j'                  d-e«      d/„ «       Ze
j$                  j'                  d-e«      d0„ «       Ze
j$                  j'                  d-e«      d1„ «       Ze
j$                  j'                  d-e«      d2„ «       Ze
j$                  j'                  d-e«      d3„ «       Ze
j$                  j'                  d-e«      d4„ «       Zy)5é    )ÚZZÚMatrix)ÚDMÚDomainMatrix)ÚDDM)ÚSDMNc                 óJ   — t        j                  | |«      j                  «       S ©N)r   ÚzerosÚto_dense)ÚshapeÚKs     úg/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/polys/matrices/tests/test_nullspace.pyú<lambda>r      s   € œ×+Ñ+¨E°1Ó5×>Ñ>Ó@€ ó    c                 óJ   — t        j                  | |«      j                  «       S r
   )r   Úeyer   )Únr   s     r   r   r   	   s   € ”<×#Ñ# A qÓ)×2Ñ2Ó4€ r   Úzz_1)é   é   é   )éþÿÿÿr   r   )éýÿÿÿr   r   Úzz_2)r   r   Úzz_3)r   r   Úzz_4)r   r   r   Úzz_5)r   r   Úzz_6r   r   é   Úzz_7éÿÿÿÿÚzz_8)r   r   Úzz_9Úzz_10)
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   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   r   r   r"   r   r   r   r   r   c                 óf  — t        | t        «      r| j                  «       S t        | t        «      r8t        t	        | «      | j
                  | j                  «      j                  «       S t        | t        «      r8t        t        | «      | j
                  | j                  «      j                  «       S J ‚)z#Convert the answer to DomainMatrix.)	Ú
isinstancer   r   r   Úlistr   Údomainr   Údict)ÚAÚanss     r   Ú_to_DMr-   i   sy   € ä�!”\Ô"Ø�z‰z‹|ÐÜ	�A”sÔ	ÜœD ›G Q§W¡W¨a¯h©hÓ7×@Ñ@ÓBÐBÜ	�A”sÔ	ÜœD ›G Q§W¡W¨a¯h©hÓ7×@Ñ@ÓBÐBàˆur   c                 ó@  — | j                  «       } | j                  r| S g }t        | j                  d   «      D ]R  }t	        t        | j                  d   «      «      D ]+  }| ||f   sŒ|j                  | |dd…f   | ||f   z  «        ŒQ J ‚ t        j                  |Ž S )z8Normalize the nullspace by the rightmost non-zero entry.r   r   N)Úto_fieldÚis_zero_matrixÚranger   ÚreversedÚappendr   Úvstack)ÚnullÚrowsÚiÚjs       r   Ú_divide_lastr9   u   s¦   € à�=‰=‹?€Dà×ÒØˆà€DÜ�4—:‘:˜a‘=Ó!ò ˆÜœ% §
¡
¨1¡Ó.Ó/ò 	ˆAØ�A�q�D‹zØ—‘˜D ¢A ™J¨¨a°¨d©Ñ3Ô4Ùð	ð
 �5ðô ×Ñ Ð%Ð%r   c                 óP   — t        | |«      } | j                  «       \  }}||k(  sJ ‚y)z/Check that the primitive of the answer matches.N)r-   Ú	primitive)r5   Únull_ansÚcontÚ	null_prims       r   Ú_check_primitiver?   ˆ   s,   € ä�$˜Ó!€DØ—n‘nÓ&�O€Dˆ)Ø˜Ò Ð Ñ r   c                 ó@   — t        | |«      } t        |«      }| |k(  sJ ‚y)zCheck the divided answer.N)r-   r9   )r5   r<   Únull_ans_norms      r   Ú_check_dividedrB   �   s&   € ä�$˜Ó!€DÜ  Ó*€MØ�=Ò Ð Ñ r   zname, A, A_nullc                 ó>  — |j                  «       }|j                  «       }|rt        j                  |Ž }n t        j                  |j
                  d«      }|j                  «       j                  «       j                  «       }|j                  «       }t        ||«       y )Nr   )Ú	to_MatrixÚ	nullspacer   Úhstackr   ÚcolsÚto_DMr/   r   Ú	transposerB   )Únamer+   ÚA_nullÚA_null_colsÚA_null_founds        r   Útest_Matrix_nullspacerN   –   sy   € à	�‰‹€Aà—+‘+“-€Kñ Ü—}‘} kÐ2‰ä—|‘| A§F¡F¨AÓ.ˆà×%Ñ%Ó'×0Ñ0Ó2×;Ñ;Ó=€Lð  ×)Ñ)Ó+€Lä�< Õ(r   c                 ó|   — |j                  «       j                  «       }|j                  d¬«      }t        ||«       y ©NT)Údivide_last)r/   r   rE   rB   ©rJ   r+   rK   rM   s       r   Útest_dm_dense_nullspacerS   ª   s0   € à	�
‰
‹×ÑÓ€AØ—;‘;¨4�;Ó0€LÜ�< Õ(r   c                 ó|   — |j                  «       j                  «       }|j                  d¬«      }t        ||«       y rP   )r/   Ú	to_sparserE   rB   rR   s       r   Útest_dm_sparse_nullspacerV   ±   s0   € à	�
‰
‹×ÑÓ €AØ—;‘;¨4�;Ó0€LÜ�< Õ(r   c                 ó~   — |j                  «       j                  «       }|j                  «       \  }}t        ||«       y r
   )r/   Úto_ddmrE   rB   ©rJ   r+   rK   rM   Ú_s        r   Útest_ddm_nullspacer[   ¸   ó/   € à	�
‰
‹×ÑÓ€AØ—k‘k“m�O€L�!Ü�< Õ(r   c                 ó~   — |j                  «       j                  «       }|j                  «       \  }}t        ||«       y r
   )r/   Úto_sdmrE   rB   rY   s        r   Útest_sdm_nullspacer_   ¿   r\   r   c                 ó\   — |j                  «       }|j                  «       }t        ||«       y r
   )r   rE   r?   rR   s       r   Ú test_dm_dense_nullspace_fracfreera   Æ   s"   € à	�
‰
‹€AØ—;‘;“=€LÜ�\ 6Õ*r   c                 ó\   — |j                  «       }|j                  «       }t        ||«       y r
   )rU   rE   r?   rR   s       r   Ú!test_dm_sparse_nullspace_fracfreerc   Í   s"   € à	�‰‹€AØ—;‘;“=€LÜ�\ 6Õ*r   )Úsympyr   r   Úsympy.polys.matricesr   r   Úsympy.polys.matrices.ddmr   Úsympy.polys.matrices.sdmr   Úpytestr   r   ÚNULLSPACE_EXAMPLESr-   r9   r?   rB   ÚmarkÚparametrizerN   rS   rV   r[   r_   ra   rc   © r   r   ú<module>rm      s  ðß ß 1Ý (Ý (ã á@€Ù4€ð, 	Ù	ŠZˆL˜"Ó	Ù	ŠZÚðØó
ðð 	Ù	ˆv�rÓ	Ù	ˆv�rÓ	ðð 	Ùˆf�bÓÙˆf�bÓðð 	Ùˆf�bÓÙˆAˆr‹
ðð 	Ùˆf�bÓÙˆAˆr‹
ðð 	Ù
ˆQ�ˆFØ�ˆFðØó	áˆf�bÓð	ð 	Ù
ˆQ�ˆFØ�ˆFðØó	á
ˆR�ˆGˆ9�bÓð	ð 	Ù
ˆQˆCØˆCðØó	áˆf�bÓð	ð 	Ù
ˆQ�ˆFˆ8�RÓÙ
ˆR�ˆGˆ9�bÓðð 	Ù
Ò*Ú*Ú*Ú*Ú*ð	,ð .0ó		1ñ
 	Ò.Ú.Ú.Ú.Ú.ð	0ð 24ó		5ððyJÐ òZ	ò&ò&!ò!ð ‡�×ÑÐ*Ð,>Ó?ñ)ó @ð)ð& ‡�×ÑÐ*Ð,>Ó?ñ)ó @ð)ð ‡�×ÑÐ*Ð,>Ó?ñ)ó @ð)ð ‡�×ÑÐ*Ð,>Ó?ñ)ó @ð)ð ‡�×ÑÐ*Ð,>Ó?ñ)ó @ð)ð ‡�×ÑÐ*Ð,>Ó?ñ+ó @ð+ð ‡�×ÑÐ*Ð,>Ó?ñ+ó @ñ+r   