
    ,iG                     \   d dl Z d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZmZ d Zd Z G d de          Z G d	 d
e          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Zedk    r e j                     dS dS )    N)voidfloat32float64int32int64jitguvectorize)GUVectorize)tagTestCasec           
          | j         \  }}|j         \  }}t          |          D ]R}t          |          D ]@}d|||f<   t          |          D ]'}|||fxx         | ||f         |||f         z  z  cc<   (ASdS )zdocstring for matmulcorer   N)shaperange)	ABCmnpijks	            ^/var/www/html/speakWrite/venv/lib/python3.11/site-packages/numba/tests/npyufunc/test_gufunc.py
matmulcorer      s    7DAq7DAq1XX - -q 	- 	-AAadG1XX - -!Q$1QT7Qq!tW,,-	-- -    c                     | |z  |z   |d<   d S Nr    )axyouts       r   axpyr#      s    UaZCFFFr   c                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	
TestGUFunccpuc                 ~   d}t          j        |dz  dz  t           j                                      |dd          }t          j        |dz  dz  t           j                                      |dd          } |||          }t          j        ||          }t           j                            ||dd           d S )	Ni        dtype   h㈵>:0yE>rtolatol)nparanger   reshapematmultestingassert_allclose)selfgufunc	matrix_ctr   r   r   Golds          r   check_matmul_gufunczTestGUFunc.check_matmul_gufunc   s    	Ii!ma'rz:::BB9aQRSSIi!ma'rz:::BB9aQRSSF1aLLyA

""1dD"AAAAAr   c                 &   t          t          d| j                  }|                    t          d d d d f         t          d d d d f         t          d d d d f         f           |                                }|                     |           d S N(m,n),(n,p)->(m,p)target)r
   r   rA   addr   build_ufuncr<   r8   r9   s     r   test_gufunczTestGUFunc.test_gufunc'   s    Z)=$(K1 1 1

GAAAqqqDM7111aaa4='!!!QQQ$-@AAA##%%  (((((r   c                      t          t          t          d d d d f         t          d d d d f         t          d d d d f                   gd| j                  t                    }|                     |           d S r>   )r	   r   r   rA   r   r<   rD   s     r   test_guvectorize_decorz!TestGUFunc.test_guvectorize_decor/   s    1d7111QQQ3<111wqqqs|LLM1$(K1 1 11;= = 	  (((((r   c                 6   t          t          d| j                  }|                    d           |                                }t          j        dt
          j                  } ||||          }t
          j        	                    |||z  |z              d S )N(), (), () -> ()r@   z(intp, intp, intp, intp[:])
   r*   )
r
   r#   rA   rB   rC   r2   r3   intpr6   assert_equal)r8   r9   r    r"   s       r   test_ufunc_likezTestGUFunc.test_ufunc_like6   s     T#5dkJJJ

0111##%%Ib(((fQ1oo

