Ë
    7^(h;A  ã                   ó  — d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
mZmZ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„ 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„ Z'd „ Z(d!„ Z)d"„ Z*d#„ Z+d$„ Z,d%„ Z-d&„ Z.d'„ Z/y())é    )Úraises)ÚGROUND_TYPES)ÚZZÚQQ)ÚDDM)ÚDMShapeErrorÚDMNonInvertibleMatrixErrorÚDMDomainErrorÚDMBadInputErrorc                  ó~  — t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gg} d}t        | |t         «      }|j                  |k(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j
                  t         k(  sJ ‚t        t        d„ «       t        t        d	„ «       y )
Nr   é   é   é   é   é   ©r   r   c                  óN   — t        t        d«      t        d«      ggdt        «      S )Nr   r   ©r   r   ©r   r   © ó    úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/polys/matrices/tests/test_ddm.pyú<lambda>ztest_DDM_init.<locals>.<lambda>   s   € ¤C¬"¨Q«%´°A³¨Ð(8¸&Ä"Ó$E€ r   c                  ód   — t        t        d«      gt        d«      t        d«      ggdt        «      S )Nr   r   r   r   r   r   r   r   r   ztest_DDM_init.<locals>.<lambda>   s&   € ¤C¬"¨Q«%¨´2°a³5¼"¸Q»%°.Ð(AÀ6Ì2Ó$N€ r   )r   r   ÚshapeÚrowsÚcolsÚdomainr   r   )Úitemsr   Úddms      r   Útest_DDM_initr!      sŸ   € Ü�‹e”R˜“UœB˜q›EÐ"¤R¨£U¬B¨q«E´2°a³5Ð$9Ð:€EØ€EÜ
ˆe�UœBÓ
€CØ�9‰9˜ÒÐÐØ�8‰8�qŠ=Ðˆ=Ø�8‰8�qŠ=Ðˆ=Ø�:‰:œÒÐÐä
Œ?ÑEÔFÜ
Œ?ÑNÕOr   c                  óÆ  ‡ — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Š ‰ d   d   t        d«      k(  sJ ‚‰ d   d   t        d«      k(  sJ ‚‰ d   d   t        d«      k(  sJ ‚‰ d   d   t        d«      k(  sJ ‚t        t        ˆ fd„«       t        t        ˆ fd	„«       t        d
«      ‰ d   d<   ‰ d   d   t        d
«      k(  sJ ‚y )Nr   r   r   r   r   r   r   c                  ó   •— ‰ d   d   S ©Nr   r   r   ©r    s   €r   r   z%test_DDM_getsetitem.<locals>.<lambda>!   ó   ø€ ˜s 1™v a™y€ r   c                  ó   •— ‰ d   d   S ©Nr   r   r   r%   s   €r   r   z%test_DDM_getsetitem.<locals>.<lambda>"   r&   r   éÿÿÿÿ)r   r   r   Ú
IndexErrorr%   s   @r   Útest_DDM_getsetitemr+      s×   ø€ Ü
”�1“”r˜!“uˆ~¤ 1£¤r¨!£u˜~Ð.°¼Ó
;€Càˆq‰6�!‰9œ˜1›ÒÐÐØˆq‰6�!‰9œ˜1›ÒÐÐØˆq‰6�!‰9œ˜1›ÒÐÐØˆq‰6�!‰9œ˜1›ÒÐÐä
Œ:Ó(Ô)Ü
Œ:Ó(Ô)ä�2“€Cˆ�Fˆ1�IØˆq‰6�!‰9œ˜2›ÒÐÑr   c                  ó  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        dk(  r!t        | «      dk(  sJ ‚t	        | «      dk(  sJ ‚y t	        | «      d	k(  sJ ‚t        | «      dk(  sJ ‚y )
Nr   r   r   r   r   Úgmpyz[[0, 1], [2, 3]]z5DDM([[mpz(0), mpz(1)], [mpz(2), mpz(3)]], (2, 2), ZZ)z!DDM([[0, 1], [2, 3]], (2, 2), ZZ))r   r   r   ÚstrÚreprr%   s    r   Útest_DDM_strr0   (   s�   € Ü
”�1“”r˜!“uˆ~¤ 1£¤r¨!£u˜~Ð.°¼Ó
;€CÜ�vÒÜ�3‹xÐ-Ò-Ð-Ð-Ü�C‹yÐSÒSÐSÑSä�C‹yÐ?Ò?Ð?Ð?Ü�3‹xÐ-Ò-Ð-Ñ-r   c                  ó4  — t        d«      t        d«      gt        d«      t        d«      gg} t        | dt         «      }t        | dt         «      }||k(  du sJ ‚|| k(  du sJ ‚| |k(  du sJ ‚||k(  du sJ ‚||k(  du sJ ‚||k7  du sJ ‚|| k7  du sJ ‚| |k7  du sJ ‚||k7  du sJ ‚||k7  du sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt         «      }t        | dt        «      }||k(  du sJ ‚||k(  du sJ ‚||k7  du sJ ‚||k7  du sJ ‚y )Nr   r   r   r   r   TF)r   r   r   )r   Úddm1Úddm2Úddm3s       r   Útest_DDM_eqr5   2   su  € Ü�‹e”R˜“Uˆ^œb ›e¤R¨£U˜^Ð,€EÜˆu�fœbÓ!€DÜˆu�fœbÓ!€Dà�D‰L˜TÑ!Ð!Ð!Ø�E‰M˜eÑ#Ð#Ð#Ø�T‰M˜eÑ#Ð#Ð#Ø�D‰L˜TÑ!Ð!Ð!Ø�D‰L˜TÑ!Ð!Ð!à�D‰L˜UÑ"Ð"Ð"Ø�E‰M˜dÑ"Ð"Ð"Ø�T‰M˜dÑ"Ð"Ð"Ø�D‰L˜UÑ"Ð"Ð"Ø�D‰L˜UÑ"Ð"Ð"ä”�A“œ˜1›�¤ A£¬¨1« Ð/°¼Ó<€DÜˆu�fœbÓ!€Dà�D‰L˜UÑ"Ð"Ð"Ø�D‰L˜UÑ"Ð"Ð"Ø�D‰L˜TÑ!Ð!Ð!Ø�D‰L˜TÑ!Ð!Ñ!r   c                  óØ   — t        t        d«      t        d«      ggdt        «      } | j                  t        «      | k(  sJ ‚| j                  t        «      }|j                  t        k(  sJ ‚y )Nr   r   ©r   r   )r   r   Ú
convert_tor   r   )r    Úddmqs     r   Útest_DDM_convert_tor:   L   sV   € Ü
”�1“”r˜!“uˆ~Ð ¬Ó
+€CØ�>‰>œ"Ó Ò$Ð$Ð$Ø�>‰>œ"Ó€DØ�;‰;œ"ÒÐÑr   c                  óÆ   — t        j                  dt        «      } t        | «      t        d«      gdz  gdz  k(  sJ ‚| j                  dk(  sJ ‚| j
                  t        k(  sJ ‚y )N©r   r   r   r   r   )r   Úzerosr   Úlistr   r   )Úddmzs    r   Útest_DDM_zerosr@   S   sY   € Ü�9‰9�VœRÓ €DÜ�‹:œ2˜a›5˜' A™+˜¨Ñ*Ò*Ð*Ð*Ø�:‰:˜ÒÐÐØ�;‰;œ"ÒÐÑr   c                  óÆ   — t        j                  dt        «      } t        | «      t        d«      gdz  gdz  k(  sJ ‚| j                  dk(  sJ ‚| j
                  t        k(  sJ ‚y )Nr   r   r   r   )r   Úonesr   r>   r   r   )Úddmones    r   Útest_DDM_onesrD   Y   sY   € Ü�X‰X�fœbÓ!€FÜ�‹<œR ›U˜G a™K˜=¨1Ñ,Ò,Ð,Ð,Ø�<‰<˜6Ò!Ð!Ð!Ø�=‰=œBÒÐÑr   c                  ó.  — t        j                  dt        «      } d„ }t        | «      t	        d«      D ��cg c]"  }t	        d«      D �cg c]  } |||«      ‘Œ c}‘Œ$ c}}k(  sJ ‚| j
                  dk(  sJ ‚| j                  t        k(  sJ ‚y c c}w c c}}w )Nr   c                 ó8   — | |k(  rt        d«      S t        d«      S )Nr   r   )r   )ÚiÚjs     r   r   ztest_DDM_eye.<locals>.<lambda>a   s   € ˜a 1šf”R˜“U€ ¬"¨Q«%€ r   ©r   r   )r   Úeyer   r>   Úranger   r   )r?   ÚfrH   rG   s       r   Útest_DDM_eyerM   _   sx   € Ü�7‰7�1”b‹>€DÙ/€AÜ�‹:¼uÀQ»x×H¸!¬E°!«HÖ5 q™1˜Q �7Ô5ÓHÒHÐHÐHØ�:‰:˜ÒÐÐØ�;‰;œ"ÒÐÑùò 6ùÓHs   ¶BÁBÁBÂBc                  óì   — t        t        d«      gt        d«      ggdt        «      } | j                  «       }| |k(  du sJ ‚t        d«      | d   d<   | |k(  du sJ ‚t        d«      |d   d<   | |k(  du sJ ‚y )Nr   r   ©r   r   Tr)   r   F)r   r   Úcopy)r2   r3   s     r   Útest_DDM_copyrQ   g   s„   € Ü”�A“�œ"˜Q›%˜Ð! 6¬2Ó.€DØ�9‰9‹;€DØ�D‰L˜TÑ!Ð!Ð!Ü�B“€Dˆ�GˆA�JØ�D‰L˜UÑ"Ð"Ð"Ü�B“€Dˆ�GˆA�JØ�D‰L˜TÑ!Ð!Ñ!r   c                  ó°  — t        t        d«      gt        d«      ggdt        «      } t        t        d«      t        d«      ggdt        «      }| j                  «       |k(  sJ ‚t        g dt        «      }t        g g gdt        «      }|j                  «       |k(  sJ ‚|j                  «       |k(  sJ ‚t        g dt        «      }|j                  «       |k(  sJ ‚y )Nr   r   rO   r7   ©r   r   ©r   r   ©r   r   )r   r   Ú	transpose)r    ÚddmTÚddm02Úddm02TÚddm0s        r   Útest_DDM_transposer[   q   sÁ   € Ü
”�1“ˆwœ˜A›˜Ð  &¬"Ó
-€CÜ”�A“œ˜1›�Ð ¬Ó,€DØ�=‰=‹?˜dÒ"Ð"Ð"Ü��FœBÓ€EÜ�"�b�˜6¤2Ó&€FØ�?‰?Ó Ò&Ð&Ð&Ø×ÑÓ Ò&Ð&Ð&Üˆr�6œ2Ó€DØ�>‰>Ó˜tÒ#Ð#Ñ#r   c                  óF  ‡‡— t        t        d«      gt        d«      ggdt        «      Št        t        d«      gt        d«      ggdt        «      } t        t        d«      gt        d«      ggdt        «      }t        t        d«      gt        d«      ggdt        «      Š‰| z   ‰j                  | «      cxk(  r|k(  sJ ‚ J ‚t	        t
        ˆfd„«       t	        t        ˆfd„«       t	        t        ˆfd	„«       t	        t        ˆˆfd
„«       t	        t        ˆˆfd„«       y )Nr   r   rO   r   r   é   c                  óB   •— ‰ t        t        d«      ggdt        «      z   S )Nr   ©r   r   r   ©ÚAs   €r   r   ztest_DDM_add.<locals>.<lambda>„   s   ø€  ¤S¬2¨a«5¨'¨°F¼BÓ%?Ñ!?€ r   c                  ó    •— ‰ t        d«      z   S ©Nr   ©r   r`   s   €r   r   ztest_DDM_add.<locals>.<lambda>…   ó   ø€ ˜a¤" Q£%™i€ r   c                  ó    •— t        d«      ‰ z   S rc   rd   r`   s   €r   r   ztest_DDM_add.<locals>.<lambda>†   ó   ø€ œb ›e a™i€ r   c                  ó   •— ‰ ‰z   S ©Nr   ©ra   ÚAQs   €€r   r   ztest_DDM_add.<locals>.<lambda>‡   ó   ø€  ! b¡&€ r   c                  ó   •— ‰‰ z   S ri   r   rj   s   €€r   r   ztest_DDM_add.<locals>.<lambda>ˆ   ó   ø€  " q¡&€ r   )r   r   r   Úaddr   r   Ú	TypeErrorr
   )ÚBÚCra   rk   s     @@r   Útest_DDM_addrs   }   sÙ   ù€ ÜŒb�‹eˆW”r˜!“u�gÐ ¬Ó+€AÜŒb�‹eˆW”r˜!“u�gÐ ¬Ó+€AÜŒb�‹eˆW”r˜!“u�gÐ ¬Ó+€AÜ	Œr�!‹uˆgœ˜1›�wÐ ¬Ó	,€BØˆq‰5�A—E‘E˜!“HÔ! Ò!Ð!Ñ!Ð!Ð!ä
