
    ijh                         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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                     t         j                  j                  | |      }	 t        j                  t        j                  |            rt        d      	 |S # t        j                  j                  $ r Y |S w xY w)N)upperzWCholesky decomposition failed. The input might not be a valid positive definite matrix.)	jnplinalgcholeskyanyisnan
ValueErrorjaxerrorsTracerBoolConversionError)ar	   outs      q/var/www/html/emotional.easysim.app/public_html/venv/lib/python3.12/site-packages/keras/src/backend/jax/linalg.pyr   r      sw    
**

au

-C 77399S>",  # J ::// Js   3A A:9A:c                 ,   t        j                  | j                  d   | j                        }t	        | ||       }|r+t        j
                  |t        j                  |            }|S t        j
                  t        j                  |      |      }|S )N)dtypelower)r
   eyeshaper   solve_triangularmatmul	transpose)r   r	   identityinv_chola_invs        r   cholesky_inverser#      sq    wwqwwr{!''2H8u9=H

8S]]8%<= L 

3==2H=L    c                 @    t         j                  j                  |       S N)r
   r   detr   s    r   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   r1   r1   3   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   r5   r5   7   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   r   r   floatxr   result_typefloatr   r
   r   norm)r-   r=   r>   r?   r   s        r   rC   rC   @   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-   rG   s     r   rH   rH   J   s@    **"V%
 	

 ::===&&r$   c                 B    t         j                  j                  | |      S r&   )r
   r   solve)r   bs     r   rJ   rJ   T   s    ::Aq!!r$   c                 F    t         j                  j                  | ||      S )Nr   )r4   r   r   )r   rK   r   s      r   r   r   X   s    ::&&q!5&99r$   c                 F    t         j                  j                  | ||      S )N)full_matrices
compute_uv)r
   r   svd)r-   rN   rO   s      r   rP   rP   \   s    ::>>!=Z>PPr$   c                 x    t        |       } t        |      }t        j                  j                  | ||      d   S )Nrcondr   )r   r
   r   lstsq)r   rK   rS   s      r   rT   rT   `   s7    !A!A::Aq.q11r$   c                     t        |       } | j                  dk  rt        d| j                   d      t        j
                  j                  | |      j                  d      S )Nr3   <Expected input to have rank >= 2. Received input with shape .)tolint32)r   r6   r   r   r
   r   matrix_rankastype)r-   rX   s     r   rZ   rZ   f   s`    !Avvz))*	4
 	
 ::!!!!-44W==r$   c                     t        |       } | j                  dk  rt        d| j                   d      t        j
                  j                  | |      S )Nr3   rV   rW   rR   )r   r6   r   r   r
   r   pinv)r-   rS   s     r   r]   r]   p   sR    !Avvz))*	4
 	
 ::??1E?**r$   c                 4    t        j                  | |||      S )N)has_aux)r   jvp)funprimalstangentsr_   s       r   r`   r`   z   s    7737;;r$   )F)NNF)rE   )TTr&   )r   	jax.numpynumpyr
   	jax.scipyscipyr4   keras.src.backendr   r   keras.src.backend.commonr   keras.src.backend.jax.corer   r   r   r#   r'   r+   r/   r1   r5   rC   rH   rJ   r   rP   rT   rZ   r]   r`    r$   r   <module>rl      so    
   $ / + + 8"E'":Q2>+<r$   