o
    toi                     @  sd   d dl mZ d dlZd dlmZ dd Zdd Zdd	 Zd
d Z	G dd deZ
G dd deZdS )    )annotationsN)OpRunc                 C  s0   t | || }|d ur|dkr||| 7 }|S Nr   )npdotabcalphabetao r   N/home/ubuntu/.local/lib/python3.10/site-packages/onnx/reference/ops/op_gemm.py_gemm00   s   r   c                 C  s2   t | |j| }|d ur|dkr||| 7 }|S r   r   r   Tr   r   r   r   _gemm01      r   c                 C  s2   t | j|| }|d ur|dkr||| 7 }|S r   r   r   r   r   r   _gemm10   r   r   c                 C  s4   t | j|j| }|d ur|dkr||| 7 }|S r   r   r   r   r   r   _gemm11    s   r   c                   @  s"   e Zd Z						dddZdS )Gemm_6Nc	                 C  s   |dkr>|r|r
t nt}	n|rtnt}	|	||d ||}
|d u r&|
|jfS |j|
jkr9td|j d|
j d|
| fS |rG|rDt nt}	n|rKtnt}	|	||||||jfS )Nr   zUnable to add shape z
 to shape z without broadcast.)r   r   r   r   astypedtypeshape
ValueError)selfr   r	   r
   r   r   transAtransB	broadcast_methresr   r   r   _run(   s    
zGemm_6._run)NNNNNN__name__
__module____qualname__r"   r   r   r   r   r   '   s    r   c                   @  s   e Zd ZdddZdS )Gemm_7Nc           	      C  s8   |r	|rt nt}n|rtnt}|||||||jfS )N)r   r   r   r   r   r   )	r   r   r	   r
   r   r   r   r   r    r   r   r   r"   H   s   zGemm_7._run)NNNNNr#   r   r   r   r   r'   G   s    r'   )
__future__r   numpyr   onnx.reference.op_runr   r   r   r   r   r   r'   r   r   r   r   <module>   s    