# [NumPy-Tickets] [NumPy] #1876: dot() non-symmetrical for scalar*matrix of objects

NumPy Trac numpy-tickets@scipy....
Tue Jun 21 11:10:51 CDT 2011

```#1876: dot() non-symmetrical for scalar*matrix of objects
---------------------------------+------------------------------------------
Reporter:  lebigot              |       Owner:  somebody
Type:  defect               |      Status:  new
Priority:  normal               |   Milestone:  Unscheduled
Component:  Other                |     Version:  1.5.1
Keywords:  dot, matrix, object  |
---------------------------------+------------------------------------------
NumPy's dot() function has a non-symmetrical behavior for scalar
multipliers, when one of the objects is a matrix of objects:

{{{
>>> arr = matrix([1, 2], dtype=object)
>>> dot(arr, 3)
matrix([[3, 6]], dtype=object)
>>> dot(3, arr)
NotImplemented
}}}

(My implementation of NumPy uses BLAS, but I think I remember also seeing
this problem with the basic implementation.)

A consequence of this is the following failed simple multiplication:

{{{
>>> arr*3
matrix([[3, 6]], dtype=object)
>>> 3*arr
------------------------------------------------------------
Traceback (most recent call last):
File "<ipython console>", line 1, in <module>
TypeError: unsupported operand type(s) for *: 'int' and 'matrix'
}}}

The final TypeError looks definitely like a bug.  Mathematically, one also
wants to have a symmetrical dot() product, for scalars (both dot(3, arr)
and dot(arr, 3) should work), no?  A symmetrical dot() product for
matrices of objects would solve both problems.

--
Ticket URL: <http://projects.scipy.org/numpy/ticket/1876>
NumPy <http://projects.scipy.org/numpy>
My example project
```