
    Ng	                         d dl mZ d dlZd dlZd dlmZ d dlmZ de	deej
        df         dej
        fd	Z G d
 de          ZdS )    )TupleN)Base)expectEqnOperands.returnc                 *    t          j        | g|R  }|S )N)npeinsum)r   r   Zs      ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/backend/test/case/node/einsum.pyeinsum_reference_implementationr      s      		#!!!!AH    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dS )	Einsumr   Nc                      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%   r   s       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   r-   test_einsum_inner_prodr   r   r   r$   r%   r&   r   s        r   export_einsum_inner_prodzEinsum.export_einsum_inner_prod:   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   r1   r   r-      r   r   test_einsum_batch_matmulr   r   r3   s        r   export_einsum_batch_matmulz!Einsum.export_einsum_batch_matmulG   s    {$$c3Z# % 
 
 IOOAq!$$IOOAq!$$+C!Q88tQFQC6PQQQQQQr   )r   N)	__name__
__module____qualname__staticmethodr'   r+   r/   r4   r8    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 
R 
Rr   r   )typingr   numpyr
   r   onnx.backend.test.case.baser   onnx.backend.test.case.noder   strndarrayr   r   r=   r   r   <module>rD      s   
            , , , , , , . . . . . .	bj#o.Z   =R =R =R =R =RT =R =R =R =R =Rr   