
    קg                       d dl mZ d dlZd dlZd dlmZ d dlZddlmZm	Z	 ddl
mZmZmZ  G d de          Zd	 Zd
 Zd Zeed/d                        Zeeddd0d                        Zeed1d                        Zeed2d1d                        Zeed/d                        Zeed3d/d                        Zeed2d1d                        Zeed4d/d                        Zeed/d                        Zeed/d                        Zeed2d5d                         Zeed6d/d!                        Zeed7d8d$                        Zeed/d%                        Z eed9d/d'                        Z!eed:d/d)                        Z"eed/d*                        Z#eed;d/d,                        Z$eed/d-                        Z%eed;d/d.                        Z&dS )<    )annotationsN)Sequence   )_dtypes_impl_util)	ArrayLikeKeepDims
normalizerc                      e Zd ZdS )LinAlgErrorN)__name__
__module____qualname__     O/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/_numpy/linalg.pyr   r      s        Dr   r   c                    | j         j        s7| j         j        s+|                     t	          j                    j                  } | S N)dtypeis_floating_point
is_complextor   default_dtypesfloat_dtypeas    r   _atleast_float_1r      s=    G% <); <DD,..:;;Hr   c                    t          j        | |          }|j        s|j        st          j                    j        }t          j        | |          } t          j        ||          }| |fS r   )r   result_type_implr   r   r   r   r   cast_if_needed)r   bdtyps      r   _atleast_float_2r#      sf    (A..D" 9do 9*,,8Q%%AQ%%Aa4Kr   c                F     t          j                    fd            }|S )Nc                 j    	  | i |S # t           j        j        $ r}t          |j         d }~ww xY wr   )torch_C_LinAlgErrorr   args)r)   kwdsefuncs      r   wrappedzlinalg_errors.<locals>.wrapped$   sN    	'4&&&&x$ 	' 	' 	'qv&&	's    2-2)	functoolswraps)r,   r-   s   ` r   linalg_errorsr0   #   s8    _T' ' ' ' ' Nr   r   r   c                `    t          |           } t          j                            | |          S r   )r   r&   linalgmatrix_power)r   ns     r   r3   r3   1   s)     	A<$$Q***r   )outinputsSequence[ArrayLike]c               @    t           j                            |           S r   )r&   r2   	multi_dot)r6   r5   s     r   r9   r9   8   s     <!!&)))r   r!   c                h    t          | |          \  } }t          j                            | |          S r   )r#   r&   r2   solve)r   r!   s     r   r;   r;   A   s/     Aq!!DAq<a###r   c                    t          | |          \  } }| j        s|j        rdnd}t          j                            | |||          S )Ngelsgelsd)rconddriver)r#   is_cudar&   r2   lstsq)r   r!   r?   r@   s       r   rB   rB   H   sO     Aq!!DAq y:AI:VV7F<a%???r   c                b    t          |           } t          j                            |           }|S r   )r   r&   r2   invr   results     r   rD   rD   R   s+     	A\a  FMr   V瞯<Fc                d    t          |           } t          j                            | ||          S )N)rtol	hermitian)r   r&   r2   pinv)r   r?   rJ   s      r   rK   rK   Z   s.     	A<QUi@@@r   c                l    t          | |          \  } }t          j                            | ||          S )N)dims)r#   r&   r2   tensorsolve)r   r!   axess      r   rN   rN   a   s4     Aq!!DAq<##Aqt#444r      c                b    t          |           } t          j                            | |          S )N)ind)r   r&   r2   	tensorinv)r   rR   s     r   rS   rS   h   s,     	A<!!!!---r   c                ^    t          |           } t          j                            |           S r   )r   r&   r2   detr   s    r   rU   rU   r   s'     	A<Ar   c                ^    t          |           } t          j                            |           S r   )r   r&   r2   slogdetr   s    r   rW   rW   y   s'     	A<"""r   xc                d   t          |           } |                                 dk    r4t          j        | j        dd                    dk    rt          d          t          j                            | |          }t          j	        t          j
        |          t          d          |          S )Nr   z#cond is not defined on empty arrays)pinf)r   numelmathprodshaper   r&   r2   condwhereisnanfloat)rX   r[   rF   s      r   ra   ra      s     	A 	wwyyA~~$)AGBCCL11Q66?@@@\qA&&F
 ;u{6**E%LL&AAAr   c                N   t          |           } | j        dk     r%t          | dk                                              S |>d}t	          | j        dd                    t          j        | j                  j	        z  }n|d}}t          j
                            | |||          S )NrP   r   rZ   )atolrI   rJ   )r   ndimintanymaxr`   r&   finfor   epsr2   matrix_rank)r   tolrJ   rf   rI   s        r   rm   rm      s     	AvzzAF<<>>"""
{17233<  5;qw#7#7#;;!d<##ADty#QQQr   keepdimsr	   c                d    t          |           } t          j                            | ||          S )N)orddim)r   r&   r2   norm)rX   rq   axisro   s       r   rs   rs      s.     	A<QCT222r   c                ^    t          |           } t          j                            |           S r   )r   r&   r2   choleskyr   s    r   rv   rv      s'     	A<  ###r   reducedc                    t          |           } t          j                            | |          }|dk    r|j        }|S )N)moder)r   r&   r2   qrR)r   ry   rF   s      r   r{   r{      s=     	A\__QT_**Fs{{Mr   Tc                    t          |           } |st          j                            |           S t          j                            | |          }|S )N)full_matrices)r   r&   r2   svdvalssvd)r   r~   
compute_uvrJ   rF   s        r   r   r      sP     	A '|##A&&& \a}==FMr   c                   t          |           } t          j                            |           \  }}|                                 s?|                                r+|j        dk                                    r|j        }|j        }||fS Nr   )r   r&   r2   eigr   imagallreal)r   wvts      r   r   r      sy     	ALQEAr<<>> allnn !&A+1B1B1D1D FWb5Lr   Lc                b    t          |           } t          j                            | |          S N)UPLO)r   r&   r2   eighr   r   s     r   r   r      s,     	A<QT***r   c                    t          |           } t          j                            |           }|                                 s8|                                r$|j        dk                                    r|j        }|S r   )r   r&   r2   eigvalsr   r   r   r   rE   s     r   r   r      so     	A\!!!$$F<<>> f//11 v{a7G6L6L6N6N Mr   c                b    t          |           } t          j                            | |          S r   )r   r&   r2   eigvalshr   s     r   r   r      s,     	A<   ...r   )r   r   )r6   r7   )r   r   r!   r   r   )rG   F)rP   )rX   r   )NF)NNF)rX   r   ro   r	   )rw   )TTF)r   )'
__future__r   r.   r^   typingr   r&    r   r   _normalizationsr   r	   r
   	Exceptionr   r   r#   r0   r3   r9   r;   rB   rD   rK   rN   rS   rU   rW   ra   rm   rs   rv   r{   r   r   r   r   r   r   r   r   <module>r      s   # " " " " "             ! ! ! ! ! ! ! ! < < < < < < < < < <	 	 	 	 	) 	 	 	       + + +  +
 26 * * * * *  * $ $ $  $
 @ @ @ @  @      A A A A  A
 5 5 5 5  5
 . . . .  .     
 # # #  #
 B B B B  B  R R R R  R 3 3 3 3  3 $ $ $  $
                  + + + +  +
      / / / /  / / /r   