o
    2h                     @   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l	m
Z
 d dlmZ dpd
dZdd Zdd Zdd Zdd Zdd ZdqddZdrddZdsddZdsddZdd  Zd!d" Zdqd#d$Zd%d& Zdqd'd(Zdqd)d*Zdqd+d,Zdsd-d.Zdtd/d0Zd1d2 Z d3d4 Z!d5d6 Z"d7d8 Z#d9d: Z$d;d< Z%d=d> Z&dqd?d@Z'dqdAdBZ(dudDdEZ)dsdFdGZ*dvdHdIZ+dJdK Z,dLdM Z-dNdO Z.dPdQ Z/dRdS Z0dwdTdUZ1dVdW Z2dXdY Z3dZd[ Z4d\d] Z5d^d_ Z6d`da Z7dbdc Z8ddde Z9dfdg Z:dhdi Z;djdk Z<dldm Z=dndo Z>dpdq Z?dxdrdsZ@dtdu ZAdvdw ZBdxdy ZCdzd{ ZDd|d} ZEdsd~dZFdyddZGdvddZHdvddZIdd ZJdxddZKdxddZLdzddZMd{ddZNdd ZOdd ZPdsddZQdd ZRdd ZSdd ZTdd ZUdd ZVdsddZWdd ZXdsddZYdsddZZdd Z[dd Z\dd Z]dsddZ^dd Z_d|ddZ`dd Zadd Zbdd Zcdd Zddd Ze	 d}ddÄZfddń ZgddǄ ZhddɄ Zidd˄ Zjdd̈́ Zkddτ Zlddф Zmddӄ Znd~ddքZodd؄ ZpdqddڄZqddܜddބZrdrddZsdd Ztdd Zudd ZvdddZwdd Zxdd Zydd ZzdsddZ{dsddZ|dd Z}dddZ~drddZdddZdd Zd d Zdd Zdd ZdsddZdd	 Zdsd
dZdddZdd Zdd Zdd Zdd Zdd ZduddZdxddZdxddZdqdd Zd!d" Zdsd#d$Zdsd%d&Zd'd( Zd)d* Zdd,d-Zdxd.d/Zd0d1 Zdzd2d3Zdd4d5Zdxd6d7Zdxd8d9Zd:d; Zd<d= Zd>d? Zd@dA ZdddBdCdDZdvdEdFZdGdH ZdIdJ ZdKdL ZdMdN ZdOdP ZdQdR ZdSdT ZdsdUdVZdsdWdXZdqdYdZZdqd[d\Zdd]d^Zd_d` Zdadb Zdcdd ZddfdgZdxdhdiZdjdk ZdudldmZddndoZdS (      N)tree)config)standardize_dtype)dtypes)standardize_axis_for_numpyconvert_to_tensor   r   r	   c                 C   sV   | j dk rtd| j  t|dks|d |d kr#td| dtj| ||dS )z5Rotate an array by 90 degrees in the specified plane.   zBInput array must have at least 2 dimensions. Received: array.ndim=r   r	   zInvalid axes: z3. Axes must be a tuple of two different dimensions.)kaxes)ndim
ValueErrorlennprot90)arrayr   r    r   X/var/www/html/chatgem/venv/lib/python3.10/site-packages/keras/src/backend/numpy/numpy.pyr      s   

r   c                 C   p   t | ttfst| } t |ttfst|}tt| dt| t|dt|}t| |} t||}t	| |S Ndtype)

isinstanceintfloatr   r   result_typegetattrtyper   addx1x2r   r   r   r   r         

r   c                    s   t t|}ttdd |D }t|dkr"|d dkr"d d}ntj| }|  dkr/d t  fd	d
|}tj	| g|R i |
|S )Nc                 s   s    | ]}t |jV  qd S N)r   r   .0xr   r   r   	<genexpr>*       zeinsum.<locals>.<genexpr>r	   r   int8int32bfloat16float32c                    s
   |   S r$   astyper'   compute_dtyper   r   <lambda>6   s   
 zeinsum.<locals>.<lambda>)r   map_structurer   listsetr   r   r   r   einsumr/   )
subscriptsoperandskwargsdtypes_to_resolveresult_dtyper   r1   r   r7   (   s   
r7   c                 C   r   r   )
r   r   r   r   r   r   r   r   r   subtractr    r   r   r   r=   :   r#   r=   c                 C   sp   t | } t |}t| j}t|j}|dkr|dkrd}nt| j|j}| |} ||}t| ||S )Nr*   r+   )r   r   r   r   r   r/   r   matmul)r!   r"   x1_dtypex2_dtyper   r   r   r   r>   H   s   



