a
    hÝEbû  ã                
   @   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g d¢g d	¢gZg d
¢g d	¢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d7d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/d0dd� e"d-ƒ e"d1ƒ ed2d0dd� e"d-ƒ e"d3ƒ ed4d0dd� e"d-ƒ e"d5ƒ ed6d0dd� dS )8é    Néÿÿÿÿé   é   é   é   y              ð?)TFF)FFT)TFT)Úmaski'  éd   gš™™™™™é?gš™™™™™é¿Ú éô  c                 C   s¶   g d¢}g d¢}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Úns)r   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   úN/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/numpy/ma/bench.pyÚ
<listcomp>*   ó    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.   Úxlr3   ÚfuncnameÚmoduleÚdatar   r   r   Úcompare_functions_1v8   s    r=   r   Tc	                 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)r1   r2   znm%sl)r   r*   r6   )Ú
methodnameÚargsÚvarsr&   Útestr8   r.   r9   r3   r<   Úverr   r   r   Úcompare_methodsE   s    rE   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/   r0   r1   z on large arrays)r-   z	nmxl,nmylr4   )r7   r&   rC   r8   r.   ÚysÚnmysr9   r3   ÚylÚnmylr:   r;   r<   r   r   r   Úcompare_functions_2vQ   s    rJ   Ú__main__Zraveliè  )r&   Ú	conjugateÚzZ	transposeÚ
compressedÚ__getitem__Ú0z(0,0)z[0,-1]Ú__setitem__z0, 17F)r&   rC   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reshaper8   rF   ZzsÚm1Úm2ÚmaÚarrayr.   rG   Znmzsr9   rH   ZzlZmaskxZmaskyr3   rI   Znmzlr*   r=   rE   rJ   r5   ÚsinÚlogÚsqrtÚmultiplyÚdivideÚpowerr   r   r   r   r   Ú<module>   st   	
ÿ
ÿ
ü