QUQY/////r   c                 l   t          dgd          d             }t          j        d          } ||d          }t          j        |d          }t          j                            ||           t          j        |          } |||d           t          j                            ||           d S )Nzf8[:],f8[:](n)->(n)c                 d    d}t          | j        d                   D ]}|| |         z  }|||<   d S r   r   r   r    resaccr   s       r   	my_cumsumz'TestGUFunc.test_axis.<locals>.my_cumsumE   F    C171:&&  qtA r         r   axisr"   r[   )r	   r2   onescumsumr6   rL   
zeros_like)r8   rU   r    r!   expectedout_kws         r   	test_axiszTestGUFunc.test_axisC   s    	m_j	1	1	 	 
2	1	 GHIaa   9QQ'''

8,,,q!!	!a((((

11111r   c                 V   t          t          d d          t          t          d d          fgd          d             }|                     d|j                   |                     d|j                   |                     d|j                   |                     d|j                   d S )N(n),()->(n)c                 \    t          | j        d                   D ]}| |         |z   ||<   dS )docstring for gufuncr   NrQ   )r    r!   rS   r   s       r   r9   z)TestGUFunc.test_docstring.<locals>.gufuncW   s>     171:&& " "1A" "r   z numba.tests.npyufunc.test_gufuncr9   z)TestGUFunc.test_docstring.<locals>.gufuncrf   )r	   r   assertEqual
__module____name____qualname____doc__rD   s     r   test_docstringzTestGUFunc.test_docstringV   s    	uQQQxaaa12M	B	B	" 	" 
C	B	"
 	;V=NOOO6?333DfFYZZZ/@@@@@r   N)
ri   rh   rj   rA   r<   rE   rG   rM   rb   rl   r   r   r   r%   r%      s{        FB B B) ) )) ) )0 0 02 2 2&
A 
A 
A 
A 
Ar   r%   c                   *    e Zd ZdZd Zd Zd Zd ZdS )TestMultipleOutputsr&   c                 t   t          d| j                  d             }t          j        dt          j                  dz   }t          j        |          }t          j        |          } ||||           t          j                            ||           t          j                            ||           d S )N(x)->(x),(x)r@   c                 `    t          |j                  D ]}| |         ||<   | |         ||<   d S Nr   sizer   r   r   r   s       r   copyzKTestMultipleOutputs.test_multiple_outputs_same_type_passed_in.<locals>.copyg   sA     16]]  t!t! r   rJ   r*      r	   rA   r2   r3   r   r_   r6   r7   )r8   rv   r   r   r   s        r   )test_multiple_outputs_same_type_passed_inz=TestMultipleOutputs.test_multiple_outputs_same_type_passed_inf   s    	^ K
) 
) 
)	 	
) 
)	
 Ib
+++a/M!M!Q1

""1a(((

""1a(((((r   c                 z   t          d| j                  d             }t          j        dt          j                  dz   }t          j        |          }t          j        |          } ||||           t          j                            ||           t          j                            |dz  |           d S )Nrp   r@   c                 f    t          |j                  D ]}| |         ||<   | |         dz  ||<   d S Nr(   rs   ru   s       r   copy_and_doublezRTestMultipleOutputs.test_multiple_outputs_distinct_values.<locals>.copy_and_doublew   sE     16]]    t!tax!   r   rJ   r*   rw   r(   rx   )r8   r}   r   r   r   s        r   %test_multiple_outputs_distinct_valuesz9TestMultipleOutputs.test_multiple_outputs_distinct_valuesu   s    	^ K
) 
) 
)	  	 
) 
)	 
 Ib
+++a/M!M!1a   

""1a(((

""1q5!,,,,,r   c                    t          d| j                  d             }t          j        dt          j                  dz   }t          j        |          }t          j        |t          j                  } ||||           t          j                            ||           t          j                            |t          j        d          z  |           d S )Nrp   r@   c                 f    t          |j                  D ]}| |         ||<   | |         dz  ||<   d S )N      ?rs   ru   s       r   copy_and_multiplyzJTestMultipleOutputs.test_multiple_output_dtypes.<locals>.copy_and_multiply   sE     16]] " "t!tcz!" "r   rJ   r*   rw   r   )	r	   rA   r2   r3   r   r_   r   r6   r7   )r8   r   r   r   r   s        r   test_multiple_output_dtypesz/TestMultipleOutputs.test_multiple_output_dtypes   s    	^ K
) 
) 
)	" 	"
) 
)	"
 Ib)))A-M!M!2:...!Q"""

""1a(((

""1rz##6:::::r   c                 $   t          d| j                  d             }t          j        dt          j                  }d}|                     t                    5 } ||           d d d            n# 1 swxY w Y   |                     |t          |j	                             |                     t                    5 } ||||||           d d d            n# 1 swxY w Y   |                     |t          |j	                             d S )Nz(m),(m)->(m),(m)r@   c                     d S rr   r   )r    r!   zws       r   fz@TestMultipleOutputs.test_incorrect_number_of_pos_args.<locals>.f   s    Dr   r,   r*   z"Too few arguments for function 'f')
r	   rA   r2   r3   r   assertRaises	TypeErrorassertInstr	exception)r8   r   arrmsgtes        r   !test_incorrect_number_of_pos_argsz5TestMultipleOutputs.test_incorrect_number_of_pos_args   s   	'	<	<	<	 	 
=	<	 i*** 3y)) 	RAcFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	c3r|,,--- y)) 	'RAc3S#&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'c3r|,,-----s$   A44A8;A8CC!$C!N)ri   rh   rj   rA   ry   r~   r   r   r   r   r   rn   rn   c   sU        F) ) )- - - ; ; ; . . . . .r   rn   c                       e Zd ZdZdZdS )TestGUFuncParallelFparallelNri   rh   rj   _numba_parallel_test_rA   r   r   r   r   r              !FFFr   r   c                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	TestDynamicGUFuncr&   c                    d }t          t          d| j        d          }d}t          j        |dz  dz  t          j                                      |dd          }t          j        |dz  d	z  t          j                                      |dd	          }t          j        |dz  d	z  t          j                                      |dd	          } |||||           t          j        |dz  dz  t          j                                      |dd          }t          j        |dz  d	z  t          j                                      |dd	          }t          j        |dz  d	z  t          j                                      |dd	          }	 |||||	           |                     t          |j
                  d           d S )
Nc                     t          j        ||          } | |||           t           j                            ||dd           d S )Nr-   r.   r/   )r2   r5   r6   r7   )r9   r   r   r   r;   s        r   r<   zBTestDynamicGUFunc.test_dynamic_matmul.<locals>.check_matmul_gufunc   sG    9Q??DF1aOOOJ&&q$T&EEEEEr   r?   TrA   
is_dynamicrJ   r(   r)   r*   r,   )r
   r   rA   r2   r3   r   r4   r   rg   lentypes)
r8   r<   r9   r:   Ai64Bi64Ci64r   r   r   s
             r   test_dynamic_matmulz%TestDynamicGUFunc.test_dynamic_matmul   s   	F 	F 	F
 Z)=$(KDB B B	yQ*"(;;;CCIqRSTTyQ*"(;;;CCIqRSTTyQ*"(;;;CCIqRSTTFD$555Ii!ma'rz:::BB9aQRSSIi!ma'rz:::BB9aQRSSIi!ma'rz:::BB9aQRSSFAq!,,,V\**A.....r   c                     d }t          t          d| j        d          }t          j        dt          j                  } |||           d S )Nc                 <   t          j        d|j                  }t          j        d|j                  } | ||||            | ||||           ||z  |z   }t           j                            ||           t           j                            ||           d S )NrJ   r*   r"   )r2   zerosr+   r6   rL   )r9   r    r"   ra   goldens        r   check_ufunc_outputzETestDynamicGUFunc.test_dynamic_ufunc_like.<locals>.check_ufunc_output   s    (2QW---CXb000FF1aC   F1a''''UQYFJ##C000J##FF33333r   rI   Tr   rJ   r*   )r
   r#   rA   r2   r3   rK   )r8   r   r9   r    s       r   test_dynamic_ufunc_likez)TestDynamicGUFunc.test_dynamic_ufunc_like   sb    	4 	4 	4 T#5dk(,. . .Ib(((61%%%%%r   c                 ^   t          d| j        d          d             }|                     |j                   t	          j        dt          j                                      dd          }t	          j        dt          j                  } |||           t          |j
        d	                   D ]6}|                     ||         ||                                                    7d
}|                     t          |          5   ||           ddd           dS # 1 swxY w Y   dS )w
        Note that scalar output is a 0-dimension array that acts as
        a pointer to the output location.
        (n)->()TrA   nopythonc                 d    d}t          | j        d                   D ]}|| |         z  }||d<   d S Ng        r   r   rQ   inpr"   tmpr   s       r   sum_rowz=TestDynamicGUFunc.test_dynamic_scalar_output.<locals>.sum_row   s@    C39Q<((  s1vCGGGr   0u  r*   '     r   z)Too few arguments for function 'sum_row'.N)r	   rA   
