Dense Container Functions

Enumerations

enum  arbb::sort_direction { arbb::sort_ascending = 0, arbb::sort_descending = 1 }
 

The set of directions in which the arbb::sort() function can apply.

More...

Functions

template<typename T >
dense< T, 1 > arbb::shift (const dense< T, 1 > &source, const isize &distance, const T &value)
 Returns a dense container of the same size as source with all values shifted by distance and out-of-bounds accesses replaced with value.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 1 > >::type 
arbb::shift (const dense< T, 1 > &source, const isize &distance, const typename uncaptured< T >::type &svalue)
 Returns a dense container of the same size as source with all values shifted by distance and out-of-bounds accesses replaced with svalue.
template<typename T >
dense< T, 1 > arbb::shift (const dense< T, 1 > &source, const isize &distance)
 Returns a dense container of the same size as source with all values shifted by distance and out-of-bounds accesses replaced with default values.
template<typename T >
dense< T, 1 > arbb::shift_sticky (const dense< T, 1 > &source, const isize &distance)
 Returns a dense container of the same size as source with all values shifted by distance and out-of-bounds accesses clamped to be within bounds.
template<typename T >
dense< T, 2 > arbb::shift (const dense< T, 2 > &source, const isize &ncol, const isize &nrow, const T &value)
 Returns a dense container of the same size as source with all values shifted by {ncol, nrow} and out-of-bounds accesses replaced with value.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 2 > >::type 
arbb::shift (const dense< T, 2 > &source, const isize &ncol, const isize &nrow, const typename uncaptured< T >::type &svalue)
 Returns a dense container of the same size as source with all values shifted by {ncol, nrow} and out-of-bounds accesses replaced with svalue.
template<typename T >
dense< T, 2 > arbb::shift (const dense< T, 2 > &source, const isize &ncol, const isize &nrow)
 Returns a dense container of the same size as source with all values shifted by {ncol, nrow} and out-of-bounds accesses replaced with default values.
template<typename T >
dense< T, 2 > arbb::shift_sticky (const dense< T, 2 > &source, const isize &ncol, const isize &nrow)
 Returns a dense container of the same size as source with all values shifted by {ncol, nrow} and out-of-bounds accesses clamped to be within bounds.
template<typename T >
dense< T, 3 > arbb::shift (const dense< T, 3 > &source, const isize &ncol, const isize &nrow, const isize &npage, const T &value)
 Returns a dense container of the same size as source with all values shifted by {ncol, nrow, npage} and out-of-bounds accesses replaced with value.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 3 > >::type 
arbb::shift (const dense< T, 3 > &source, const isize &ncol, const isize &nrow, const isize &npage, const typename uncaptured< T >::type &svalue)
 Returns a dense container of the same size as source with all values shifted by {ncol, nrow, npage} and out-of-bounds accesses replaced with svalue.
template<typename T >
dense< T, 3 > arbb::shift (const dense< T, 3 > &source, const isize &ncol, const isize &nrow, const isize &npage)
 Returns a dense container of the same size as source with all values shifted by {ncol, nrow, npage} and out-of-bounds accesses replaced with default values.
template<typename T >
dense< T, 3 > arbb::shift_sticky (const dense< T, 3 > &source, const isize &ncol, const isize &nrow, const isize &npage)
 Returns a dense container of the same size as source with all values shifted by {ncol, nrow, npage} and out-of-bounds accesses clamped to be within bounds.
template<typename T >
dense< T, 2 > arbb::shift_row (const dense< T, 2 > &source, const isize &distance, const T &value)
 Equivalent to shift(source, 0, distance, value).
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 2 > >::type 
arbb::shift_row (const dense< T, 2 > &source, const isize &distance, const typename uncaptured< T >::type &svalue)
 Equivalent to shift(source, 0, distance, svalue).
template<typename T >
dense< T, 2 > arbb::shift_row (const dense< T, 2 > &source, const isize &distance)
 Equivalent to shift(source, 0, distance).
template<typename T >
dense< T, 3 > arbb::shift_row (const dense< T, 3 > &source, const isize &distance, const T &value)
 Equivalent to shift(source, 0, distance, 0, value).
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 3 > >::type 
arbb::shift_row (const dense< T, 3 > &source, const isize &distance, const typename uncaptured< T >::type &svalue)
 Equivalent to shift(source, 0, distance, 0, svalue).
template<typename T >
dense< T, 3 > arbb::shift_row (const dense< T, 3 > &source, const isize &distance)
 Equivalent to shift(source, 0, distance, 0).
template<typename T >
dense< T, 2 > arbb::shift_row_sticky (const dense< T, 2 > &source, const isize &distance)
 Equivalent to shift_sticky(source, 0, distance).
template<typename T >
dense< T, 3 > arbb::shift_row_sticky (const dense< T, 3 > &source, const isize &distance)
 Equivalent to shift_sticky(source, 0, distance, 0).
template<typename T >
dense< T, 2 > arbb::shift_col (const dense< T, 2 > &source, const isize &distance, const T &value)
 Equivalent to shift(source, distance, 0, value).
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 2 > >::type 
arbb::shift_col (const dense< T, 2 > &source, const isize &distance, const typename uncaptured< T >::type &svalue)
 Equivalent to shift(source, distance, 0, svalue).
template<typename T >
dense< T, 2 > arbb::shift_col (const dense< T, 2 > &source, const isize &distance)
 Equivalent to shift(source, distance, 0).
template<typename T >
dense< T, 3 > arbb::shift_col (const dense< T, 3 > &source, const isize &distance, const T &value)
 Equivalent to shift(source, distance, 0, 0, value).
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 3 > >::type 
arbb::shift_col (const dense< T, 3 > &source, const isize &distance, const typename uncaptured< T >::type &svalue)
 Equivalent to shift(source, distance, 0, 0, svalue).
template<typename T >
dense< T, 3 > arbb::shift_col (const dense< T, 3 > &source, const isize &distance)
 Equivalent to shift(source, distance, 0, 0).
template<typename T >
dense< T, 2 > arbb::shift_col_sticky (const dense< T, 2 > &source, const isize &distance)
 Equivalent to shift_sticky(source, distance, 0).
template<typename T >
dense< T, 3 > arbb::shift_col_sticky (const dense< T, 3 > &source, const isize &distance)
 Equivalent to shift_sticky(source, distance, 0, 0).
template<typename T >
dense< T, 3 > arbb::shift_page (const dense< T, 3 > &source, const isize &distance, const T &value)
 Equivalent to shift(source, 0, 0, distance, value).
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 3 > >::type 
arbb::shift_page (const dense< T, 3 > &source, const isize &distance, const typename uncaptured< T >::type &svalue)
 Equivalent to shift(source, 0, 0, distance, svalue).
template<typename T >
dense< T, 3 > arbb::shift_page (const dense< T, 3 > &source, const isize &distance)
 Equivalent to shift(source, 0, 0, distance).
template<typename T >
dense< T, 3 > arbb::shift_page_sticky (const dense< T, 3 > &source, const isize &distance)
 Equivalent to shift_sticky(source, 0, 0, distance).
template<typename T >
dense< T, 1 > arbb::rotate (const dense< T, 1 > &source, const isize &distance)
 Returns a dense container of the same size as source with all values shifted by distance and out-of-bounds accesses wrapped to be within bounds.
template<typename T >
dense< T, 2 > arbb::rotate (const dense< T, 2 > &source, const isize &ncol, const isize &nrow)
 Returns a dense container of the same size as source with all values shifted by {ncol, nrow} and out-of-bounds accesses wrapped to be within bounds.
