o
    2h6                     @   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 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)standardize_dtype)dtypes)convert_to_tensorc                 C      t j| S N)nplinalgcholeskya r   Y/var/www/html/chatgem/venv/lib/python3.10/site-packages/keras/src/backend/numpy/linalg.pyr	   	      r	   c                 C   r   r   )r   r   detr
   r   r   r   r      r   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   sV   | j dkr
t| S | jdd  \}}d}|||krdnd7 }tjtj|d}|| S )N   z(m,n) -> (m,n), z(m)z(n)	signature)ndimsl	lu_factorshaper   	vectorize)r   mnr   _lu_factor_gufuncr   r   r   r      s   

r   Fc                 C   sJ   t | } t| j}d|v s|dkrt| jd}tjj| |||d|S )Nintboolfloat32)ordaxiskeepdims)	r   r   dtyper   result_typer   r   normastype)xr"   r#   r$   r%   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.   5   s   r.   c                 C   s   t j| |S r   )r   r   solver   br   r   r   r/   ?   s   r/   c                    sj   | j dkrtj| | dS tj fdddd}|j | j d kr0tj|dd	}|| |jdd	S || |S )
Nr   lowerc                    s   t j| | dS )Nr2   )r   solve_triangularr0   r2   r   r   <lambda>H   s    z"solve_triangular.<locals>.<lambda>z(n,n),(n,m)->(n,m)r      )r#   )r   r   r4   r   r   expand_dimssqueeze)r   r1   r3   _vectorized_solve_triangularr   r2   r   r4   C   s   


r4   Tc                 C   s   t jj| ||dS )N)full_matrices
compute_uv)r   r   svd)r)   r;   r<   r   r   r   r=   Q   s   r=   c                 C   s&   t | } t |}tjj| ||dd S )N)rcondr   )r   r   r   lstsq)r   r1   r>   r   r   r   r?   U   s   r?   )NNF)r*   )F)TTr   )numpyr   scipy.linalgr   r   keras.src.backendr   keras.src.backend.commonr   keras.src.backend.numpy.corer   r	   r   r   r   r   r   r'   r.   r/   r4   r=   r?   r   r   r   r   <module>   s"    





