
    Si2                        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	S jjr	 " S S\5      r
g)
    )annotationsN)Base)expectc                    US:X  a  U OU R                   n US:X  a  UOUR                   nUb  UO[        R                  " S5      nU[        R                  " X5      -  XB-  -   nUR	                  U R
                  5      $ )Nr   )Tnparraydotastypedtype)ABCalphabetatransAtransBYs           _/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/gemm.pygemm_reference_implementationr      se     q[accAq[accA]Aqtx'A88AGG    c                      \ 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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S j5       rSrg)Gemm   c                    [         R                  R                  S/ SQS/S9n [        R                  R                  SS/5      R                  [        R                  5      n[        R                  R                  SS/5      R                  [        R                  5      n[        R                  " SS/5      R                  [        R                  5      n[        XU5      n[        XX#/U/S	S
9  g )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_biasGemm.export_default_zero_bias    s    {{$$VOcU$SIINNAq6"))"**5IINNAq6"))"**5HHaV##BJJ/)!2tIs9VWr   c                 r   [         R                  R                  SSS/S/S9n [        R                  R                  SS/5      R                  [        R                  5      n[        R                  R                  SS/5      R                  [        R                  5      n[        X5      n[        XU/U/S	S
9  g )Nr   r   r   r    r!      
   r$   test_gemm_default_no_biasr)   
r,   r-   r.   r   r/   r0   r   r1   r   r   )r4   r   r   r    s       r   export_default_no_biasGemm.export_default_no_bias)   s    {{$$VS#J$NIINNAr7#**2::6IINNB7#**2::6)!/tFQC6QRr   c                    [         R                  R                  S/ SQS/S9n [        R                  R                  SS/5      R                  [        R                  5      n[        R                  R                  SS/5      R                  [        R                  5      n[        R                  " S5      R                  [        R                  5      n[        XU5      n[        XX#/U/S	S
9  g )Nr   r   r    r!   r8   r$   r&   gQ	@test_gemm_default_scalar_biasr)   )r,   r-   r.   r   r/   r0   r   r1   r	   r   r   r3   s        r   export_default_scalar_biasGemm.export_default_scalar_bias1   s    {{$$VOcU$SIINNAq6"))"**5IINNAq6"))"**5HHTN!!"**-)!2QQC6U	
r   c                    [         R                  R                  S/ SQS/S9n [        R                  R                  SS/5      R                  [        R                  5      n[        R                  R                  SS/5      R                  [        R                  5      n[        R                  R                  S/5      R                  [        R                  5      n[        XU5      n[        U XU/U/SS	9  g )
Nr   r   r    r!   r$      r'   )test_gemm_default_single_elem_vector_biasr)   r;   r3   s        r   &export_default_single_elem_vector_bias+Gemm.export_default_single_elem_vector_bias<   s    {{$$VOcU$SIINNAq6"))"**5IINNAq6"))"**5IINNA3&&rzz2)!2!9C<		
r   c                    [         R                  R                  S/ SQS/S9n [        R                  R                  SS/5      R                  [        R                  5      n[        R                  R                  SS/5      R                  [        R                  5      n[        R                  R                  SS/5      R                  [        R                  5      n[        XU5      n[        XX#/U/S	S
9  g )Nr   r   r    r!   r8   rC   r&   r'   test_gemm_default_vector_biasr)   r;   r3   s        r   export_default_vector_biasGemm.export_default_vector_biasJ       {{$$VOcU$SIINNAq6"))"**5IINNAq6"))"**5IINNAq6"))"**5)!2QQC6U	
r   c                    [         R                  R                  S/ SQS/S9n [        R                  R                  SS/5      R                  [        R                  5      n[        R                  R                  SS/5      R                  [        R                  5      n[        R                  R                  SS/5      R                  [        R                  5      n[        XU5      n[        XX#/U/SS	9  g )
Nr   r   r    r!   r$      r&   test_gemm_default_matrix_biasr)   r;   r3   s        r   export_default_matrix_biasGemm.export_default_matrix_biasU   rK   r   c                    [         R                  R                  S/ SQS/SS9n [        R                  R                  SS/5      R                  [        R                  5      n[        R                  R                  SS/5      R                  [        R                  5      n[        R                  " SS/5      R                  [        R                  5      n[        XUSS	9n[        XX#/U/S
S9  g )Nr   r   r    r'   )r"   r#   r   rM   r$   r&   )r   test_gemm_transposeAr)   r+   r3   s        r   export_transposeAGemm.export_transposeA`       {{$$?SE! % 
 IINNAq6"))"**5IINNAq6"))"**5HHaV##BJJ/)!!<tIs9OPr   c                    [         R                  R                  S/ SQS/SS9n [        R                  R                  SS/5      R                  [        R                  5      n[        R                  R                  SS/5      R                  [        R                  5      n[        R                  " SS/5      R                  [        R                  5      n[        XUSS	9n[        XX#/U/S
S9  g )Nr   r   r    r'   )r"   r#   r   r$   rM   r&   )r   test_gemm_transposeBr)   r+   r3   s        r   export_transposeBGemm.export_transposeBk   rU   r   c                    [         R                  R                  S/ SQS/SS9n [        R                  R                  SS/5      R                  [        R                  5      n[        R                  R                  SS/5      R                  [        R                  5      n[        R                  " S	S/5      R                  [        R                  5      n[        XUSS
9n[        XX#/U/SS9  g )Nr   r   r          ?)r"   r#   r   r$   r%   r&   r'   )r   test_gemm_alphar)   r+   r3   s        r   export_alphaGemm.export_alphav   s    {{$$?SE % 
 IINNAq6"))"**5IINNAq6"))"**5HHaV##BJJ/)!=tIs9JKr   c                    [         R                  R                  S/ SQS/SS9n [        R                  R                  SS/5      R                  [        R                  5      n[        R                  R                  SS/5      R                  [        R                  5      n[        R                  R                  S	S/5      R                  [        R                  5      n[        XUSS
9n[        XX#/U/SS9  g )Nr   r   r    r[   )r"   r#   r   r8   rC   r&   r'   )r   test_gemm_betar)   r;   r3   s        r   export_betaGemm.export_beta   s    {{$$?SE % 
 IINNAq6"))"**5IINNAq6"))"**5IINNAq6"))"**5)!<tIs9IJr   c            
        [         R                  R                  S/ SQS/SSSSS9n [        R                  R                  SS	/5      R                  [        R                  5      n[        R                  R                  S
S/5      R                  [        R                  5      n[        R                  R                  SS
/5      R                  [        R                  5      n[        XUSSSSS9n[        XX#/U/SS9  g )Nr   r   r    g      ?gffffff?r'   )r"   r#   r   r   r   r   r&   r$   r%   )r   r   r   r   test_gemm_all_attributesr)   r;   r3   s        r   export_all_attributesGemm.export_all_attributes   s    {{$$"E % 
 IINNAq6"))"**5IINNAq6"))"**5IINNAq6"))"**5)!Aat$
 	tIs9STr    N)returnNone)__name__
__module____qualname____firstlineno__staticmethodr5   r<   r@   rE   rI   rO   rS   rX   r]   ra   re   __static_attributes__rg   r   r   r   r      s    X X S S 
 
 
 
 
 
 
 
 Q Q Q Q L L K K U Ur   r   )N      ?rp   r   r   )r   
np.ndarrayr   rq   r   znp.ndarray | Noner   floatr   rr   r   intr   rs   rh   rq   )
__future__r   numpyr   r,   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   rg   r   r   <module>rx      s    #   , .    	
    $~U4 ~Ur   