
;>"^N                 @   s  d  d l  m Z m Z d  d l Z d  d l Z e j j d4 d d  j d d  Z e j j d5 d 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 d
 e Z e j j e	 d
 e Z e j j e
 d
 e Z e j j d6 d d7  j d d  Z e j j d8 d d9  j d d  Z e d e Z e d k Z e d: k  Z e j j e d
 e Z e j j e d
 e Z e j j e d
 e Z d d d d d  Z d e e e e d d  Z d d d e e e e d d  Z d d e e e	 e e e e e 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& d	 e d$ 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 d1 d, d d e% d( d)  e% d2  e d3 d, d d d S);    )divisionprint_functionN            y              ?TFmaskd   g? i  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 |  d |  } t | j | |   | }	 |	 d k r t 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 : end c             S   s$   g  |  ] } d  t  | d   q S)z%ss,nm%ss,%sl,nm%sl   )tuple).0x r   @/home/birch/.local/lib/python3.5/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   s   |  j  } t d d  t d |  d \ } } t d t   d d | d	 | t d
 |  d \ } } t d t   d d | d	 | d  S)N-2   z%s on small arraysnumpy.manmxsz!%(module)s.%(funcname)s(%(data)s)r$   z%11sr%   z%s on large arraysnmxl)r,   znmxs)r,   znmxl)__name__r   r)   locals)	funcr%   xsr-   xlr.   funcnamemoduledatar   r   r   compare_functions_1v;   s    	!!r7   r   c	             C   s   t  d d  t  d |   d | d }	 }
 t d t   d |
 d | t  d	 |   d
 | d }	 }
 t d t   d |
 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)   r0   )
methodnameargsvarsr%   testr2   r-   r3   r.   r6   verr   r   r   compare_methodsH   s    r=   c             C   s   |  j  } t d d  t d |  d \ } } t d t   d d | d	 | t d
 |  d \ } } t d t   d d | d	 | d  S)Nr*   r+   z%s on small arraysnumpy.ma	nmxs,nmysz!%(module)s.%(funcname)s(%(data)s)r$   z%11sr%   z%s on large arrays	nmxl,nmyl)r>   r?   )r>   r@   )r/   r   r)   r0   )r1   r%   r;   r2   r-   ysnmysr3   r.   ylnmylr4   r5   r6   r   r   r   compare_functions_2vT   s    	!!rE   __main__Zravelr%   i  	conjugatezZ	transpose
compressed__getitem__0z(0,0)z[0,-1]__setitem__z0, 17r;   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)&
__future__r   r   r   r!   randomuniformZreshaper2   rA   Zzsm1m2maarrayr-   rB   Znmzsr3   rC   ZzlZmaskxZmaskyr.   rD   Znmzlr)   r7   r=   rE   r/   sinlogsqrtmultiplyZdividepowerr   r   r   r   r   <module>   sp   	$$$$	



