LibraryLink Utilities  3.0.1
Modern C++ wrapper over LibraryLink and WSTP
LLU::TypedNumericArray< T > Class Template Referenceabstract

Description

template<typename T>
class LLU::TypedNumericArray< T >

Typed interface for NumericArray.

Provides iterators, data access and info about dimensions.

Template Parameters
T- type of data in NumericArray
+ Inheritance diagram for LLU::TypedNumericArray< T >:
+ Collaboration diagram for LLU::TypedNumericArray< T >:

#include <NumericArray.h>

Public Types

using value_type = T
 Type of elements stored. More...
 
using iterator = value_type *
 Iterator type. More...
 
using const_iterator = const value_type *
 Constant iterator type. More...
 
using reverse_iterator = std::reverse_iterator< iterator >
 Reverse iterator type. More...
 
using const_reverse_iterator = std::reverse_iterator< const_iterator >
 Constant reverse iterator type. More...
 
using reference = value_type &
 Reference type. More...
 
using const_reference = const value_type &
 Constant reference type. More...
 

Public Member Functions

mint rank () const noexcept
 Get container rank. More...
 
bool empty () const noexcept
 Check whether container is empty. More...
 
mint dimension (mint index) const
 Get dimension value at position index. More...
 
const MArrayDimensionsdimensions () const
 Get a const reference to dimensions object. More...
 
T & operator[] (const std::vector< mint > &indices)
 Get a reference to the data element at given position in a multidimensional container. More...
 
const T & operator[] (const std::vector< mint > &indices) const
 Get a constant reference to the data element at given position in a multidimensional container. More...
 
reference operator[] (mint index)
 Get a reference to the data element at given position. More...
 
const_reference operator[] (mint index) const
 Get a constant reference to the data element at given position. More...
 
T & at (mint index)
 Get a reference to the data element at given position with bound checking. More...
 
const T & at (mint index) const
 Get a constant reference to the data element at given position with bound checking. More...
 
T & at (const std::vector< mint > &indices)
 Get a reference to the data element at given position in a multidimensional container. More...
 
const T & at (const std::vector< mint > &indices) const
 Get a constant reference to the data element at given position in a multidimensional container. More...
 
value_typedata () noexcept
 Get raw pointer to underlying data. More...
 
const value_typedata () const noexcept
 Get raw pointer to const underlying data. More...
 
mint size () const noexcept
 Get total number of elements in the container. More...
 
iterator begin () noexcept
 Get iterator at the beginning of underlying data. More...
 
const_iterator begin () const noexcept
 Get constant iterator at the beginning of underlying data. More...
 
const_iterator cbegin () const noexcept
 Get constant iterator at the beginning of underlying data. More...
 
iterator end () noexcept
 Get iterator after the end of underlying data. More...
 
const_iterator end () const noexcept
 Get constant iterator after the end of underlying data. More...
 
const_iterator cend () const noexcept
 Get constant iterator after the end of underlying data. More...
 
reverse_iterator rbegin () noexcept
 Get iterator at the beginning of underlying data. More...
 
const_reverse_iterator rbegin () const noexcept
 Get constant iterator at the beginning of underlying data. More...
 
const_reverse_iterator crbegin () const noexcept
 Get constant iterator at the beginning of underlying data. More...
 
reverse_iterator rend () noexcept
 Get iterator after the end of underlying data. More...
 
const_reverse_iterator rend () const noexcept
 Get constant iterator after the end of underlying data. More...
 
const_reverse_iterator crend () const noexcept
 Get constant iterator after the end of underlying data. More...
 
reference front ()
 Get reference to the first element. More...
 
const_reference front () const
 Get constant reference to the first element. More...
 
reference back ()
 Get reference to the last element. More...
 
const_reference back () const
 Get constant reference to the last element. More...
 
std::vector< value_typeasVector () const
 Copy contents of the data to a std::vector of matching type. More...
 

Type aliases documentation

◆ const_iterator

template<typename T >
using LLU::IterableContainer< T >::const_iterator = const value_type*
inherited

Constant iterator type.

◆ const_reference

template<typename T >
using LLU::IterableContainer< T >::const_reference = const value_type&
inherited

Constant reference type.

◆ const_reverse_iterator

template<typename T >
using LLU::IterableContainer< T >::const_reverse_iterator = std::reverse_iterator<const_iterator>
inherited

Constant reverse iterator type.

◆ iterator

template<typename T >
using LLU::IterableContainer< T >::iterator = value_type*
inherited

Iterator type.

◆ reference

template<typename T >
using LLU::IterableContainer< T >::reference = value_type&
inherited

Reference type.

◆ reverse_iterator

template<typename T >
using LLU::IterableContainer< T >::reverse_iterator = std::reverse_iterator<iterator>
inherited

Reverse iterator type.

◆ value_type

template<typename T >
using LLU::IterableContainer< T >::value_type = T
inherited

Type of elements stored.

Member Function Documentation

◆ asVector()

template<typename T >
std::vector<value_type> LLU::IterableContainer< T >::asVector ( ) const
inlineinherited

Copy contents of the data to a std::vector of matching type.

Returns
std::vector with the copy of the data

◆ at() [1/4]

template<typename T >
T & LLU::MArray< T >::at ( const std::vector< mint > &  indices)
inherited

Get a reference to the data element at given position in a multidimensional container.

Parameters
[in]indices- vector with coordinates of desired data element
Exceptions
indexError()- if indices are out-of-bounds

◆ at() [2/4]

template<typename T >
const T & LLU::MArray< T >::at ( const std::vector< mint > &  indices) const
inherited

Get a constant reference to the data element at given position in a multidimensional container.