Œ<Ó?Ô@Ü
Œ9Ó'Ô(Ü
Œ9Ó'Ô(Ü
Œ=œ.Ô)Ü
Œ=œ.Õ)r   c                  óJ  ‡‡‡— t        t        d«      gt        d«      ggdt        «      Št        t        d«      gt        d«      ggdt        «      } t        t        d«      gt        d«      ggdt        «      }t        t        d«      gt        d«      ggdt        «      Št        t        d«      ggdt        «      Š‰| z
  ‰j                  | «      cxk(  r|k(  sJ ‚ J ‚t	        t
        ˆfd	„«       t	        t
        ˆfd
„«       t	        t        ˆˆfd„«       t	        t        ˆˆfd„«       t	        t        ˆˆfd„«       t	        t        ˆˆfd„«       t	        t        ˆˆfd„«       t	        t        ˆˆfd„«       t	        t        ˆˆfd„«       t	        t        ˆˆfd„«       y )Nr   r   rO   r   r   éþÿÿÿr   r_   c                  ó    •— ‰ t        d«      z
  S rc   rd   r`   s   €r   r   ztest_DDM_sub.<locals>.<lambda>“   re   r   c                  ó    •— t        d«      ‰ z
  S rc   rd   r`   s   €r   r   ztest_DDM_sub.<locals>.<lambda>”   rg   r   c                  ó   •— ‰ ‰z
  S ri   r   ©ra   ÚDs   €€r   r   ztest_DDM_sub.<locals>.<lambda>•   ó   ø€   Q¡€ r   c                  ó   •— ‰‰ z
  S ri   r   ry   s   €€r   r   ztest_DDM_sub.<locals>.<lambda>–   r{   r   c                  ó&   •— ‰ j                  ‰«      S ri   ©Úsubry   s   €€r   r   ztest_DDM_sub.<locals>.<lambda>—   ó   ø€  §¡ q£€ r   c                  ó&   •— ‰j                  ‰ «      S ri   r~   ry   s   €€r   r   ztest_DDM_sub.<locals>.<lambda>˜   r€   r   c                  ó   •— ‰ ‰z
  S ri   r   rj   s   €€r   r   ztest_DDM_sub.<locals>.<lambda>™   rl   r   c                  ó   •— ‰‰ z
  S ri   r   rj   s   €€r   r   ztest_DDM_sub.<locals>.<lambda>š   rn   r   c                  ó&   •— ‰ j                  ‰«      S ri   r~   rj   s   €€r   r   ztest_DDM_sub.<locals>.<lambda>›   s   ø€  !§%¡%¨£)€ r   c                  ó&   •— ‰j                  ‰ «      S ri   r~   rj   s   €€r   r   ztest_DDM_sub.<locals>.<lambda>œ   s   ø€  "§&¡&¨£)€ r   )r   r   r   r   r   rp   r   r
   )rq   rr   ra   rk   rz   s     @@@r   Útest_DDM_subr†   ‹   s$  ú€ ÜŒb�‹eˆW”r˜!“u�gÐ ¬Ó+€AÜŒb�‹eˆW”r˜!“u�gÐ ¬Ó+€AÜŒb�‹fˆXœ˜2›�xÐ  &¬"Ó-€AÜ	Œr�!‹uˆgœ˜1›�wÐ ¬Ó	,€BÜŒb�‹eˆWˆI�vœrÓ"€AØˆq‰5�A—E‘E˜!“HÔ! Ò!Ð!Ñ!Ð!Ð!ä
