a
    ³ÐOc‡*  ã                   @   s  d Z 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
lmZmZ ejjZejjZejjZejjZejjZejjZe  ej!¡e  ej"¡e  ej#¡e  ej$¡iZ%e  ej&¡e  ej$¡k�re% 'e  ej(¡e  ej&¡i¡ dddedfdd„Z)dddedfdd„Z*ddddedfdd„Z+ddddedfdd„Z,d3ddœdd„Z-d4ddœdd„Z.d5dd„Z/dd„ Z0dd„ Z1ddd œd!d"„Z2d6dd#œd$d%„Z3d7ddœd&d'„Z4d8ddœd(d)„Z5d9ddœd*d+„Z6d:d,d-„Z7d;d/d0„Z8d<d1d2„Z9dS )=zx
Array methods which are called by both the C-code for the method
and the Python code for the NumPy-namespace function

é    N)Únullcontext)Ú
multiarray)Úumath)Ú
asanyarray)Únumerictypes)Ú_exceptions)Ú_NoValue)ÚpickleÚ	os_fspathFTc                 C   s   t | |d ||||ƒS ©N)Úumr_maximum©ÚaÚaxisÚoutÚkeepdimsÚinitialÚwhere© r   úJ/var/www/html/gsl.tools/lib/python3.9/site-packages/numpy/core/_methods.pyÚ_amax&   s    r   c                 C   s   t | |d ||||ƒS r   )Úumr_minimumr   r   r   r   Ú_amin*   s    r   c                 C   s   t | ||||||ƒS r   )Úumr_sum©r   r   Údtyper   r   r   r   r   r   r   Ú_sum.   s    r   c                 C   s   t | ||||||ƒS r   )Úumr_prodr   r   r   r   Ú_prod2   s    r   ©r   c                C   s,   |du rt | ||||ƒS t | |||||d�S ©NTr   )Úumr_any©r   r   r   r   r   r   r   r   r   Ú_any6   s    r#   c                C   s,   |du rt | ||||ƒS t | |||||d�S r    )Úumr_allr"   r   r   r   Ú_all<   s    r%   c                 C   sŒ   |du rb|d u r t t| jƒƒ}nt|t ƒs0|f}d}|D ]}|| jt || j¡ 9 }q8t |¡}n&ddl	m
} t||| jƒ|tjd |ƒ}|S )NTé   r   )Úbroadcast_to)ÚtupleÚrangeÚndimÚ
isinstanceÚshapeÚmuZnormalize_axis_indexÚntZintpZnumpy.lib.stride_tricksr'   r   )Úarrr   r   r   ÚitemsÚaxr'   r   r   r   Ú_count_reduce_itemsB   s    
ÿr2   c                 C   sB   ddl m} || ƒdkrdS zt | ¡W S  ty<   Y dS 0 d S )Nr   )r*   F)Znumpy.core.fromnumericr*   ÚumÚisnanÚ	TypeError)r   r*   r   r   r   Ú_clip_dep_is_scalar_nan\   s    r6   c                 C   s   t | tjƒr| jj S dS )NF)r+   r-   Úndarrayr   Zisnative)r   r   r   r   Ú_clip_dep_is_byte_swappedf   s    
r8   ©r   Úcastingc             
   O   sŒ   |d ur| |||dœ|¤ŽS z| |d|i|¤ŽW S  t jy† } z<tjd |j|j¡tdd� | ||ddœ|¤ŽW  Y d }~S d }~0 0 d S )Nr9   r   z Converting the output of clip from {!r} to {!r} is deprecated. Pass `casting="unsafe"` explicitly to silence this warning, or correct the type of the variables.é   ©Ú
stacklevelÚunsafe)r   Z_UFuncOutputCastingErrorÚwarningsÚwarnÚformatÚfrom_ÚtoÚDeprecationWarning)Zufuncr   r:   ÚargsÚkwargsÚer   r   r   Ú_clip_dep_invoke_with_castingk   s    þûrH   )r:   c                K   sÔ   |d u r|d u rt dƒ‚t| ƒsjt|ƒsjd}t|ƒrBtdƒ }d}t|ƒrVtdƒ}d}|rjtjdtdd� |d u rŽttj	| |f||dœ|¤ŽS |d u r²ttj
| |f||dœ|¤ŽS ttj| ||f||dœ|¤ŽS d S )	NzOne of max or min must be givenFÚinfTa  Passing `np.nan` to mean no clipping in np.clip has always been unreliable, and is now deprecated. In future, this will always return nan, like it already does when min or max are arrays that contain nan. To skip a bound, pass either None or an np.inf of an appropriate sign.r;   r<   r9   )Ú
ValueErrorr8   r6   Úfloatr?   r@   rD   rH   r3   ÚminimumÚmaximumZclip)r   ÚminÚmaxr   r:   rF   Zusing_deprecated_nanr   r   r   Ú_clip~   sN    
øÿÿÿÿÿÿ
ÿÿÿrP   c          
      C   s&  t | ƒ}d}t||||d�}|du r.|dkrNnt|dkd d�rNtjdtdd� |d u r–t|jjt	j
