
    ij                         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	 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ddZddZddZy)    N)config)standardize_dtype)dtypes)cast)convert_to_tensorc                 D    t         j                  j                  | |      S Nupper)torchlinalgcholeskyxr   s     s/var/www/html/emotional.easysim.app/public_html/venv/lib/python3.12/site-packages/keras/src/backend/torch/linalg.pyr   r   
   s    <<  % 00    c                 0    t        j                  | |      S r	   )r   cholesky_inverser   s     r   r   r      s    !!!511r   c                 ,    t        j                  |       S N)r   detr   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   r4   s     r   r6   r6   2   s@    **"V%
 	

 <<??14?((r   c                 B    t         j                  j                  | |      S r   )r   r   solve)abs     r   r8   r8   <   s    <<a##r   c                    |j                   | j                   dz
  k(  rJt        j                  |d      }t        j                  j	                  | ||       j                  d      S t        j                  j	                  | ||       S )Nr!   )r/   r
   )ndimr   	unsqueezer   solve_triangularsqueeze)r9   r:   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   rC   
compute_uvs      r   rE   rE   I   s4    ||##A&&<<A];;r   c                 B   t        |       } t        |      }|c| j                  j                  dk(  r$t        j                  j                  | |      |z  S t        j                  j                  | ||d      d   S t        j                  j                  | ||      d   S )Ncudartolgelsd)rconddriverr   )rL   )r   devicetyper   r   pinvlstsq)r9   r:   rL   s      r   rQ   rQ   O   s    !A!A 88==F"<<$$QU$3a77||!!!QeG!DQGG<<a%033r   c                     t        |       } t        j                  j                  | |      j	                  t        j
                        S )N)atol)r   r   r   matrix_ranktoint32)r   tols     r   rT   rT   `   s7    !A <<##AC#033EKK@@r   c                 Z    t        |       } t        j                  j                  | |      S )NrI   )r   r   r   rP   )r   rL   s     r   rP   rP   g   s(    !A <<QU++r   c                 H    t         j                  j                  | |||      S )N)has_aux)r   funcjvp)funprimalstangentsrZ   s       r   r\   r\   n   s    ::>>#w'>BBr   )F)NNF)r2   )TTr   )r   keras.src.backendr   r   keras.src.backend.commonr   keras.src.backend.torch.corer   r   r   r   r   r   r   r   r"   r.   r6   r8   r?   rE   rQ   rT   rP   r\    r   r   <module>rd      sk     $ / + - :12 E)$@<4"A,Cr   