r>   c                 C   r   r   )
r   r   r   r   r   r   r   r   r   multiplyr    r   r   r   rA   X   r#   rA   Fc                 C   sT   t |}t| } t| j}d|v s|dkrt| jd}n|}tj| ||d|S )Nr   boolr-   axiskeepdims)	r   r   r   r   r   r   r   meanr/   )r'   rD   rE   	ori_dtyper<   r   r   r   rF   f   s   
rF   c                 C      t |}tj| |||dS N)rD   rE   initial)r   r   maxr'   rD   rE   rJ   r   r   r   rK   q      rK   c                 C      |pt  }tj| |dS Nr   )r   floatxr   onesshaper   r   r   r   rR   v      rR   c                 C   rN   rO   )r   rQ   r   zerosrS   r   r   r   rV   {   rU   rV   c                 C   
   t | S r$   )r   absoluter0   r   r   r   rX         
rX   c                 C      t | S r$   )rX   r0   r   r   r   abs      r[   c                 C      t |}tj| ||dS NrC   )r   r   allr'   rD   rE   r   r   r   r_         r_   c                 C   B   t | } t| jdkrt }nt| jt}| |} t	
| S Nint64)r   r   r   r   rQ   r   r   r   r/   r   angler'   r   r   r   r   re         


re   c                 C   r]   r^   )r   r   anyr`   r   r   r   rh      ra   rh   c                 C   r]   r^   )r   r   amaxr`   r   r   r   ri      ra   ri   c                 C   r]   r^   )r   r   aminr`   r   r   r   rj      ra   rj   c                 C   sL   t |}t| } t|}t| j|j}| |} ||}tj| ||dS NrD   )r   r   r   r   r   r/   r   append)r!   r"   rD   r   r   r   r   rm      s   

rm   c                 C   sb   |d u r(t | dt| t |dt|g}|d ur#|t |dt| tj| }tj| |||dS )Nr   )stepr   )r   r   rm   r   r   r   arange)startstoprn   r   r;   r   r   r   ro      s   
ro   c                 C   rb   rc   )r   r   r   r   rQ   r   r   r   r/   r   arccosrf   r   r   r   rr      rg   rr   c                 C   rb   rc   )r   r   r   r   rQ   r   r   r   r/   r   arccoshrf   r   r   r   rs      rg   rs   c                 C   rb   rc   )r   r   r   r   rQ   r   r   r   r/   r   arcsinrf   r   r   r   rt      rg   rt   c                 C   rb   rc   )r   r   r   r   rQ   r   r   r   r/   r   arcsinhrf   r   r   r   ru      rg   ru   c                 C   rb   rc   )r   r   r   r   rQ   r   r   r   r/   r   arctanrf   r   r   r   rv      rg   rv   c                 C   B   t | } t |}t| j|jt}| |} ||}t| |S r$   )r   r   r   r   r   r/   r   arctan2r    r   r   r   rx         

rx   c                 C   rb   rc   )r   r   r   r   rQ   r   r   r   r/   r   arctanhrf   r   r   r   rz      rg   rz   c                 C      t | } t|}t| j}d|vs| jdkr!tj| ||ddS t	|d}| |} | dkt
| @ }t|t| jj | } tj| ||ddS Nr   r   rC   r+   r-           )r   r   r   r   r   r   argmaxr/   r   r   signbitwherefinfotinyr'   rD   rE   r   is_negative_zeror   r   r   r~        

r~   c                 C   r{   r|   )r   r   r   r   r   r   argminr/   r   r   r   r   r   r   r   r   r   r   r     r   r   c                 C   s   t |}tj| |ddS Nrl   r+   )r   r   argsortr/   r'   rD   r   r   r   r        r   c                 C   s   t | |dS rO   r   rf   r   r   r   r   "     r   c                 C   sl   t |}t| } | jtg}|d urt|}||j tj| }| |} |d ur.||}tj	| ||dS )N)weightsrD   )
r   r   r   r   rm   r   r   r/   r   average)r'   rD   r   r;   r   r   r   r   r   &  s   



r   c                 C      t | } t| t S r$   )r   r   bartlettr/   r   rQ   r0   r   r   r   r   4  r   r   c                 C   r   r$   )r   r   hammingr/   r   rQ   r0   r   r   r   r   9  r   r   c                 C   r   r$   )r   r   hanningr/   r   rQ   r0   r   r   r   r   >  r   r   c                 C   sP   t | } t |}t| j|j}|dv rt }n|dv rd}t| ||S )N)r*   int16r+   uint8uint16uint32)rd   float64)	r   r   r   r   r   rQ   r   	heavisider/   r    r   r   r   r   C  s   
r   c                 C   s   t | } t| |t S r$   )r   r   kaiserr/   r   rQ   )r'   betar   r   r   r   P  s   r   c                    s   |rt dt| } | jg}|d ur"t|}||j tj| }nd}t| jdkrU|d u r= fdd}tt	|| }n fdd}tt	|t
| |}t||S t| | |S )Nz2Unsupported value `sparse=True` with numpy backendr+   r   c                    s   t j|  dS )N	minlengthr   bincount)arrr   r   r   bincount_fnc     zbincount.<locals>.bincount_fnc                    s   t j| d | d  dS )Nr   r	   )r   r   r   )arr_wr   r   r   r   i  s   )r   r   r   rm   r   r   r   rT   r5   mapzipr   stackr/   r   )r'   r   r   sparser;   r   r   	bincountsr   r   r   r   U  s"   r   c                 C      t | } t |}t| |S r$   )r   r   bitwise_andr'   yr   r   r   r   t     r   c                 C   s   t | } t| S r$   )r   r   bitwise_notr0   r   r   r   bitwise_invertz  s   
r   c                 C   rZ   r$   )r   r0   r   r   r   r     r\   r   c                 C   r   r$   )r   r   
bitwise_orr   r   r   r   r     r   r   c                 C   r   r$   )r   r   bitwise_xorr   r   r   r   r     r   r   c                 C   &   t | } t|tst |}t| |S r$   )r   r   r   r   
left_shiftr   r   r   r   bitwise_left_shift     
r   c                 C   
   t | |S r$   )r   r   r   r   r   r     rY   r   c                 C   r   r$   )r   r   r   r   right_shiftr   r   r   r   bitwise_right_shift  r   r   c                 C   r   r$   )r   r   r   r   r   r     rY   r   c                 C   r   r$   )r   r   blackmanr/   r   rQ   r0   r   r   r   r     r   r   c                 C      t | |S r$   )r   broadcast_to)r'   rT   r   r   r   r     r   r   c                 C   s@   t | } t| j}|dv rt }n|dkrd}t| |S )N)rB   r*   r   r+   r   r   r   rd   r   )r   r   r   r   rQ   r   cbrtr/   rf   r   r   r   r     s   

r   c                 C   rb   rc   )r   r   r   r   rQ   r   r   r   r/   r   ceilrf   r   r   r   r     rg   r   c                 C   s2   t | } t| j}|dkrd}t| |||S NrB   r+   )r   r   r   r   clipr/   )r'   x_minx_maxr   r   r   r   r     s
   
r   c                    R   t |}tdd | D }t|dkr"tj|  t fdd| } tj| |dS )Nc                 S      g | ]
}t |d t|qS rP   r   r   r%   r   r   r   
<listcomp>      zconcatenate.<locals>.<listcomp>r	   c                       t |  S r$   r   r/   r0   rP   r   r   r3         zconcatenate.<locals>.<lambda>rl   )	r   r6   r   r   r   r   r4   r   concatenate)xsrD   	dtype_setr   rP   r   r     s   
r   c                 C   rW   r$   )r   	conjugater0   r   r   r   r     rY   r   c                 C   rZ   r$   )r   r0   r   r   r   conj  r\   r   c                 C   rW   r$   )r   copyr0   r   r   r   r     rY   r   c                 C   rb   rc   )r   r   r   r   rQ   r   r   r   r/   r   cosrf   r   r   r   r     rg   r   c                 C   rb   rc   )r   r   r   r   rQ   r   r   r   r/   r   coshrf   r   r   r   r     rg   r   c                 C   s    t |}ttj| |ddS r   )r   r   r   count_nonzeror/   r   r   r   r   r     s   r   c                 C   sR   t |}t| } t|}t| j|j}| |} ||}tj| |||||dS )N)axisaaxisbaxiscrD   )r   r   r   r   r   r/   r   cross)r!   r"   r   r   r   rD   r   r   r   r   r     s   

r   c                 C   4   t |}t|p
| j}|dkrd}tj| ||dS NrB   r+   )rD   r   )r   r   r   r   r   cumprodr'   rD   r   r   r   r   r     
   r   c                 C   r   r   )r   r   r   r   r   cumsumr   r   r   r   r     r   r   c                 C   sB   t | } | jdv rd}n| jdv r| j}nt }t| |S N)rd   r   r   )r,   float16)r   r   r   rQ   r   deg2radr/   rf   r   r   r   r     s   

r   c                 C      t j| |dS N)r   )r   diagr'   r   r   r   r   r   ,  r   r   c                 C   r   r   )r   diagflatr   r   r   r   r   0  r   r   c                 C   s"   t |}t |}tj| |||dS )N)offsetaxis1axis2)r   r   diagonal)r'   r   r   r   r   r   r   r   4  s   r   c                 C      t j| ||dS )N)nrD   )r   diff)ar   rD   r   r   r   r   :     r   c                 C   s   t | |t jS r$   )r   digitizer/   r+   )r'   binsr   r   r   r   >     r   c                 C   @   t | } t |}t| j|j}| |} ||}t| |S r$   )r   r   r   r   r/   r   dotr    r   r   r   r   B     

r   c                 C   rN   rO   )r   rQ   r   emptyrS   r   r   r   r   K  rU   r   c                 C   r   r$   )r   equalr!   r"   r   r   r   r   P  r   r   c                 C   :   t | } t| j}d|v s|dkr| t } t| S Nr   rB   )r   r   r   r/   r   rQ   r   expr'   rG   r   r   r   r   T  
   

r   c                 C   r   r   )r   r   r   r/   r   rQ   r   exp2r   r   r   r   r   \  r   r   c                 C   s   t |}t| |S r$   )r   r   expand_dimsr   r   r   r   r   d  s   r   c                 C   r   r   )r   r   r   r/   r   rQ   r   expm1r   r   r   r   r   i  r   r   c                 C      t |}tj| |dS rk   )r   r   flipr   r   r   r   r   q     r   c                 C   s@   t | } t| jdkrt nt| jt}| |} t	
| S rc   )r   r   r   r   rQ   r   r   r   r/   r   floorrf   r   r   r   r  v  s   

r  c                 C   s   |pt  }tj| ||dS rO   )r   rQ   r   full)rT   
fill_valuer   r   r   r   r    s   r  c                 C   r   rO   )r   	full_like)r'   r  r   r   r   r   r    r   r  c                 C   r   r$   )r   greaterr   r   r   r   r    r   r  c                 C   r   r$   )r   greater_equalr   r   r   r   r    r   r  c                    F   t dd | D }t|dkrtj|  t fdd| } t| S )Nc                 S   r   rP   r   r%   r   r   r   r     r   zhstack.<locals>.<listcomp>r	   c                    r   r$   r   r0   rP   r   r   r3     r   zhstack.<locals>.<lambda>)r6   r   r   r   r   r4   r   hstackr   r   r   rP   r   r       

r  c                 C   rN   rO   )r   rQ   r   identity)r   r   r   r   r   r    rU   r  c                 C   rW   r$   )r   imagr0   r   r   r   r    rY   r  h㈵>:0yE>c                 C   s   t | ||||S r$   )r   isclose)r!   r"   rtolatol	equal_nanr   r   r   r       r  c                 C   rW   r$   )r   isfiniter0   r   r   r   r    rY   r  c                 C   rW   r$   )r   isinfr0   r   r   r   r    rY   r  c                 C   rW   r$   )r   isnanr0   r   r   r   r    rY   r  c                 C   r   r$   )r   lessr   r   r   r   r    r   r  c                 C   r   r$   )r   
less_equalr   r   r   r   r    r   r  2   Tc              	   C   sT   t |}|d u rt| dt| t|dt|tg}tj| }tj| ||||||dS )Nr   )numendpointretstepr   rD   )r   r   r   r   r   r   r   linspace)rp   rq   r  r  r  r   rD   r;   r   r   r   r    s    
r  c                 C   :   t | } t| jdkrt nt| jt}tj	| |dS Nrd   rP   )
r   r   r   r   rQ   r   r   r   r   logrf   r   r   r   r        r   c                 C   r  r  )
r   r   r   r   rQ   r   r   r   r   log10rf   r   r   r   r"    r!  r"  c                 C   r  r  )
r   r   r   r   rQ   r   r   r   r   log1prf   r   r   r   r#    r!  r#  c                 C   r  r  )
r   r   r   r   rQ   r   r   r   r   log2rf   r   r   r   r$    r!  r$  c                 C   rw   r$   )r   r   r   r   r   r/   r   	logaddexpr    r   r   r   r%    ry   r%  c                 C   r   r$   )r   logical_andr   r   r   r   r&    r   r&  c                 C   rW   r$   )r   logical_notr0   r   r   r   r'    rY   r'  c                 C   r   r$   )r   
logical_orr   r   r   r   r(    r   r(  
   c              	   C   sL   |d u rt | dt| t |dt|tg}tj| }tj| ||||||dS )Nr   )r  r  baser   rD   )r   r   r   r   r   r   logspace)rp   rq   r  r  r*  r   rD   r;   r   r   r   r+    s   
r+  c                 C   r   r   )
r   r   r   r   r   r   r   r   r   maximumr    r   r   r   r,  #  r#   r,  c                 C   s$   t | jt}tj| ||d|S r^   )r   r   r   r   r   medianr/   r'   rD   rE   r   r   r   r   r-  1  s   r-  xy)indexingc                 G   s   t j|d| iS )Nr0  )r   meshgrid)r0  r'   r   r   r   r1  6  r   r1  c                 C   rH   rI   )r   r   minrL   r   r   r   r2  :  rM   r2  c                 C   r   r   )
r   r   r   r   r   r   r   r   r   minimumr    r   r   r   r3  ?  r#   r3  c                 C   sL   t | } t |}t| j|j}|dkrd}| |} ||}t| |S r   )r   r   r   r   r/   r   modr    r   r   r   r4  M  s   

r4  c                 C   r   )N)sourcedestination)r   moveaxis)r'   r5  r6  r   r   r   r7  X  r   r7  r}   c                 C   s   t j| |||dS )N)nanposinfneginf)r   
nan_to_num)r'   r8  r9  r:  r   r   r   r;  \  r  r;  c                 C   rW   r$   )r   r   r0   r   r   r   r   `  rY   r   c                 C   s   t dd t| D S )Nc                 s   s    | ]}| d V  qdS )r+   Nr.   r&   indicesr   r   r   r(   e  r)   znonzero.<locals>.<genexpr>)tupler   nonzeror0   r   r   r   r?  d  s   r?  c                 C   r   r$   )r   	not_equalr   r   r   r   r@  h  r   r@  c                 C   r   rO   )r   
zeros_likerf   r   r   r   rA  l  r   rA  c                 C   r   rO   )r   	ones_likerf   r   r   r   rB  p  r   rB  c                 C   r   r$   )r   r   r   r   r/   r   outerr    r   r   r   rC  t  r   rC  constantc                 C   sB   i }|d ur|dkrt d| ||d< tj| |fd|i|S )NrD  zZArgument `constant_values` can only be provided when `mode == 'constant'`. Received: mode=constant_valuesmode)r   r   pad)r'   	pad_widthrF  rE  r:   r   r   r   rG  }  s   rG  c                 C   sP   t |}t| } |d u rt| j}|dv rd}n|dv rd}tj| |||dS )NrB   r*   r   r+   r   r   r   rD   rE   r   )r   r   r   r   r   r   prodr.  r   r   r   rL    s   rL  linearc                 C   sj   t |}t| } t| j}|dkr| t } |dkr!t }nt| jt	}t
j| ||||d|S )NrB   rd   )rD   methodrE   )r   r   r   r   r/   r   rQ   r   r   r   r   quantile)r'   qrD   rN  rE   rG   r   r   r   r   rO    s   


