StridesThe template class basic_strides contains weights for a given storage format in order to map multi-indices to scalar memory indices for tensor instances.
#include <boost/numeric/ublas/tensor/strides.hpp>
int main () {
using namespace boost::numeric::ublas;
auto wf = strides<first_order>(shape{4,3,2});
for (auto i = 0u; i < wf.size(); ++i)
std::cout << wf.at(i) << std::endl;
// 1,4,12
auto wl = strides<first_order>(shape{4,3,2});
for (auto i = 0u; i < wl.size(); ++i)
std::cout << wl.at(i) << std::endl;
// 6,2,1
}
Defined in the header tensor/strides.hpp.
None.
template<class format_t>
using strides = basic_strides<std::size_t,format_t>
| Parameter | Description |
|---|---|
size_type |
Unsigned integer type. |
| Member type | Description |
|---|---|
value_type |
Type size_type of the strides. |
size_type |
Unsigned integer such as std::size_t. |
reference |
Reference type which is value_type&. |
const_reference |
Constant reference type which is const value_type&. |
pointer |
Pointer type which is value_type*. |
const_pointer |
Constant pointer type which is const value_type*. |
layout_type |
Layout type which can be either boost::numeric::ublas::first_order or boost::numeric::ublas::last_order. |
| Member Function | Description |
|---|---|
basic_strides () |
Constructs an empty instance of basic_strides. |
basic_strides (basic_extents<value_type> const& be) |
Constructs an instance based on the tensor extents specified by be. |
basic_strides (std::vector<value_type> const& v) |
Constructs an instance copying the content of v. |
basic_strides (std::vector<value_type> && v) |
Constructs an instance moving the content of v. |
basic_strides (basic_strides const& other) |
Constructs an instance from other copying its elements. |
basic_strides (basic_strides && other) |
Constructs an instance from other by moving its elements. |
basic_strides& operator= (basic_strides other) |
Assigns the elements of other to this instance. |
const_pointer data() const |
Returns a const_pointer to the first element. |
const_reference operator[](size_type i) const |
Returns a const_reference to the i-th element. |
const_reference at(size_type i) const |
Returns a const_reference to the i-th element. |
bool empty() |
Returns true if the container has no elements. |
size_type size() const |
Returns the number of elements. |
void clear() |
Erases all elements. |
bool operator==(basic_strides const& b) const |
Returns true if all elements are equal. |
bool operator!=(basic_strides const& b) const |
Returns true if some elements are not equal. |
const_iterator begin() const |
Returns an const_iterator pointing to the first element. |
const_iterator end() const |
Returns a const_iterator pointing to an element passed the last element. |
std::vector<size_type> base() const |
Returns the private member sequence container holding all elements. |
| Function | Description |
|---|---|
access(std::vector<size_type> const& i, strides<layout_type> w) |
Returns relative memory location depending on the multi-index vector i and strides w. |
access(size_type sum, strides<layout_type> w, size_type i, size_types ... is) |
Returns relative memory location depending on the indices i, is ... and stride vector w (recursive function). |
Copyright (©) 2018 Cem Bassoy
Use, modification and distribution are subject to the
Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt
or copy at
http://www.boost.org/LICENSE_1_0.txt
).