t	jfƒrxt d	¡}nt|jjt	jƒr–t d
¡}d}t||||||d�}	t|	tjƒrätj|	||	ddd�}	|râ|d u râ|j |	¡}	n>t|	dƒ�r|�r|j |	| ¡}	n|	j |	| ¡}	n|	| }	|	S )NF©r   r   Tr   ©r   zMean of empty slice.r;   r<   Úf8Zf4r   r>   ©r   r:   Zsubokr   )r   r2   r!   r?   r@   ÚRuntimeWarningÚ
issubclassr   Útyper.   ÚintegerÚbool_r-   Úfloat16r   r+   r7   r3   Útrue_divideÚhasattr)
r   r   r   r   r   r   r/   Zis_float16_resultÚrcountÚretr   r   r   Ú_mean£   s0    "

ÿr_   c                C   sö  t | ƒ}t||||d�}|du r*||krJnt||kd d�rJtjdtdd� |d u rrt|jjt	j
t	jfƒrrt d¡}t|||d|d�}	|jdkr”|}
n| |	j¡}
t|	tjƒrÂtj|	|
|	d	d
d�}	n$t|	dƒrÞ|	j |	| ¡}	n|	| }	t ||	 ƒ}t|jjt	jt	j
fƒ�rtj|||d�}nh|jtv �rl|jt|j dfd�}tj|||d� tj|d |d |jd�j}ntj|t |¡|d�j}t||||||d�}t || d¡}t|tjƒ�rÌtj|||d	d
d�}n&t|dƒ�rê|j || ¡}n|| }|S )NrQ   TrR   z!Degrees of freedom <= 0 for slicer;   r<   rS   r   r>   FrT   r   ©r   )r;   )r   ).r   ).r&   )r   r2   r!   r?   r@   rU   rV   r   rW   r.   rX   rY   r-   r   r*   Zreshaper,   r+   r7   r3   r[   r\   ZfloatingÚmultiplyÚ_complex_to_floatÚviewÚaddÚrealÚ	conjugaterM   )r   r   r   r   Úddofr   r   r/   r]   ZarrmeanÚdivÚxZxvr^   r   r   r   Ú_varÄ   sJ    "ÿ

ÿ

ÿrj   c             	   C   s^   t | ||||||d�}t|tjƒr2tj||d�}n(t|dƒrP|j t |¡¡}n
t |¡}|S )N)r   r   r   rg   r   r   r`   r   )	rj   r+   r-   r7   r3   Úsqrtr\   r   rW   )r   r   r   r   rg   r   r   r^   r   r   r   Ú_std  s    ÿ

rl   c              	   C   s&   t  t| |d ||ƒt| |d d |ƒ|¡S r   )r3   Úsubtractr   r   )r   r   r   r   r   r   r   Ú_ptp  s
    ýrn   r;   c                 C   sZ   t |dƒrt|ƒ}ntt|ƒdƒ}|� }tj| ||d� W d   ƒ n1 sL0    Y  d S )NÚwriteÚwb©Úprotocol)r\   r   Úopenr
   r	   Údump)ÚselfÚfilerr   ÚctxÚfr   r   r   Ú_dump  s
    

ry   c                 C   s   t j| |d�S )Nrq   )r	   Údumps)ru   rr   r   r   r   Ú_dumps$  s    r{   )NNNF)NNNF)FT)NNN)NNNF)NNNr   F)NNNr   F)NNF)r;   )r;   ):Ú__doc__r?   Ú
contextlibr   Z
numpy.corer   r-   r   r3   Znumpy.core.multiarrayr   r   r.   r   Znumpy._globalsr   Znumpy.compatr	   r
   rM   Úreducer   rL   r   rd   r   ra   r   Ú
logical_orr!   Úlogical_andr$   r   ZcsingleÚsingleZcdoubleÚdoublerb   Z
longdoubleÚupdateZclongdoubler   r   r   r   r#   r%   r2   r6   r8   rH   rP   r_   rj   rl   rn   ry   r{   r   r   r   r   Ú<module>   sf   þÿÿ
ÿ
ÿ
ÿ


%!ÿCÿ