rO  c                 C   rW   r$   )r   ravelr0   r   r   r   rQ    rY   rQ  c                    s*   t | j t fddt| |D S )Nc                 3   s    | ]}|  V  qd S r$   r.   r<  rP   r   r   r(     s    

z unravel_index.<locals>.<genexpr>)r   r   r   r>  r   unravel_index)r=  rT   r   rP   r   rR    s   
rR  c                 C   rW   r$   )r   realr0   r   r   r   rS    rY   rS  c                 C   rW   r$   )r   
reciprocalr0   r   r   r   rT    rY   rT  c                 C   r   rk   )r   repeat)r'   repeatsrD   r   r   r   rU    r   rU  c                 C   r   r$   )r   reshape)r'   newshaper   r   r   rW    r   rW  c                 C   r   rk   )r   roll)r'   shiftrD   r   r   r   rY    r   rY  leftc                 C   sP   t | dkrtd| j t| ttjjkrdnd}tj| ||d	|S )Nr	   z`searchsorted` only supports 1-D sorted sequences. You can use `keras.ops.vectorized_map` to extend it to N-D sequences. Received: sorted_sequence.shape=r+   rd   )side)
r   r   rT   r   r   iinfor+   rK   searchsortedr/   )sorted_sequencevaluesr\  out_typer   r   r   r^    s   r^  c                 C   rW   r$   )r   signr0   r   r   r   rb    rY   rb  c                 C   rW   r$   )r   r   r0   r   r   r   r     rY   r   c                 C   rb   rc   )r   r   r   r   rQ   r   r   r   r/   r   sinrf   r   r   r   rc    rg   rc  c                 C   rb   rc   )r   r   r   r   rQ   r   r   r   r/   r   sinhrf   r   r   r   rd    rg   rd  c                 C   rW   r$   )r   sizer0   r   r   r   re    rY   re  c                 C   r   rk   )r   r   sortr   r   r   r   rf    r   rf  c                 C      t |}tj| ||dS rk   )r   r   split)r'   indices_or_sectionsrD   r   r   r   rh    ra   rh  c                    r   )Nc                 S   r   rP   r   )r&   r   r   r   r   r      r   zstack.<locals>.<listcomp>r	   c                    r   r$   r   )r   rP   r   r   r3     r   zstack.<locals>.<lambda>rl   )	r   r6   r   r   r   r   r4   r   r   )r'   rD   r   r   rP   r   r     s   
r   c                 C   sH   t |}t| } t| j}d|v s|dkr| t } tj| ||dS )Nr   rB   rC   )	r   r   r   r   r/   r   rQ   r   std)r'   rD   rE   rG   r   r   r   rj    s   
rj  c                 C   r   )N)r   r   )r   swapaxes)r'   r   r   r   r   r   rk    r   rk  c                 C   rg  rk   )r   r   taker'   r=  rD   r   r   r   rl    ra   rl  c                 C   rg  rk   )r   r   take_along_axisrm  r   r   r   rn    ra   rn  c                 C   rb   rc   )r   r   r   r   rQ   r   r   r   r/   r   tanrf   r   r   r   ro    rg   ro  c                 C   rb   rc   )r   r   r   r   rQ   r   r   r   r/   r   tanhrf   r   r   r   rp  (  rg   rp  r   c                 C   sZ   t |tr	t|n|}t| } t|}t| j|j}| |} ||}tj	| ||dS N)r   )
r   r5   r>  r   r   r   r   r/   r   	tensordot)r!   r"   r   r   r   r   r   rr  2  s   

