PHP 8.0.30
Preview: _neighborhood_iterator_imp.h Size: 1.82 KB
/opt/alt/python37/lib64/python3.7/site-packages/numpy/core/include/numpy/_neighborhood_iterator_imp.h

#ifndef _NPY_INCLUDE_NEIGHBORHOOD_IMP
#error You should not include this header directly
#endif
/*
 * Private API (here for inline)
 */
static NPY_INLINE int
_PyArrayNeighborhoodIter_IncrCoord(PyArrayNeighborhoodIterObject* iter);

/*
 * Update to next item of the iterator
 *
 * Note: this simply increment the coordinates vector, last dimension
 * incremented first , i.e, for dimension 3
 * ...
 * -1, -1, -1
 * -1, -1,  0
 * -1, -1,  1
 *  ....
 * -1,  0, -1
 * -1,  0,  0
 *  ....
 * 0,  -1, -1
 * 0,  -1,  0
 *  ....
 */
#define _UPDATE_COORD_ITER(c) \
    wb = iter->coordinates[c] < iter->bounds[c][1]; \
    if (wb) { \
        iter->coordinates[c] += 1; \
        return 0; \
    } \
    else { \
        iter->coordinates[c] = iter->bounds[c][0]; \
    }

static NPY_INLINE int
_PyArrayNeighborhoodIter_IncrCoord(PyArrayNeighborhoodIterObject* iter)
{
    npy_intp i, wb;

    for (i = iter->nd - 1; i >= 0; --i) {
        _UPDATE_COORD_ITER(i)
    }

    return 0;
}

/*
 * Version optimized for 2d arrays, manual loop unrolling
 */
static NPY_INLINE int
_PyArrayNeighborhoodIter_IncrCoord2D(PyArrayNeighborhoodIterObject* iter)
{
    npy_intp wb;

    _UPDATE_COORD_ITER(1)
    _UPDATE_COORD_ITER(0)

    return 0;
}
#undef _UPDATE_COORD_ITER

/*
 * Advance to the next neighbour
 */
static NPY_INLINE int
PyArrayNeighborhoodIter_Next(PyArrayNeighborhoodIterObject* iter)
{
    _PyArrayNeighborhoodIter_IncrCoord (iter);
    iter->dataptr = iter->translate((PyArrayIterObject*)iter, iter->coordinates);

    return 0;
}

/*
 * Reset functions
 */
static NPY_INLINE int
PyArrayNeighborhoodIter_Reset(PyArrayNeighborhoodIterObject* iter)
{
    npy_intp i;

    for (i = 0; i < iter->nd; ++i) {
        iter->coordinates[i] = iter->bounds[i][0];
    }
    iter->dataptr = iter->translate((PyArrayIterObject*)iter, iter->coordinates);

    return 0;
}

Directory Contents

Dirs: 0 × Files: 26

Name Size Perms Modified Actions
164 B lrw-r--r-- 2017-09-29 20:10:10
Edit Download
3.43 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
1.83 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
53.73 KB lrw-r--r-- 2023-04-24 19:30:45
Edit Download
10.15 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
62.35 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
6.58 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
4.50 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
11.90 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
36.76 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
2.71 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
2.15 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
3.36 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
18.09 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
567 B lrw-r--r-- 2017-09-29 20:10:10
Edit Download
817 B lrw-r--r-- 2017-09-29 20:10:10
Edit Download
1.10 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
708 B lrw-r--r-- 2017-09-29 20:10:10
Edit Download
6.16 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
12.23 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
5.99 KB lrw-r--r-- 2023-04-24 19:30:48
Edit Download
628 B lrw-r--r-- 2017-09-29 20:10:10
Edit Download
1.82 KB lrw-r--r-- 2017-09-29 20:10:10
Edit Download
1010 B lrw-r--r-- 2023-04-24 19:30:44
Edit Download
59.21 KB lrw-r--r-- 2023-04-24 19:30:45
Edit Download
11.38 KB lrw-r--r-- 2023-04-24 19:30:48
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).