
    \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	" XEX45      n UTU   -  TU   U'   [        T5       Vs/ s H  oU   U   TU   U   X]   U   -  -
  PM     snX['   MR     U	" XUX4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    P/var/www/auris/envauris/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    ayebeAEla&776!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    2a5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:KQ1T!W:a=1T!W:a=0:Ks   $'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   BAwKQ01AFqJAQjmaDG*Q-&77Jq'
NSTXYZT[n ]nDGQ!ak!n2D!Dn ]7HT!W
7DG!EJ1XNXDG*Q-!Qjm*;;XNA1gJ  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     8Kq""Ks   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#     Bx!qAx~~~xs   (+)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   	!Qx5ER1X->??wwqzAGGAJLMMxx2~<==	
A	
A	A	AWWaVR F	
!Q	B %a)1bAh)Fa8D(adAL$J J% %MO O 1X56T:TR__Q+T:	qAq1&1G:"VAY.1a JOqRA11a69Q<(??RFI  VaV4q	  a%q5!!q"aQU,A1q5"b)~~q"aQ0 * FAAq1uB1Ia&Q- 77E:a!e}u, 9BqE!a%Lq	D(F1I!F1q5M1uXqtNAD!E(/1!a%y!a%/@"Q%Q-,BqE&1q5M2a!e9Va!e,1q5!_U1Xa5Q<"r'11a!!uQU|beAh6;1a!e %  !"q514aAhAE1A5 a%6 8E!QK88888BuQxBBBBB4KA *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    AU;A>>r   c                    [        XSS9$ )NTrW   rX   rY   s     r   ddm_lll_transformr\   ]   s    AT::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 Ah M` 1X ?  "!Qx ;r   