diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2014-05-24 09:31:53 -0600 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2014-05-24 09:31:53 -0600 |
commit | c7f10f72667752fbaa603d9de1499f17ada6f734 (patch) | |
tree | 083bb5a39bec2910b9f66caa56e7673aeba3e6ec | |
parent | 8d492d7644ef3934e8828484e0860f329cf54a3b (diff) | |
parent | a075dcbda8ba3107860f4de521d02afcee60bd31 (diff) | |
download | numpy-c7f10f72667752fbaa603d9de1499f17ada6f734.tar.gz |
Merge pull request #4738 from rgommers/gufuncs-doc
DOC: tweak gufunc API documentation, remove broken link.
-rw-r--r-- | doc/source/reference/c-api.generalized-ufuncs.rst | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/doc/source/reference/c-api.generalized-ufuncs.rst b/doc/source/reference/c-api.generalized-ufuncs.rst index 870e5dbc4..14f33efcb 100644 --- a/doc/source/reference/c-api.generalized-ufuncs.rst +++ b/doc/source/reference/c-api.generalized-ufuncs.rst @@ -3,15 +3,12 @@ Generalized Universal Function API ================================== There is a general need for looping over not only functions on scalars -but also over functions on vectors (or arrays), as explained on -http://scipy.org/scipy/numpy/wiki/GeneralLoopingFunctions. We propose -to realize this concept by generalizing the universal functions -(ufuncs), and provide a C implementation that adds ~500 lines -to the numpy code base. In current (specialized) ufuncs, the elementary -function is limited to element-by-element operations, whereas the -generalized version supports "sub-array" by "sub-array" operations. -The Perl vector library PDL provides a similar functionality and its -terms are re-used in the following. +but also over functions on vectors (or arrays). +This concept is realized in Numpy by generalizing the universal functions +(ufuncs). In regular ufuncs, the elementary function is limited to +element-by-element operations, whereas the generalized version (gufuncs) +supports "sub-array" by "sub-array" operations. The Perl vector library PDL +provides a similar functionality and its terms are re-used in the following. Each generalized ufunc has information associated with it that states what the "core" dimensionality of the inputs is, as well as the @@ -21,12 +18,12 @@ arguments is called the "signature" of a ufunc. For example, the ufunc numpy.add has signature ``(),()->()`` defining two scalar inputs and one scalar output. -Another example is (see the GeneralLoopingFunctions page) the function -``inner1d(a,b)`` with a signature of ``(i),(i)->()``. This applies the -inner product along the last axis of each input, but keeps the -remaining indices intact. For example, where ``a`` is of shape ``(3,5,N)`` +Another example is the function ``inner1d(a,b)`` with a signature of +``(i),(i)->()``. This applies the inner product along the last axis of +each input, but keeps the remaining indices intact. +For example, where ``a`` is of shape ``(3,5,N)`` and ``b`` is of shape ``(5,N)``, this will return an output of shape ``(3,5)``. -The underlying elementary function is called 3*5 times. In the +The underlying elementary function is called ``3 * 5`` times. In the signature, we specify one core dimension ``(i)`` for each input and zero core dimensions ``()`` for the output, since it takes two 1-d arrays and returns a scalar. By using the same name ``i``, we specify that the two @@ -47,7 +44,6 @@ into core and loop dimensions: #. The output is given by the loop dimensions plus the output core dimensions. - Definitions ----------- |