 Strides
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_typeof 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_orderorboost::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 othercopying its elements. | 
| basic_strides (basic_strides && other) | Constructs an instance from otherby moving its elements. | 
| basic_strides& operator= (basic_strides other) | Assigns the elements of otherto this instance. | 
| const_pointer data() const | Returns a const_pointerto the first element. | 
| const_reference operator[](size_type i) const | Returns a const_referenceto thei-th element. | 
| const_reference at(size_type i) const | Returns a const_referenceto thei-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_iteratorpointing to the first element. | 
| const_iterator end() const | Returns a const_iteratorpointing 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 iand stridesw. | 
| 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 vectorw(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
   ).