
    \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      ]/var/www/auris/envauris/lib/python3.13/site-packages/sympy/matrices/expressions/dotproduct.pyr   DotProduct.__new__   s    tl+
~~FGG~~FGGTZZFGGTZZFGGtzz?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   99Q<1!3!33yy|!!!$)iil9TYYq\#:: 1v  		!-diil: 1v yy|!!!$)iil499Q</ 1v  		!-i		!.EE1v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   