template<typename T >
dense< T, 3 > arbb::rotate (const dense< T, 3 > &source, const isize &ncol, const isize &nrow, const isize &npage)
 Returns a dense container of the same size as source with all values shifted by {ncol, nrow, npage} and out-of-bounds accesses wrapped to be within bounds.
template<typename T >
detail::disable_if
< detail::is_uncaptured_scalar
< T >::value, dense< T, 1 >
>::type 
arbb::fill (const T &value, const usize &length)
 Returns a dense container of size length filled with value.
template<typename T >
detail::disable_if
< detail::is_uncaptured_scalar
< T >::value, dense< T, 2 >
>::type 
arbb::fill (const T &value, const usize &width, const usize &height)
 Returns a dense container of size {width, height} filled with value.
template<typename T >
detail::disable_if
< detail::is_uncaptured_scalar
< T >::value, dense< T, 3 >
>::type 
arbb::fill (const T &value, const usize &width, const usize &height, const usize &depth)
 Returns a dense container of size {width, height, depth} filled with value.
template<typename T >
detail::enable_if
< detail::is_uncaptured_scalar
< T >::value, dense< typename
captured< T >::type, 1 >
>::type 
arbb::fill (const T &value, const array< usize, 1 > &size)
 Returns a one-dimensional dense container of size size filled with value.
template<typename T >
detail::enable_if
< detail::is_uncaptured_scalar
< T >::value, dense< typename
captured< T >::type, 2 >
>::type 
arbb::fill (const T &value, const array< usize, 2 > &size)
 Returns a two-dimensional dense container of size size filled with value.
template<typename T >
detail::enable_if
< detail::is_uncaptured_scalar
< T >::value, dense< typename
captured< T >::type, 3 >
>::type 
arbb::fill (const T &value, const array< usize, 3 > &size)
 Returns a three-dimensional dense container of size size filled with value.
template<typename T >
dense< T, 1 > arbb::scatter (const dense< T, 1 > &source, const dense< usize, 1 > &index, const dense< T, 1 > &defaults)
 Returns a dense container with the same size as defaults, data from source scattered into the locations in index, and elements set to the corresponding elements in defaults if not otherwise initialized.
template<typename T >
dense< T, 1 > arbb::scatter (const dense< T, 1 > &source, const dense< usize, 1 > &index, const usize &sparse_length, const T &value)
 Returns a dense container with a size of sparse_length, data from source scattered into the locations in index, and elements set to value if not otherwise initialized.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 1 > >::type 
arbb::scatter (const dense< T, 1 > &source, const dense< usize, 1 > &index, const usize &sparse_length, const typename uncaptured< T >::type &svalue)
 Returns a dense container with a size of sparse_length, data from source scattered into the locations in index, and elements set to svalue if not otherwise initialized.
template<typename T >
dense< T, 1 > arbb::scatter (const dense< T, 1 > &source, const dense< usize, 1 > &index, const usize &sparse_length)
 Returns a dense container with a size of sparse_length, data from source scattered into the locations in index, and elements set to T(), unless initialized otherwise.
template<typename T >
dense< T, 2 > arbb::scatter (const dense< T, 2 > &source, const dense< array< usize, 2 >, 2 > &index, const dense< T, 2 > &defaults)
 Returns a dense container with the same size as defaults, data from source scattered into the locations in index, and elements set to the corresponding elements in defaults if not otherwise initialized.
template<typename T >
dense< T, 2 > arbb::scatter (const dense< T, 2 > &source, const dense< array< usize, 2 >, 2 > &index, const usize &ncols, const usize &nrows, const T &value)
 Returns a dense container with a size of {ncols, nrows}, data from source scattered into the locations in index, and elements set to value, unless initialized otherwise.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 2 > >::type 
arbb::scatter (const dense< T, 2 > &source, const dense< array< usize, 2 >, 2 > &index, const usize &ncols, const usize &nrows, const typename uncaptured< T >::type &svalue)
 Returns a dense container with a size of {ncols, nrows}, data from source scattered into the locations in index, and elements set to svalue, unless initialized otherwise.
template<typename T >
dense< T, 2 > arbb::scatter (const dense< T, 2 > &source, const dense< array< usize, 2 >, 2 > &index, const usize &ncols, const usize &nrows)
 Returns a dense container with a size of {ncols, nrows}, data from source scattered into the locations in index, and elements set to T(), unless initialized otherwise.
template<typename T >
dense< T, 3 > arbb::scatter (const dense< T, 3 > &source, const dense< array< usize, 3 >, 3 > &index, const dense< T, 3 > &defaults)
 Returns a dense container with the same size as defaults, data from source scattered into the locations in index, and elements set to the corresponding elements in defaults, unless initialized otherwise.
template<typename T >
dense< T, 3 > arbb::scatter (const dense< T, 3 > &source, const dense< array< usize, 3 >, 3 > &index, const usize &ncols, const usize &nrows, const usize &npages, const T &value)
 Returns a dense container with a size of {ncols, nrows, npage}, data from source scattered into the locations in index, and elements set to value, unless initialized otherwise.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 3 > >::type 
arbb::scatter (const dense< T, 3 > &source, const dense< array< usize, 3 >, 3 > &index, const usize &ncols, const usize &nrows, const usize &npages, const typename uncaptured< T >::type &svalue)
 Returns a dense container with a size of {ncols, nrows, npage}, data from source scattered into the locations in index, and elements set to svalue, unless initialized otherwise.
template<typename T >
dense< T, 3 > arbb::scatter (const dense< T, 3 > &source, const dense< array< usize, 3 >, 3 > &index, const usize &ncols, const usize &nrows, const usize &npages)
 Returns a dense container with a size of {ncols, nrows, npage}, data from source scattered into the locations in index, and elements set to T(), unless initialized otherwise.
template<typename T >
dense< T, 1 > arbb::unpack (const dense< T, 1 > &source, const dense< boolean, 1 > &mask, const T &value)
 Equivalent to select(mask, source, value).
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 1 > >::type 
arbb::unpack (const dense< T, 1 > &source, const dense< boolean, 1 > &mask, const typename uncaptured< T >::type &svalue)
 Equivalent to select(mask, source, svalue).
template<typename T >
dense< T, 1 > arbb::unpack (const dense< T, 1 > &source, const dense< boolean, 1 > &mask)
 Equivalent to select(mask, source, T()).
template<typename T >
dense< T, 1 > arbb::pack (const dense< T, 1 > &source, const dense< boolean, 1 > &mask)
 Returns a dense container containing all elements from source whose corresponding entry in mask is true, in order.
template<typename T >
dense< T, 1 > arbb::repeat (const dense< T, 1 > &source, const usize &times, bool collate=true)
 Returns a dense container with a size of times * source.size() containing times copies of source.
template<typename T >
dense< T, 1 > arbb::repeat (const dense< T, 1 > &source, const dense< usize, 1 > &times)
 Returns a dense container with each element from source replicated a number of times equal to the corresponding element of times.
template<typename T >
dense< T, 2 > arbb::repeat_row (const dense< T, 1 > &source, const usize &nrows)
 Returns a two-dimensional dense container with nrows rows, where each row contains a copy of source.
template<typename T >
dense< T, 2 > arbb::repeat_col (const dense< T, 1 > &source, const usize &ncols)
 Returns a two-dimensional dense container with ncols columns, where each column contains a copy of source.
