
    2Vh                         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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                  |       }	 t        j                  t        j                  |            rt        d      	 |S # t        j                  j                  $ r Y |S w xY w)NzWCholesky decomposition failed. The input might not be a valid positive definite matrix.)	jnplinalgcholeskyanyisnan
ValueErrorjaxerrorsTracerBoolConversionError)aouts     L/home/dcms/DCMS/lib/python3.12/site-packages/keras/src/backend/jax/linalg.pyr   r      sr    
**

a
 C 77399S>",  # J ::// Js   3A A87A8c                 @    t         j                  j                  |       S N)r	   r
   detr   s    r   r   r          ::>>!    c                 @    t         j                  j                  |       S r   )r	   r
   eigxs    r   r   r   !   r   r   c                 @    t         j                  j                  |       S r   )r	   r
   eighr   s    r   r    r    %   s    ::??1r   c                 @    t         j                  j                  |       S r   )r	   r
   invr   s    r   r"   r"   )   r   r   c                     t         j                  j                  }| j                  dkD  r2t	        | j                  dz
        D ]  }t        j                  |      }  ||       S )N   )jspr
   	lu_factorndimranger   vmap)r   lu_factor_fnis      r   r&   r&   -   sR    ::''Lvvzqvvz" 	2A88L1L	2 ?r   c                    t        |       } t        | j                        dk(  rt        j                         }n$t        j                  | j                  t              }t        | |      } t        j                  j                  | |||      S )Nint64)ordaxiskeepdims)r   r   dtyper   floatxr   result_typefloatr   r	   r
   norm)r   r.   r/   r0   r1   s        r   r5   r5   6   sd    !A!W,""177E2QA::??1#D8?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)r   r	   r
   qr)r   r9   s     r   r:   r:   @   s@    **"V%
 	

 ::===&&r   c                 B    t         j                  j                  | |      S r   )r	   r
   solve)r   bs     r   r<   r<   J   s    ::Aq!!r   c                 F    t         j                  j                  | ||      S )N)lower)r%   r
   solve_triangular)r   r=   r?   s      r   r@   r@   N   s    ::&&q!5&99r   c                 F    t         j                  j                  | ||      S )N)full_matrices
compute_uv)r	   r
   svd)r   rB   rC   s      r   rD   rD   R   s    ::>>!=Z>PPr   c                 x    t        |       } t        |      }t        j                  j                  | ||      d   S )N)rcondr   )r   r	   r
   lstsq)r   r=   rF   s      r   rG   rG   V   s7    !A!A::Aq.q11r   )NNF)r7   )F)TTr   )r   	jax.numpynumpyr	   	jax.scipyscipyr%   keras.src.backendr   r   keras.src.backend.commonr   keras.src.backend.jax.corer   r   r   r   r   r    r"   r&   r5   r:   r<   r@   rD   rG    r   r   <module>rP      s[    
   $ / + + 8"E'":Q2r   