assertTruer   r2   r3   r   r4   r   r   r   rg   sumassertRaisesRegexr   )r8   r   r   r"   r   r   s         r   test_dynamic_scalar_outputz,TestDynamicGUFunc.test_dynamic_scalar_output   si    
Yt{T	B	B	B	 	 
C	B	 	*+++iRX...66ua@@huBH---S sy|$$ 	3 	3ASVSVZZ\\22229##Is33 	 	GCLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   	D""D&)D&c                    t          d          d             }t          j        d          }t          j        |d          }t          j        |          } |||d           t          j                            ||           t          j        |          } |||d           t          j                            ||           d S )NrO   c                 d    d}t          | j        d                   D ]}|| |         z  }|||<   d S r   rQ   rR   s       r   rU   z.TestDynamicGUFunc.test_axis.<locals>.my_cumsum   rV   r   rW   r   rZ   r\   )r	   r2   r]   r^   r_   r6   rL   )r8   rU   r    r`   r!   ra   s         r   rb   zTestDynamicGUFunc.test_axis   s    	Z	 	 	 	 
!	 	 GH9QQ'''M(##	!QQ

8,,,q!!	!a((((

11111r   c                    t          d          d             }g d}|D ],}t          ||          }|                     |d|d           -t          j        g d          }t          j        g d          } |||           |                     |t          j        g d                     |                     |j        d           |                     t                    5 }|
                    |           d d d            n# 1 swxY w Y   |                     t          |j                  d	           |                     t                    5 }|                    |           d d d            n# 1 swxY w Y   |                     t          |j                  d	           |                     t                    5 }|                    |d
dg           d d d            n# 1 swxY w Y   |                     t          |j                  d	           |                     t                    5 }|                    ||           d d d            n# 1 swxY w Y   |                     t          |j                  d           d S )NrO   c                 d    d}t          | j        d                   D ]}|| |         z  }|||<   d S r   rQ   rR   s       r   r9   z8TestDynamicGUFunc.test_gufunc_attributes.<locals>.gufunc  rV   r   )	signature
accumulateatouterreducereduceatzdynamic gufunc not exporting ""rw   r(   r   r)   r   r   r   r   rw   r      rJ   z-Reduction not defined on ufunc with signaturer   r(   z?method outer is not allowed in ufunc with non-trivial signature)r	   hasattrr   r2   arrayassertPreciseEqualrg   r   r   RuntimeErrorr   r   r   r   r   r   r   )r8   r9   attrsattrcontainsr   rS   raisess           r   test_gufunc_attributesz(TestDynamicGUFunc.test_gufunc_attributes  s^   	Z	 	 	 	 
!	 	 QPP 	U 	UDvt,,HOOHHTTT&STTTTH\\\""h|||$$q#RXmmm%<%<===
 	):666|,, 	!a   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!V-..0_```|,, 	MM!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	V-..0_```|,, 	'OOA1v&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'V-..0_```y)) 	VLLA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	V-..0qrrrrrsH   #DD	D	E44E8;E8G&&G*-G*3IIIc                 F   t          d          d             }|                     |j                   t          j        g d          }t          j        g d          }t          j        g d          } ||||           |                     |t          j        g d                     |                     |j                   |                     |                    |          d           |                     |                    |          t          j        g d                     |                     |	                    d	d
gd
dg          t          j        d
dgddgg                     |                     |
                    |d	dg          t          j        ddg                     t          j        g d          }t          j        d
dg          }|                    |d	d
g|           |                     |t          j        g d                     d S )Nz	(),()->()c                     | |z   |d<   d S r   r   )r    r!   rS   s      r   rB   z6TestDynamicGUFunc.test_gufunc_attributes2.<locals>.add6  s    UCFFFr   r   )r)   r   r(   rw   r   )r,   r,   r,   r,   rJ   r   r   rw   r(   r      )r(   r)   r   r)   )r	   assertIsNoner   r2   r   r   rg   r   r   r   r   r   )r8   rB   r   brS   r    r!   s          r   test_gufunc_attributes2z)TestDynamicGUFunc.test_gufunc_attributes25  s   	[	!	!	 	 
"	!	 	#-(((H\\\""H\\\""h|||$$Aq#RXlll%;%;<<< 	#-(((A+++q 1 128MMM3J3JKKK		1a&1a& 9 928aVaQRVDT;U;UVVVQA 7 71a&9I9IJJJH\\\""HaVq1a&!28LLL#9#9:::::r   N)
ri   rh   rj   rA   r   r   r   rb   r   r   r   r   r   r   r      sw        F/ / /.& & &(  <2 2 2(&s &s &sP; ; ; ; ;r   r   c                   4    e Zd ZdZdZd Zd Zd Zd Zd Z	dS )	TestGUVectorizeScalarz<
    Nothing keeps user from out-of-bound memory access
    r&   c                 j   t          dgd| j        d          d             }t          j        dt          j                                      dd	          } ||          }t          |j        d
                   D ]6}|                     ||         ||         	                                           7dS )r   zvoid(int32[:], int32[:])r   Tr   c                 d    d}t          | j        d                   D ]}|| |         z  }||d<   d S r   rQ   r   s       r   r   z9TestGUVectorizeScalar.test_scalar_output.<locals>.sum_row\  sB     C39Q<((  s1vCGGGr   r   r*   r   r   r   N)
r	   rA   r2   r3   r   r4   r   r   rg   r   )r8   r   r   r"   r   s        r   test_scalar_outputz(TestGUVectorizeScalar.test_scalar_outputV  s     
019 K$
8 
8 
8	 	
8 
8	 iRX...66ua@@gcll sy|$$ 	3 	3ASVSVZZ\\2222	3 	3r   c                     t          dgd| j        d          d             }t          j        dt          j                                      dd	          } ||d
          }|                     |d
z  |           d S )Nzint32[:], int32[:], int32[:]rd   Tr   c                 h    t          | j        d                   D ]}| |         |d         z  ||<   d S r   rQ   r   r   r"   r   s       r   fooz4TestGUVectorizeScalar.test_scalar_input.<locals>.fooq  sB     39Q<(( ' 'Q!A$A' 'r   rY   r*   rJ   r   r(   )r	   rA   r2   r3   r   r4   r   )r8   r   r   r"   s       r   test_scalar_inputz'TestGUVectorizeScalar.test_scalar_inputo  s    	45} K$
8 
8 
8	' 	'
8 
8	' ibh///77A>>c#qkk 	a-----r   c                    d } t          dgd| j                  |          }t          j        d                              t          j                  } ||d          }t          j        |          } ||d|           t          j                            ||           t          j        d                              t          j                  	                    dd          } ||d          }t          j        |          }t          |j        d                   D ]} |||         d||                    t          j                            ||           d S )	Nc                 V    t          | j                  D ]}|| |         dz   z  ||<   d S )Nrw   rs   r   s       r   pyfunczATestGUVectorizeScalar.test_scalar_input_core_type.<locals>.pyfunc  s;    38__ * *c!fqj)A* *r   int32[:], int32, int32[:]rd   r@   rJ   r(   rX   r   )r	   rA   r2   r3   astyper   r_   r6   rL   r4   r   r   )r8   r   	my_gufuncr   gotr`   axs          r   test_scalar_input_core_typez1TestGUVectorizeScalar.test_scalar_input_core_type~  sY   	* 	* 	*4K!< = -'+{4 4 44:< <	
 imm""28,,iQ=%%sAx   

X... imm""28,,44R;;iQ=%%q)** 	- 	-BF3r7Ax|,,,,

X.....r   c                     |                      t                    5 }t          dgd| j                  d             }d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nr   z(n),(n)->(n)r@   c                     d S rr   r   )r   r   cs      r   r   zGTestGUVectorizeScalar.test_scalar_input_core_type_error.<locals>.pyfunc  	     r   z2scalar type int32 given for non scalar argument #2r   r   r	   rA   rg   r   r   r8   r   r   s      r   !test_scalar_input_core_type_errorz7TestGUVectorizeScalar.test_scalar_input_core_type_error  s    y)) 	V56 $- - - - -	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	MV-..	0 	0 	0 	0 	0   "A		AAc                     |                      t                    5 }t          dgd| j                  d             }d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nzint32[:], int32[:]z
(m,n)->(n)r@   c                     d S rr   r   )r   r   s     r   r   z8TestGUVectorizeScalar.test_ndim_mismatch.<locals>.pyfunc  r   r   z,type and shape signature mismatch for arg #1r   r   s      r   test_ndim_mismatchz(TestGUVectorizeScalar.test_ndim_mismatch  s    y)) 	V./ $- - - - -	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	GV-..	0 	0 	0 	0 	0r   N)
ri   rh   rj   rk   rA   r   r   r   r   r   r   r   r   r   r   P  sp          F3 3 32. . ./ / /80 0 00 0 0 0 0r   r   c                       e Zd ZdZdZdS )TestGUVectorizeScalarParallelFr   Nr   r   r   r   r   r     r   r   r   c                        e Zd Zd Zd Zd ZdS )TestGUVectorizePicklingc                    t          dgd          d             }t          j        |          }t          j        |          }|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        j	        |j        j	                   | 
                    |j                   |                                 | 
                    |j                   |                      |d           |d                     t          j        d          }|                      ||           ||                     dS )zNon-dynamic gufunc.
        zf8,f8[:]()->()c                     | dz  |d d <   d S r|   r   r    r"   s     r   doublezFTestGUVectorizePickling.test_pickle_gufunc_non_dyanmic.<locals>.double      UCFFFr         ?rJ   N)r	   pickledumpsloadsrg   _frozenidentityr   gufunc_builder_sigsr   disable_compiler   r2   r3   )r8   r  serclonedr   s        r   test_pickle_gufunc_non_dyanmicz6TestGUVectorizePickling.test_pickle_gufunc_non_dyanmic  sb    
j\8	,	,	 	 
-	,	 l6""c"" 	888&/:::*F,=>>>.4.4	6 	6 	6 	'''   ''' 	sVVC[[999immsVVC[[99999r   c                 Z   t          dd          d             }t          j        |          }t          j        |          }|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        j	        |j        j	                   | 
                    |j                   t          j        d          }t          j        d          } |d|            |d|           |                     ||           t          j        d          }t          j        |          }t          j        |          } |||            |||           |                     ||           dS )	z:Dynamic gufunc w/o prepopulating before pickling.
        r   rw   r  c                     | dz  |d d <   d S r|   r   r   s     r   r  zLTestGUVectorizePickling.test_pickle_gufunc_dyanmic_null_init.<locals>.double  r  r   r  r   rJ   N)r	   r  r  r  rg   r  r  r   r	  r
  assertFalser2   r   r   r3   r_   )r8   r  r  r  expectr   r   s          r   $test_pickle_gufunc_dyanmic_null_initz<TestGUVectorizePickling.test_pickle_gufunc_dyanmic_null_init  s    
X	*	*	*	 	 
+	*	 l6""c"" 	888&/:::*F,=>>>.4.4	6 	6 	6 	((( !hqkkss,,,imms##mC  ss,,,,,r   c                    t          dd          d             }t          j        d          }t          j        d          } |d|           t          j        d          }t          j        |          }t          j        |          } |||           t          j        |          }t          j        |          }|                     |j	        |j	                   |                     |j
        |j
                   |                     |j        |j                   |                     |j        j        |j        j                   |                     |j	                   |                                 |                     |j	                   t          j        d          }t          j        d          } |d|            |d|           |                     ||           t          j        |          }t          j        |          } |||            |||           |                     ||           dS )	zDynamic gufunc prepopulated before pickling.

        Once unpickled, we disable compilation to verify that the gufunc
        compilation state is carried over.
        r   rw   r  c                     | dz  |d d <   d S r|   r   r   s     r   r  zNTestGUVectorizePickling.test_pickle_gufunc_dynamic_initialized.<locals>.double  r  r   r  r   rJ   N)r	   r2   r   r3   r_   r  r  r  rg   r  r  r   r	  r
  r  r  r   r   )r8   r  r  r   r   r  r  s          r   &test_pickle_gufunc_dynamic_initializedz>TestGUVectorizePickling.test_pickle_gufunc_dynamic_initialized  s5    
X	*	*	*	 	 
+	*	 !hqkksimms##mC  s l6""c"" 	888&/:::*F,=>>>.4.4	6 	6 	6 	((( 	   '''!hqkkss,,,s##mC  ss,,,,,r   N)ri   rh   rj   r  r  r  r   r   r   r   r     sB        : : :: -  -  -D/- /- /- /- /-r   r   __main__)unittestr  numpyr2   numbar   r   r   r   r   r   r	   numba.np.ufuncr
   numba.tests.supportr   r   r   r#   r%   rn   r   r   r   r   r   ri   mainr   r   r   <module>r     s#         H H H H H H H H H H H H H H H H H H & & & & & & - - - - - - - -- - -  FA FA FA FA FA FA FA FARB. B. B. B. B.( B. B. B.J       
`; `; `; `; `; `; `; `;FZ0 Z0 Z0 Z0 Z0H Z0 Z0 Z0z    $9   
o- o- o- o- o-h o- o- o-d zHMOOOOO r   