a
    cDa                  
   @   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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- 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rtttt	|	d  d}
nd}
t d||d|	||
  ||
 f  d S )N)smsu   µsns)r   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   ^/Users/vegardjervell/Documents/master/model/venv/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 )	N2-------------------------------------------------- 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   	










