
    2VhS                         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 Z	d Z
d	 Zd
 Zd Zd ZddZddZd ZddZddZddZy)    N)config)standardize_dtype)dtypes)cast)convert_to_tensorc                 @    t         j                  j                  |       S N)torchlinalgcholeskyxs    N/home/dcms/DCMS/lib/python3.12/site-packages/keras/src/backend/torch/linalg.pyr   r   
   s    <<  ##    c                 ,    t        j                  |       S r	   )r
   detr   s    r   r   r      s    99Q<r   c                 @    t         j                  j                  |       S r	   )r
   r   eigr   s    r   r   r          <<Ar   c                 @    t         j                  j                  |       S r	   )r
   r   eighr   s    r   r   r      s    <<Qr   c                 @    t         j                  j                  |       S r	   )r
   r   invr   s    r   r   r      r   r   c                 T    t         j                  j                  |       \  }}||dz
  fS )N   )r
   r   	lu_factor)r   LUpivotss      r   r   r      s(    ''*JBvz>r   c                    t        |       } t        | j                        dk(  rt        j                         }n$t        j                  | j                  t              }t        | |      } t        j                  j                  | |||      S )Nint64)orddimkeepdim)r   r   dtyper   floatxr   result_typefloatr   r
   r   norm)r   r!   axiskeepdimsr$   s        r   r(   r(   $   sg    !A!W,""177E2QA<<QCT8DDr   c                 h    |dvrt        d|       t        j                  j                  | |      S )N>   reducedcompletez]`mode` argument value not supported. Expected one of {'reduced', 'complete'}. Received: mode=)mode)
ValueErrorr
   r   qr)r   r.   s     r   r0   r0   .   s@    **"V%
 	

 <<??14?((r   c                 B    t         j                  j                  | |      S r	   )r
   r   solve)abs     r   r2   r2   8   s    <<a##r   c                    |j                   | j                   dz
  k(  rJt        j                  |d      }t        j                  j	                  | ||       j                  d      S t        j                  j	                  | ||       S )Nr   )r)   )upper)ndimr
   	unsqueezer   solve_triangularsqueeze)r3   r4   lowers      r   r:   r:   <   sz    vv!OOAB'||,,QU,CKK L 
 	
 <<((AY(??r   c                     |st         j                  j                  |       S t         j                  j                  | |      S )N)full_matrices)r
   r   svdvalssvd)r   r>   
compute_uvs      r   r@   r@   E   s4    ||##A&&<<A];;r   c                 x    t        |       } t        |      }t        j                  j                  | ||      d   S )N)rcondr   )r   r
   r   lstsq)r3   r4   rC   s      r   rD   rD   K   s7    !A!A<<a%033r   )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(   r0   r2   r:   r@   rD    r   r   <module>rI      sU     $ / + - :$ E)$@<4r   