template<typename T >
dense< T, 3 > arbb::repeat_page (const dense< T, 2 > &source, const usize &npages)
 Returns a three-dimensional dense container with npages pages, where each page contains a copy of source.
template<typename T >
dense< T, 1 > arbb::shuffle (const dense< T, 1 > &source1, const dense< T, 1 > &source2, const usize &grain)
 Returns a dense container with grain elements alternately drawn from source1 and source2.
template<typename T >
dense< T, 1 > arbb::unshuffle (const dense< T, 1 > &source, const usize &grain)
 Partitions source into two containers, each having an alternating grain elements from source, and returns the two containers concatenated in order.
template<typename T >
dense< T, 1 > arbb::reverse (const dense< T, 1 > &source)
 Returns a dense container with the same size as source containing the elements of source in the reverse order.
template<typename T >
dense< T, 1 > arbb::gather (const dense< T, 1 > &source, const dense< usize, 1 > &index, const T &value)
 Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to value.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 1 > >::type 
arbb::gather (const dense< T, 1 > &source, const dense< usize, 1 > &index, const typename uncaptured< T >::type &svalue)
 Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to svalue.
template<typename T >
dense< T, 1 > arbb::gather (const dense< T, 1 > &source, const dense< usize, 1 > &index)
 Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to T().
template<typename T >
dense< T, 2 > arbb::gather (const dense< T, 2 > &source, const dense< array< usize, 2 >, 2 > &index, const T &value)
 Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to value.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 2 > >::type 
arbb::gather (const dense< T, 2 > &source, const dense< array< usize, 2 >, 2 > &index, const typename uncaptured< T >::type &svalue)
 Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to svalue.
template<typename T >
dense< T, 2 > arbb::gather (const dense< T, 2 > &source, const dense< array< usize, 2 >, 2 > &index)
 Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to T().
template<typename T >
dense< T, 3 > arbb::gather (const dense< T, 3 > &source, const dense< array< usize, 3 >, 3 > &index, const T &value)
 Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to value.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 3 > >::type 
arbb::gather (const dense< T, 3 > &source, const dense< array< usize, 3 >, 3 > &index, const typename uncaptured< T >::type &svalue)
 Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to svalue.
template<typename T >
dense< T, 3 > arbb::gather (const dense< T, 3 > &source, const dense< array< usize, 3 >, 3 > &index)
 Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to T().
template<typename T >
dense< T, 1 > arbb::cat (const dense< T, 1 > &source1, const dense< T, 1 > &source2)
 Returns the concatenation of source1 followed by source2.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 1 > >::type 
arbb::indices (const T &start, const usize &nelts, const T &stride)
 Returns a dense container with a size of nelts containing an increasing sequence of values beginning with start and incrementing by stride between elements.
template<typename T >
dense< T, 1 > arbb::replace (const dense< T, 1 > &source, const usize &index, const T &value)
 Returns a dense container with the same size and values as source, but with the element at index replaced by value.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 1 > >::type 
arbb::replace (const dense< T, 1 > &source, const usize &index, const typename uncaptured< T >::type &svalue)
 Returns a dense container with the same size and values as source, but with the element at index replaced by svalue.
template<typename T >
dense< T, 1 > arbb::replace (const dense< T, 1 > &source, const usize &start, const usize &nelts, const usize &stride, const T &value)
 Returns a dense container with the same size and values as source, but with nelts elements beginning at start and incrementing by stride replaced by value.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 1 > >::type 
arbb::replace (const dense< T, 1 > &source, const usize &start, const usize &nelts, const usize &stride, const typename uncaptured< T >::type &svalue)
 Returns a dense container with the same size and values as source, but with nelts elements beginning at start and incrementing by stride replaced by svalue.
template<typename T >
dense< T, 1 > arbb::replace (const dense< T, 1 > &source, const usize &start, const usize &nelts, const usize &stride, const dense< T, 1 > &value)
 Returns a dense container with the same size and values as source, but with nelts elements beginning at start and incrementing by stride replaced by elements from value, which must be nelts in size.
template<typename T >
dense< T, 2 > arbb::replace_row (const dense< T, 2 > &source, const usize &row, const dense< T, 1 > &value)
 Returns a dense container with the same size and values as source, but with the row at index row replaced by elements from value.
template<typename T >
dense< T, 2 > arbb::replace_col (const dense< T, 2 > &source, const usize &col, const dense< T, 1 > &value)
 Returns a dense container with the same size and values as source, but with the column at index col replaced by elements from value.
template<typename T >
dense< T, 2 > arbb::replace (const dense< T, 2 > &source, const usize &col, const usize &row, const T &value)
 Returns a dense container with the same size and values as source, but with the element at index {col, row} replaced by value.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 2 > >::type 
arbb::replace (const dense< T, 2 > &source, const usize &col, const usize &row, const typename uncaptured< T >::type &svalue)
 Returns a dense container with the same size and values as source, but with the element at index {col, row} replaced by svalue.
template<typename T >
dense< T, 2 > arbb::replace (const dense< T, 2 > &source, const usize &start_col, const usize &ncols, const usize &start_row, const usize &nrows, const dense< T, 2 > &values)
 Returns a dense container with the same size and values as source, but with the elements starting at index {start_col, start_row} replaced by the elements in values.
template<typename T >
dense< T, 2 > arbb::replace (const dense< T, 2 > &source, const usize &start_col, const usize &ncols, const usize &col_pitch, const usize &start_row, const usize &nrows, const usize &row_pitch, const dense< T, 2 > &values)
 Returns a dense container with the same size and values as source, but with the elements starting at index {start_col, start_row} moving in increments of {col_pitch, row_pitch} replaced by the elements in values.
template<typename T >
dense< T, 3 > arbb::replace (const dense< T, 3 > &source, const usize &col, const usize &row, const usize &page, const T &value)
 Returns a dense container with the same size and values as source, but with the element at index {col, row, page} replaced by value.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 3 > >::type 
arbb::replace (const dense< T, 3 > &source, const usize &col, const usize &row, const usize &page, const typename uncaptured< T >::type &svalue)
 Returns a dense container with the same size and values as source, but with the element at index {col, row, page} replaced by svalue.
template<typename T >
dense< T, 3 > arbb::replace_row (const dense< T, 3 > &source, const usize &row, const usize &page, const dense< T, 1 > &values)
 Returns a dense container with the same size and values as source, but with the row at index row in the page at index page replaced by values.
template<typename T >
dense< T, 3 > arbb::replace_col (const dense< T, 3 > &source, const usize &col, const usize &page, const dense< T, 1 > &values)
 Returns a dense container with the same size and values as source, but with the column at index column in the page at index page replaced by values.
template<typename T >
dense< T, 3 > arbb::replace_dim3 (const dense< T, 3 > &source, const usize &col, const usize &row, const dense< T, 1 > &values)
 Returns a dense container with the same size and values as source, but with the pillar at column col and row row replaced by values.
template<typename T >
dense< T, 3 > arbb::replace_page (const dense< T, 3 > &source, const usize &page, const dense< T, 2 > &value)
 Returns a dense container with the same size and values as source, but with the page at index page replaced by value.
template<typename T >
dense< T, 2 > arbb::swap_rows (const dense< T, 2 > &source, const usize &row1, const usize &row2)
 Returns a dense container with the same size and values as source, but with the rows at row1 and row2 swapped.
template<typename T >
dense< T, 3 > arbb::swap_rows (const dense< T, 3 > &source, const usize &row1, const usize &row2)
 Returns a dense container with the same size and values as source, but with the rows at row1 and row2 swapped.
