
    &Vf                         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S )    N)config)standardize_dtype)dtypes)cast)convert_to_tensorc                     t           j                            |           }t           j                            |d          S )NCholesky)tflinalgcholesky	debuggingcheck_numerics)aouts     `/var/www/html/software/conda/lib/python3.11/site-packages/keras/src/backend/tensorflow/linalg.pyr   r   
   s/    
)

Q

C<&&sJ777    c                 @    t           j                            |           S N)r
   r   detr   s    r   r   r          9==r   c                 @    t           j                            |           S r   )r
   r   eigr   s    r   r   r      r   r   c                 @    t           j                            |           S r   )r
   r   eighr   s    r   r   r      s    9>>!r   c                 @    t           j                            |           S r   )r
   r   invr   s    r   r   r      r   r   c                     t           j                            |           \  }}|t           j                            |          fS r   )r
   r   lumathinvert_permutation)r   r   ps      r   	lu_factorr#       s2    ILLOOEBrw))!,,,,r   Fc                 @   ddl m} t          |           } | j        }|j        |t          t                              }nt          |t                    r|f}t          fd|D                       rt          d d|           t          |          dk    r|d         n|}t          |t                    rdnt          |          }t          | j                  dk    rt          j                    }nt!          j        | j        t$                    }t'          | |          } |dk    r||dk    rIt)          j        t)          j        | t(          j                            |           z  ||	                    S |t%          d
          k    r?t(          j                            t(          j                            |           ||	          S |t%          d          k    r?t(          j                            t(          j                            |           ||	          S |dk    rNt(          j                            t)          j        t)          j        | d          | j                  ||	          S t          |t:                    rt          d|           t          || j                  }t(          j                            t)          j        t(          j                            |           |          ||	          }t)          j        |d|z            S |dk    rf|d         |d         }
}	|	dk     r|	z   n|	}	|
dk     r|
z   n|
}
||dk    rIt)          j        t)          j        | t(          j                            |           z  ||	                    S |dk    rc|s|
|	k    r|
dz  }
t(          j                            t)          j        t(          j                            |           |	|	          |
|	          } n|dk    rc|s|
|	k    r|
dz  }
t(          j                            t)          j        t(          j                            |           |	|	          |
|	          } n|t%          d
          k    rc|s|	|
k    r|	dz  }	t(          j                            t)          j        t(          j                            |           |
|	          |	|	          } n|t%          d          k    rc|s|	|
k    r|	dz  }	t(          j                            t)          j        t(          j                            |           |
|	          |	|	          } n+|dv r || |d          } |dk    rAt(          j                            t(          j                             | d          d          } n|dk    rAt(          j                            t(          j                             | d          d          } n@t(          j                            t(          j                             | d          d          } |r6t)          j!        | |d                   } t)          j!        | |d                   } nt          d|           | S t          d|           )Nr   )moveaxisc              3   2   K   | ]}| k     p|k    V  d S r    ).0r   ndims     r   	<genexpr>znorm.<locals>.<genexpr>0   s2      
0
0a1u9!T	
0
0
0
0
0
0r   zPAll `axis` values must be in the range [-ndim, ndim). Received inputs with ndim=z, while axis=   int64   )axiskeepdimsinfz-inf)dtypez6Invalid `ord` argument for vector norm. Received: ord=g      ?fro)nucr-   )r5   r3   r5   F)
compute_uvr.   z6Invalid `ord` argument for matrix norm. Received: ord=z$Invalid axis values. Received: axis=)""keras.src.backend.tensorflow.numpyr%   r   shaperanktuplerange
isinstanceintany
ValueErrorlenr   r1   r   floatxr   result_typefloatr   r
   sqrt
reduce_sumr    conj
reduce_maxabs
reduce_min	not_equalstrpowr   svdexpand_dims)xordr.   r/   r%   x_shapenum_axesr1   r   row_axiscol_axisr)   s              @r   normrV   %   s   ;;;;;;!AgG<D|U4[[!!	D#		 w

0
0
0
04
0
0
000 
C)-C C<@C C
 
 	
 $ii1nn477$DtS))8qqs4yyH!!W,,"17E22QA 1}};#((7a"',,q//1xPPP   E%LL  7%%ATH &    E&MM!!7%%ATH &    AXX7%%Q**!':::! &   
 S!! 		*NNN   $Cqw777C'$$rw{{1~~s++$ %  C 6#sSy)))	Q!!Wd1g(&.ll8d??&.ll8d??;#,,7a"',,q//1xPPP   AXX 8 3 3A""bgkk!nn8hOOO! #  AA
 BYY 8 3 3A""bgkk!nn8hOOO! #  AA
 E%LL   8 3 3A""bgkk!nn8hOOO! #  AA
 E&MM!! 8 3 3A""bgkk!nn8hOOO! #  AA
 N""D(++AbyyG&&IMM!M66R '   G&&IMM!M66R '   G&&IMM!M66R '    /N1d1g..N1d1g..NNN   FFFGGGr   reducedc                     |dvrt          d|           |dk    rt          j                            |           S t          j                            | d          S )N>   rW   completez]`mode` argument value not supported. Expected one of {'reduced', 'complete'}. Received: mode=rW   T)full_matrices)r@   r
   r   qr)rP   modes     r   r[   r[      si    ***%"% %
 
 	

 yy||A9<<<...r   c                 0   t          j        |          t          j        |           dz
  k    rJt          j        |d          }t          j        t           j                            | |          d          S t           j                            | |          S )Nr+   r3   r7   )r
   r:   rO   squeezer   solve)r   bs     r   r_   r_      sp    	wqzzRWQZZ!^##N12&&&z")//!Q//b99999??1a   r   c                    |j         j        | j         j        dz
  k    rLt          j        |d          }t          j        t          j                            | ||          d          S t          j                            | ||          S )Nr+   r3   r7   )lower)r9   ndimsr
   rO   r^   r   triangular_solve)r   r`   rb   s      r   solve_triangularre      s    w})))N12&&&zI&&q!5&99
 
 
 	
 9%%a%%888r   Tc                     t           j                            | ||          \  }}}||t           j                            |          fS )N)rZ   r6   )r
   r   rN   adjoint)rP   rZ   r6   suvs         r   rN   rN      sH    imm	:   GAq! a""1%%%%r   )NNF)rW   )F)TT)
tensorflowr
   keras.src.backendr   r   keras.src.backend.commonr   !keras.src.backend.tensorflow.corer   r   r   r   r   r   r   r#   rV   r[   r_   re   rN   r'   r   r   <module>ro      s7       $ $ $ $ $ $ / / / / / / + + + + + + 2 2 2 2 2 2 ? ? ? ? ? ?8 8 8        - - -
vH vH vH vHr	/ 	/ 	/ 	/! ! !9 9 9 9& & & & & &r   