
    h	                         S SK Jr  S SKrS SKrS SKJr  S SKJr  S\	S\\R                  S4   S\R                  4S	 jr " S
 S\5      rg)    )TupleN)Base)expectEqnOperands.returnc                 4    [         R                  " U /UQ76 nU$ )N)npeinsum)r   r   Zs      \/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/einsum.pyeinsum_reference_implementationr      s     			#!!AH    c                   x    \ rS rSr\S	S j5       r\S	S j5       r\S	S j5       r\S	S j5       r\S	S j5       r	Sr
g)
Einsum   Nc                      Sn [         R                  R                  SS/S/U S9n[        R                  R                  SS5      n[        X45      n[        X/U/SS	9  g )
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_transposeEinsum.export_einsum_transpose   s`    {{$$cUSEC % 
 IIOOAq!+C6tC!3JKr   c                      Sn [         R                  R                  SS/S/U S9n[        R                  R                  SS5      n[        X45      n[        X/U/SS	9  g )
Nzij->ir   r   r   r   r   r   test_einsum_sumr   r   r   r%   r&   r   s       r   export_einsum_sumEinsum.export_einsum_sum"   s`    {{$$cUSEC % 
 IIOOAq!+C6tC!3DEr   c                      Sn [         R                  R                  SS/S/U S9n[        R                  R                  SSS5      n[        X45      n[        X/U/SS	9  g )
Nz...ii ->...ir   r   r   r   r      test_einsum_batch_diagonalr   r   r,   s       r   export_einsum_batch_diagonal#Einsum.export_einsum_batch_diagonal.   sb    {{$$cUSEC % 
 IIOOAq!$+C6tC!3OPr   c                      Sn [         R                  R                  SSS/S/U S9n[        R                  R                  S5      n[        R                  R                  S5      n[        XU45      n[        XU/U/SS	9  g )
Nzi,ir   r   r   zr   r0   test_einsum_inner_prodr   r   r   r%   r&   r'   r   s        r   export_einsum_inner_prodEinsum.export_einsum_inner_prod:   sv    {{$$c3Z# % 
 IIOOAIIOOA+CQ8tFQC6NOr   c                     Sn [         R                  R                  SSS/S/U S9n[        R                  R                  SSS	5      n[        R                  R                  SS	S
5      n[        XU45      n[        XU/U/SS9  g )Nzbij, bjk -> bikr   r   r   r5   r   r0      r   r   test_einsum_batch_matmulr   r   r7   s        r   export_einsum_batch_matmul!Einsum.export_einsum_batch_matmulG   s~    {{$$c3Z# % 
 IIOOAq!$IIOOAq!$+CQ8tFQC6PQr    )r   N)__name__
__module____qualname____firstlineno__staticmethodr(   r-   r2   r8   r=   __static_attributes__r?   r   r   r   r      sn    	L 	L 	F 	F 	Q 	Q 
P 
P 
R 
Rr   r   )typingr   numpyr
   r    onnx.backend.test.case.baser   onnx.backend.test.case.noder   strndarrayr   r   r?   r   r   <module>rL      sR   
    , .	bjj#o.ZZ=RT =Rr   