rr  c                 C   r   )N)decimals)r   round)r'   rs  r   r   r   rt  <  r   rt  c                 C   r   r$   )r   tile)r'   rV  r   r   r   ru  @  r   ru  c                 C   sJ   t |}t |}t| } t| j}|dvrt|d}tj| ||||dS )N)rd   r   uint64r+   )r   r   r   r   )r   r   r   r   r   r   r   trace)r'   r   r   r   r   r   r   r   rw  D  s   
rw  c                 C      |pt  }tj| |||dS N)Mr   r   )r   rQ   r   triNrz  r   r   r   r   r   r{  N     r{  c                 C   r   r   )r   trilr   r   r   r   r  S  r   r  c                 C   r   r   )r   triur   r   r   r   r  W  r   r  c                 C   s0   t | } t| j}d|v sd|kr| S t| S r   )r   r   r   r   truncrf   r   r   r   r  [  s
   

r  c                 C   r   r$   )r   r   r   r   r/   r   vdotr    r   r   r   r  c  r   r  c                 C   r   r$   )r   r   r   r   r/   r   innerr    r   r   r   r  l  r   r  c                    r  )Nc                 S   r   rP   r   r%   r   r   r   r   v  r   zvstack.<locals>.<listcomp>r	   c                    r   r$   r   r0   rP   r   r   r3   z  r   zvstack.<locals>.<lambda>)r6   r   r   r   r   r4   r   vstackr	  r   rP   r   r  u  r
  r  excluded	signaturec                C   r   )Nr  )r   	vectorize)pyfuncr  r  r   r   r   r    r   r  c                 C   s   |d urA|d urAt |ttfst|}t |ttfst|}tt|dt|t|dt|}t||}t||}t	| ||S t	| S r   )