template<typename T >
dense< T, 2 > arbb::swap_cols (const dense< T, 2 > &source, const usize &col1, const usize &col2)
 Returns a dense container with the same size and values as source, but with the columns at col1 and col2 swapped.
template<typename T >
dense< T, 3 > arbb::swap_cols (const dense< T, 3 > &source, const usize &col1, const usize &col2)
 Returns a dense container with the same size and values as source, but with the columns at col1 and col2 swapped.
template<typename T >
dense< T, 3 > arbb::swap_pages (const dense< T, 3 > &source, const usize &page1, const usize &page2)
 Returns a dense container with the same size and values as source, but with the pages at page1 and page2 swapped.
template<typename T >
dense< T, 2 > arbb::transpose (const dense< T, 2 > &source)
 Returns a dense container R such that R(i, j) = source(j, i).
template<typename T >
dense< T, 3 > arbb::transpose (const dense< T, 3 > &source)
 Returns a dense container R such that R(i, j, k) = source(j, i, k).
template<typename T >
dense< T, 1 > arbb::section (const dense< T, 1 > &source, const usize &first, const usize &nelts, const usize &stride=1)
 Returns a dense container with a size of nelts containing the elements obtained from source starting at index first incrementing by steps of stride.
template<typename T >
dense< T, 2 > arbb::section (const dense< T, 2 > &source, const usize &start_col, const usize &ncols, const usize &start_row, const usize &nrows)
 Returns a dense container with a size of {ncols, nrows} containing the elements obtained from source starting at index {start_col, start_row}.
template<typename T >
dense< T, 2 > arbb::section (const dense< T, 2 > &source, const usize &start_col, const usize &ncols, const usize &col_pitch, const usize &start_row, const usize &nrows, const usize &row_pitch)
 Returns a dense container with a size of {ncols, nrows} containing the elements obtained from source starting at index {start_col, start_row} incrementing by steps of col_pitch and row_pitch in each dimension respectively.
template<typename T >
dense< T, 3 > arbb::section (const dense< T, 3 > &source, const usize &start_col, const usize &ncols, const usize &start_row, const usize &nrows, const usize &start_page, const usize &npages)
 Returns a dense container with a size of {ncols, nrows, npages} containing the elements obtained from source starting at index {start_col, start_row, start_page}.
template<typename T >
dense< T, 3 > arbb::section (const dense< T, 3 > &source, const usize &start_col, const usize &ncols, const usize &col_pitch, const usize &start_row, const usize &nrows, const usize &row_pitch, const usize &start_page, const usize &npages, const usize &page_pitch)
 Returns a dense container with a size of {ncols, nrows, npages} containing the elements obtained from source starting at index {start_col, start_row, start_page} incrementing by steps of col_pitch, row_pitch and page_pitch in each dimension, respectively.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 1 > >::type 
arbb::sort (const dense< T, 1 > &source, dense< usize, 1 > &rank, sort_direction direction=sort_ascending)
 Returns a copy of source sorted in the given direction, storing the location from which each element in the result vector was retrieved in the corresponding element of rank.
template<typename T >
detail::enable_if
< detail::is_scalar< T >
::value, dense< T, 1 > >::type 
arbb::sort (const dense< T, 1 > &source, sort_direction direction=sort_ascending)
 Returns a copy of source sorted in the given direction.
u64 arbb::wall_clock ()
 Retrieves the current platform-specific time.
dense< boolean, 1 > arbb::mask (const usize &result_size, const usize &start, const usize &true_count, const usize &stride)
 Returns a dense container with a size of result_size, where true_count elements are set to true every stride elements starting at index start.
template<typename T >
dense< T, 2 > arbb::reshape (const dense< T, 1 > &source, const usize &ncols, const usize &nrows)
 Returns a dense container of size {ncols, nrows}, filled with values from source in row-major order.
template<typename T , typename U >
dense< T, 2 > arbb::reshape_as (const dense< T, 1 > &source, const dense< U, 2 > &shape)
 Equivalent to reshape(source, shape.width(), shape.height()).
template<typename T >
dense< T, 3 > arbb::reshape (const dense< T, 1 > &source, const usize &ncols, const usize &nrows, const usize &npages)
 Returns a dense container of size {ncols, nrows, npages}, filled with values from source in page-major, row-major order.
template<typename T , typename U >
dense< T, 3 > arbb::reshape_as (const dense< T, 1 > &source, const dense< U, 3 > &shape)
 Equivalent to reshape(source, shape.width(), shape.height(), shape.depth()).
template<typename T , std::size_t D>
dense< T > arbb::add_merge (const dense< T, D > &source, const dense< isize > &indices)
 Returns a dense container with the same size as source, where data from source is scattered according to indices, and collisions are resolved by adding values together.

Enumeration Type Documentation

The set of directions in which the arbb::sort() function can apply.

Enumerator:
sort_ascending 

Sort in ascending order, from smallest to largest.

sort_descending 

Sort in descending order, from largest to smallest.

Definition at line 1751 of file dense_funcs.hpp.


Function Documentation

template<typename T >
dense<T, 1> arbb::shift ( const dense< T, 1 > &  source,
const isize &  distance,
const T &  value 
) [inline]

Returns a dense container of the same size as source with all values shifted by distance and out-of-bounds accesses replaced with value.

The returned container R is defined as:

 R[i] = arbb::select(0 <= i - distance && i - distance < source.size(),
                     source[i - distance], value);

Definition at line 49 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 1> >::type arbb::shift ( const dense< T, 1 > &  source,
const isize &  distance,
const typename uncaptured< T >::type &  svalue 
) [inline]

Returns a dense container of the same size as source with all values shifted by distance and out-of-bounds accesses replaced with svalue.

The returned container R is defined as:

 R[i] = arbb::select(0 <= i - distance && i - distance < source.size(),
                     source[i - distance], svalue);

Definition at line 76 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::shift ( const dense< T, 1 > &  source,
const isize &  distance 
) [inline]

Returns a dense container of the same size as source with all values shifted by distance and out-of-bounds accesses replaced with default values.

The returned container R is defined as:

 R[i] = arbb::select(0 <= i - distance && i - distance < source.size(),
                     source[i - distance], T());

Definition at line 95 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::shift_sticky ( const dense< T, 1 > &  source,
const isize &  distance 
) [inline]

Returns a dense container of the same size as source with all values shifted by distance and out-of-bounds accesses clamped to be within bounds.

The returned container R is defined as:

 R[i] = source[min(source.size(), max(0, i - distance))];

Definition at line 113 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::shift ( const dense< T, 2 > &  source,
const isize &  ncol,
const isize &  nrow,
const T &  value 
) [inline]

Returns a dense container of the same size as source with all values shifted by {ncol, nrow} and out-of-bounds accesses replaced with value.

The returned container R is defined as:

 R[i] = arbb::select(all(0 <= i - {ncol, nrow} && i - {ncol, nrow} < source.size()),
                     source[i - {ncol, nrow}], value);

Definition at line 139 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 2> >::type arbb::shift ( const dense< T, 2 > &  source,
const isize &  ncol,
const isize &  nrow,
const typename uncaptured< T >::type &  svalue 
) [inline]

Returns a dense container of the same size as source with all values shifted by {ncol, nrow} and out-of-bounds accesses replaced with svalue.

