ó
    Š*£hÞ  ã                  ó”   • S SK Jr  S SKJr  S SKJrJr  S SKJ	r	J
r
JrJr  \" SS5      S4S jr\" SS5      4S	 jr\" SS5      4S
 jrg)é    )Úannotations)Úfloor)ÚZZÚQQ)ÚDMRankErrorÚDMShapeErrorÚDMValueErrorÚDMDomainErroré   é   Fc           	     ó4  ^^^^^^^^^^• [        SS5      T:¼  d  T[        SS5      :¼  a  [        S5      eU R                  S   U R                  S   :”  a  [        S5      eU R                  [
        :w  a  [        S5      eU R                  S   mU R                  S   mSnU R                  5       nU R                  TT4[         5      nU R                  TT4[         5      m[        T5       Vs/ s H  n[        SS5      PM     snm[        SS5      mT(       a  U R                  T[
        5      OS nSnU4S	 jmSUUU4S
 jjmSUU4S jjmSS jn	SUUUU4S jjn
[        T5       HŸ  nXK    Vs/ s H  n[         R                  " U[
        5      PM      snX['   [        U5       HP  nU	" XEX½45      n UTU   -  TU   U'   [        T5       Vs/ s H  oÅU   U   TU   U   X]   U   -  -
  PM     snX['   MR     U	" XUX»45      TU'   M¡     UT:  Gaz  T" X3S-
  5      (       d  U
" UTXCUS-
  45        T" U5      (       a9  [        US-
  SS5       H  nT" X?5      (       a  M  U
" UTXCU45        M      US-  nGOTU   US-
     nTU   US-  TUS-
     -  -   n TUS-
     U-  nUU-  TU   US-
  '   TU   U-  TU'   UTUS-
  '   XCS-
     XC   sXC'   XCS-
  '   TUS-
     S US-
   TU   S US-
   sTU   S US-
  & TUS-
     S US-
  & [        US-   T5       HB  nTU   U   nTU   US-
     UU-  -
  TU   U'   TU   US-
     TU   U   -  U-   TU   US-
  '   MD     T(       a  XsS-
     Xs   sXs'   XsS-
  '   [        US-
  S5      nUT:  a  GMz  [        U4S j[        ST5       5       5      (       d   e[        U4S j[        T5       5       5      (       d   eXG4$ s  snf s  snf ! [         a    [        U5      ef = fs  snf ! [         a    [        U5      ef = f)Né   r   z!delta must lie in range (0.25, 1)r   z/input matrix must have shape (m, n) with m <= nzinput matrix domain must be ZZé   z-input matrix contains linearly dependent rowsc                ó2   >• [        [        U T-   5      5      $ ©N)r   Úmfloor)ÚxÚhalfs    €ÚU/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/polys/matrices/lll.pyÚclosest_integerÚ!_ddm_lll.<locals>.closest_integer   s   ø€ Ü”&˜˜T™Ó"Ó#Ð#ó    c                óD   >• TU    TTU    U S-
     S-  -
  TU S-
     -  :¬  $ )Nr   r   © )ÚkÚdeltaÚg_starÚmus    €€€r   Úlovasz_conditionÚ"_ddm_lll.<locals>.lovasz_condition   s5   ø€ Ø�a‰y˜e b¨¡e¨A°©E¡l°aÑ&7Ñ7¸6À!ÀaÁ%¹=ÑHÑIÐIr   c                ó,   >• [        TU    U   5      T:*  $ r   )Úabs)r   Újr   r   s     €€r   Úmu_smallÚ_ddm_lll.<locals>.mu_small!   s   ø€ Ü�2�a‘5˜‘8‹} Ñ$Ð$r   c                ób   ^ ^^• [        UU U4S j[        T R                  S   5       5       5      $ )Nc              3  óR   >#   • U  H  nTTS       U   TTS      U   -  v •  M     g7f)r   r   Nr   )Ú.0ÚzÚrowsr   Úys     €€€r   Ú	<genexpr>Ú-_ddm_lll.<locals>.dot_rows.<locals>.<genexpr>%   s0   øé € ÐLÒ:K°Q�1�T˜!‘W‘:˜a‘= 1 T¨!¡W¡:¨a¡=Ö0Ò:Kùs   ƒ$'r   )ÚsumÚrangeÚshape)r   r+   r*   s   ```r   Údot_rowsÚ_ddm_lll.<locals>.dot_rows$   s!   ú€ ÜÖL¼%ÀÇÁÈÁ
Ô:KÓLÓLÐLr   c                óà  >• T" XS      US      5      n[        T5       Vs/ s H  oRUS      U   XBUS      U   -  -
  PM     snX#S   '   [        US   5       Vs/ s H  oQUS      U   XAUS      U   -  -
  PM     snXS      S US   & XS      US   ==   U-  ss'   T	(       a8  [        T5       Vs/ s H  oPUS      U   X@US      U   -  -
  PM     snXS   '   g g s  snf s  snf s  snf )Nr   r   ©r/   )
ÚTr   r+   r*   Úrr)   r   ÚmÚnÚreturn_transforms
         €€€€r   Ú
reduce_rowÚ_ddm_lll.<locals>.reduce_row'   s  ø€ Ù˜B A™w™K¨¨Q©Ñ0Ó1ˆÜAFÀqÄÓJÂ¸A˜˜Q™‘j ‘m a¨D°©G©*°Q©-Ñ&7Ô7ÁÑJˆˆq‰'‰
ÜNSÐTXÐYZÑT[ÌnÓ ]ÊnÈ D¨¡G¡¨Q¡°!¸¸a¹±kÀ!±nÑ2DÔ!DÉnÑ ]ˆ�‰7‰�H�T˜!‘WÐØ
�‰7‰�D˜‘GÓ Ñ!ÓÞÜEJÈ1ÄXÓNÂXÀ˜D ™G™* Q™-¨!°°Q±©j¸©mÑ*;Ô;ÁXÑNˆA�1‰gŠJð ùò KùÚ ]ùò Os   ¢"C!Á"C&Â5"C+éÿÿÿÿc              3  ó4   >#   • U  H  nT" U5      v •  M     g 7fr   r   )r(   Úir   s     €r   r,   Ú_ddm_lll.<locals>.<genexpr>T   s   øé € Ð8ªK qÑ ×"Ð"ªKùs   ƒc              3  óZ   >#   • U  H   n[        U5        H  nT" X5      v •  M     M"     g 7fr   r4   )r(   r>   r#   r$   s      €r   r,   r?   U   s#   øé € ÐB¢x !¼¸q¿°A‰x˜�~ˆ~¹‰~¢xùs   ƒ(+)r   ÚintÚreturnÚbool)r   rA   r#   rA   rB   rC   )r*   ztuple[int, int])r   r	   r0   r   Údomainr   r
   ÚcopyÚzerosr/   ÚeyeÚconvert_fromÚZeroDivisionErrorr   ÚmaxÚall)r   r   r9   r   r+   Úy_starÚ_r5   Úlinear_dependent_errorr1   r:   r>   r)   r#   Úrow_dotÚlÚnuÚalphaÚbetaÚxir   r   r   r   r7   r   r$   r8   s    ``                 @@@@@@@@r   Ú_ddm_lllrU   	   sk  ÿù€ Ü	ˆ!ˆQƒx�5Ó˜E¤R¨¨1£XÓ-ÜÐ>Ó?Ð?Ø‡w�wˆq�z�A—G‘G˜A‘JÓÜÐLÓMÐMØ‡x�x”2ƒ~ÜÐ<Ó=Ð=Ø	�‰�‰
€AØ	�‰�‰
€AØ	€AØ	�‰‹€AØ�W‰W�a˜�VœRÓ €FØ	
�‰�!�Q�œÓ	€BÜ % a¤Ó)¢˜1Œb��AŽh¡Ñ)€FÜˆa�‹8€DÞ(ˆ�‰ˆa”Œ¨d€AØLÐõ$÷Jñ J÷%ð %ôM÷Oò Oô �1ŽXˆØ56²TÓ:²T°”R—_’_ Q¬Ö+±TÑ:ˆ‰	Ü�q–ˆAÙ˜q¨1¨&Ó1ˆGð:Ø" V¨A¡YÑ.��1‘�a‘ô JOÈqÌÓRÊÀA ™ 1™¨¨1©¨a©°6±9¸Q±<Ñ(?Ô?ÉÑRˆF‹Iñ ñ ˜V¨a¨VÓ4ˆˆq‹	ñ ð ˆaŒ%Ù˜˜q™5×!Ñ!Ù�q˜"˜a Q¨¡U Ô,Ù˜A×ÑÜ˜1˜q™5 " bÖ)�Ù —~“~Ù˜q " a¨Q¨Ö0ñ *ð �‰FŠAà�A‘�q˜1‘u‘ˆBØ˜1‘I  a¡¨&°°Q±©-Ñ 7Ñ7ˆEð:Ø˜a !™e‘} uÑ,�ð  ™9ˆBˆq‰E�!�a‘%‰LØ˜q™	 DÑ(ˆF�1‰IØ!ˆF�1�q‘5‰MØ 1™u™X q¡tˆNˆA‰D�!˜‘E‘(Ø/1°!°a±%©y¸¸!¸a¹%Ð/@À"ÀQÁ%ÈÈÈQÉÀ-Ð,ˆBˆq‰E�&�1�q‘5ˆM˜2˜a !™e™9 V a¨!¡eÐ,Ü˜1˜q™5 !–_�Ø˜‘U˜1‘X�Ø˜a™5  Q¡™<¨"¨r©'Ñ1��1‘�a‘Ø! !™u Q¨¡U™|¨b°©e°A©hÑ6¸Ñ;��1‘�a˜!‘e“ñ %ö  Ø!" q¡5¡¨1©4��‘�a˜A™‘hÜ�A˜‘E˜1“ˆAð5 ˆaŽ%ô6 Ô8¬E°!°Q¬KÓ8×8Ñ8Ð8Ð8ÜÔB¤u¨Q¤xÓB×BÑBÐBÐBØˆ4€KùòA *ùò4 ;øô
 %ó :Ü!Ð"8Ó9Ð9ð:üâRøô %ó :Ü!Ð"8Ó9Ð9ð:ús*   Ã-OÅ0%OÆ3O#Ç"O<ÊP Ï#O9ÐPc                ó   • [        XSS9S   $ )NF©r   r9   r   ©rU   ©r   r   s     r   Úddm_lllrZ   Y   s   € Ü�A°UÑ;¸AÑ>Ð>r   c                ó   • [        XSS9$ )NTrW   rX   rY   s     r   Úddm_lll_transformr\   ]   s   € Ü�A°TÑ:Ð:r   N)Ú
__future__r   Úmathr   r   Úsympy.polys.domainsr   r   Úsympy.polys.matrices.exceptionsr   r   r	   r
   rU   rZ   r\   r   r   r   Ú<module>ra      sH   ðÝ "å  ç &ß bÓ bñ ˜˜A“h°ô Mñ` ˜˜1“Xô ?ñ  " ! Q›xõ ;r   