
    /j
                    ^    d dl mZ d dlZd dlZd dlmZ d dlmZ ddZ	 G d de          Z
dS )    )annotationsN)Base)expectEqnstrOperandstuple[np.ndarray, ...]return
np.ndarrayc                &    t          j        | g|R  S )N)npeinsum)r   r   s     g/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/onnx/backend/test/case/node/einsum.pyeinsum_reference_implementationr      s     9S$8$$$$    c                      e Zd Zed
d            Zed
d            Zed
d            Zed
d            Zed
d            Zed
d            Z	d	S )Einsumr
   Nonec                     d} t           j                            ddgdg|           }t          j                            dd          }t          | |f          }t          ||g|gd	           d S )
Nzij->jir   xyinputsoutputsequation      test_einsum_transposer   r   nameonnxhelper	make_noder   randomrandnr   r   )r   nodeXYs       r   export_einsum_transposezEinsum.export_einsum_transpose   sz    {$$cUSEC % 
 
 IOOAq!!+C!66tQC!3JKKKKKKr   c                     d} t           j                            ddgdg|           }t          j                            dd          }t          | |f          }t          ||g|gd	           d S )
Nzij->ir   r   r   r   r   r   test_einsum_sumr   r!   r   r'   r(   Zs       r   export_einsum_sumzEinsum.export_einsum_sum    sz    {$$cUSEC % 
 
 IOOAq!!+C!66tQC!3DEEEEEEr   c                     d} t           j                            ddgdg|           }t          j                            ddd          }t          | |f          }t          ||g|gd	           d S )
Nz...ii ->...ir   r   r   r   r      test_einsum_batch_diagonalr   r!   r-   s       r   export_einsum_batch_diagonalz#Einsum.export_einsum_batch_diagonal,   s|    {$$cUSEC % 
 
 IOOAq!$$+C!66tQC!3OPPPPPPr   c                 "   d} t           j                            dddgdg|           }t          j                            d          }t          j                            d          }t          | ||f          }t          |||g|gd	           d S )
Nzi,ir   r   r   zr   r1   test_einsum_inner_prodr   r!   r   r'   r(   r)   r.   s        r   export_einsum_inner_prodzEinsum.export_einsum_inner_prod8   s    {$$c3Z# % 
 
 IOOAIOOA+C!Q88tQFQC6NOOOOOOr   c                 *   d} t           j                            dddgdg|           }t          j                            ddd	          }t          j                            dd	d
          }t          | ||f          }t          |||g|gd           d S )Nzbij, bjk -> bikr   r   r   r5   r   r1      r   r   test_einsum_batch_matmulr   r!   r7   s        r   export_einsum_batch_matmulz!Einsum.export_einsum_batch_matmulE   s    {$$c3Z# % 
 
 IOOAq!$$IOOAq!$$+C!Q88tQFQC6PQQQQQQr   c                     d} t           j                            ddgdg|           }t          j        d          }t          | |f          }t          ||g|gd           d S )	Nz->r   r   r   r   g      @test_einsum_scalarr   )r"   r#   r$   r   arrayr   r   r-   s       r   export_einsum_scalarzEinsum.export_einsum_scalarR   sr    {$$cUSEC % 
 
 HSMM+C!66tQC!3GHHHHHHr   N)r
   r   )
__name__
__module____qualname__staticmethodr*   r/   r3   r8   r<   r@    r   r   r   r      s        	L 	L 	L \	L 	F 	F 	F \	F 	Q 	Q 	Q \	Q 
P 
P 
P \
P 
R 
R 
R \
R 	I 	I 	I \	I 	I 	Ir   r   )r   r   r   r	   r
   r   )
__future__r   numpyr   r"   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   rE   r   r   <module>rJ      s    # " " " " "      , , , , , , . . . . . .% % % %II II II II IIT II II II II IIr   