Parameters
[in]indices- vector with coordinates of desired data element
Exceptions
indexError()- if indices are out-of-bounds

◆ at() [3/4]

template<typename T >
T & LLU::MArray< T >::at ( mint  index)
inherited

Get a reference to the data element at given position with bound checking.

Parameters
[in]index- position of desired data element
Exceptions
indexError()- if index is out-of-bounds

◆ at() [4/4]

template<typename T >
const T & LLU::MArray< T >::at ( mint  index) const
inherited

Get a constant reference to the data element at given position with bound checking.

Parameters
[in]index- position of desired data element
Exceptions
indexError()- if index is out-of-bounds

◆ back() [1/2]

template<typename T >
reference LLU::IterableContainer< T >::back ( )
inlineinherited

Get reference to the last element.

Note
For empty container the behavior is undefined.

◆ back() [2/2]

template<typename T >
const_reference LLU::IterableContainer< T >::back ( ) const
inlineinherited

Get constant reference to the last element.

Note
For empty container the behavior is undefined.

◆ begin() [1/2]

template<typename T >
const_iterator LLU::IterableContainer< T >::begin ( ) const
inlinenoexceptinherited

Get constant iterator at the beginning of underlying data.

◆ begin() [2/2]

template<typename T >
iterator LLU::IterableContainer< T >::begin ( )
inlinenoexceptinherited

Get iterator at the beginning of underlying data.

◆ cbegin()

template<typename T >
const_iterator LLU::IterableContainer< T >::cbegin ( ) const
inlinenoexceptinherited

Get constant iterator at the beginning of underlying data.

◆ cend()

template<typename T >
const_iterator LLU::IterableContainer< T >::cend ( ) const
inlinenoexceptinherited

Get constant iterator after the end of underlying data.

◆ crbegin()

template<typename T >
const_reverse_iterator LLU::IterableContainer< T >::crbegin ( ) const
inlinenoexceptinherited

Get constant iterator at the beginning of underlying data.

◆ crend()

template<typename T >
const_reverse_iterator LLU::IterableContainer< T >::crend ( ) const
inlinenoexceptinherited

Get constant iterator after the end of underlying data.

◆ data() [1/2]

template<typename T >
const value_type* LLU::IterableContainer< T >::data ( ) const
inlinenoexceptinherited

Get raw pointer to const underlying data.

◆ data() [2/2]

template<typename T >
value_type* LLU::IterableContainer< T >::data ( )
inlinenoexceptinherited

Get raw pointer to underlying data.

◆ dimension()

template<typename T >
mint LLU::MArray< T >::dimension ( mint  index) const
inlineinherited

Get dimension value at position index.

◆ dimensions()

template<typename T >
const MArrayDimensions& LLU::MArray< T >::dimensions ( ) const
inlineinherited

Get a const reference to dimensions object.

◆ empty()

template<typename T >
bool LLU::MArray< T >::empty ( ) const
inlinenoexceptinherited

Check whether container is empty.

◆ end() [1/2]

template<typename T >
const_iterator LLU::IterableContainer< T >::end ( ) const
inlinenoexceptinherited

Get constant iterator after the end of underlying data.

◆ end() [2/2]

template<typename T >
iterator LLU::IterableContainer< T >::end ( )
inlinenoexceptinherited

Get iterator after the end of underlying data.

◆ front() [1/2]

template<typename T >
reference LLU::IterableContainer< T >::front ( )
inlineinherited

Get reference to the first element.

Note
For empty container the behavior is undefined.

◆ front() [2/2]

template<typename T >
const_reference LLU::IterableContainer< T >::front ( ) const
inlineinherited

Get constant reference to the first element.

Note
For empty container the behavior is undefined.

◆ operator[]() [1/4]

template<typename T >
T& LLU::MArray< T >::operator[] ( const std::vector< mint > &  indices)
inlineinherited

Get a reference to the data element at given position in a multidimensional container.

Parameters
[in]indices- vector with coordinates of desired data element

◆ operator[]() [2/4]

template<typename T >
const T& LLU::MArray< T >::operator[] ( const std::vector< mint > &  indices) const
inlineinherited

Get a constant reference to the data element at given position in a multidimensional container.

Parameters
[in]indices- vector with coordinates of desired data element

◆ operator[]() [3/4]

template<typename T >
reference LLU::IterableContainer< T >::operator[] ( mint  index)
inlineinherited

Get a reference to the data element at given position.

Parameters
[in]index- position of desired data element

◆ operator[]() [4/4]

template<typename T >
const_reference LLU::IterableContainer< T >::operator[] ( mint  index) const
inlineinherited

Get a constant reference to the data element at given position.

Parameters
[in]index- position of desired data element

◆ rank()

template<typename T >
mint LLU::MArray< T >::rank ( ) const
inlinenoexceptinherited

Get container rank.

◆ rbegin() [1/2]

template<typename T >
const_reverse_iterator LLU::IterableContainer< T >::rbegin ( ) const
inlinenoexceptinherited

Get constant iterator at the beginning of underlying data.

◆ rbegin() [2/2]

template<typename T >
reverse_iterator LLU::IterableContainer< T >::rbegin ( )
inlinenoexceptinherited

Get iterator at the beginning of underlying data.

◆ rend() [1/2]

template<typename T >
const_reverse_iterator LLU::IterableContainer< T >::rend ( ) const
inlinenoexceptinherited

Get constant iterator after the end of underlying data.

◆ rend() [2/2]

template<typename T >
reverse_iterator LLU::IterableContainer< T >::rend ( )
inlinenoexceptinherited

Get iterator after the end of underlying data.

◆ size()

template<typename T >
mint LLU::IterableContainer< T >::size ( ) const
inlinenoexceptinherited

Get total number of elements in the container.