On Wed, Jan 26, 2011 at 5:23 PM, <josef.pktd@gmail.com> wrote:
<snip> So, if I read the examples correctly we finally get dot along an axis
np.einsum('ijk,ji->', a, b) np.einsum('ijk,jik->k', a, b)
or something like this.
the notation might require getting used to but it doesn't look worse than figuring out what tensordot does.
I thought of various extensions to the notation, but the idea is tricky enough as is I think. Decoding a regex-like syntax probably wouldn't help. The only disadvantage I see, is that choosing the axes to operate on
in a program or function requires string manipulation.
One possibility would be for the Python exposure to accept lists or tuples of integers. The subscript 'ii' could be [(0,0)], and 'ij,jk->ik' could be [(0,1), (1,2), (0,2)]. Internally it would convert this directly to a C-string to pass to the API function. -Mark