ó
    ‰*£hw  ã                   óB   • S SK JrJr  S SKJr  S SKJr   " S S\5      rg)é    )ÚBasicÚExpr)Ú_sympify)Ú	transposec                   ó(   • \ rS rSrSrS rSS jrSrg)Ú
DotProducté   a  
Dot product of vector matrices

The input should be two 1 x n or n x 1 matrices. The output represents the
scalar dotproduct.

This is similar to using MatrixElement and MatMul, except DotProduct does
not require that one vector to be a row vector and the other vector to be
a column vector.

>>> from sympy import MatrixSymbol, DotProduct
>>> A = MatrixSymbol('A', 1, 3)
>>> B = MatrixSymbol('B', 1, 3)
>>> DotProduct(A, B)
DotProduct(A, B)
>>> DotProduct(A, B).doit()
A[0, 0]*B[0, 0] + A[0, 1]*B[0, 1] + A[0, 2]*B[0, 2]
c                 ó–  • [        X45      u  pUR                  (       d  [        S5      eUR                  (       d  [        S5      eSUR                  ;  a  [        S5      eSUR                  ;  a  [        S5      e[	        UR                  5      [	        UR                  5      :w  a  [        S5      e[
        R                  " XU5      $ )Nz(Argument 1 of DotProduct is not a matrixz(Argument 2 of DotProduct is not a matrixé   z(Argument 1 of DotProduct is not a vectorz(Argument 2 of DotProduct is not a vectorz,DotProduct arguments are not the same length)r   Ú	is_MatrixÚ	TypeErrorÚshapeÚsetr   Ú__new__)ÚclsÚarg1Úarg2s      Úb/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/matrices/expressions/dotproduct.pyr   ÚDotProduct.__new__   s™   € Ü˜t˜lÓ+‰
ˆà�~�~ÜÐFÓGÐGØ�~�~ÜÐFÓGÐGØ�T—Z‘Z“ÜÐFÓGÐGØ�T—Z‘Z“ÜÐFÓGÐGäˆt�z‰z‹?œc $§*¡*›oÓ-ÜÐJÓKÐKä�}Š}˜S¨Ó-Ð-ó    c                 óT  • U R                   S   R                  U R                   S   R                  :X  a{  U R                   S   R                  S   S:X  a-  U R                   S   [        U R                   S   5      -  nUS   $ [        U R                   S   5      U R                   S   -  n US   $ U R                   S   R                  S   S:X  a$  U R                   S   U R                   S   -  nUS   $ [        U R                   S   5      [        U R                   S   5      -  nUS   $ )Nr   r   )Úargsr   r   )ÚselfÚexpandÚhintsÚmuls       r   ÚdoitÚDotProduct.doit+   s  € Ø�9‰9�Q‰<×Ñ §¡¨1¡×!3Ñ!3Ó3Ø�y‰y˜‰|×!Ñ! !Ñ$¨Ó)Ø—i‘i ‘l¤9¨T¯Y©Y°q©\Ó#:Ñ:�ð �1‰vˆô   §	¡	¨!¡Ó-¨d¯i©i¸©lÑ:‘ð �1‰vˆð �y‰y˜‰|×!Ñ! !Ñ$¨Ó)Ø—i‘i ‘l 4§9¡9¨Q¡<Ñ/�ð �1‰vˆô   §	¡	¨!¡Ó-¬i¸¿	¹	À!¹Ó.EÑE�à�1‰vˆr   © N)F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   Ú__static_attributes__r   r   r   r   r      s   † ñò&.÷"r   r   N)Ú
sympy.corer   r   Úsympy.core.sympifyr   Ú$sympy.matrices.expressions.transposer   r   r   r   r   Ú<module>r)      s   ðß "Ý 'Ý :ô1�õ 1r   