3
h              
   @   s  d dl Z d dlZejjd3ddjddZejjd4d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d5dd6jd
d
Zejjd7dd8jd
d
Zede  ZedkZed9k 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"d/ ed0d+dd e"d'd(  e"d1 ed2d+d
d dS );    N            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   //tmp/pip-build-fibhr3ey/numpy/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_1v9   s    r6   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(   r/   )
methodnameargsvarsr$   testr1   r,   r2   r-   r5   verr   r   r   compare_methodsF   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?   )r.   r   r(   r/   )r0   r$   r:   r1   r,   ysnmysr2   r-   ylnmylr3   r4   r5   r   r   r   compare_functions_2vR   s    rD   __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)rL   rL   i'  rL   i'  g)r   r	   r   )#r   r    randomuniformZreshaper1   r@   Zzsm1m2maarrayr,   rA   Znmzsr2   rB   ZzlZmaskxZmaskyr-   rC   Znmzlr(   r6   r<   rD   r.   sinlogsqrtmultiplydividepowerr   r   r   r   r   <module>   sn   	







