nda::idx_map for more details on how we define strides).
- Returns
std::array<long, Rank>
object specifying the strides of the view/array.
-Definition at line 668 of file basic_array.hpp.
+Definition at line 670 of file basic_array.hpp.
diff --git a/docs/unstable/clef_2clef_8hpp_source.html b/docs/unstable/clef_2clef_8hpp_source.html
index 09ac453a..83c5eea0 100644
--- a/docs/unstable/clef_2clef_8hpp_source.html
+++ b/docs/unstable/clef_2clef_8hpp_source.html
@@ -205,74 +205,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
#define CUSOLVER_CHECK(X, info,...)
#define NDA_RUNTIME_ERROR
diff --git a/docs/unstable/clef_8hpp_source.html b/docs/unstable/clef_8hpp_source.html
index 3a8e18c2..da29ae60 100644
--- a/docs/unstable/clef_8hpp_source.html
+++ b/docs/unstable/clef_8hpp_source.html
@@ -202,74 +202,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/declarations_8hpp_source.html b/docs/unstable/declarations_8hpp_source.html
index 062c453e..fa166b4d 100644
--- a/docs/unstable/declarations_8hpp_source.html
+++ b/docs/unstable/declarations_8hpp_source.html
@@ -591,74 +591,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
#define CUSOLVER_CHECK(X, info,...)
diff --git a/docs/unstable/eigenelements_8hpp_source.html b/docs/unstable/eigenelements_8hpp_source.html
index 4d50768e..65498910 100644
--- a/docs/unstable/eigenelements_8hpp_source.html
+++ b/docs/unstable/eigenelements_8hpp_source.html
@@ -258,7 +258,7 @@
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
#define NDA_RUNTIME_ERROR
constexpr auto hadamard(nda::Scalar auto a, nda::Scalar auto b)
Hadamard product of two arithmetic types.
diff --git a/docs/unstable/eval_8hpp_source.html b/docs/unstable/eval_8hpp_source.html
index 16c35833..25acd37b 100644
--- a/docs/unstable/eval_8hpp_source.html
+++ b/docs/unstable/eval_8hpp_source.html
@@ -392,74 +392,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
#define CUSOLVER_CHECK(X, info,...)
#define NDA_RUNTIME_ERROR
diff --git a/docs/unstable/expression_8hpp_source.html b/docs/unstable/expression_8hpp_source.html
index 303db8e0..4a22696c 100644
--- a/docs/unstable/expression_8hpp_source.html
+++ b/docs/unstable/expression_8hpp_source.html
@@ -331,74 +331,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
#define CUSOLVER_CHECK(X, info,...)
#define NDA_RUNTIME_ERROR
diff --git a/docs/unstable/for__each_8hpp_source.html b/docs/unstable/for__each_8hpp_source.html
index b06afd87..05dc07ee 100644
--- a/docs/unstable/for__each_8hpp_source.html
+++ b/docs/unstable/for__each_8hpp_source.html
@@ -313,74 +313,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/function_8hpp_source.html b/docs/unstable/function_8hpp_source.html
index b6adfcc3..597a8e75 100644
--- a/docs/unstable/function_8hpp_source.html
+++ b/docs/unstable/function_8hpp_source.html
@@ -343,74 +343,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
#define CUSOLVER_CHECK(X, info,...)
#define NDA_RUNTIME_ERROR
diff --git a/docs/unstable/gelss_8hpp_source.html b/docs/unstable/gelss_8hpp_source.html
index dc45cd88..4c139256 100644
--- a/docs/unstable/gelss_8hpp_source.html
+++ b/docs/unstable/gelss_8hpp_source.html
@@ -223,7 +223,7 @@
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
#define NDA_RUNTIME_ERROR
constexpr auto hadamard(nda::Scalar auto a, nda::Scalar auto b)
Hadamard product of two arithmetic types.
int gelss(A &&a, B &&b, S &&s, double rcond, int &rank)
Interface to the LAPACK gelss routine.
diff --git a/docs/unstable/gelss__worker_8hpp_source.html b/docs/unstable/gelss__worker_8hpp_source.html
index 79fb97d7..bcbda92c 100644
--- a/docs/unstable/gelss__worker_8hpp_source.html
+++ b/docs/unstable/gelss__worker_8hpp_source.html
@@ -371,7 +371,7 @@
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
Worker class for solving linear least square problems.
array< double, 1 > const & S_vec() const
Get the singular value array.
diff --git a/docs/unstable/geqp3_8hpp_source.html b/docs/unstable/geqp3_8hpp_source.html
index a4eea72c..da1524d9 100644
--- a/docs/unstable/geqp3_8hpp_source.html
+++ b/docs/unstable/geqp3_8hpp_source.html
@@ -210,7 +210,7 @@
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
#define NDA_RUNTIME_ERROR
constexpr auto hadamard(nda::Scalar auto a, nda::Scalar auto b)
Hadamard product of two arithmetic types.
int geqp3(A &&a, JPVT &&jpvt, TAU &&tau)
Interface to the LAPACK geqp3 routine.
diff --git a/docs/unstable/group__indices_8hpp_source.html b/docs/unstable/group__indices_8hpp_source.html
index 3b34c91e..fe6fa2a3 100644
--- a/docs/unstable/group__indices_8hpp_source.html
+++ b/docs/unstable/group__indices_8hpp_source.html
@@ -395,74 +395,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/handle_8hpp_source.html b/docs/unstable/handle_8hpp_source.html
index 398ddf50..aba1fd65 100644
--- a/docs/unstable/handle_8hpp_source.html
+++ b/docs/unstable/handle_8hpp_source.html
@@ -1190,74 +1190,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/idx__map_8hpp_source.html b/docs/unstable/idx__map_8hpp_source.html
index 3a4154ac..cab8ce40 100644
--- a/docs/unstable/idx__map_8hpp_source.html
+++ b/docs/unstable/idx__map_8hpp_source.html
@@ -873,74 +873,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/io_8hpp_source.html b/docs/unstable/io_8hpp_source.html
index 1a848023..14f658ff 100644
--- a/docs/unstable/io_8hpp_source.html
+++ b/docs/unstable/io_8hpp_source.html
@@ -453,74 +453,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/iterators_8hpp_source.html b/docs/unstable/iterators_8hpp_source.html
index 64dd4a68..f01ffa41 100644
--- a/docs/unstable/iterators_8hpp_source.html
+++ b/docs/unstable/iterators_8hpp_source.html
@@ -773,74 +773,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/layout_2policies_8hpp_source.html b/docs/unstable/layout_2policies_8hpp_source.html
index 3504bc26..1f14986b 100644
--- a/docs/unstable/layout_2policies_8hpp_source.html
+++ b/docs/unstable/layout_2policies_8hpp_source.html
@@ -372,74 +372,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/layout__transforms_8hpp_source.html b/docs/unstable/layout__transforms_8hpp_source.html
index 4af33e6e..2ac1083f 100644
--- a/docs/unstable/layout__transforms_8hpp_source.html
+++ b/docs/unstable/layout__transforms_8hpp_source.html
@@ -512,74 +512,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/literals_8hpp_source.html b/docs/unstable/literals_8hpp_source.html
index e93c052d..1fee602e 100644
--- a/docs/unstable/literals_8hpp_source.html
+++ b/docs/unstable/literals_8hpp_source.html
@@ -247,74 +247,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/make__lazy_8hpp_source.html b/docs/unstable/make__lazy_8hpp_source.html
index a25087e0..d8f544a7 100644
--- a/docs/unstable/make__lazy_8hpp_source.html
+++ b/docs/unstable/make__lazy_8hpp_source.html
@@ -331,74 +331,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
#define CUSOLVER_CHECK(X, info,...)
#define NDA_RUNTIME_ERROR
diff --git a/docs/unstable/malloc_8hpp_source.html b/docs/unstable/malloc_8hpp_source.html
index eb4f8848..b3d9f1bd 100644
--- a/docs/unstable/malloc_8hpp_source.html
+++ b/docs/unstable/malloc_8hpp_source.html
@@ -265,74 +265,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/math_8hpp_source.html b/docs/unstable/math_8hpp_source.html
index d940943f..e0c6fc43 100644
--- a/docs/unstable/math_8hpp_source.html
+++ b/docs/unstable/math_8hpp_source.html
@@ -234,74 +234,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/mem_2policies_8hpp_source.html b/docs/unstable/mem_2policies_8hpp_source.html
index 642bdad1..d56c31db 100644
--- a/docs/unstable/mem_2policies_8hpp_source.html
+++ b/docs/unstable/mem_2policies_8hpp_source.html
@@ -302,74 +302,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/memcpy_8hpp_source.html b/docs/unstable/memcpy_8hpp_source.html
index fa4fc869..65a31b54 100644
--- a/docs/unstable/memcpy_8hpp_source.html
+++ b/docs/unstable/memcpy_8hpp_source.html
@@ -277,74 +277,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/memset_8hpp_source.html b/docs/unstable/memset_8hpp_source.html
index 842c8325..637f8f9a 100644
--- a/docs/unstable/memset_8hpp_source.html
+++ b/docs/unstable/memset_8hpp_source.html
@@ -269,74 +269,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/operation_8hpp_source.html b/docs/unstable/operation_8hpp_source.html
index 3beb9554..030974a0 100644
--- a/docs/unstable/operation_8hpp_source.html
+++ b/docs/unstable/operation_8hpp_source.html
@@ -456,74 +456,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
#define CUSOLVER_CHECK(X, info,...)
#define NDA_RUNTIME_ERROR
diff --git a/docs/unstable/permutation_8hpp_source.html b/docs/unstable/permutation_8hpp_source.html
index c63473ba..78653233 100644
--- a/docs/unstable/permutation_8hpp_source.html
+++ b/docs/unstable/permutation_8hpp_source.html
@@ -453,74 +453,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/placeholder_8hpp_source.html b/docs/unstable/placeholder_8hpp_source.html
index b7bc019f..6b2b57ae 100644
--- a/docs/unstable/placeholder_8hpp_source.html
+++ b/docs/unstable/placeholder_8hpp_source.html
@@ -335,74 +335,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
#define CUSOLVER_CHECK(X, info,...)
#define NDA_RUNTIME_ERROR
diff --git a/docs/unstable/slice__static_8hpp_source.html b/docs/unstable/slice__static_8hpp_source.html
index ca387fe8..36fd15ee 100644
--- a/docs/unstable/slice__static_8hpp_source.html
+++ b/docs/unstable/slice__static_8hpp_source.html
@@ -515,74 +515,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/sum_8hpp_source.html b/docs/unstable/sum_8hpp_source.html
index f7f10c0c..a760e6e8 100644
--- a/docs/unstable/sum_8hpp_source.html
+++ b/docs/unstable/sum_8hpp_source.html
@@ -292,74 +292,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.
diff --git a/docs/unstable/utils_8hpp_source.html b/docs/unstable/utils_8hpp_source.html
index 53c45d22..ccc85e17 100644
--- a/docs/unstable/utils_8hpp_source.html
+++ b/docs/unstable/utils_8hpp_source.html
@@ -342,74 +342,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
#define CUSOLVER_CHECK(X, info,...)
#define NDA_RUNTIME_ERROR
diff --git a/docs/unstable/vector_8hpp_source.html b/docs/unstable/vector_8hpp_source.html
index 036a086e..6e76a6a5 100644
--- a/docs/unstable/vector_8hpp_source.html
+++ b/docs/unstable/vector_8hpp_source.html
@@ -242,74 +242,74 @@
const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
storage_t const & storage() const &noexcept
Get the data storage of the view/array.
A generic multi-dimensional array.
-auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
-decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
+auto & operator+=(RHS const &rhs) noexcept
Addition assignment operator.
+decltype(auto) operator[](T const &idx) const &noexcept(has_no_boundcheck)
Subscript operator to access the 1-dimensional view/array.
basic_array(basic_array< ValueType, 2, LayoutPolicy, A2, ContainerPolicy > &&a) noexcept
Construct a 2-dimensional array from another 2-dimensional array with a different algebra.
-basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
-static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
-ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
-ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
-long shape(int i) const noexcept
-const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
+basic_array & operator=(RHS const &rhs)
Assignment operator makes a deep copy of an nda::ArrayOfRank object.
+static constexpr bool is_stride_order_Fortran() noexcept
Is the stride order of the view/array in Fortran-order?
+ValueType const * data() const noexcept
Get a pointer to the actual data (in general this is not the beginning of the memory block for a view...
+ValueType * data() noexcept
Get a pointer to the actual data (in general this is not the beginning of thr memory block for a view...
+long shape(int i) const noexcept
+const_iterator cbegin() const noexcept
Get a const iterator to the beginning of the view/array.
static constexpr int rank
Number of dimensions of the array.
-static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
-storage_t & storage() &noexcept
Get the data storage of the view/array.
+static constexpr bool is_stride_order_C() noexcept
Is the stride order of the view/array in C-order?
+storage_t & storage() &noexcept
Get the data storage of the view/array.
basic_array(A const &a)
Construct an array from an nda::ArrayOfRank object with the same rank by copying each element.
basic_array(basic_array< ValueType, Rank, LayoutPolicy, A, CP > a) noexcept
Construct an array from another array with a different algebra and/or container policy.
-auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
+auto const & strides() const noexcept
Get the strides of the view/array (see nda::idx_map for more details on how we define strides).
basic_array(Ints... is)
Construct an array with the given dimensions.
static basic_array ones(Ints... is)
Make a one-initialized array with the given dimensions.
-const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
+const_iterator begin() const noexcept
Get a const iterator to the beginning of the view/array.
auto as_array_view() const
Convert the current array to a view with an 'A' (array) algebra.
-long extent(int i) const noexcept
Get the extent of the ith dimension.
+long extent(int i) const noexcept
Get the extent of the ith dimension.
basic_array(std::initializer_list< ValueType > const &l)
Construct a 1-dimensional array from an initializer list.
-decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
-long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
+decltype(auto) operator[](T const &x) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator[](T const &) const &.
+long is_contiguous() const noexcept
Is the memory layout of the view/array contiguous?
basic_array(std::initializer_list< std::initializer_list< ValueType > > const &l2)
Construct a 2-dimensional array from a double nested initializer list.
-decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
-bool empty() const
Is the view/array empty?
-void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
-long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
+decltype(auto) operator()(_linear_index_t idx) noexcept
Non-const overload of nda::basic_array_view::operator()(_linear_index_t) const.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator()(Ts const &...) const &.
+bool empty() const
Is the view/array empty?
+void resize(std::array< long, Rank > const &shape)
Resize the array to a new shape.
+long has_positive_strides() const noexcept
Are all the strides of the memory layout of the view/array positive?
basic_array(Int sz, RHS const &val)
Construct a 1-dimensional array with the given size and initialize each element to the given scalar v...
static basic_array ones(std::array< Int, Rank > const &shape)
Make a one-initialized array with the given shape.
-constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
-auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
-auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
+constexpr auto stride_order() const noexcept
Get the stride order of the memory layout of the view/array (see nda::idx_map for more details on how...
+auto & operator/=(RHS const &rhs) noexcept
Division assignment operator.
+auto & operator=(R const &rhs) noexcept
Assignment operator makes a deep copy of a general contiguous range and assigns it to the 1-dimension...
auto as_array_view()
Convert the current array to a view with an 'A' (array) algebra.
static basic_array zeros(Ints... is)
Make a zero-initialized array with the given dimensions.
-auto indices() const noexcept
Get a range that generates all valid index tuples.
-static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
-void resize(Ints const &...is)
Resize the array to a new shape.
-storage_t storage() &&noexcept
Get the data storage of the view/array.
+auto indices() const noexcept
Get a range that generates all valid index tuples.
+static __inline__ decltype(auto) call(Self &&self, Ts const &...idxs) noexcept(has_no_boundcheck)
Implementation of the function call operator.
+void resize(Ints const &...is)
Resize the array to a new shape.
+storage_t storage() &&noexcept
Get the data storage of the view/array.
basic_array()
Default constructor constructs an empty array with a default constructed memory handle and layout.
-bool is_empty() const noexcept
-storage_t const & storage() const &noexcept
Get the data storage of the view/array.
+bool is_empty() const noexcept
+storage_t const & storage() const &noexcept
Get the data storage of the view/array.
basic_array & operator=(basic_array const &)=default
Default copy assignment copies the memory handle and layout from the right hand side array.
-basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
+basic_array & operator=(basic_array< ValueType, Rank, LayoutPolicy, A, CP > const &rhs)
Assignment operator makes a deep copy of another array with a different algebra and/or container poli...
basic_array(basic_array const &a)=default
Default copy constructor copies the memory handle and layout.
basic_array(std::initializer_list< std::initializer_list< std::initializer_list< ValueType > > > const &l3)
Construct a 3-dimensional array from a triple nested initializer list.
-iterator begin() noexcept
Get an iterator to the beginning of the view/array.
+iterator begin() noexcept
Get an iterator to the beginning of the view/array.
basic_array(layout_t const &layout)
Construct an array with the given memory layout.
-static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
+static basic_array rand(Ints... is)
Make a random-initialized array with the given dimensions.
basic_array(layout_t const &layout, storage_t &&storage) noexcept
Construct an array with the given memory layout and with an existing memory handle/storage.
-static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
-auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
-const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
+static constexpr int iterator_rank
Rank of the nda::array_iterator for the view/array.
+auto & operator-=(RHS const &rhs) noexcept
Subtraction assignment operator.
+const_iterator end() const noexcept
Get a const iterator to the end of the view/array.
basic_array(basic_array &&)=default
Default move constructor moves the memory handle and layout.
-__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
+__inline__ decltype(auto) operator()(Ts const &...idxs) &&noexcept(has_no_boundcheck)
Rvalue overload of nda::basic_array_view::operator()(Ts const &...) const &.
basic_array(std::array< Int, Rank > const &shape)
Construct an array with the given shape.
-const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
-auto const & shape() const noexcept
Get the shape of the view/array.
-long size() const noexcept
Get the total size of the view/array.
-decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
-auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
+const_iterator cend() const noexcept
Get a const iterator to the end of the view/array.
+auto const & shape() const noexcept
Get the shape of the view/array.
+long size() const noexcept
Get the total size of the view/array.
+decltype(auto) operator[](T const &x) &noexcept(has_no_boundcheck)
Non-const overload of nda::basic_array_view::operator[](T const &) const &.
+auto & operator*=(RHS const &rhs) noexcept
Multiplication assignment operator.
basic_array & operator=(basic_array &&)=default
Default move assignment moves the memory handle and layout from the right hand side array.
static basic_array zeros(std::array< Int, Rank > const &shape)
Make a zero-initialized array with the given shape.
-__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
-constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
-iterator end() noexcept
Get an iterator to the end of the view/array.
-decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
+__inline__ decltype(auto) operator()(Ts const &...idxs) const &noexcept(has_no_boundcheck)
Function call operator to access the view/array.
+constexpr auto const & indexmap() const noexcept
Get the memory layout of the view/array.
+iterator end() noexcept
Get an iterator to the end of the view/array.
+decltype(auto) operator()(_linear_index_t idx) const noexcept
Access the element of the view/array at the given nda::_linear_index_t.
static basic_array rand(std::array< Int, Rank > const &shape)
Make a random-initialized array with the given shape.
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
__inline__ long operator()(Args const &...args) const noexcept(true)
Function call operator to map a given multi-dimensional index to a linear index.