The returned container R is defined as:

 R[i] = arbb::select(all(0 <= i - {ncol, nrow} && i - {ncol, nrow} < source.size()),
                     source[i - {ncol, nrow}], svalue);

Definition at line 166 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::shift ( const dense< T, 2 > &  source,
const isize &  ncol,
const isize &  nrow 
) [inline]

Returns a dense container of the same size as source with all values shifted by {ncol, nrow} and out-of-bounds accesses replaced with default values.

The returned container R is defined as:

 R[i] = arbb::select(all(0 <= i - {ncol, nrow} && i - {ncol, nrow} < source.size()),
                     source[i - {ncol, nrow}], T());

Definition at line 185 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::shift_sticky ( const dense< T, 2 > &  source,
const isize &  ncol,
const isize &  nrow 
) [inline]

Returns a dense container of the same size as source with all values shifted by {ncol, nrow} and out-of-bounds accesses clamped to be within bounds.

The returned container R is defined as:

 R[i] = source[min(source.size(), max(0, i - {ncol, nrow}))];

Definition at line 203 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::shift ( const dense< T, 3 > &  source,
const isize &  ncol,
const isize &  nrow,
const isize &  npage,
const T &  value 
) [inline]

Returns a dense container of the same size as source with all values shifted by {ncol, nrow, npage} and out-of-bounds accesses replaced with value.

The returned container R is defined as:

 R[i] = arbb::select(all(0 <= i - {ncol, nrow, npage} && i - {ncol, nrow, npage} < source.size()),
                     source[i - {ncol, nrow, npage}], value);

Definition at line 229 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 3> >::type arbb::shift ( const dense< T, 3 > &  source,
const isize &  ncol,
const isize &  nrow,
const isize &  npage,
const typename uncaptured< T >::type &  svalue 
) [inline]

Returns a dense container of the same size as source with all values shifted by {ncol, nrow, npage} and out-of-bounds accesses replaced with svalue.

The returned container R is defined as:

 R[i] = arbb::select(all(0 <= i - {ncol, nrow, npage} && i - {ncol, nrow, npage} < source.size()),
                     source[i - {ncol, nrow, npage}], svalue);

Definition at line 256 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::shift ( const dense< T, 3 > &  source,
const isize &  ncol,
const isize &  nrow,
const isize &  npage 
) [inline]

Returns a dense container of the same size as source with all values shifted by {ncol, nrow, npage} and out-of-bounds accesses replaced with default values.

The returned container R is defined as:

 R[i] = arbb::select(all(0 <= i - {ncol, nrow, npage} && i - {ncol, nrow, npage} < source.size()),
                     source[i - {ncol, nrow, npage}], T());

Definition at line 275 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::shift_sticky ( const dense< T, 3 > &  source,
const isize &  ncol,
const isize &  nrow,
const isize &  npage 
) [inline]

Returns a dense container of the same size as source with all values shifted by {ncol, nrow, npage} and out-of-bounds accesses clamped to be within bounds.

The returned container R is defined as:

 R[i] = source[min(source.size(), max(0, i - {ncol, nrow, npage}))];

Definition at line 293 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::shift_row ( const dense< T, 2 > &  source,
const isize &  distance,
const T &  value 
) [inline]

Equivalent to shift(source, 0, distance, value).

Definition at line 310 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 2> >::type arbb::shift_row ( const dense< T, 2 > &  source,
const isize &  distance,
const typename uncaptured< T >::type &  svalue 
) [inline]

Equivalent to shift(source, 0, distance, svalue).

Definition at line 318 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::shift_row ( const dense< T, 2 > &  source,
const isize &  distance 
) [inline]

Equivalent to shift(source, 0, distance).

Definition at line 328 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::shift_row ( const dense< T, 3 > &  source,
const isize &  distance,
const T &  value 
) [inline]

Equivalent to shift(source, 0, distance, 0, value).

Definition at line 338 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 3> >::type arbb::shift_row ( const dense< T, 3 > &  source,
const isize &  distance,
const typename uncaptured< T >::type &  svalue 
) [inline]

Equivalent to shift(source, 0, distance, 0, svalue).

Definition at line 346 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::shift_row ( const dense< T, 3 > &  source,
const isize &  distance 
) [inline]

Equivalent to shift(source, 0, distance, 0).

Definition at line 356 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::shift_row_sticky ( const dense< T, 2 > &  source,
const isize &  distance 
) [inline]

Equivalent to shift_sticky(source, 0, distance).

Definition at line 366 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::shift_row_sticky ( const dense< T, 3 > &  source,
const isize &  distance 
) [inline]

Equivalent to shift_sticky(source, 0, distance, 0).

Definition at line 374 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::shift_col ( const dense< T, 2 > &  source,
const isize &  distance,
const T &  value 
) [inline]

Equivalent to shift(source, distance, 0, value).

Definition at line 382 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 2> >::type arbb::shift_col ( const dense< T, 2 > &  source,
const isize &  distance,
const typename uncaptured< T >::type &  svalue 
) [inline]

Equivalent to shift(source, distance, 0, svalue).

Definition at line 390 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::shift_col ( const dense< T, 2 > &  source,
const isize &  distance 
) [inline]

Equivalent to shift(source, distance, 0).

Definition at line 400 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::shift_col ( const dense< T, 3 > &  source,
const isize &  distance,
const T &  value 
) [inline]

Equivalent to shift(source, distance, 0, 0, value).

Definition at line 410 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 3> >::type arbb::shift_col ( const dense< T, 3 > &  source,
const isize &  distance,
const typename uncaptured< T >::type &  svalue 
) [inline]

Equivalent to shift(source, distance, 0, 0, svalue).

Definition at line 418 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::shift_col ( const dense< T, 3 > &  source,
const isize &  distance 
) [inline]

Equivalent to shift(source, distance, 0, 0).

Definition at line 428 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::shift_col_sticky ( const dense< T, 2 > &  source,
const isize &  distance 
) [inline]

Equivalent to shift_sticky(source, distance, 0).

Definition at line 438 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::shift_col_sticky ( const dense< T, 3 > &  source,
const isize &  distance 
) [inline]

Equivalent to shift_sticky(source, distance, 0, 0).

Definition at line 446 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::shift_page ( const dense< T, 3 > &  source,
const isize &  distance,
const T &  value 
) [inline]

Equivalent to shift(source, 0, 0, distance, value).

Definition at line 454 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 3> >::type arbb::shift_page ( const dense< T, 3 > &  source,
const isize &  distance,
const typename uncaptured< T >::type &  svalue 
) [inline]

Equivalent to shift(source, 0, 0, distance, svalue).

Definition at line 462 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::shift_page ( const dense< T, 3 > &  source,
const isize &  distance 
) [inline]

Equivalent to shift(source, 0, 0, distance).

Definition at line 472 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::shift_page_sticky ( const dense< T, 3 > &  source,
const isize &  distance 
) [inline]

Equivalent to shift_sticky(source, 0, 0, distance).

Definition at line 482 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::rotate ( const dense< T, 1 > &  source,
const isize &  distance 
) [inline]

Returns a dense container of the same size as source with all values shifted by distance and out-of-bounds accesses wrapped to be within bounds.

The returned container R is defined as:

 R[i] = source[(i - distance) % source.size() + (i - distance < 0 ? source.size() : 0)];

Definition at line 498 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::rotate ( const dense< T, 2 > &  source,
const isize &  ncol,
const isize &  nrow 
) [inline]

Returns a dense container of the same size as source with all values shifted by {ncol, nrow} and out-of-bounds accesses wrapped to be within bounds.

