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