r   r   r   r   r   r   r   r   r   r   )	conditionr!   r"   r   r   r   r   r     s   


r   c                 C   sr   t | ttfst| } t |ttfst|}tt| dt| t|dt|t}t| |} t||}t	| |S r   )
r   r   r   r   r   r   r   r   r   divider    r   r   r   r    s   

r  c                 C   s   t | ttfst| } t |ttfst|}tt| dt| t|dt|t}t| |} t||}t	|dktj
d|dt| |S )Nr   r   rP   )r   r   r   r   r   r   r   r   r   r   r   r  r    r   r   r   divide_no_nan  s   

$r  c                 C   r   r$   )r  r   r   r   r   true_divide  rY   r  c                 C   r   r   )
r   r   r   r   r   r   r   r   r   powerr    r   r   r   r    r#   r  c                 C   rW   r$   )r   negativer0   r   r   r   r    rY   r  c                 C   s*   t | } t| jdkr| d} t| S r   )r   r   r   r/   r   squarer0   r   r   r   r    s   

r  c                 C   r  r  )
r   r   r   r   rQ   r   r   r   r   sqrtrf   r   r   r   r    s   r  c                 C   r   rk   )r   r   squeezer   r   r   r   r    r   r  c                 C   s$   t |tr	t|n|}tj| |dS rq  )r   r5   r>  r   	transpose)r'   r   r   r   r   r    s   r  c                 C   sD   t |}t| } t| jd}t| jt}tj| |||d|S )Nr-   rK  )	r   r   r   r   r   r   r   varr/   )r'   rD   rE   r2   r<   r   r   r   r    s   r  c                 C   sB   t |}t| j}|dv rd}n|dv rd}tj| ||d|S )NrI  r+   rJ  r   rC   )r   r   r   r   sumr/   r.  r   r   r   r    s   
r  c                 C   rx  ry  )r   rQ   r   eyer|  r   r   r   r    r~  r  c                 C   r   r   )
r   r   r   r   r   r   r   r   r   floor_divider    r   r   r   r     s   