Œ9Ó'Ô(Ü
Œ9Ó'Ô(Ü
Œ<œÔ'Ü
Œ<œÔ'Ü
Œ<Ô)Ô*Ü
Œ<Ô)Ô*Ü
Œ=œ.Ô)Ü
Œ=œ.Ô)Ü
Œ=Ô+Ô,Ü
Œ=Ô+Õ,r   c                  ó  — t        t        d«      gt        d«      ggdt        «      } t        t        d«      gt        d«      ggdt        «      }|  | j                  «       cxk(  r|k(  sJ ‚ J ‚| |j                  «       cxk(  r| k(  sJ ‚ J ‚y )Nr   r   rO   r)   ru   )r   r   Úneg)ra   ÚAns     r   Útest_DDM_negrŠ   Ÿ   s‚   € ÜŒb�‹eˆW”r˜!“u�gÐ ¬Ó+€AÜ	Œr�"‹vˆhœ˜B›˜Ð! 6¬2Ó	.€BØˆ2�—‘“Ô˜BÒÐÑÐÐØˆ3�"—&‘&“(Ô˜aÒÐÑÐÑr   c                  ó  ‡— t        t        d«      ggdt        «      Št        t        d«      ggdt        «      } ‰t        d«      z  | k(  sJ ‚t        d«      ‰z  | k(  sJ ‚t        t        ˆfd„«       t        t        ˆfd„«       y )Nr   r_   r   c                  ó   •— dgg‰ z  S rc   r   r`   s   €r   r   ztest_DDM_mul.<locals>.<lambda>«   s   ø€  ˜s˜e a™i€ r   c                  ó   •— ‰ dggz  S rc   r   r`   s   €r   r   ztest_DDM_mul.<locals>.<lambda>¬   s   ø€ ˜a A 3 %™i€ r   )r   r   r   rp   )ÚA2ra   s    @r   Útest_DDM_mulr�   ¦   sm   ø€ ÜŒb�‹eˆWˆI�vœrÓ"€AÜ	Œr�!‹uˆgˆY˜¤Ó	#€BØŒr�!‹u‰9˜Š?Ðˆ?Üˆa‹5�1‰9˜Š?Ðˆ?Ü
Œ9Ó'Ô(Ü
Œ9Ó'Õ(r   c                  ó˜  ‡‡	‡
‡‡— t        t        d«      gt        d«      ggdt        «      Št        t        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggd	t        «      }t        t        d
«      ggdt        «      }‰| z  ‰j                  | «      cxk(  r|k(  sJ ‚ J ‚| ‰z  | j                  ‰«      cxk(  r|k(  sJ ‚ J ‚t        t        ˆfd„«       t        t        ˆfd„«       t        t        d«      t        d«      ggdt
        «      Š	t        t        ˆˆ	fd„«       t        t        ˆˆ	fd„«       t        t        d«      ggdt        «      Š
‰‰
z  ‰j                  ‰
«      cxk(  r‰k(  sJ ‚ J ‚t        t        ˆˆ
fd„«       t        t        ˆˆ
fd„«       t        g dt        «      }t        g gdz  dt        «      Št        g gdz  dt        «      }t        g dt        «      Št        dgdz  gdz  dt        «      }t        dgdz  gdz  dt        «      }t        g dt        «      }||z  |j                  |«      cxk(  r‰k(  sJ ‚ J ‚||z  |j                  |«      cxk(  r‰k(  sJ ‚ J ‚||z  |j                  |«      cxk(  r|k(  sJ ‚ J ‚||z  |j                  |«      cxk(  r|k(  sJ ‚ J ‚||z  |j                  |«      cxk(  r|k(  sJ ‚ J ‚||z  |j                  |«      cxk(  r|k(  sJ ‚ J ‚t        t        ˆˆfd„«       t        t        ˆˆfd„«       y )Nr   r   rO   r   r   r7   r]   é   r   é   r_   c                  ó   •— ‰ dz  S rc   r   r`   s   €r   r   z!test_DDM_matmul.<locals>.<lambda>¸   s   ø€ ˜a !™e€ r   c                  ó   •— ‰ ddggz  S )Nr   r   r   r`   s   €r   r   z!test_DDM_matmul.<locals>.<lambda>¹   s   ø€ ˜a A q 6 (™l€ r   c                  ó   •— ‰ ‰z  S ri   r   ©ra   ÚBqs   €€r   r   z!test_DDM_matmul.<locals>.<lambda>½   rl   r   c                  ó   •— ‰‰ z  S ri   r   r–   s   €€r   r   z!test_DDM_matmul.<locals>.<lambda>¾   rn   r   c                  ó   •— ‰‰ z  S ri   r   ©ra   rr   s   €€r   r   z!test_DDM_matmul.<locals>.<lambda>Ä   r{   r   c                  ó&   •— ‰j                  ‰ «      S ri   ©Úmatmulrš   s   €€r   r   z!test_DDM_matmul.<locals>.<lambda>Å   s   ø€  §¡¨!£€ r   ©r   r   )r   r   r   )r   r   )r   r   r   )r   r   )r   r   rU   c                  ó   •— ‰ ‰z  S ri   r   ©ÚZ05ÚZ40s   €€r   r   z!test_DDM_matmul.<locals>.<lambda>Ö   s   ø€   s¡€ r   c                  ó&   •— ‰ j                  ‰«      S ri   rœ   r    s   €€r   r   z!test_DDM_matmul.<locals>.<lambda>×   s   ø€  §¡¨C£€ r   )r   r   r�   r   rp   r   r
   r   )rq   ÚABÚBAÚZ04ÚZ50ÚZ45ÚZ54ÚZ00ra   r—   rr   r¡   r¢   s           @@@@@r   Útest_DDM_matmulr«   ¯   sÚ  ü€ ÜŒb�‹eˆW”r˜!“u�gÐ ¬Ó+€AÜŒb�‹e”R˜“Uˆ^Ð˜f¤bÓ)€AÜ	Œr�!‹u”b˜“eˆnœr !›u¤b¨£e˜nÐ-¨v´rÓ	:€BÜ	Œr�"‹vˆhˆZ˜¤Ó	$€Bàˆq‰5�A—H‘H˜Q“KÔ% 2Ò%Ð%Ñ%Ð%Ð%Øˆq‰5�A—H‘H˜Q“KÔ% 2Ò%Ð%Ñ%Ð%Ð%ä
Œ9“mÔ$Ü
Œ9Ó*Ô+ä	Œr�!‹u”b˜“eˆnÐ˜v¤rÓ	*€Bä
Œ=œ.Ô)Ü
Œ=œ.Ô)äŒb�‹eˆWˆI�vœrÓ"€Aàˆq‰5�A—H‘H˜Q“KÔ$ 1Ò$Ð$Ñ$Ð$Ð$ä
Œ<œÔ'Ü
Œ<Ô,Ô-ä
ˆb�&œ"Ó
€CÜ
ˆrˆd�1‰f�fœbÓ
!€CÜ
ˆrˆd�1‰f�fœbÓ
!€CÜ
ˆb�&œ"Ó
€CÜ
�ˆs�Q‰wˆi˜!‰m˜V¤RÓ
(€CÜ
�ˆs�Q‰wˆi˜!‰m˜V¤RÓ
(€CÜ
ˆb�&œ"Ó
€Cà�‰9˜Ÿ
™
 3›Ô.¨3Ò.Ð.Ñ.Ð.Ð.Ø�‰9˜Ÿ
™
 3›Ô.¨3Ò.Ð.Ñ.Ð.Ð.Ø�‰9˜Ÿ
™
 3›Ô.¨3Ò.Ð.Ñ.Ð.Ð.Ø�‰9˜Ÿ
™
 3›Ô.¨3Ò.Ð.Ñ.Ð.Ð.Ø�‰9˜Ÿ
™
 3›Ô.¨3Ò.Ð.Ñ.Ð.Ð.Ø�‰9˜Ÿ
™
 3›Ô.¨3Ò.Ð.Ñ.Ð.Ð.ä
Œ<Ô*Ô+Ü
Œ<Ô0Õ1r   c                  óþ  — t        t        d«      t        d«      t        d«      ggdt        «      } t        t        d«      t        d«      ggdt        «      }t        t        d«      ggd	t        «      }| j                  |«      }|j                  d
k(  sJ ‚|j                  t        k(  sJ ‚|t        t        d«      t        d«      t        d«      t        d«      t        d«      ggd
t        «      k(  sJ ‚| j                  ||«      }|j                  dk(  sJ ‚|j                  t        k(  sJ ‚|t        t        d«      t        d«      t        d«      t        d«      t        d«      t        d«      ggdt        «      k(  sJ ‚y )Nr   r   r   ©r   r   r   r   r7   r]   r_   )r   r   )r   r]   )r   r   Úhstackr   r   ©ra   rq   rr   ÚAhs       r   Útest_DDM_hstackr±   Ú   s1  € ÜŒb�‹e”R˜“UœB˜q›EÐ"Ð# V¬RÓ0€AÜŒb�‹e”R˜“Uˆ^Ð˜f¤bÓ)€AÜŒb�‹eˆWˆI�vœrÓ"€Aà	
�‰�!‹€BØ�8‰8�vÒÐÐØ�9‰9œŠ?Ðˆ?Ø””r˜!“uœb ›e¤R¨£U¬B¨q«E´2°a³5Ð9Ð:¸FÄBÓGÒGÐGÐGà	
�‰�!�Q‹€BØ�8‰8�vÒÐÐØ�9‰9œŠ?Ðˆ?Ø””r˜!“uœb ›e¤R¨£U¬B¨q«E´2°a³5¼"¸Q»%Ð@ÐAÀ6Ì2ÓNÒNÐNÑNr   c                  ó  — t        t        d«      gt        d«      gt        d«      ggdt        «      } t        t        d«      gt        d«      ggdt        «      }t        t        d«      ggd	t        «      }| j                  |«      }|j                  d
k(  sJ ‚|j                  t        k(  sJ ‚|t        t        d«      gt        d«      gt        d«      gt        d«      gt        d«      ggd
t        «      k(  sJ ‚| j                  ||«      }|j                  dk(  sJ ‚|j                  t        k(  sJ ‚|t        t        d«      gt        d«      gt        d«      gt        d«      gt        d«      gt        d«      ggdt        «      k(  sJ ‚y )Nr   r   r   ©r   r   r   r   rO   r]   r_   )r   r   )r]   r   )r   r   Úvstackr   r   r¯   s       r   Útest_DDM_vstackrµ   ê   sG  € ÜŒb�‹eˆW”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜŒb�‹eˆW”r˜!“u�gÐ ¬Ó+€AÜŒb�‹eˆWˆI�vœrÓ"€Aà	
�‰�!‹€BØ�8‰8�vÒÐÐØ�9‰9œŠ?Ðˆ?Ø””r˜!“u�g¤ 1£˜w¬¨A«¨´"°Q³%°¼2¸a»5¸'ÐBÀFÌBÓOÒOÐOÐOà	
�‰�!�Q‹€BØ�8‰8�vÒÐÐØ�9‰9œŠ?Ðˆ?Ø””r˜!“u�g¤ 1£˜w¬¨A«¨´"°Q³%°¼2¸a»5¸'ÄBÀqÃEÀ7ÐKÈVÔUWÓXÒXÐXÑXr   c                  óü   — t        t        d«      t        d«      t        d«      ggdt        «      } t        t        d«      t        d«      t        d«      ggdt        «      }| j                  d„ t        «      |k(  sJ ‚y )Nr   r   r   r­   r   r]   c                 ó   — d| z  S )Nr   r   )Úxs    r   r   z$test_DDM_applyfunc.<locals>.<lambda>ý   s
   €   1¡€ r   )r   r   Ú	applyfunc©ra   rq   s     r   Útest_DDM_applyfuncr»   ú   sc   € ÜŒb�‹e”R˜“UœB˜q›EÐ"Ð# V¬RÓ0€AÜŒb�‹e”R˜“UœB˜q›EÐ"Ð# V¬RÓ0€AØ�;‰;‘}¤bÓ)¨QÒ.Ð.Ñ.r   c                  óB  — t        g dt        «      } | j                  «       | g fk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }ddg}| j                  «       ||fk(  sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggdt        «      } t        t        d«      t        d«      t        d	«      gt        d«      t        d«      t        d«      ggdt        «      }ddg}| j                  «       ||fk(  sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggdt        «      } t        t        d«      t        d«      t        d	«      gt        d«      t        d«      t        d«      ggdt        «      }ddg}| j                  «       ||fk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      gt        d«      t        d«      ggd
