U
    ÉZjû  ã                
   @   sº  d dl Z d dlZej ddd¡ dd¡Zej ddd¡ dd¡Zede  Zdd	d	gd	d	dggZdd	dgd	d	dggZ	ej
jeed
�Zej
jee	d
�Zej
jeed
�Zej ddd¡ dd¡Zej ddd¡ dd¡Zede  ZedkZedk Zej
jeed
�Zej
jeed
�Zej
jeed
�Zd4dd„Zdeeeefdd„Zdddeeeefdd„Zddeeeeeeeef
dd„Zedk�r¶eejƒ eejƒ eejƒ eejƒ eej ƒ eej!ƒ edddd� eddddd� ed ddd� ed!ddd� ed"d#dd� ed"d$dd� ed"d%dd� ed&d'dd	d(� ed&d)dd	d(� e"d*ƒ e"d+ƒ ed,d-dd� e"d*ƒ e"d.ƒ ed/d-dd� e"d*ƒ e"d0ƒ ed1d-dd� e"d*ƒ e"d2ƒ ed3d-dd� dS )5é    Néÿÿÿÿé   é   é   é   y              ð?TF)Úmaski'  éd   gš™™™™™é?gš™™™™™é¿Ú éô  c                 C   s¾   ddddg}ddddg}t d	|| f d
d� dd„ dD ƒ}dd |¡ }tj| |d�}t| ||¡ƒ| }	|	dkr”ttt t 	|	¡¡d ƒ dƒ}
nd}
t d||d|	||
  ||
 f ƒ d S )NÚsÚmsu   ÂµsÚnsr   g     @�@g    €„.Ag    eÍÍAz%s : %-50s : ú )Úendc                 S   s   g | ]}d t |d ƒ ‘qS )z%ss,nm%ss,%sl,nm%slé   )Útuple)Ú.0Úx© r   úQ/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/numpy/ma/bench.pyÚ
<listcomp>*   s     ztimer.<locals>.<listcomp>Zxyzz"from __main__ import numpy, ma, %sú,)ÚstmtÚsetupg        r   z&%d loops, best of %d: %.*g %s per loop)
ÚprintÚjoinÚtimeitÚTimerÚminÚrepeatÚintÚnumpyÚfloorÚlog10)r   ÚvÚnloopZnrepZunitsZscalingÚvarnamesr   r   ÚbestÚorderr   r   r   Útimer&   s    "
ýr)   c           	      C   sl   | j }tdƒ t|› d�ƒ d\}}tdtƒ  d| |d� td| ƒ d\}}tdtƒ  d| |d� d S )	Nú2--------------------------------------------------ú on small arrays)únumpy.maÚnmxsú!%(module)s.%(funcname)s(%(data)s)ú%11s©r$   r%   ú%s on large arrays)r,   Únmxl©Ú__name__r   r)   Úlocals)	Úfuncr%   Úxsr-   Úxlr2   ÚfuncnameÚmoduleÚdatar   r   r   Úcompare_functions_1v8   s    r<   r   c	                 C   sn   t dƒ t | › d�ƒ d|› d�d }	}
tdtƒ  |
|d� t d|  ƒ d	| d }	}
tdtƒ  |
|d� d S )
Nr*   r+   ÚnmÚlr,   z!%(data)s.%(methodname)s(%(args)s)r0   r1   znm%sl)r   r)   r5   )Ú
methodnameÚargsÚvarsr%   Útestr7   r-   r8   r2   r;   Úverr   r   r   Úcompare_methodsE   s    rD   c                 C   sn   | j }tdƒ t|› d�ƒ d\}}tdtƒ  d| |d� t|› d�ƒ d\}}tdtƒ  d| |d� d S )	Nr*   r+   )r,   z	nmxs,nmysr.   r/   r0   z on large arrays)r,   z	nmxl,nmylr3   )r6   r%   rB   r7   r-   ÚysÚnmysr8   r2   ÚylÚnmylr9   r:   r;   r   r   r   Úcompare_functions_2vQ   s    rI   Ú__main__Zraveliè  )r%   Ú	conjugateÚzZ	transposeÚ
compressedÚ__getitem__Ú0z(0,0)z[0,-1]Ú__setitem__z0, 17)r%   rB   z	(0,0), 17r*   z__setitem__ on small arraysz(nmxs.__setitem__((-1,0),numpy.ma.masked)znumpy.ma   z__setitem__ on large arraysz(nmxl.__setitem__((-1,0),numpy.ma.masked)zwhere on small arraysz numpy.ma.where(nmxs>2,nmxs,nmys)zwhere on large arraysz numpy.ma.where(nmxl>2,nmxl,nmyl))r	   r
   r   )#r   r!   ÚrandomÚuniformZreshaper7   rE   ZzsÚm1Úm2ÚmaÚarrayr-   rF   Znmzsr8   rG   ZzlZmaskxZmaskyr2   rH   Znmzlr)   r<   rD   rI   r4   ÚsinÚlogÚsqrtÚmultiplyÚdivideÚpowerr   r   r   r   r   Ú<module>   sˆ   	
   ÿ
   ÿ
    ü