The returned container R is defined as:

 R[i] = source[(i - {ncol, nrow}) % source.size() + (i - {ncol, nrow} < 0 ? source.size() : 0)];

Definition at line 523 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::rotate ( const dense< T, 3 > &  source,
const isize &  ncol,
const isize &  nrow,
const isize &  npage 
) [inline]

Returns a dense container of the same size as source with all values shifted by {ncol, nrow, npage} and out-of-bounds accesses wrapped to be within bounds.

The returned container R is defined as:

 R[i] = source[(i - {ncol, nrow, npage}) % source.size() + (i - {ncol, nrow, npage} < 0 ? source.size() : 0)];

Definition at line 548 of file dense_funcs.hpp.

template<typename T >
detail::enable_if< detail::is_uncaptured_scalar< T >::value, dense< typename captured< T >::type, 1 > >::type arbb::fill ( const T &  value,
const usize &  length 
) [inline]

Returns a dense container of size length filled with value.

Definition at line 600 of file dense_funcs.hpp.

template<typename T >
detail::enable_if< detail::is_uncaptured_scalar< T >::value, dense< typename captured< T >::type, 2 > >::type arbb::fill ( const T &  value,
const usize &  width,
const usize &  height 
) [inline]

Returns a dense container of size {width, height} filled with value.

Definition at line 609 of file dense_funcs.hpp.

template<typename T >
detail::enable_if< detail::is_uncaptured_scalar< T >::value, dense< typename captured< T >::type, 3 > >::type arbb::fill ( const T &  value,
const usize &  width,
const usize &  height,
const usize &  depth 
) [inline]

Returns a dense container of size {width, height, depth} filled with value.

Definition at line 618 of file dense_funcs.hpp.

template<typename T >
detail::disable_if< detail::is_uncaptured_scalar< T >::value, dense< T, 1 > >::type arbb::fill ( const T &  value,
const array< usize, 1 > &  size 
) [inline]

Returns a one-dimensional dense container of size size filled with value.

Definition at line 654 of file dense_funcs.hpp.

template<typename T >
detail::disable_if< detail::is_uncaptured_scalar< T >::value, dense< T, 2 > >::type arbb::fill ( const T &  value,
const array< usize, 2 > &  size 
) [inline]

Returns a two-dimensional dense container of size size filled with value.

Definition at line 663 of file dense_funcs.hpp.

template<typename T >
detail::disable_if< detail::is_uncaptured_scalar< T >::value, dense< T, 3 > >::type arbb::fill ( const T &  value,
const array< usize, 3 > &  size 
) [inline]

Returns a three-dimensional dense container of size size filled with value.

Definition at line 672 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::scatter ( const dense< T, 1 > &  source,
const dense< usize, 1 > &  index,
const dense< T, 1 > &  defaults 
) [inline]

Returns a dense container with the same size as defaults, data from source scattered into the locations in index, and elements set to the corresponding elements in defaults if not otherwise initialized.

Definition at line 683 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::scatter ( const dense< T, 1 > &  source,
const dense< usize, 1 > &  index,
const usize &  sparse_length,
const T &  value 
) [inline]

Returns a dense container with a size of sparse_length, data from source scattered into the locations in index, and elements set to value if not otherwise initialized.

Definition at line 703 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 1> >::type arbb::scatter ( const dense< T, 1 > &  source,
const dense< usize, 1 > &  index,
const usize &  sparse_length,
const typename uncaptured< T >::type &  svalue 
) [inline]

Returns a dense container with a size of sparse_length, data from source scattered into the locations in index, and elements set to svalue if not otherwise initialized.

Definition at line 713 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::scatter ( const dense< T, 1 > &  source,
const dense< usize, 1 > &  index,
const usize &  sparse_length 
) [inline]

Returns a dense container with a size of sparse_length, data from source scattered into the locations in index, and elements set to T(), unless initialized otherwise.

Definition at line 725 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::scatter ( const dense< T, 2 > &  source,
const dense< array< usize, 2 >, 2 > &  index,
const dense< T, 2 > &  defaults 
) [inline]

Returns a dense container with the same size as defaults, data from source scattered into the locations in index, and elements set to the corresponding elements in defaults if not otherwise initialized.

Definition at line 738 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::scatter ( const dense< T, 2 > &  source,
const dense< array< usize, 2 >, 2 > &  index,
const usize &  ncols,
const usize &  nrows,
const T &  value 
) [inline]

Returns a dense container with a size of {ncols, nrows}, data from source scattered into the locations in index, and elements set to value, unless initialized otherwise.

Definition at line 761 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 2> >::type arbb::scatter ( const dense< T, 2 > &  source,
const dense< array< usize, 2 >, 2 > &  index,
const usize &  ncols,
const usize &  nrows,
const typename uncaptured< T >::type &  svalue 
) [inline]

Returns a dense container with a size of {ncols, nrows}, data from source scattered into the locations in index, and elements set to svalue, unless initialized otherwise.

Definition at line 773 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::scatter ( const dense< T, 2 > &  source,
const dense< array< usize, 2 >, 2 > &  index,
const usize &  ncols,
const usize &  nrows 
) [inline]

Returns a dense container with a size of {ncols, nrows}, data from source scattered into the locations in index, and elements set to T(), unless initialized otherwise.

Definition at line 787 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::scatter ( const dense< T, 3 > &  source,
const dense< array< usize, 3 >, 3 > &  index,
const dense< T, 3 > &  defaults 
) [inline]

Returns a dense container with the same size as defaults, data from source scattered into the locations in index, and elements set to the corresponding elements in defaults, unless initialized otherwise.

Definition at line 801 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::scatter ( const dense< T, 3 > &  source,
const dense< array< usize, 3 >, 3 > &  index,
const usize &  ncols,
const usize &  nrows,
const usize &  npages,
const T &  value 
) [inline]

Returns a dense container with a size of {ncols, nrows, npage}, data from source scattered into the locations in index, and elements set to value, unless initialized otherwise.

Definition at line 826 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 3> >::type arbb::scatter ( const dense< T, 3 > &  source,
const dense< array< usize, 3 >, 3 > &  index,
const usize &  ncols,
const usize &  nrows,
const usize &  npages,
const typename uncaptured< T >::type &  svalue 
) [inline]

Returns a dense container with a size of {ncols, nrows, npage}, data from source scattered into the locations in index, and elements set to svalue, unless initialized otherwise.

Definition at line 839 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::scatter ( const dense< T, 3 > &  source,
const dense< array< usize, 3 >, 3 > &  index,
const usize &  ncols,
const usize &  nrows,
const usize &  npages 
) [inline]

Returns a dense container with a size of {ncols, nrows, npage}, data from source scattered into the locations in index, and elements set to T(), unless initialized otherwise.

Definition at line 854 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::unpack ( const dense< T, 1 > &  source,
const dense< boolean, 1 > &  mask,
const T &  value 
) [inline]

Equivalent to select(mask, source, value).

Definition at line 865 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 1> >::type arbb::unpack ( const dense< T, 1 > &  source,
const dense< boolean, 1 > &  mask,
const typename uncaptured< T >::type &  svalue 
) [inline]

Equivalent to select(mask, source, svalue).

Definition at line 883 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::unpack ( const dense< T, 1 > &  source,
const dense< boolean, 1 > &  mask 
) [inline]

Equivalent to select(mask, source, T()).

Definition at line 893 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::pack ( const dense< T, 1 > &  source,
const dense< boolean, 1 > &  mask 
) [inline]