t        «      } t        t        d«      t        d«      gt        d«      t        d«      gt        d«      t        d«      ggd
t        «      }ddg}| j                  «       ||fk(  sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggdt        «      } t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggdt        «      }ddg}| j                  «       ||fk(  sJ ‚y )Nrž   r   r   r   r   r   r   r   r)   ©r   r   )r   r   Úrref)ra   ÚArÚpivotss      r   Útest_DDM_rrefrÁ   ÿ   së  € äˆB�œÓ€AØ�6‰6‹8˜˜2�wÒÐÐäŒb�‹e”R˜“Uˆ^œb ›e¤R¨£U˜^Ð,¨f´bÓ9€AÜ	Œr�!‹u”b˜“eˆnœr !›u¤b¨£e˜nÐ-¨v´rÓ	:€BØ�ˆV€FØ�6‰6‹8˜˜F�|Ò#Ð#Ð#äŒb�‹e”R˜“UœB˜q›EÐ"¤R¨£U¬B¨q«E´2°a³5Ð$9Ð:¸FÄBÓG€AÜ	Œr�!‹u”b˜“eœR ›VÐ$¤r¨!£u¬b°«e´R¸³UÐ&;Ð<¸fÄbÓ	I€BØ�ˆV€FØ�6‰6‹8˜˜F�|Ò#Ð#Ð#äŒb�‹e”R˜“UœB˜q›EÐ"¤R¨£U¬B¨q«E´2°a³5Ð$9Ð:¸FÄBÓG€AÜ	Œr�!‹u”b˜“eœR ›VÐ$¤r¨!£u¬b°«e´R¸³UÐ&;Ð<¸fÄbÓ	I€BØ�ˆV€FØ�6‰6‹8˜˜F�|Ò#Ð#Ð#äŒb�‹e”R˜“Uˆ^œb ›e¤R¨£U˜^¬b°«e´R¸³U¨^Ð<¸fÄbÓI€AÜ	Œr�!‹u”b˜“eˆnœr !›u¤b¨£e˜n¬r°!«u´b¸³e¨nÐ=¸vÄrÓ	J€BØ�ˆV€FØ�6‰6‹8˜˜F�|Ò#Ð#Ð#äŒb�‹e”R˜“UœB˜q›EÐ"¤R¨£U¬B¨q«E´2°a³5Ð$9Ð:¸FÄBÓG€AÜ	Œr�!‹u”b˜“eœR ›UÐ#¤b¨£e¬R°«U´B°q³EÐ%:Ð;¸VÄRÓ	H€BØ�ˆV€FØ�6‰6‹8˜˜F�|Ò#Ð#Ñ#r   c                  óú   — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      ggdt        «      }dg}| j                  «       ||fk(  sJ ‚y )Nr   r   r)   r7   )r   r   Ú	nullspace)ra   ÚAnullÚ	nonpivotss      r   Útest_DDM_nullspacerÆ     sj   € äŒb�‹e”R˜“Uˆ^œb ›e¤R¨£U˜^Ð,¨f´bÓ9€AÜ”"�R“&œ"˜Q›%�Ð! 6¬2Ó.€EØ�€IØ�;‰;‹=˜U IÐ.Ò.Ð.Ñ.r   c                  óª   — t        t        d«      t        d«      ggdt        «      } | j                  «       t        j                  dt        «      k(  sJ ‚y )Nr   r   r7   r_   )r   r   Ú
particularr=   r`   s    r   Útest_DDM_particularrÉ   &  s>   € ÜŒb�‹e”R˜“Uˆ^Ð˜f¤bÓ)€AØ�<‰<‹>œSŸY™Y v¬rÓ2Ò2Ð2Ñ2r   c            	      ó  ‡ — t        g dt        «      Š ‰ j                  «       t        d«      k(  sJ ‚t        t        d«      ggdt        «      Š ‰ j                  «       t        d«      k(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Š ‰ j                  «       t        d«      k(  sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      ggd
t        «      Š ‰ j                  «       t        d«      k(  sJ ‚t        t        dd«      t        dd«      gt        dd«      t        dd«      ggdt        «      Š ‰ j                  «       t        dd«      k(  sJ ‚t        t        d«      gt        d«      ggdt        «      Š t	        t
        ˆ fd„«       t        g dt        «      Š t	        t
        ˆ fd„«       y )NrU   r   r   r_   r   r   r   ru   r   rI   r   r)   é   rO   c                  ó$   •— ‰ j                  «       S ri   ©Údetr`   s   €r   r   ztest_DDM_det.<locals>.<lambda>B  ó   ø€  §¡£€ r   ©r   r   c                  ó$   •— ‰ j                  «       S ri   rÍ   r`   s   €r   r   ztest_DDM_det.<locals>.<lambda>F  rÏ   r   )r   r   rÎ   r   r   r   r`   s   @r   Útest_DDM_detrÒ   +  sž  ø€ äˆB�œÓ€AØ�5‰5‹7”b˜“eÒÐÐô 	Œb�‹eˆWˆI�vœrÓ"€AØ�5‰5‹7”b˜“eÒÐÐô 	Œb�‹e”R˜“Uˆ^œb ›e¤R¨£U˜^Ð,¨f´bÓ9€AØ�5‰5‹7”b˜“fÒÐÐô 	Œb�‹e”R˜“UœB˜q›EÐ"¤R¨£U¬B¨q«E´2°a³5Ð$9¼B¸q»EÄ2ÀaÃ5Ì"ÈQË%Ð;PÐQÐSYÔ[]Ó^€AØ�5‰5‹7”b˜“eÒÐÐô 	Œb��A‹hœ˜1˜a›Ð!¤B q¨!£H¬b°°A«hÐ#7Ð8¸&Ä"ÓE€AØ�5‰5‹7”b˜˜R“jÒ Ð Ð ô 	Œb�‹eˆW”r˜!“u�gÐ ¬Ó+€AÜ
