On Do, 2015-09-24 at 03:26 -0700, Stefan van der Walt wrote:
On 2015-09-24 00:17:33, Jens Jørgen Mortensen <jensj@fysik.dtu.dk> wrote:
jensj@jordan:~$ python Python 2.7.9 (default, Apr 2 2015, 15:33:21) [GCC 4.9.2] on linux2 Type "help", "copyright", "credits" or "license" for more information.
import numpy as np a = np.zeros((2, 2, 2)) b = np.zeros((2, 2, 2)) a[0, 0] = 7 b[0, 0] = 6 np.vdot(a[:, :, 0], b[:, :, 0]).real 84.0 np.__version__ '1.10.0rc1'
The result should be 42. This is on Ubuntu 15.04.
The input is not supposed to be matrices—but the docstring specifically states that those should then be ravelled, so this is indeed a bug.
If I bisected correctly, the problematic change is this one:
Yeah, vdot uses `ravel`. That is correct, but it should only use it after making sure the input is C-order, or make sure the output of ravel is C-order (vdot was changed too in the mean time). So the fix will be adding the contiguity check in vdot. - Sebastian
commit 44877b36870ec2a0505c536a30b9fbf06a414c17 Author: Sebastian Berg <sebastian@sipsolutions.net> Date: Wed Sep 3 18:33:06 2014 +0200
ENH: Allow ravel to reshape in place when possible
This fixes a lot of corner cases in reshape 'K' when the array is not contiguous in the first place, it was previously never ravelled in place.
Closes gh-5033
Stéfan _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org https://mail.scipy.org/mailman/listinfo/numpy-discussion