Returns a dense container containing all elements from source whose corresponding entry in mask is true, in order.

Definition at line 905 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::repeat ( const dense< T, 1 > &  source,
const usize &  times,
bool  collate = true 
) [inline]

Returns a dense container with a size of times * source.size() containing times copies of source.

If collate is true, each copy of source remains contiguous, otherwise the elements are interleaved.

Definition at line 925 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::repeat ( const dense< T, 1 > &  source,
const dense< usize, 1 > &  times 
) [inline]

Returns a dense container with each element from source replicated a number of times equal to the corresponding element of times.

Definition at line 946 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::repeat_row ( const dense< T, 1 > &  source,
const usize &  nrows 
) [inline]

Returns a two-dimensional dense container with nrows rows, where each row contains a copy of source.

Definition at line 966 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::repeat_col ( const dense< T, 1 > &  source,
const usize &  ncols 
) [inline]

Returns a two-dimensional dense container with ncols columns, where each column contains a copy of source.

Definition at line 984 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::repeat_page ( const dense< T, 2 > &  source,
const usize &  npages 
) [inline]

Returns a three-dimensional dense container with npages pages, where each page contains a copy of source.

Definition at line 1002 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::shuffle ( const dense< T, 1 > &  source1,
const dense< T, 1 > &  source2,
const usize &  grain 
) [inline]

Returns a dense container with grain elements alternately drawn from source1 and source2.

Definition at line 1020 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::unshuffle ( const dense< T, 1 > &  source,
const usize &  grain 
) [inline]

Partitions source into two containers, each having an alternating grain elements from source, and returns the two containers concatenated in order.

Definition at line 1041 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::reverse ( const dense< T, 1 > &  source  )  [inline]

Returns a dense container with the same size as source containing the elements of source in the reverse order.

Definition at line 1060 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::gather ( const dense< T, 1 > &  source,
const dense< usize, 1 > &  index,
const T &  value 
) [inline]

Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to value.

Definition at line 1079 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 1> >::type arbb::gather ( const dense< T, 1 > &  source,
const dense< usize, 1 > &  index,
const typename uncaptured< T >::type &  svalue 
) [inline]

Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to svalue.

Definition at line 1100 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::gather ( const dense< T, 1 > &  source,
const dense< usize, 1 > &  index 
) [inline]

Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to T().

Definition at line 1112 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::gather ( const dense< T, 2 > &  source,
const dense< array< usize, 2 >, 2 > &  index,
const T &  value 
) [inline]

Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to value.

Definition at line 1124 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 2> >::type arbb::gather ( const dense< T, 2 > &  source,
const dense< array< usize, 2 >, 2 > &  index,
const typename uncaptured< T >::type &  svalue 
) [inline]

Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to svalue.

Definition at line 1147 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::gather ( const dense< T, 2 > &  source,
const dense< array< usize, 2 >, 2 > &  index 
) [inline]

Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to T().

Definition at line 1159 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::gather ( const dense< T, 3 > &  source,
const dense< array< usize, 3 >, 3 > &  index,
const T &  value 
) [inline]

Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to value.

Definition at line 1171 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 3> >::type arbb::gather ( const dense< T, 3 > &  source,
const dense< array< usize, 3 >, 3 > &  index,
const typename uncaptured< T >::type &  svalue 
) [inline]

Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to svalue.

Definition at line 1195 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::gather ( const dense< T, 3 > &  source,
const dense< array< usize, 3 >, 3 > &  index 
) [inline]

Returns a dense container R with the same size as index such that R[i] = source[index[i]], with any elements at out-of-bounds indices set to T().

Definition at line 1207 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::cat ( const dense< T, 1 > &  source1,
const dense< T, 1 > &  source2 
) [inline]

Returns the concatenation of source1 followed by source2.

Definition at line 1217 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 1> >::type arbb::indices ( const T &  start,
const usize &  nelts,
const T &  stride 
) [inline]

Returns a dense container with a size of nelts containing an increasing sequence of values beginning with start and incrementing by stride between elements.

Definition at line 1237 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::replace ( const dense< T, 1 > &  source,
const usize &  index,
const T &  value 
) [inline]

Returns a dense container with the same size and values as source, but with the element at index replaced by value.

Definition at line 1269 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 1> >::type arbb::replace ( const dense< T, 1 > &  source,
const usize &  index,
const typename uncaptured< T >::type &  svalue 
) [inline]

Returns a dense container with the same size and values as source, but with the element at index replaced by svalue.

Definition at line 1288 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::replace ( const dense< T, 1 > &  source,
const usize &  start,
const usize &  nelts,
const usize &  stride,
const T &  value 
) [inline]

Returns a dense container with the same size and values as source, but with nelts elements beginning at start and incrementing by stride replaced by value.

Definition at line 1300 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 1> >::type arbb::replace ( const dense< T, 1 > &  source,
const usize &  start,
const usize &  nelts,
const usize &  stride,
const typename uncaptured< T >::type &  svalue 
) [inline]

Returns a dense container with the same size and values as source, but with nelts elements beginning at start and incrementing by stride replaced by svalue.

Definition at line 1311 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::replace ( const dense< T, 1 > &  source,
const usize &  start,
const usize &  nelts,
const usize &  stride,
const dense< T, 1 > &  value 
) [inline]

Returns a dense container with the same size and values as source, but with nelts elements beginning at start and incrementing by stride replaced by elements from value, which must be nelts in size.

Definition at line 1324 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::replace_row ( const dense< T, 2 > &  source,
const usize &  row,
const dense< T, 1 > &  value 
) [inline]

Returns a dense container with the same size and values as source, but with the row at index row replaced by elements from value.

Definition at line 1344 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::replace_col ( const dense< T, 2 > &  source,
const usize &  col,
const dense< T, 1 > &  value 
) [inline]

Returns a dense container with the same size and values as source, but with the column at index col replaced by elements from value.

Definition at line 1364 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::replace ( const dense< T, 2 > &  source,
const usize &  col,
const usize &  row,
const T &  value 
) [inline]

Returns a dense container with the same size and values as source, but with the element at index {col, row} replaced by value.

Definition at line 1384 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 2> >::type arbb::replace ( const dense< T, 2 > &  source,
const usize &  col,
const usize &  row,
const typename uncaptured< T >::type &  svalue 
) [inline]

Returns a dense container with the same size and values as source, but with the element at index {col, row} replaced by svalue.

Definition at line 1404 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::replace ( const dense< T, 2 > &  source,
const usize &  start_col,
const usize &  ncols,
const usize &  start_row,
const usize &  nrows,
const dense< T, 2 > &  values 
) [inline]

Returns a dense container with the same size and values as source, but with the elements starting at index {start_col, start_row} replaced by the elements in values.

Definition at line 1416 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::replace ( const dense< T, 2 > &  source,
const usize &  start_col,
const usize &  ncols,
const usize &  col_pitch,
const usize &  start_row,
const usize &  nrows,
const usize &  row_pitch,
const dense< T, 2 > &  values 
) [inline]

Returns a dense container with the same size and values as source, but with the elements starting at index {start_col, start_row} moving in increments of {col_pitch, row_pitch} replaced by the elements in values.

Definition at line 1429 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::replace ( const dense< T, 3 > &  source,
const usize &  col,
const usize &  row,
const usize &  page,
const T &  value 
) [inline]

Returns a dense container with the same size and values as source, but with the element at index {col, row, page} replaced by value.

