[Numpy-discussion] Allowing broadcasting of code dimensions in generalized ufuncs (original) (raw)

Marten van Kerkwijk m.h.vankerkwijk at gmail.com
Fri Jun 15 10:07:22 EDT 2018


Hi All,

The discussion on the gufunc signature enhancements seems to have stalled a bit, but while it was going I've tried to update the NEP correspondingly. The NEP is now merged, so can viewed more easily, at http://www.numpy.org/neps/nep-0020-gufunc-signature-enhancement.html

My own quite possibly biased summary of the discussion so far is that:

  1. Frozen dimensions are generally seen as a good idea; other implementations may be possible, but are not as clear.

  2. Flexible dimensions have little use beyond matmul; the main discussion is whether there is a better way. In my opinion, the main benefit of the current proposal is that it allows operator overrides to all work the same way (via array_ufunc), independent of any assumptions about the object that does the override (such as that it has a shape).

  3. Broadcastable dimensions had less support, but mostly for lack of examples; there now is one beyond all_equal, for which a gufunc is more clearly the proper route: a weighted average (which has obvious extensions).

A general benefit of course is that there is actual code for all three; it would certainly be nice if we could fully support matmul and @ in 1.16.

So, the question would seem whether the NEP should be accepted or rejected (with part acceptance of course being possible, though I note that flexible and broadcastable share a lot of implementation, so in my opinion it is somewhat pointless to do just one of them).

All the best,

Marten -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20180615/b1186068/attachment.html>



More information about the NumPy-Discussion mailing list