ó
\K]c           @   s  d  d l  Z  y d  d l Z e Z Wn e k
 r; e Z n Xd  d l j Z	 d  d l
 m Z e  j d k os e d k Z e rÉ d Z e e d d	 ƒ Z i  Z e e e ƒ  e ƒ e ƒ  j e ƒ [ [ [ n d Z d Z e	 j e d
 ƒ Z e	 j e d ƒ Z d e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   versioni   i   i   i
   s}   if 1:
    def matmul_usecase(x, y):
        return x @ y

    def imatmul_usecase(x, y):
        x @= y
        return x
    s   <string>t   execsD   the matrix multiplication operator needs Python 3.5+ and Numpy 1.10+s   BLAS needs Scipy 0.16+t
   DumbMatrixc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   t   value(   t   selfR   (    (    s9   lib/python2.7/site-packages/numba/tests/matmul_usecase.pyt   __init__-   s    c         C   s'   t  | t ƒ r# t |  j | j ƒ St S(   N(   t
   isinstanceR   R   t   NotImplemented(   R   t   other(    (    s9   lib/python2.7/site-packages/numba/tests/matmul_usecase.pyt
   __matmul__0   s    c         C   s)   t  | t ƒ r% |  j | j 9_ |  St S(   N(   R   R   R   R   (   R   R   (    (    s9   lib/python2.7/site-packages/numba/tests/matmul_usecase.pyt   __imatmul__5   s    (   t   __name__t
   __module__R   R	   R
   (    (    (    s9   lib/python2.7/site-packages/numba/tests/matmul_usecase.pyR   +   s   		(   i   i   (   i   i
   (   t   syst   scipy.linalg.cython_blast   scipyt   Truet   has_blast   ImportErrort   Falset   numba.unittest_supportt   unittest_supportt   unittestt   numba.numpy_supportR    t   numpy_versiont   version_infot
   has_matmult   codet   compilet   cot   nst   evalt   globalst   updatet   Nonet   matmul_usecaset   imatmul_usecaset
   skipUnlesst   needs_matmult
   needs_blast   objectR   (    (    (    s9   lib/python2.7/site-packages/numba/tests/matmul_usecase.pyt   <module>   s,   

	