Definition at line 1455 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 3> >::type arbb::replace ( const dense< T, 3 > &  source,
const usize &  col,
const usize &  row,
const usize &  page,
const typename uncaptured< T >::type &  svalue 
) [inline]

Returns a dense container with the same size and values as source, but with the element at index {col, row, page} replaced by svalue.

Definition at line 1475 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::replace_row ( const dense< T, 3 > &  source,
const usize &  row,
const usize &  page,
const dense< T, 1 > &  values 
) [inline]

Returns a dense container with the same size and values as source, but with the row at index row in the page at index page replaced by values.

Definition at line 1487 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::replace_col ( const dense< T, 3 > &  source,
const usize &  col,
const usize &  page,
const dense< T, 1 > &  values 
) [inline]

Returns a dense container with the same size and values as source, but with the column at index column in the page at index page replaced by values.

Definition at line 1497 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::replace_dim3 ( const dense< T, 3 > &  source,
const usize &  col,
const usize &  row,
const dense< T, 1 > &  values 
) [inline]

Returns a dense container with the same size and values as source, but with the pillar at column col and row row replaced by values.

Definition at line 1507 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::replace_page ( const dense< T, 3 > &  source,
const usize &  page,
const dense< T, 2 > &  value 
) [inline]

Returns a dense container with the same size and values as source, but with the page at index page replaced by value.

Definition at line 1520 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::swap_rows ( const dense< T, 2 > &  source,
const usize &  row1,
const usize &  row2 
) [inline]

Returns a dense container with the same size and values as source, but with the rows at row1 and row2 swapped.

Definition at line 1539 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::swap_rows ( const dense< T, 3 > &  source,
const usize &  row1,
const usize &  row2 
) [inline]

Returns a dense container with the same size and values as source, but with the rows at row1 and row2 swapped.

Definition at line 1557 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::swap_cols ( const dense< T, 2 > &  source,
const usize &  col1,
const usize &  col2 
) [inline]

Returns a dense container with the same size and values as source, but with the columns at col1 and col2 swapped.

Definition at line 1575 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::swap_cols ( const dense< T, 3 > &  source,
const usize &  col1,
const usize &  col2 
) [inline]

Returns a dense container with the same size and values as source, but with the columns at col1 and col2 swapped.

Definition at line 1584 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::swap_pages ( const dense< T, 3 > &  source,
const usize &  page1,
const usize &  page2 
) [inline]

Returns a dense container with the same size and values as source, but with the pages at page1 and page2 swapped.

Definition at line 1602 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::transpose ( const dense< T, 2 > &  source  )  [inline]

Returns a dense container R such that R(i, j) = source(j, i).

Definition at line 1620 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::transpose ( const dense< T, 3 > &  source  )  [inline]

Returns a dense container R such that R(i, j, k) = source(j, i, k).

Definition at line 1640 of file dense_funcs.hpp.

template<typename T >
dense<T, 1> arbb::section ( const dense< T, 1 > &  source,
const usize &  first,
const usize &  nelts,
const usize &  stride = 1 
) [inline]

Returns a dense container with a size of nelts containing the elements obtained from source starting at index first incrementing by steps of stride.

Definition at line 1661 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::section ( const dense< T, 2 > &  source,
const usize &  start_col,
const usize &  ncols,
const usize &  start_row,
const usize &  nrows 
) [inline]

Returns a dense container with a size of {ncols, nrows} containing the elements obtained from source starting at index {start_col, start_row}.

Definition at line 1680 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::section ( const dense< T, 2 > &  source,
const usize &  start_col,
const usize &  ncols,
const usize &  col_pitch,
const usize &  start_row,
const usize &  nrows,
const usize &  row_pitch 
) [inline]

Returns a dense container with a size of {ncols, nrows} containing the elements obtained from source starting at index {start_col, start_row} incrementing by steps of col_pitch and row_pitch in each dimension respectively.

Definition at line 1692 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::section ( const dense< T, 3 > &  source,
const usize &  start_col,
const usize &  ncols,
const usize &  start_row,
const usize &  nrows,
const usize &  start_page,
const usize &  npages 
) [inline]

Returns a dense container with a size of {ncols, nrows, npages} containing the elements obtained from source starting at index {start_col, start_row, start_page}.

Definition at line 1714 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::section ( const dense< T, 3 > &  source,
const usize &  start_col,
const usize &  ncols,
const usize &  col_pitch,
const usize &  start_row,
const usize &  nrows,
const usize &  row_pitch,
const usize &  start_page,
const usize &  npages,
const usize &  page_pitch 
) [inline]

Returns a dense container with a size of {ncols, nrows, npages} containing the elements obtained from source starting at index {start_col, start_row, start_page} incrementing by steps of col_pitch, row_pitch and page_pitch in each dimension, respectively.

Definition at line 1731 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 1> >::type arbb::sort ( const dense< T, 1 > &  source,
dense< usize, 1 > &  rank,
sort_direction  direction = sort_ascending 
) [inline]

Returns a copy of source sorted in the given direction, storing the location from which each element in the result vector was retrieved in the corresponding element of rank.

Definition at line 1761 of file dense_funcs.hpp.

template<typename T >
detail::enable_if<detail::is_scalar<T>::value, dense<T, 1> >::type arbb::sort ( const dense< T, 1 > &  source,
sort_direction  direction = sort_ascending 
) [inline]

Returns a copy of source sorted in the given direction.

Definition at line 1775 of file dense_funcs.hpp.

u64 arbb::wall_clock (  )  [inline]

Retrieves the current platform-specific time.

Definition at line 1787 of file dense_funcs.hpp.

dense<boolean, 1> arbb::mask ( const usize &  result_size,
const usize &  start,
const usize &  true_count,
const usize &  stride 
) [inline]

Returns a dense container with a size of result_size, where true_count elements are set to true every stride elements starting at index start.

Definition at line 1799 of file dense_funcs.hpp.

template<typename T >
dense<T, 2> arbb::reshape ( const dense< T, 1 > &  source,
const usize &  ncols,
const usize &  nrows 
) [inline]

Returns a dense container of size {ncols, nrows}, filled with values from source in row-major order.

Definition at line 1813 of file dense_funcs.hpp.

template<typename T , typename U >
dense<T, 2> arbb::reshape_as ( const dense< T, 1 > &  source,
const dense< U, 2 > &  shape 
) [inline]

Equivalent to reshape(source, shape.width(), shape.height()).

Definition at line 1830 of file dense_funcs.hpp.

template<typename T >
dense<T, 3> arbb::reshape ( const dense< T, 1 > &  source,
const usize &  ncols,
const usize &  nrows,
const usize &  npages 
) [inline]

Returns a dense container of size {ncols, nrows, npages}, filled with values from source in page-major, row-major order.

Definition at line 1839 of file dense_funcs.hpp.

template<typename T , typename U >
dense<T, 3> arbb::reshape_as ( const dense< T, 1 > &  source,
const dense< U, 3 > &  shape 
) [inline]

Equivalent to reshape(source, shape.width(), shape.height(), shape.depth()).

Definition at line 1856 of file dense_funcs.hpp.

template<typename T , std::size_t D>
dense<T> arbb::add_merge ( const dense< T, D > &  source,
const dense< isize > &  indices 
) [inline]

Returns a dense container with the same size as source, where data from source is scattered according to indices, and collisions are resolved by adding values together.

Definition at line 1866 of file dense_funcs.hpp.

Submit feedback on this help topic

Copyright © 2010, Intel Corporation. All rights reserved.