
    g                        d dl mZ d dlmZ d dlmZmZ d dlm	Z	m
Z
mZmZ  edd          dfdZ edd          fd	Z edd          fd
ZdS )    )annotations)floor)ZZQQ)DMRankErrorDMShapeErrorDMValueErrorDMDomainError      Fc                   t          dd          k    st          dd          k    rt          d          | j        d         | j        d         k    rt          d          | j        t
          k    rt          d          | j        d         | j        d         d}|                                 }|                     ft                     |                     ft                     d t                    D             t          dd          r| 
                    t
                    nd }d	}fd
dfddfddd}dfd}t                    D ]d |         D             <   t                    D ]e ||f          }		 |	         z           <   n# t          $ r t          |          w xY wfdt                    D             <   f |f          <   |k     r ||dz
            s |||||dz
  f            |          r:t          |dz
  dd          D ]}
 ||
          s |||||
f           |dz  }n|         |dz
           }|         |dz  |dz
           z  z   }	 |dz
           |z  }n# t          $ r t          |          w xY w||z  |         |dz
  <   |         |z  |<   ||dz
  <   ||dz
           ||         c||<   ||dz
  <   |dz
           d |dz
           |         d |dz
           c|         d |dz
  <   |dz
           d |dz
  <   t          |dz             D ]_         |         }         |dz
           ||z  z
           |<   |         |dz
                    |         z  |z            |dz
  <   `r||dz
           ||         c||<   ||dz
  <   t          |dz
  d          }|k     t          fdt          d          D                       sJ t          fdt                    D                       sJ ||fS )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 ZZc                .    g | ]}t          d d          S r   r   )r   ).0_s     T/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/polys/matrices/lll.py
<listcomp>z_ddm_lll.<locals>.<listcomp>   s     )))1bAhh)))       z-input matrix contains linearly dependent rowsc                B    t          t          | z                       S N)r   mfloor)xhalfs    r   closest_integerz!_ddm_lll.<locals>.closest_integer   s    &T""###r   kintreturnboolc                ^    |          |          | dz
           dz  z
  | dz
           z  k    S )Nr   r    )r   deltag_starmus    r   lovasz_conditionz"_ddm_lll.<locals>.lovasz_condition   s5    ayebeAEla&776!a%=HIIr   jc                B    t          |          |                   k    S r   )abs)r   r'   r   r%   s     r   mu_smallz_ddm_lll.<locals>.mu_small!   s    2a58}}$$r   rowstuple[int, int]c                r     t           fdt           j        d                   D                       S )Nc              3  j   K   | ]-}d                   |         d                  |         z  V  .dS )r   r   Nr"   )r   zr+   r   ys     r   	<genexpr>z-_ddm_lll.<locals>.dot_rows.<locals>.<genexpr>%   s@      LLQ1T!W:a=1T!W:a=0LLLLLLr   r   )sumrangeshape)r   r0   r+   s   ```r   dot_rowsz_ddm_lll.<locals>.dot_rows$   s<    LLLLLL%
:K:KLLLLLLr   c                     d                  d                            fdt                    D             d         <   fdt          d                   D             d                  d d         <   d                  d         xx         z  cc<   r( fdt                    D              d         <   d S d S )Nr   r   c                h    g | ].}d                   |         d                  |         z  z
  /S r   r"   )r   r/   rr+   r0   s     r   r   z0_ddm_lll.<locals>.reduce_row.<locals>.<listcomp>)   s;    JJJAaQjma!DG*Q-&77JJJr   c                h    g | ].}d                   |         d                  |         z  z
  /S r   r"   )r   r/   r%   r8   r+   s     r   r   z0_ddm_lll.<locals>.reduce_row.<locals>.<listcomp>*   s;     ] ] ]DGQ!bak!n2D!D ] ] ]r   c                h    g | ].}d                   |         d                  |         z  z
  /S r   r"   )r   r/   Tr8   r+   s     r   r   z0_ddm_lll.<locals>.reduce_row.<locals>.<listcomp>-   s;    NNN!DG*Q-!aQjm*;;NNNr   r3   )	r;   r%   r0   r+   r8   r   mnreturn_transforms	   ````@r   
reduce_rowz_ddm_lll.<locals>.reduce_row'   s   OBtAwKQ011JJJJJJqJJJ$q'
 ] ] ] ] ] ]eTXYZT[nn ] ] ]47HT!WH
47DG! 	ONNNNNNU1XXNNNAd1gJJJ	O 	Or   c                B    g | ]}t          j        |t                    S r"   )r   convert_fromr   )r   r/   s     r   r   z_ddm_lll.<locals>.<listcomp>0   s$    :::R_Q++:::r   c                h    g | ].}         |                                    |         z  z
  /S r"   r"   )r   r/   ir'   r%   y_stars     r   r   z_ddm_lll.<locals>.<listcomp>7   s;    RRRA11a6!9Q<(??RRRr   c              3  .   K   | ]} |          V  d S r   r"   )r   rD   r&   s     r   r1   z_ddm_lll.<locals>.<genexpr>T   s/      88q""888888r   c              3  T   K   | ]"}t          |          D ]} ||          V  #d S r   r<   )r   rD   r'   r*   s      r   r1   z_ddm_lll.<locals>.<genexpr>U   s@      BB!qBBAxx1~~BBBBBBBr   )r   r   r   r    )r   r   r'   r   r   r    )r+   r,   )r   r	   r4   r   domainr   r
   copyzerosr3   eyeZeroDivisionErrorr   maxall)r   r#   r?   r   r0   r;   linear_dependent_errorr5   r@   row_dotlnualphabetaxir   r$   r   rD   r'   r&   r=   r%   r*   r>   rE   s    ``            @@@@@@@@@@@r   _ddm_lllrW   	   s   	!Qxx5ER1XX-->???wqzAGAJLMMMx2~~<===	
A	
A	A	AWWaVR  F	
!Q		B))a)))Fa88D(2adAL$ $ $ $ $J J J J J J J J% % % % % % %M M M MO O O O O O O O O 1XX 	5 	5::QqT:::q	q 	S 	SAhq&1a&11G:"VAY.1a$ : : :!"8999:RRRRRRRqRRRF1IIHVVaV44q		
a%%x1q5!! 	-Jq"a!QU,,,A 	1q5"b)) 1 1x1~~ 1Jq"a!Q000FAAAq1uB1Ia&Q- 77E:a!e}u,$ : : :!"8999:9BqE!a%Lq	D(F1I!F1q5Mq1uXqtNAaD!AE(/1!a%y!a%/@"Q%Q-,BqE&1q5&M2a!e9Va!eV,1q5!__ < <U1Xa5Q<"r'11a!!uQU|beAh6;1a!e 0!"1q51Q4!aAhAE1A5 a%%6 8888E!QKK88888888BBBBuQxxBBBBBBBBa4Ks   +G  G,J; ;Kc                2    t          | |d          d         S )NFr#   r?   r   rW   r   r#   s     r   ddm_lllr\   Y   s    AUU;;;A>>r   c                &    t          | |d          S )NTrY   rZ   r[   s     r   ddm_lll_transformr^   ]   s    AUT::::r   N)
__future__r   mathr   r   sympy.polys.domainsr   r   sympy.polys.matrices.exceptionsr   r   r	   r
   rW   r\   r^   r"   r   r   <module>rc      s    " " " " " "             & & & & & & & & b b b b b b b b b b b b bAhh M M M M` R1XX ? ? ? ?  "r!Qxx ; ; ; ; ; ;r   