
    bIg2                        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
y)
    )annotationsN)Base)expectc                    |dk(  r| n| j                   } |dk(  r|n|j                   }||nt        j                  d      }|t        j                  | |      z  ||z  z   }|j	                  | j
                        S )Nr   )Tnparraydotastypedtype)ABCalphabetatransAtransBYs           ]/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/node/gemm.pygemm_reference_implementationr      si     q[accAq[accA]Aq!tax'A88AGG    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y)Gemmc                    t         j                  j                  dg ddg      } t        j                  j                  ddg      j                  t        j                        }t        j                  j                  ddg      j                  t        j                        }t        j                  ddg      j                  t        j                        }t        |||      }t        | |||g|gd	
       y )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    {{$$VOcU$SIINNAq6"))"**5IINNAq6"))"**5HHaV##BJJ/)!Q2tQ1Is9VWr   c                    t         j                  j                  dddgdg      } t        j                  j                  ddg      j                  t        j                        }t        j                  j                  ddg      j                  t        j                        }t        ||      }t        | ||g|gd	
       y )Nr   r   r   r   r       
   r#   test_gemm_default_no_biasr(   
r+   r,   r-   r   r.   r/   r   r0   r   r   )r3   r   r   r   s       r   export_default_no_biaszGemm.export_default_no_bias)   s    {{$$VS#J$NIINNAr7#**2::6IINNB7#**2::6)!Q/tQFQC6QRr   c                    t         j                  j                  dg ddg      } t        j                  j                  ddg      j                  t        j                        }t        j                  j                  ddg      j                  t        j                        }t        j                  d      j                  t        j                        }t        |||      }t        | |||g|gd	
       y )Nr   r   r   r    r6   r#   r%   gQ	@test_gemm_default_scalar_biasr(   )r+   r,   r-   r   r.   r/   r   r0   r	   r   r   r2   s        r   export_default_scalar_biaszGemm.export_default_scalar_bias1   s    {{$$VOcU$SIINNAq6"))"**5IINNAq6"))"**5HHTN!!"**-)!Q2!QQC6U	
r   c                     t         j                  j                  dg ddg      } t        j                  j                  ddg      j                  t        j                        }t        j                  j                  ddg      j                  t        j                        }t        j                  j                  dg      j                  t        j                        }t        |||      }t        | |||g|gd	       y )
Nr   r   r   r    r#      r&   )test_gemm_default_single_elem_vector_biasr(   r9   r2   s        r   &export_default_single_elem_vector_biasz+Gemm.export_default_single_elem_vector_bias<   s    {{$$VOcU$SIINNAq6"))"**5IINNAq6"))"**5IINNA3&&rzz2)!Q2q!9C<		
r   c                    t         j                  j                  dg ddg      } t        j                  j                  ddg      j                  t        j                        }t        j                  j                  ddg      j                  t        j                        }t        j                  j                  ddg      j                  t        j                        }t        |||      }t        | |||g|gd	
       y )Nr   r   r   r    r6   r?   r%   r&   test_gemm_default_vector_biasr(   r9   r2   s        r   export_default_vector_biaszGemm.export_default_vector_biasJ       {{$$VOcU$SIINNAq6"))"**5IINNAq6"))"**5IINNAq6"))"**5)!Q2!QQC6U	
r   c                    t         j                  j                  dg ddg      } t        j                  j                  ddg      j                  t        j                        }t        j                  j                  ddg      j                  t        j                        }t        j                  j                  ddg      j                  t        j                        }t        |||      }t        | |||g|gd	       y )
Nr   r   r   r    r#      r%   test_gemm_default_matrix_biasr(   r9   r2   s        r   export_default_matrix_biaszGemm.export_default_matrix_biasU   rE   r   c                    t         j                  j                  dg ddgd      } t        j                  j                  ddg      j                  t        j                        }t        j                  j                  ddg      j                  t        j                        }t        j                  ddg      j                  t        j                        }t        |||d	      }t        | |||g|gd
       y )Nr   r   r   r&   )r!   r"   r   rG   r#   r%   )r   test_gemm_transposeAr(   r*   r2   s        r   export_transposeAzGemm.export_transposeA`       {{$$?SE! % 
 IINNAq6"))"**5IINNAq6"))"**5HHaV##BJJ/)!Q!<tQ1Is9OPr   c                    t         j                  j                  dg ddgd      } t        j                  j                  ddg      j                  t        j                        }t        j                  j                  ddg      j                  t        j                        }t        j                  ddg      j                  t        j                        }t        |||d	      }t        | |||g|gd
       y )Nr   r   r   r&   )r!   r"   r   r#   rG   r%   )r   test_gemm_transposeBr(   r*   r2   s        r   export_transposeBzGemm.export_transposeBk   rM   r   c                    t         j                  j                  dg ddgd      } t        j                  j                  ddg      j                  t        j                        }t        j                  j                  ddg      j                  t        j                        }t        j                  d	dg      j                  t        j                        }t        |||d
      }t        | |||g|gd       y )Nr   r   r         ?)r!   r"   r   r#   r$   r%   r&   )r   test_gemm_alphar(   r*   r2   s        r   export_alphazGemm.export_alphav   s    {{$$?SE % 
 IINNAq6"))"**5IINNAq6"))"**5HHaV##BJJ/)!Q=tQ1Is9JKr   c                    t         j                  j                  dg ddgd      } t        j                  j                  ddg      j                  t        j                        }t        j                  j                  ddg      j                  t        j                        }t        j                  j                  d	dg      j                  t        j                        }t        |||d
      }t        | |||g|gd       y )Nr   r   r   rR   )r!   r"   r   r6   r?   r%   r&   )r   test_gemm_betar(   r9   r2   s        r   export_betazGemm.export_beta   s    {{$$?SE % 
 IINNAq6"))"**5IINNAq6"))"**5IINNAq6"))"**5)!Q<tQ1Is9IJr   c            	        t         j                  j                  dg ddgdddd      } t        j                  j                  dd	g      j                  t        j                        }t        j                  j                  d
dg      j                  t        j                        }t        j                  j                  dd
g      j                  t        j                        }t        |||dddd      }t        | |||g|gd       y )Nr   r   r   g      ?gffffff?r&   )r!   r"   r   r   r   r   r%   r#   r$   )r   r   r   r   test_gemm_all_attributesr(   r9   r2   s        r   export_all_attributeszGemm.export_all_attributes   s    {{$$"E % 
 IINNAq6"))"**5IINNAq6"))"**5IINNAq6"))"**5)q!Aat$
 	tQ1Is9STr   N)returnNone)__name__
__module____qualname__staticmethodr4   r:   r=   rA   rD   rI   rL   rP   rT   rW   rZ    r   r   r   r      s    X X S S 
 
 
 
 
 
 
 
 Q Q Q Q L L K K U Ur   r   )N      ?rb   r   r   )r   
np.ndarrayr   rc   r   znp.ndarray | Noner   floatr   rd   r   intr   re   r[   rc   )
__future__r   numpyr   r+   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   ra   r   r   <module>rj      s    #   , .    	
    $~U4 ~Ur   