
    /j2                    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dZ	 G d de          Z
dS )    )annotationsN)Base)expect      ?A
np.ndarrayBCnp.ndarray | NonealphafloatbetatransAinttransBreturnc                    |dk    r| n| j         } |dk    r|n|j         }||nt          j        d          }|t          j        | |          z  ||z  z   }|                    | j                  S )Nr   )Tnparraydotastypedtype)r   r	   r
   r   r   r   r   Ys           e/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/onnx/backend/test/case/node/gemm.pygemm_reference_implementationr      sp     q[[acAq[[acA]Aq!tax'A88AG    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	edd	            Z
edd
            Zedd            Zedd            Zedd            ZdS )Gemmr   Nonec                    t           j                            dg ddg          } t          j                            ddg                              t          j                  }t          j                            ddg                              t          j                  }t          j        ddg                              t          j                  }t          |||          }t          | |||g|gd	
           d S )Nr   abcyinputsoutputs            test_gemm_default_zero_biasr(   r)   nameonnxhelper	make_noder   randomranfr   float32zerosr   r   noder#   r$   r%   r&   s        r   export_default_zero_biaszGemm.export_default_zero_bias    s    {$$VOOOcU$SSINNAq6""))"*55INNAq6""))"*55HaV##BJ//)!Q22tQ1Is9VWWWWWWr   c                    t           j                            dddgdg          } t          j                            ddg                              t          j                  }t          j                            ddg                              t          j                  }t          ||          }t          | ||g|gd	
           d S )Nr   r#   r$   r&   r'      
   r*   test_gemm_default_no_biasr/   
r2   r3   r4   r   r5   r6   r   r7   r   r   )r:   r#   r$   r&   s       r   export_default_no_biaszGemm.export_default_no_bias)   s    {$$VS#J$NNINNAr7##**2:66INNB7##**2:66)!Q//tQFQC6QRRRRRRr   c                    t           j                            dg ddg          } t          j                            ddg                              t          j                  }t          j                            ddg                              t          j                  }t          j        d                              t          j                  }t          |||          }t          | |||g|gd	
           d S )Nr   r"   r&   r'   r=   r*   r,   gQ	@test_gemm_default_scalar_biasr/   )r2   r3   r4   r   r5   r6   r   r7   r   r   r   r9   s        r   export_default_scalar_biaszGemm.export_default_scalar_bias1   s    {$$VOOOcU$SSINNAq6""))"*55INNAq6""))"*55HTNN!!"*--)!Q22!QQC6U	
 	
 	
 	
 	
 	
r   c                    t           j                            dg ddg          } t          j                            ddg                              t          j                  }t          j                            ddg                              t          j                  }t          j                            dg                              t          j                  }t          |||          }t          | |||g|gd	           d S )
Nr   r"   r&   r'   r*      r-   )test_gemm_default_single_elem_vector_biasr/   r@   r9   s        r   &export_default_single_elem_vector_biasz+Gemm.export_default_single_elem_vector_bias<   s    {$$VOOOcU$SSINNAq6""))"*55INNAq6""))"*55INNA3&&rz22)!Q22q!9C<		
 	
 	
 	
 	
 	
r   c                    t           j                            dg ddg          } t          j                            ddg                              t          j                  }t          j                            ddg                              t          j                  }t          j                            ddg                              t          j                  }t          |||          }t          | |||g|gd	
           d S )Nr   r"   r&   r'   r=   rF   r,   r-   test_gemm_default_vector_biasr/   r@   r9   s        r   export_default_vector_biaszGemm.export_default_vector_biasJ       {$$VOOOcU$SSINNAq6""))"*55INNAq6""))"*55INNAq6""))"*55)!Q22!QQC6U	
 	
 	
 	
 	
 	
r   c                    t           j                            dg ddg          } t          j                            ddg                              t          j                  }t          j                            ddg                              t          j                  }t          j                            ddg                              t          j                  }t          |||          }t          | |||g|gd	           d S )
Nr   r"   r&   r'   r*      r,   test_gemm_default_matrix_biasr/   r@   r9   s        r   export_default_matrix_biaszGemm.export_default_matrix_biasU   rL   r   c                    t           j                            dg ddgd          } t          j                            ddg                              t          j                  }t          j                            ddg                              t          j                  }t          j        ddg                              t          j                  }t          |||d	          }t          | |||g|gd
           d S )Nr   r"   r&   r-   )r(   r)   r   rN   r*   r,   )r   test_gemm_transposeAr/   r1   r9   s        r   export_transposeAzGemm.export_transposeA`       {$$???SE! % 
 
 INNAq6""))"*55INNAq6""))"*55HaV##BJ//)!Q!<<<tQ1Is9OPPPPPPr   c                    t           j                            dg ddgd          } t          j                            ddg                              t          j                  }t          j                            ddg                              t          j                  }t          j        ddg                              t          j                  }t          |||d	          }t          | |||g|gd
           d S )Nr   r"   r&   r-   )r(   r)   r   r*   rN   r,   )r   test_gemm_transposeBr/   r1   r9   s        r   export_transposeBzGemm.export_transposeBk   rT   r   c                    t           j                            dg ddgd          } t          j                            ddg                              t          j                  }t          j                            ddg                              t          j                  }t          j        d	dg                              t          j                  }t          |||d
          }t          | |||g|gd           d S )Nr   r"   r&         ?)r(   r)   r   r*   r+   r,   r-   )r   test_gemm_alphar/   r1   r9   s        r   export_alphazGemm.export_alphav   s    {$$???SE % 
 
 INNAq6""))"*55INNAq6""))"*55HaV##BJ//)!Q===tQ1Is9JKKKKKKr   c                    t           j                            dg ddgd          } t          j                            ddg                              t          j                  }t          j                            ddg                              t          j                  }t          j                            d	dg                              t          j                  }t          |||d
          }t          | |||g|gd           d S )Nr   r"   r&   rY   )r(   r)   r   r=   rF   r,   r-   )r   test_gemm_betar/   r@   r9   s        r   export_betazGemm.export_beta   s    {$$???SE % 
 
 INNAq6""))"*55INNAq6""))"*55INNAq6""))"*55)!Q<<<tQ1Is9IJJJJJJr   c            	     &   t           j                            dg ddgdddd          } t          j                            dd	g                              t          j                  }t          j                            d
dg                              t          j                  }t          j                            dd
g                              t          j                  }t          |||dddd          }t          | |||g|gd           d S )Nr   r"   r&   g      ?gffffff?r-   )r(   r)   r   r   r   r   r,   r*   r+   )r   r   r   r   test_gemm_all_attributesr/   r@   r9   s        r   export_all_attributeszGemm.export_all_attributes   s    {$$"??E % 
 
 INNAq6""))"*55INNAq6""))"*55INNAq6""))"*55)q!Aat$
 
 
 	tQ1Is9STTTTTTr   N)r   r    )__name__
__module____qualname__staticmethodr;   rA   rD   rH   rK   rP   rS   rW   r[   r^   ra    r   r   r   r      s       X X X \X S S S \S 
 
 
 \
 
 
 
 \
 
 
 
 \
 
 
 
 \
 Q Q Q \Q Q Q Q \Q L L L \L K K K \K U U U \U U Ur   r   )Nr   r   r   r   )r   r   r	   r   r
   r   r   r   r   r   r   r   r   r   r   r   )
__future__r   numpyr   r2   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   rf   r   r   <module>rk      s    # " " " " "      , , , , , , . . . . . .      $~U ~U ~U ~U ~U4 ~U ~U ~U ~U ~Ur   