B
      ›\:  ã               @   sÊ   d dl Z yd dlZdZW n ek
r0   dZY nX d dlmZ d dlm	Z
 e jdkoZe
dkZer–dZeedd	ƒZi Zeeeƒ eƒ eƒ  e¡ [[[ndZdZe ed
¡Ze ed¡ZG dd„ deƒZdS )é    NTF)Úversion)é   é   )é   é
   z}if 1:
    def matmul_usecase(x, y):
        return x @ y

    def imatmul_usecase(x, y):
        x @= y
        return x
    z<string>ÚexeczDthe matrix multiplication operator needs Python 3.5+ and Numpy 1.10+zBLAS needs Scipy 0.16+c               @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú
DumbMatrixc             C   s
   || _ d S )N)Úvalue)Úselfr	   © r   ú9lib/python3.7/site-packages/numba/tests/matmul_usecase.pyÚ__init__-   s    zDumbMatrix.__init__c             C   s   t |tƒrt| j|j ƒS tS )N)Ú
isinstancer   r	   ÚNotImplemented)r
   Úotherr   r   r   Ú
__matmul__0   s    
zDumbMatrix.__matmul__c             C   s"   t |tƒr|  j|j9  _| S tS )N)r   r   r	   r   )r
   r   r   r   r   Ú__imatmul__5   s    
zDumbMatrix.__imatmul__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   +   s   r   )ÚsysZscipy.linalg.cython_blasZscipyZhas_blasÚImportErrorZnumba.unittest_supportZunittest_supportZunittestZnumba.numpy_supportr   Znumpy_versionÚversion_infoZ
has_matmulÚcodeÚcompileÚcoÚnsÚevalÚglobalsÚupdateZmatmul_usecaseZimatmul_usecaseZ
skipUnlessZneeds_matmulZ
needs_blasÚobjectr   r   r   r   r   Ú<module>   s,   
