o
    2hS                     @   s   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ dd Z	d	d
 Z
dd Zdd Zdd Zdd Zd"ddZd#ddZdd Zd$ddZd%ddZd&d d!ZdS )'    N)config)standardize_dtype)dtypes)cast)convert_to_tensorc                 C      t j| S N)torchlinalgcholeskyx r   Y/var/www/html/chatgem/venv/lib/python3.10/site-packages/keras/src/backend/torch/linalg.pyr   
      r   c                 C   s
   t | S r   )r	   detr   r   r   r   r      s   
r   c                 C   r   r   )r	   r
   eigr   r   r   r   r      r   r   c                 C   r   r   )r	   r
   eighr   r   r   r   r      r   r   c                 C   r   r   )r	   r
   invr   r   r   r   r      r   r   c                 C   s   t j| \}}||d fS )N   )r	   r
   	lu_factor)r   LUpivotsr   r   r   r      s   r   Fc                 C   sL   t | } t| jdkrt }nt| jt}t| |} t	j
j| |||dS )Nint64)orddimkeepdim)r   r   dtyper   floatxr   result_typefloatr   r	   r
   norm)r   r   axiskeepdimsr   r   r   r   r!   $   s   

r!   reducedc                 C   s&   |dvrt d| tjj| |dS )N>   r$   completez]`mode` argument value not supported. Expected one of {'reduced', 'complete'}. Received: mode=)mode)
ValueErrorr	   r
   qr)r   r&   r   r   r   r(   .   s   r(   c                 C   s   t j| |S r   )r	   r
   solve)abr   r   r   r)   8   s   r)   c                 C   sN   |j | j d krtj|dd}tjj| || djddS tjj| || dS )Nr   )r"   )upper)ndimr	   	unsqueezer
   solve_triangularsqueeze)r*   r+   lowerr   r   r   r0   <   s   r0   Tc                 C   s    |st j| S t jj| |dS )N)full_matrices)r	   r
   svdvalssvd)r   r3   
compute_uvr   r   r   r5   E   s   r5   c                 C   s&   t | } t |}tjj| ||dd S )N)rcondr   )r   r	   r
   lstsq)r*   r+   r7   r   r   r   r8   K   s   r8   )NNF)r$   )F)TTr   )r	   keras.src.backendr   r   keras.src.backend.commonr   keras.src.backend.torch.corer   r   r   r   r   r   r   r   r!   r(   r)   r0   r5   r8   r   r   r   r   <module>   s$    





	