+
    iw                     D    ^ RI HtHt ^ RIHt ^ RIHt  ! R R]4      tR# )    )BasicExpr)_sympify)	transposec                   4   a  ] tR t^t o RtR tRR ltRtV tR# )
DotProducta  
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                   \        W34      w  rVP                  '       g   \        R 4      hVP                  '       g   \        R4      h^VP                  9   g   \        R4      h^VP                  9   g   \        R4      h\	        VP                  4      \	        VP                  4      8w  d   \        R4      h\
        P                  ! WV4      # )z(Argument 1 of DotProduct is not a matrixz(Argument 2 of DotProduct is not a matrixz(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   &&&c/var/www/html/photoedit/myenv/lib/python3.14/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                
   V P                   ^ ,          P                  V P                   ^,          P                  8X  d   V P                   ^ ,          P                  ^ ,          ^8X  d>   V P                   ^ ,          \        V P                   ^,          4      ,          pV^ ,          # \        V P                   ^ ,          4      V P                   ^,          ,          p V^ ,          # V P                   ^ ,          P                  ^ ,          ^8X  d5   V P                   ^ ,          V P                   ^,          ,          pV^ ,          # \        V P                   ^ ,          4      \        V P                   ^,          4      ,          pV^ ,          # )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____classdictcell__)__classdict__s   @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   