
    ~Od              
       ~   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  z   Zg dg d	gZg d
g d	gZ	ej
                            ee          Zej
                            ee	          Zej
                            ee          Zej                            ddd                              dd          Zej                            ddd                              dd          Zedez  z   Zedk    Zedk     Zej
                            ee          Zej
                            ee          Zej
                            ee          Zd3dZdeeeefdZdddeeeefdZddeeeeeeeef
dZedk    rs eej                    eej                    eej                    eej                    eej                     eej!                    eddd            edddd            eddd            eddd            ed d!d            ed d"d            ed d#d            ed$d%dd&'            ed$d(dd&'            e"d)            e"d*            ed+d,d            e"d)            e"d-            ed.d,d            e"d)            e"d/            ed0d,d            e"d)            e"d1            ed2d,d           dS dS )4    N            y              ?)TFF)FFT)TFT)maski'  d   g?g   c           	         g d}g d}t          |d| ddd           d dD             }d	d
                    |          z  }t          j        | |          }t	          |                    ||                    |z  }	|	dk    rFt	          t          t          j        t          j	        |	                    dz             d          }
nd}
t          d||d|	||
         z  ||
         fz             d S )N)smsu   µsns)r   g     @@g    .Ag    eAz : 50 )endc                 8    g | ]}d t          |dz            z  S )z%ss,nm%ss,%sl,nm%sl   )tuple).0xs     .lib/python3.11/site-packages/numpy/ma/bench.py
<listcomp>ztimer.<locals>.<listcomp>*   s(    BBBq%ac

2BBB    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nloopnrepunitsscalingvarnamesr   r"   bestorders              r   timerr1   &   s$   $$$E   G	QQQ
",,,,BBEBBBH0388H3E3EEELau---Eu||D%(())E1DczzSU[%6%6771<===qAA	
2eT676:WU^6K6;El6D D E E E E Er   c                    | j         }t          d           t          | d           d\  }}t          dt                      z  d|z  |           t          d|z             d\  }}t          dt                      z  d|z  |           d S )	N2-------------------------------------------------- on small arrays)numpy.manmxs!%(module)s.%(funcname)s(%(data)s)%11sr)   r*   %s on large arrays)r5   nmxl__name__r   r1   locals)	funcr*   xsr6   xlr;   funcnamemoduledatas	            r   compare_functions_1vrE   8   s    }H	&MMM	X
'
'
'(((%LFD	
-
8FVOSXYYYY	

)***%LFD	
-
8FVOSXYYYY
Fr   r   Tc	                    t          d           t          |  d           d| dd}
}	t          dt                      z  |
|           t          d| z             d	|z  d}
}	t          dt                      z  |
|           d S )
Nr3   r4   nmlr5   z!%(data)s.%(methodname)s(%(args)s)r9   r:   znm%sl)r   r1   r>   )
methodnameargsvarsr*   testr@   r6   rA   r;   rD   vers              r   compare_methodsrN   E   s    	&MMM	Z
)
)
)***Tj#D	
-
8CuMMMM	

+,,,$
#D	
-
8CuMMMM
Fr   c                    | j         }t          d           t          | d           d\  }}t          dt                      z  d|z  |           t          | d           d\  }}t          dt                      z  d|z  |           d S )	Nr3   r4   )r5   z	nmxs,nmysr7   r8   r9   z on large arrays)r5   z	nmxl,nmylr<   )r?   r*   rL   r@   r6   ysnmysrA   r;   ylnmylrB   rC   rD   s                 r   compare_functions_2vrT   Q   s    
 }H	&MMM	X
'
'
'(((*LFD	
-
8FVOSXYYYY	X
'
'
'(((*LFD	
-
8FVOSXYYYY
Fr   __main__raveli  )r*   	conjugatez	transpose
compressed__getitem__0z(0,0)z[0,-1]__setitem__z0, 17F)r*   rL   z	(0,0), 17r3   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uniformreshaper@   rP   zsm1m2maarrayr6   rQ   nmzsrA   rR   zlmaskxmaskyr;   rS   nmzlr1   rE   rN   rT   r=   sinlogsqrtmultiplydividepowerr    r   r   <module>rr      so     \"a##++Aq11
\"a##++Aq11"r'\0001///0x~~br~""x~~br~""x~~br~"" \"a))11#s;;
\"a))11#s;;"r'\
S
T	x~~bu~%%x~~bu~%%x~~bu~%%E E E E$ &)4BT    ,/c$
 
 
 
 &)t4444	   " z######$$$(((&&&%%%OGRt,,,,OKS5555OK40000OL"D1111OM3d3333OM7$7777OM848888OM7$UCCCCOM;dGGGG	E&MMM	E
'(((	E
4m5QQQQ	E&MMM	E
'(((	E
4m5QQQQ	E&MMM	E
!"""	E
,m4HHHH	E&MMM	E
!"""	E
,m3GGGGGGA r   