On 3/24/07, Anne Archibald <[EMAIL PROTECTED]> wrote: > On 24/03/07, Bill Baxter <[EMAIL PROTECTED]> wrote: > > > Nice, but how does that fare on things like mdot(a,(b,c),d) ? I'm > > pretty sure it doesn't handle it. > > I think an mdot that can only multiply things left to right comes up > > short compared to an infix operator that can easily use parentheses to > > control order. > > Well, since exact dotting is associative, the parenthesization doesn't > matter there; if you're worried about roundoff or efficiency, you're > going to have to be more explicit.
Yes performance was the thing I was thinking about. You often know a little something about the sizes of your inputs that can help make things more efficient. Like BigMatrix1 * BigMatrix2 * LittleVector Is much faster to calculate as BigMatrix1 * (BigMatrix2 * LittleVector) than (BigMatrix1 * BigMatrix2) * LittleVector > Unfortunately your approach requires tuples to be treated differently from > arrays. Yeh, that was a conscious decision (which I noted in the docstring). You are right that it is different from what Numpy normally does, which is one reason I didn't say "lets replace dot with this function". > Most functions > in numpy will happily treat a tuple of length n, a list of length n, > and an array of length n the same way. Yep, it's nice in general. But in practice I very rarely do math on tuples. The only thing I can think of is I used to do prod(arr.shape) before I realized that arr.size give the same thing. I'm positive I've never used dot on tuples. > You could do this, and for your > own code maybe it's worth it, but I think it would be confusing in the > library. Could be. Doesn't seem so confusing to me as long as it's documented clearly in the docstring, but YMMV. --bb _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion