o
    "i                     @  s  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 deZd	d
 Zdd Zdd ZeedFddZeedddGddZeedHddZeedIdHddZeedFddZeedJdFd!d"ZeedIdHd#d$ZeedKdFd&d'ZeedFd(d)ZeedFd*d+ZeedIdLd-d.ZeedMdFd/d0ZeedNdOd3d4ZeedFd5d6Z eedPdFd8d9Z!eedQdFd;d<Z"eedFd=d>Z#eedRdFd@dAZ$eedFdBdCZ%eedRdFdDdEZ&dS )S    )annotationsN)Sequence   )_dtypes_impl_util)	ArrayLikeKeepDims
normalizerc                   @  s   e Zd ZdS )LinAlgErrorN)__name__
__module____qualname__ r   r   b/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/torch/_numpy/linalg.pyr
      s    r
   c                 C  s$   | j js| j js| t j} | S N)dtypeis_floating_point
is_complextor   default_dtypesfloat_dtypear   r   r   _atleast_float_1   s   r   c                 C  sB   t | |}|js|jst  j}t| |} t||}| |fS r   )r   Zresult_type_implr   r   r   r   r   Zcast_if_needed)r   bZdtypr   r   r   _atleast_float_2   s   
r   c                   s   t   fdd}|S )Nc               
     s8   z | i |W S  t jjy } zt|j d }~ww r   )torchZ_CZ_LinAlgErrorr
   args)r   kwdsefuncr   r   wrapped"   s   
zlinalg_errors.<locals>.wrapped)	functoolswraps)r!   r"   r   r    r   linalg_errors!   s   r%   r   r   c                 C  s   t | } tj| |S r   )r   r   linalgmatrix_power)r   nr   r   r   r'   /   s   r'   )outinputsSequence[ArrayLike]c                C  s   t j| S r   )r   r&   	multi_dot)r*   r)   r   r   r   r,   6   s   r,   r   c                 C  s   t | |\} }tj| |S r   )r   r   r&   solve)r   r   r   r   r   r-   ?   s   r-   c                 C  s6   t | |\} }| js|jrdnd}tjj| |||dS )NZgelsZgelsd)rconddriver)r   Zis_cudar   r&   lstsq)r   r   r.   r/   r   r   r   r0   F   s   r0   c                 C  s   t | } tj| }|S r   )r   r   r&   invr   resultr   r   r   r1   P   s   r1   V瞯<Fc                 C     t | } tjj| ||dS )N)rtol	hermitian)r   r   r&   pinv)r   r.   r7   r   r   r   r8   X      r8   c                 C  s    t | |\} }tjj| ||dS )N)dims)r   r   r&   tensorsolve)r   r   Zaxesr   r   r   r;   _   s   r;      c                 C     t | } tjj| |dS )N)ind)r   r   r&   	tensorinv)r   r>   r   r   r   r?   f      r?   c                 C     t | } tj| S r   )r   r   r&   detr   r   r   r   rB   p      rB   c                 C  rA   r   )r   r   r&   slogdetr   r   r   r   rD   w   rC   rD   xc                 C  s\   t | } |  dkrt| jdd  dkrtdtjj| |d}t	t
|td|S )Nr   z#cond is not defined on empty arrays)pinf)r   Znumelmathprodshaper
   r   r&   condwhereisnanfloat)rE   rG   r3   r   r   r   rL   ~   s
   $rL   c                 C  sn   t | } | jdk rt| dk S |d u r(d}t| jdd  t| jj	 }n|d}}tj
j| |||dS )Nr<   r   rF   )atolr6   r7   )r   ndimintanymaxrK   r   Zfinfor   Zepsr&   matrix_rank)r   Ztolr7   rP   r6   r   r   r   rU      s   
"
rU   keepdimsr   c                 C  r5   )N)orddim)r   r   r&   norm)rE   rW   ZaxisrV   r   r   r   rY      r9   rY   c                 C  rA   r   )r   r   r&   choleskyr   r   r   r   rZ      rC   rZ   reducedc                 C  s*   t | } tjj| |d}|dkr|j}|S )N)moder)r   r   r&   qrR)r   r\   r3   r   r   r   r^      s
   r^   Tc                 C  s,   t | } |stj| S tjj| |d}|S )N)full_matrices)r   r   r&   Zsvdvalssvd)r   r`   Z
compute_uvr7   r3   r   r   r   ra      s
   ra   c                 C  sJ   t | } tj| \}}|  s!| r!|jdk r!|j}|j}||fS Nr   )r   r   r&   eigr   imagallreal)r   wvtr   r   r   rc      s   rc   Lc                 C  r=   N)UPLO)r   r   r&   eighr   rk   r   r   r   rl      r@   rl   c                 C  s<   t | } tj| }|  s| r|jdk r|j}|S rb   )r   r   r&   eigvalsr   rd   re   rf   r2   r   r   r   rn      s
   rn   c                 C  r=   rj   )r   r   r&   eigvalshrm   r   r   r   ro      r@   ro   )r   r   )r*   r+   )r   r   r   r   r   )r4   F)r<   )rE   r   )NF)NNF)rE   r   rV   r   )r[   )TTF)ri   )'
__future__r   r#   rI   typingr   r    r   r   Z_normalizationsr   r   r	   	Exceptionr
   r   r   r%   r'   r,   r-   r0   r1   r8   r;   r?   rB   rD   rL   rU   rY   rZ   r^   ra   rc   rl   rn   ro   r   r   r   r   <module>   s    
	
