o
    to™i„  ã                   @  s<   d dl mZ d dlZd dlmZ dd„ ZG dd„ deƒZdS )é    )ÚannotationsN)ÚOpRunBinaryNumc              
   C  sn   zt | jƒdkrt |jƒdkrt | |¡W S t | |¡W S  ty6 } ztd| j›d|j›dƒ|‚d}~ww )zUImplements a matmul product. See :func:`np.matmul`.
    Handles sparse matrices.
    é   zUnable to multiply shapes z, Ú.N)ÚlenÚshapeÚnpÚdotÚmatmulÚ
ValueError)ÚaÚbÚe© r   úP/home/ubuntu/.local/lib/python3.10/site-packages/onnx/reference/ops/op_matmul.pyÚnumpy_matmul   s   €ÿr   c                   @  s   e Zd Zdd„ ZdS )ÚMatMulc                 C  s   t ||ƒfS )N)r   )Úselfr   r   r   r   r   Ú_run   s   zMatMul._runN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s    r   )Ú
__future__r   Únumpyr   Úonnx.reference.ops._opr   r   r   r   r   r   r   Ú<module>   s
   