Œ<›Ô)ô 	ˆB�œÓ€AÜ
Œ<›Õ)r   c                  óä  ‡— t        t        dd«      t        dd«      gt        dd«      t        dd«      ggdt        «      Št        t        dd«      t        dd«      gt        dd«      t        dd«      ggdt        «      } ‰j                  «       | k(  sJ ‚t        t        d«      t        d«      ggdt        «      Št        t        ˆfd	„«       t        t        d«      ggd
t
        «      Št        t        ˆfd„«       t        g dt        «      Š‰j                  «       ‰k(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        ˆfd„«       y )Nr   r   r   r   r   ru   r)   r7   c                  ó$   •— ‰ j                  «       S ri   ©Úinvr`   s   €r   r   ztest_DDM_inv.<locals>.<lambda>O  rÏ   r   r_   c                  ó$   •— ‰ j                  «       S ri   rÕ   r`   s   €r   r   ztest_DDM_inv.<locals>.<lambda>R  s   ø€  !§%¡%£'€ r   rU   c                  ó$   •— ‰ j                  «       S ri   rÕ   r`   s   €r   r   ztest_DDM_inv.<locals>.<lambda>X  s   ø€ ¨q¯u©u«w€ r   )r   r   rÖ   r   r   r   r
   r	   )ÚAinvra   s    @r   Útest_DDM_invrÚ   I  s  ø€ ÜŒb��A‹hœ˜1˜a›Ð!¤B q¨!£H¬b°°A«hÐ#7Ð8¸&Ä"ÓE€AÜ”�B˜“œB˜q !›HÐ%¬¨1¨a«´"°R¸³)Ð'<Ð=¸vÄrÓJ€DØ�5‰5‹7�dŠ?Ðˆ?äŒb�‹e”R˜“Uˆ^Ð˜f¤bÓ)€AÜ