r  c                 C   r   r$   )r   logical_xorr   r   r   r   r    r   r  c                 C   sB   | j dv rd}n| j dv r| j }nt }t| } t| |S r   )r   r   rQ   r   r   corrcoefr/   rf   r   r   r   r    s   

r  validc                 C   s`   t t| dt| t|dt|}|dkrd}n|dvrd}t| |} t||}t| ||S )Nr   rd   r   )r,   r   r   r-   )r   r   r   r   r   r   	correlate)r!   r"   rF  r   r   r   r   r    s   

r  c                 C   r   )N)default)r   select)condlist
choicelistr  r   r   r   r  -  r   r  c                 C   s   t tj| S r$   )r>  r   linalgslogdetr0   r   r   r   r  1  r   r  c                 C   s   t | ||dS )Nr+   )r   argpartitionr/   )r'   kthrD   r   r   r   r  5  r   r  c                 C   r   )N)r   range)r   	histogram)r'   r   r  r   r   r   r  9  r   r  )r	   r
   )NF)NFNr$   )Nr	   N)r   )NN)Nr   F)r   )r   r   r   N)r   r   r	   )r	   r   )r  r  F)r  TFNr   )r  Tr)  Nr   )r}   NN)rD  N)NrM  F)r[  )r   )Nr   N)r  )r)  N)numpyr   	keras.srcr   keras.src.backendr   r   keras.src.backend.commonr   &keras.src.backend.common.backend_utilsr   keras.src.backend.numpy.corer   r   r   r7   r=   r>   rA   rF   rK   rR   rV   rX   r[   r_   re   rh   ri   rj   rm   ro   rr   rs   rt   ru   rv   rx   rz   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r"  r#  r$  r%  r&  r'  r(  r+  r,  r-  r1  r2  r3  r4  r7  r;  r   r?  r@  rA  rB  rC  rG  rL  rO  rQ  rR  rS  rT  rU  rW  rY  r^  rb  r   rc  rd  re  rf  rh  r   rj  rk  rl  rn  ro  rp  rr  rt  ru  rw  r{  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   <module>   sf   






	



	




		

		



		

