# [NumPy-Tickets] [NumPy] #1885: einsum wrong result / crash

NumPy Trac numpy-tickets@scipy....
Tue Jun 28 18:02:20 CDT 2011

```#1885: einsum wrong result / crash
--------------------------+-------------------------------------------------
Reporter:  royf          |       Owner:  somebody
Type:  defect        |      Status:  new
Priority:  normal        |   Milestone:  1.6.1
Component:  numpy.core    |     Version:  1.6.0
Keywords:  einsum,wrong  |
--------------------------+-------------------------------------------------
numpy.einsum sometimes returns wrong results.
Consider the following example:
>>> p = numpy.array([.5, .5])
>>> q = numpy.array([[0.26894142, 1-0.26894142], [1-0.26894142,
0.26894142]])
>>> r = numpy.identity(2)
...
>>> p, q, r
(array([ 0.5,  0.5]), array([[ 0.26894142,  0.73105858],
[ 0.73105858,  0.26894142]]), array([[ 1.,  0.],
[ 0.,  1.]]))
>>> numpy.einsum('z,mz,zm->', p, q, r)
3.7305612660634556e+177
>>> numpy.einsum('z,mz,zm->', p, q, r)
0.26894141999999999
>>> numpy.einsum('z,mz,zm->', p, q, r)
3.7305612660634556e+177
>>> numpy.einsum('z,mz,zm->', p, q, r)
0.26894141999999999
>>> numpy.einsum('z,mz,zm->', p, q, r)
3.7305612660634556e+177
>>> numpy.einsum('z,mz,zm->', p, q, r)
0.26894141999999999
>>> numpy.einsum('z,mz,zm->', p, q, r)
0.26894141999999999
>>> numpy.einsum('z,mz,zm->', p, q, r)
0.13447070999999999

In other runs this same example crashes the process.

Interestingly, one of the answers returned is half the correct one.
This probably has to do with the specific value of p in the example.
My guess is it's something like an off-by-one bug.

I'd try to fix it myself,
but the code is a scary mess :(

Good luck!

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