Œ<›Ô)äŒb�‹eˆWˆI�vœrÓ"€AÜ
Œ=›/Ô*äˆB�œÓ€AØ�5‰5‹7�aŠ<Ðˆ<äŒb�‹e”R˜“Uˆ^œb ›e¤R¨£U˜^Ð,¨f´bÓ9€AÜ
Ô%£Õ7r   c                  ó  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  «       \  }}}|t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      k(  sJ ‚|t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      k(  sJ ‚|g k(  sJ ‚g d¢g d	¢g d
¢g d¢g} g d¢g d¢g d¢g d
¢g}g d¢g d	¢g d
¢g d¢g}d„ }t         || t        «      dt        «      } t         ||t        «      dt        «      }t         ||t        «      dt        «      }| j                  «       \  }}}||k(  sJ ‚||k(  sJ ‚|g k(  sJ ‚y )Nr   r   r   r   r   r   ru   )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           
      ód   — | D ��cg c]  }|D �cg c]
  } ||«      ‘Œ c}‘Œ c}}S c c}w c c}}w ri   r   )r   ÚdomÚrowÚes       r   r   ztest_DDM_lu.<locals>.<lambda>e  s&   € À×F¸#°Ö 5¨A¡ Q¥Ô 5ÓF€ ùÒ 5ùÓFs   †	,�'ž,§,)r   r   )r   r   Úlu)ra   ÚLÚUÚswapsÚLexpÚUexpÚto_doms          r   Útest_DDM_lurç   [  sT  € ÜŒb�‹e”R˜“Uˆ^œb ›e¤R¨£U˜^Ð,¨f´bÓ9€AØ—$‘$“&�K€A€qˆ%Ø””b˜“eœR ›U�^¤b¨£e¬R°«U ^Ð4°f¼bÓAÒAÐAÐAØ””b˜“eœR ›U�^¤b¨£e¬R°«V _Ð5°v¼rÓBÒBÐBÐBØ�BŠ;Ðˆ;â	’|¢\²<Ð@€AÚš,ª²lÐC€DÚš,ª²lÐC€DÙF€FÜ‰F�1”b‹M˜6¤2Ó&€AÜ‰v�dœBÓ ¬Ó,€DÜ‰v�dœBÓ ¬Ó,€DØ—$‘$“&�K€A€qˆ%Ø�Š9Ðˆ9Ø�Š9Ðˆ9Ø�BŠ;Ð‰;r   c                  óD  ‡‡‡‡— t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      gt        d«      ggdt        «      Št        t        d«      gt        dd«      ggdt        «      } ‰j                  ‰«      | k(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Š‰j                  ‰«      | k(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      gt        d«      t        d	«      ggd
t        «      Št        t        d«      gt        d«      gt        d«      ggdt        «      Š‰j                  ‰«      | k(  sJ ‚t        t        d«      gt        d«      gt        d«      ggdt        «      Št        t        ˆˆfd„«       t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      gt        d«      ggdt        «      Št        t        ˆˆfd„«       t        t        d«      t        d«      ggdt        «      Št        t        d«      ggdt        «      Št        t
        ˆˆfd„«       t        t        d«      gt        d«      ggdt        «      Št        t        ˆˆfd„«       t        t        d«      gt        d«      gt        d«      ggdt        «      Št        t        ˆˆfd„«       y )Nr   r   r   r   r   rO   r   r   r]   r½   r³   c                  ó&   •— ‰ j                  ‰«      S ri   ©Úlu_solve©ra   Úbs   €€r   r   z#test_DDM_lu_solve.<locals>.<lambda>�  ó   ø€ ¨q¯z©z¸!«}€ r   c                  ó&   •— ‰ j                  ‰«      S ri   rê   rì   s   €€r   r   z#test_DDM_lu_solve.<locals>.<lambda>†  rî   r   r7   r_   c                  ó&   •— ‰ j                  ‰«      S ri   rê   rì   s   €€r   r   z#test_DDM_lu_solve.<locals>.<lambda>‹  s   ø€ ¨¯
©
°1«€ r   c                  ó&   •— ‰ j                  ‰«      S ri   rê   )ra   Úbzs   €€r   r   z#test_DDM_lu_solve.<locals>.<lambda>�  s   ø€  !§*¡*¨R£.€ r   c                  ó&   •— ‰ j                  ‰«      S ri   rê   )ra   Úb3s   €€r   r   z#test_DDM_lu_solve.<locals>.<lambda>“  s   ø€  §¡¨B£€ r   )	r   r   rë   r   r	   ÚNotImplementedErrorr   r
   r   )r¸   ra   rí   rô   rò   s    @@@@r   Útest_DDM_lu_solverö   o  sm  û€ äŒb�‹e”R˜“Uˆ^œb ›e¤R¨£U˜^Ð,¨f´bÓ9€AÜŒb�‹eˆW”r˜!“u�gÐ ¬Ó+€AÜŒb�‹eˆW”r˜!˜Q“x�jÐ! 6¬2Ó.€AØ�:‰:�a‹=˜AÒÐÐô 	Œb�‹e”R˜“Uˆ^œb ›e¤R¨£U˜^Ð,¨f´bÓ9€AØ�:‰:�a‹=˜AÒÐÐô 	Œb�‹e”R˜“Uˆ^œb ›e¤R¨£U˜^¬b°«e´R¸³U¨^Ð<¸fÄbÓI€AÜŒb�‹eˆW”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AØ�:‰:�a‹=˜AÒÐÐô 	Œb�‹eˆW”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜ
Ô%Ô'<Ô=ô 	Œb�‹e”R˜“Uˆ^œb ›e¤R¨£U˜^Ð,¨f´bÓ9€AÜŒb�‹eˆW”r˜!“u�gÐ ¬Ó+€AÜ
Ô%Ô'<Ô=ô 	Œb�‹e”R˜“Uˆ^Ð˜f¤bÓ)€AÜŒb�‹eˆWˆI�vœrÓ"€AÜ
ÔÔ 5Ô6ô 
Œr�!‹uˆgœ˜1›�wÐ ¬Ó	,€BÜ
Œ=Ô0Ô1ô 
Œr�!‹uˆgœ˜1›�w¤ A£ Ð(¨&´"Ó	5€BÜ
Œ<Ô/Õ0r   c            	      ó2  ‡— t        g dt        «      Š‰j                  «       t        d«      gk(  sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d	«      t        d
«      ggdt        «      Št        d«      t        d«      t        d«      t        d«      g} ‰j                  «       | k(  sJ ‚t        t        d«      t        d«      ggdt        «      Št        t        ˆfd„«       y )NrU   r   r   r   r   r   r]   é   r‘   é	   rI   iñÿÿÿiîÿÿÿr   r7   c                  ó$   •— ‰ j                  «       S ri   )Úcharpolyr`   s   €r   r   z#test_DDM_charpoly.<locals>.<lambda>¢  s   ø€  §¡£€ r   )r   r   rû   r   r   )ÚAvecra   s    @r   Útest_DDM_charpolyrý   –  sß   ø€ ÜˆB�œÓ€AØ�:‰:‹<œB˜q›E˜7Ò"Ð"Ð"äÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐðð !'¬ó	,€Aô ˆq‹E”2�c“7œB˜s›G¤R¨£UÐ+€DØ�:‰:‹<˜4ÒÐÐäŒb�‹e”R˜“Uˆ^Ð˜f¤bÓ)€AÜ
Œ<Ó-Õ.r   c            	      óÈ  ‡ — t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      ggd
t        «      Š ‰ j                  dd«      t        d«      k(  sJ ‚‰ j                  dd«      t        d«      k(  sJ ‚‰ j                  dd«      t        d«      k(  sJ ‚t        t        ˆ fd„«       y )Nr   r   r   r   r   r]   rø   r‘   rù   rI   ru   r)   éýÿÿÿc                  ó(   •— ‰ j                  dd«      S )Nr   )Úgetitem©Údms   €r   r   z"test_DDM_getitem.<locals>.<lambda>¯  s   ø€ ˜rŸz™z¨!¨QÓ/€ r   )r   r   r  r   r*   r  s   @r   Útest_DDM_getitemr  ¥  s¿   ø€ Ü	Ü	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐðð !'¬ó
,€Bð
 �:‰:�a˜Óœr !›uÒ$Ð$Ð$Ø�:‰:�a˜Ó¤ 1£Ò%Ð%Ð%Ø�:‰:�b˜"Ó¤ A£Ò&Ð&Ð&ä
Œ:Ó/Õ0r   c                  ó  ‡ — t        j                  dt        «      Š ‰ j                  ddd«       ‰ j                  ddd«       ‰ j                  ddd«       ‰ t        j                  dt        «      k(  sJ ‚t        t        ˆ fd„«       y )NrI   r   r   ru   r)   r   c                  ó*   •— ‰ j                  ddd«      S )Nr   r   )Úsetitemr  s   €r   r   z"test_DDM_setitem.<locals>.<lambda>¹  s   ø€ ˜rŸz™z¨!¨Q°Ó2€ r   )r   r=   r   r  rJ   r   r*   r  s   @r   Útest_DDM_setitemr  ²  sf   ø€ Ü	�‰�6œ2Ó	€BØ‡J�Jˆq�!�QÔØ‡J�Jˆq�"�aÔØ‡J�Jˆr�2�qÔØ”—‘˜œB“ÒÐÐä
Œ:Ó2Õ3r   c            	      ó  — t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      ggd
t        «      } | j                  t        dd«      t        dd«      «      | k(  sJ ‚| j                  t        dd«      t        d«      «      t        dgdggdt        «      k(  sJ ‚| j                  t        dd«      t        d«      «      t        dgdggdt        «      k(  sJ ‚| j                  t        dd«      t        d«      «      t        t        d«      ggdt        «      k(  sJ ‚| j                  t        dd«      t        d«      «      t        dgdggdt        «      k(  sJ ‚| j                  t        d«      t        d«      «      t        ddgddggdt        «      k(  sJ ‚| j                  t        d«      t        dd«      «      t        g g gdt        «      k(  sJ ‚| j                  t        dd«      t        d«      «      t        g dt        «      k(  sJ ‚| j                  t        dd«      t        dd«      «      t        g dt        «      k(  sJ ‚y )Nr   r   r   r   r   r]   rø   r‘   rù   rI   r   ru   rO   r_   r)   r   rT   rS   rU   )r   r   Úextract_sliceÚslicer  s    r   Útest_DDM_extract_slicer  ¼  s%  € Ü	Ü	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐðð !'¬ó
,€Bð
 ×ÑœE ! Q›K¬¨q°!«Ó5¸Ò;Ð;Ð;Ø×ÑœE ! Q›K¬¨r«Ó3´s¸Q¸CÀ!À¸:ÀvÌrÓ7RÒRÐRÐRØ×ÑœE ! Q›K¬¨r«Ó3´s¸Q¸CÀ!À¸:ÀvÌrÓ7RÒRÐRÐRØ×ÑœE ! Q›K¬¨r«Ó3´s¼RÀ»U¸G¸9ÀfÌbÓ7QÒQÐQÐQØ×ÑœE ! Q›K¬¨r«Ó3´s¸Q¸CÀ!À¸:ÀvÌrÓ7RÒRÐRÐRØ×ÑœE "›I¤u¨R£yÓ1´S¸1¸a¸&À1ÀaÀ&Ð9IÈ6ÔSUÓ5VÒVÐVÐVà×ÑœE !›H¤e¨A¨q£kÓ2´c¸2¸r¸(ÀFÌBÓ6OÒOÐOÐOØ×ÑœE ! Q›K¬¨q«Ó2´c¸"¸fÄbÓ6IÒIÐIÐIØ×ÑœE ! Q›K¬¨q°!«Ó5¼¸RÀÌÓ9LÒLÐLÑLr   c            	      óz  ‡— t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      ggd
t        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Š| j                  ddgddg«      ‰k(  sJ ‚| j                  ddgddg«      ‰k(  sJ ‚| j                  g g «      t        j                  dt        «      k(  sJ ‚| j                  dgg «      t        j                  dt        «      k(  sJ ‚| j                  g dg«      t        j                  dt        «      k(  sJ ‚t	        t
        ˆfd„«       t	        t
        ˆfd„«       t	        t
        ˆfd„«       t	        t
        ˆfd„«       y )Nr   r   r   r   r   r]   rø   r‘   rù   rI   r   r   ru   r)   rU   )r   r   rÐ   c                  ó,   •— ‰ j                  dgdg«      S r$   ©Úextract©Údm2s   €r   r   z"test_DDM_extract.<locals>.<lambda>Ý  ó   ø€ ˜sŸ{™{¨A¨3°°Ó4€ r   c                  ó,   •— ‰ j                  dgdg«      S r(   r  r  s   €r   r   z"test_DDM_extract.<locals>.<lambda>Þ  r  r   c                  ó,   •— ‰ j                  dgdg«      S )Nrÿ   r   r  r  s   €r   r   z"test_DDM_extract.<locals>.<lambda>ß  s   ø€ ˜sŸ{™{¨B¨4°!°Ó5€ r   c                  ó,   •— ‰ j                  dgdg«      S )Nr   rÿ   r  r  s   €r   r   z"test_DDM_extract.<locals>.<lambda>à  s   ø€ ˜sŸ{™{¨A¨3°°Ó5€ r   )r   r   r  r=   r   r*   )Údm1r  s    @r   Útest_DDM_extractr  Î  so  ø€ Ü
Ü	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐðð !'¬ó,€Cô Ü	ˆA‹”�1“ˆÜ	ˆA‹”�1“ˆðà¤ó%€Cð �;‰;˜˜1�v  1˜vÓ&¨#Ò-Ð-Ð-Ø�;‰;˜˜A�w  Q Ó(¨CÒ/Ð/Ð/à�;‰;�r˜2Ó¤#§)¡)¨F´BÓ"7Ò7Ð7Ð7Ø�;‰;˜�s˜BÓ¤3§9¡9¨V´RÓ#8Ò8Ð8Ð8Ø�;‰;�r˜A˜3Ó¤3§9¡9¨V´RÓ#8Ò8Ð8Ð8ä
Œ:Ó4Ô5Ü
Œ:Ó4Ô5Ü
Œ:Ó5Ô6Ü
Œ:Ó5Õ6r   c                  óô   — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  «       t        d«      t        d«      t        d«      t        d«      gk(  sJ ‚y )Nr]   r   r   r   r   )r   r   Úflatr  s    r   Útest_DDM_flatr  ã  sc   € Ü	Ü	ˆA‹”�1“ˆÜ	ˆA‹”�1“ˆðà¤ó
%€Bð �7‰7‹9œ˜A›¤ 1£¤r¨!£u¬b°«eÐ4Ò4Ð4Ñ4r   c                  óþ   — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        j                  dt        «      }| j                  «       du sJ ‚|j                  «       du sJ ‚y )Nr   r   r   r7   FT)r   r   r=   Úis_zero_matrix)ra   ÚAzeros     r   Útest_DDM_is_zero_matrixr  ê  sk   € ÜŒb�‹e”R˜“Uˆ^œb ›e¤R¨£U˜^Ð,¨f´bÓ9€AÜ�I‰I�fœbÓ!€EØ×ÑÓ Ñ&Ð&Ð&Ø×ÑÓ! TÑ)Ð)Ñ)r   c            
      ó  — t        t        d«      t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      t        d
«      ggdt        «      } t        t        d«      t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      t        d
«      ggdt        «      }| j                  «       du sJ ‚|j                  «       du sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      gt        d«      t        d«      t        d«      ggdt        «      } t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      gt        d«      t        d«      t        d«      ggdt        «      }| j                  «       du sJ ‚|j                  «       du sJ ‚y ©Nr   r   r   r   r   r   r]   rø   r‘   rù   r<   TF)r   r   é
   )r   r   Úis_upperrº   s     r   Útest_DDM_is_upperr$  ñ  s  € äÜ	ˆA‹”�1“”r˜!“uœb ›eÐ$Ü	ˆA‹”�1“”r˜!“uœb ›eÐ$Ü	ˆA‹”�1“”r˜!“uœb ›eÐ$ðð Œró		€Aô
 	Ü	ˆA‹”�1“”r˜!“uœb ›eÐ$Ü	ˆA‹”�1“”r˜!“uœb ›eÐ$Ü	ˆA‹”�1“”r˜!“uœb ›eÐ$ðð Œró		€Að
 �:‰:‹<˜4ÑÐÐØ�:‰:‹<˜5Ñ Ð Ð ô 	Ü	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐð	ð
 Œró	€Aô 	Ü	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜"“vÐð	ð
 Œró	€Að �:‰:‹<˜4ÑÐÐØ�:‰:‹<˜5Ñ Ð Ñ r   c            
      óx  — t        t        d«      t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      t        d
«      ggdt        «      j                  «       } t        t        d«      t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      t        d
«      ggdt        «      j                  «       }| j                  «       du sJ ‚|j                  «       du sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      gt        d«      t        d«      t        d«      ggdt        «      j                  «       } t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      gt        d«      t        d«      t        d«      ggdt        «      j                  «       }| j                  «       du sJ ‚|j                  «       du sJ ‚y r!  )r   r   rV   Úis_lowerrº   s     r   Útest_DDM_is_lowerr'    s<  € äÜ	ˆA‹”�1“”r˜!“uœb ›eÐ$Ü	ˆA‹”�1“”r˜!“uœb ›eÐ$Ü	ˆA‹”�1“”r˜!“uœb ›eÐ$ðð Œró		÷ ‘9“;ð	 ô
 	Ü	ˆA‹”�1“”r˜!“uœb ›eÐ$Ü	ˆA‹”�1“”r˜!“uœb ›eÐ$Ü	ˆA‹”�1“”r˜!“uœb ›eÐ$ðð Œró		÷ ‘9“;ð	 ð
 �:‰:‹<˜4ÑÐÐØ�:‰:‹<˜5Ñ Ð Ð ô 	Ü	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐð	ð
 Œró	÷
 ‘9“;ð ô 	Ü	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜"“vÐð	ð
 Œró	÷
 ‘9“;ð ð �:‰:‹<˜4ÑÐÐØ�:‰:‹<˜5Ñ Ð Ñ r   N)0Úsympy.testing.pytestr   Úsympy.external.gmpyr   Úsympy.polysr   r   Úsympy.polys.matrices.ddmr   Úsympy.polys.matrices.exceptionsr   r	   r
   r   r!   r+   r0   r5   r:   r@   rD   rM   rQ   r[   rs   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   ú<module>r-     sÌ   ðÝ 'Ý ,ç å (÷ó ò

Pòò.ò"ò4òòòò"ò	$ò*ò-ò( ò)ò(2òVOò Yò /ò
$ò>/ò3ò
*ò<8ò$ò($1òN/ò
1ò4òMò$7ò*5ò*ò!ó@!r   