3
5^N              
   @   s  d dl mZmZ d dlZd dlZejjd4ddjddZejjd5ddj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jd6dd7jddZejjd8dd9j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d;d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re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(d)  e%d* ed+d,d-d e%d(d)  e%d. ed/d,d-d e%d(d)  e%d0 ed1d,dd e%d(d)  e%d2 ed3d,dd dS )<    )divisionprint_functionN            y              ?TF)maskd   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j| }tj| |d}t|j||| }	|	dkrtttjtj	|	d  d}
nd}
t d||d|	||
  ||
 f  d S )Nsmsu   µsnsr   g     @@g    .Ag    eAz%s : %-50s :  )endc             S   s   g | ]}d t |d  qS )z%ss,nm%ss,%sl,nm%sl   )tuple).0x r   Y/home/brian/BIRCH/lib-linux-x86_64/python/lib64/python3.6/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   sn   | j }tdd  td|  d\}}tdt  d| |d td	|  d\}}tdt  d| |d d S )N-2   z%s on small arraysnumpy.manmxsz!%(module)s.%(funcname)s(%(data)s)z%11s)r%   r&   z%s on large arraysnmxl)r-   r.   )r-   r/   )__name__r   r*   locals)	funcr&   xsr.   xlr/   funcnamemoduledatar   r   r   compare_functions_1v;   s    r8   r   c	             C   sl   t dd  t d|   d| d }	}
tdt  |
|d t d|   d	| d }	}
tdt  |
|d d S )
Nr+   r,   z%s on small arraysznm%ssznumpy.maz!%(data)s.%(methodname)s(%(args)s))r%   r&   z%s on large arraysznm%sl)r   r*   r1   )Z
methodnameargsvarsr&   testr3   r.   r4   r/   r7   verr   r   r   compare_methodsH   s    r=   c             C   sn   | j }tdd  td|  d\}}tdt  d| |d td	|  d\}}tdt  d| |d d S )Nr+   r,   z%s on small arraysnumpy.ma	nmxs,nmysz!%(module)s.%(funcname)s(%(data)s)z%11s)r%   r&   z%s on large arrays	nmxl,nmyl)r>   r?   )r>   r@   )r0   r   r*   r1   )r2   r&   r;   r3   r.   ysnmysr4   r/   ylnmylr5   r6   r7   r   r   r   compare_functions_2vT   s    rE   __main__Zraveli  )r&   	conjugatezZ	transpose
compressed__getitem__0z(0,0)z[0,-1]__setitem__z0, 17)r&   r;   z	(0,0), 17r+   r,   z__setitem__ on small arraysz(nmxs.__setitem__((-1,0),numpy.ma.masked)znumpy.ma   i'  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)rM   rM   i'  rM   i'  g)r
   r   r   )&
__future__r   r   r   r"   randomuniformZreshaper3   rA   Zzsm1m2maarrayr.   rB   Znmzsr4   rC   ZzlZmaskxZmaskyr/   rD   Znmzlr*   r8   r=   rE   r0   sinlogsqrtmultiplydividepowerr   r   r   r   r   <module>   sp   	







