I believe I sent the wrong link to PDL, threading, earlier.... http://www.johnlapeyre.com/pdl/pdldoc/newbook/node5.html#SECTION005100000000000000000
Is the explanation of threading in Perl that I was reading about. I have read about Threading earlier and really liked it's generality. I would be interested to see what we can support in NumPy. I think there is overlap with generalized functions but they are not the same thing. I had sent the other link awhile ago to a different set of people :-) but I guess my Ctrl-V didn't quite work.... Sorry about that noise. -Travis On Feb 1, 2012, at 8:31 PM, Mark Wiebe wrote: > On Wed, Feb 1, 2012 at 6:14 PM, Travis Oliphant <tra...@continuum.io> wrote: > > On Feb 1, 2012, at 7:04 PM, Mark Wiebe wrote: > >> On Wed, Feb 1, 2012 at 3:29 PM, Charles R Harris <charlesr.har...@gmail.com> >> wrote: >> The macro PyArray_RemoveLargest has been replaced by PyArray_RemoveSmallest >> (which seems strange), but I wonder if this documentation still makes sense. >> >> My impression about this code is that it went through a number of rounds >> trying to choose an iteration order heuristic that has improved performance >> over C-order. The change of Largest to Smallest probably reflects one of >> these heuristic changes. I think it's safe to say that the nditer introduced >> in 1.6 completely removes the need for this functionality. I did a grep for >> this function in the master branch, and it is no longer used by NumPy >> internally. > > There is a common need to iterate over all but one dimension of a NumPy > array. The final dimension is iterated over in an "internal" loop. This > is the essence of how ufuncs work and avoid the possibly expensive overhead > of a C-call during each iteration. > > This use-case is handled by the flag NPY_ITER_EXTERNAL_LOOP > (http://docs.scipy.org/doc/numpy/reference/c-api.iterator.html#NPY_ITER_EXTERNAL_LOOP) > in the nditer. > > Initially, it seemed prudent to remove the dimension that had the largest > size (so that the final inner-iteration was the largest number). Later, > timings revealed that that the 'inner' dimension should be the one with the > smallest *striding*. I have not looked at nditer in detail, but would > appreciate seeing an explanation of how the nditer approach removes the need > for this macro. When that is clear, then this macro can and should be > deprecated. > > To see the full list of what to use in the nditer versus the older iterators, > I created a table: > > http://docs.scipy.org/doc/numpy/reference/c-api.iterator.html#converting-from-previous-numpy-iterators > > Only PyArray_BroadcastToShape and PyArray_MultiIter_NEXTi don't have a nice > correspondence, because they refer to implementation details in the previous > iterators which are done differently in the nditer. > > -Mark > > > -Travis > > > > >> >> -Mark >> >> diff --git a/doc/source/user/c-info.beyond-basics.rst >> b/doc/source/user/c-info.beyond-basics.rs >> index 9ed2ab3..3437985 100644 >> --- a/doc/source/user/c-info.beyond-basics.rst >> +++ b/doc/source/user/c-info.beyond-basics.rst >> @@ -189,7 +189,7 @@ feature follows. >> PyArray_MultiIter_NEXT(mobj); >> } >> >> -The function :cfunc:`PyArray_RemoveLargest` ( ``multi`` ) can be used to >> +The function :cfunc:`PyArray_RemoveSmallest` ( ``multi`` ) can be used to >> take a multi-iterator object and adjust all the iterators so that >> iteration does not take place over the largest dimension (it makes >> that dimension of size 1). The code being looped over that makes use >> >> Chuck >> >> >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion@scipy.org >> http://mail.scipy.org/mailman/listinfo/numpy-discussion >> >> >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion@scipy.org >> http://mail.scipy.org/mailman/listinfo/numpy-discussion > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion