Template Numerical Library version\ main:94209208
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
TNL::Matrices::StaticMatrix< Value, Rows, Columns, Permutation > Class Template Reference
Inheritance diagram for TNL::Matrices::StaticMatrix< Value, Rows, Columns, Permutation >:
Inheritance graph
[legend]
Collaboration diagram for TNL::Matrices::StaticMatrix< Value, Rows, Columns, Permutation >:
Collaboration graph
[legend]

Public Member Functions

__cuda_callable__ constexpr StaticMatrix (const StaticMatrix &)=default
 
__cuda_callable__ constexpr StaticMatrix (const std::initializer_list< Value > &elems)
 
template<typename T >
__cuda_callable__ constexpr StaticMatrix (const T &v)
 
__cuda_callable__ Containers::StaticVector< Rows, Value > operator* (const Containers::StaticVector< Columns, Value > &vector) const
 
template<typename T >
__cuda_callable__ constexpr StaticMatrix< Value, Rows, Columns > & operator*= (const T &value)
 
__cuda_callable__ constexpr StaticMatrix< Value, Rows, Columns > & operator+= (const StaticMatrix< Value, Rows, Columns > &matrix)
 
__cuda_callable__ constexpr StaticMatrix< Value, Rows, Columns > & operator-= (const StaticMatrix< Value, Rows, Columns > &matrix)
 
template<typename T >
__cuda_callable__ constexpr StaticMatrix< Value, Rows, Columns > & operator/= (const T &value)
 
NDArrayStorageoperator= (const NDArrayStorage &other)=default
 Copy-assignment operator for deep-copying data from another array. Mismatched sizes cause reallocations.
 
template<typename OtherArray >
NDArrayStorageoperator= (const OtherArray &other)
 Templated copy-assignment operator for deep-copying data from another array.
 
template<typename T >
__cuda_callable__ constexpr StaticMatrixoperator= (const T &v)
 
template<typename T >
__cuda_callable__ constexpr StaticMatrix< Value, Rows, Columns, Permutation > & operator= (const T &v)
 
NDArrayStorageoperator= (NDArrayStorage &&) noexcept(false)=default
 Move-assignment operator for acquiring data from rvalues.
 
void print (std::ostream &str) const
 
- Public Member Functions inherited from TNL::Containers::StaticNDArray< Value, SizesHolder, Permutation, Index >
NDArrayStorageoperator= (const NDArrayStorage &other)=default
 Copy-assignment operator for deep-copying data from another array. Mismatched sizes cause reallocations.
 
template<typename OtherArray >
NDArrayStorageoperator= (const OtherArray &other)
 Templated copy-assignment operator for deep-copying data from another array.
 
NDArrayStorageoperator= (NDArrayStorage &&) noexcept(false)=default
 Move-assignment operator for acquiring data from rvalues.
 
constexpr void setValue (Value value)
 Sets all elements of the array to given value.
 
- Public Member Functions inherited from TNL::Containers::NDArrayStorage< Array, Indexer, Device >
 NDArrayStorage ()=default
 Constructs an empty storage with zero size.
 
 NDArrayStorage (const NDArrayStorage &)=default
 Copy constructor (makes a deep copy).
 
 NDArrayStorage (NDArrayStorage &&) noexcept=default
 Move constructor for initialization from rvalues.
 
template<typename Device2 = DeviceType, typename Func >
void forAll (Func f, const typename Device2::LaunchConfiguration &launch_configuration=typename Device2::LaunchConfiguration{}) const
 Evaluates the function f in parallel for all elements of the array.
 
template<typename Device2 = DeviceType, typename SkipBegins , typename SkipEnds , typename Func >
void forBoundary (const SkipBegins &skipBegins, const SkipEnds &skipEnds, Func f, const typename Device2::LaunchConfiguration &launch_configuration=typename Device2::LaunchConfiguration{}) const
 Evaluates the function f in parallel for all elements of the array outside the N-dimensional interval [skipBegins, skipEnds).
 
template<typename Device2 = DeviceType, typename Func >
void forBoundary (Func f, const typename Device2::LaunchConfiguration &launch_configuration=typename Device2::LaunchConfiguration{}) const
 Evaluates the function f in parallel for all boundary elements of the array.
 
template<typename Device2 = DeviceType, typename Begins , typename Ends , typename Func >
void forInterior (const Begins &begins, const Ends &ends, Func f, const typename Device2::LaunchConfiguration &launch_configuration=typename Device2::LaunchConfiguration{}) const
 Evaluates the function f in parallel for all elements of the array inside the N-dimensional interval [begins, ends).
 
template<typename Device2 = DeviceType, typename Func >
void forInterior (Func f, const typename Device2::LaunchConfiguration &launch_configuration=typename Device2::LaunchConfiguration{}) const
 Evaluates the function f in parallel for all internal elements of the array.
 
__cuda_callable__ ConstViewType getConstView () const
 Returns a non-modifiable view of the array.
 
__cuda_callable__ ValueTypegetData ()
 Returns a raw pointer to the data.
 
__cuda_callable__ std::add_const_t< ValueType > * getData () const
 Returns a const-qualified raw pointer to the data.
 
template<typename... IndexTypes>
ValueType getElement (IndexTypes &&... indices) const
 A "safe" accessor for array elements.
 
__cuda_callable__ const IndexerTypegetIndexer () const
 Returns a const-qualified reference to the underlying indexer.
 
StorageArraygetStorageArray ()
 Returns a reference to the underlying storage array.
 
const StorageArraygetStorageArray () const
 Returns a constant reference to the underlying storage array.
 
template<std::size_t... Dimensions, typename... IndexTypes>
__cuda_callable__ auto getSubarrayView (IndexTypes &&... indices)
 Returns a modifiable view of a subarray.
 
__cuda_callable__ ViewType getView ()
 Returns a modifiable view of the array.
 
bool operator!= (const NDArrayStorage &other) const
 Compares the array with another N-dimensional array.
 
template<typename... IndexTypes>
__cuda_callable__ ValueTypeoperator() (IndexTypes &&... indices)
 Accesses an element of the array.
 
template<typename... IndexTypes>
__cuda_callable__ const ValueTypeoperator() (IndexTypes &&... indices) const
 Accesses an element of the array.
 
NDArrayStorageoperator= (const NDArrayStorage &other)=default
 Copy-assignment operator for deep-copying data from another array. Mismatched sizes cause reallocations.
 
template<typename OtherArray >
NDArrayStorageoperator= (const OtherArray &other)
 Templated copy-assignment operator for deep-copying data from another array.
 
NDArrayStorageoperator= (NDArrayStorage &&) noexcept(false)=default
 Move-assignment operator for acquiring data from rvalues.
 
bool operator== (const NDArrayStorage &other) const
 Compares the array with another N-dimensional array.
 
__cuda_callable__ ValueTypeoperator[] (IndexType index)
 Accesses an element in a one-dimensional array.
 
__cuda_callable__ const ValueTypeoperator[] (IndexType index) const
 Accesses an element in a one-dimensional array.
 
void reset ()
 Resets the array to the empty state.
 
void setLike (const NDArrayStorage &other)
 Sets sizes of the array to the sizes of an existing array.
 
void setSize (const SizesHolderType &sizes)
 Sets sizes of the array using an instance of SizesHolder.
 
template<typename... IndexTypes>
void setSizes (IndexTypes &&... sizes)
 Sets sizes of the array using raw integers.
 
void setValue (ValueType value)
 Sets all elements of the array to given value.
 

Static Public Member Functions

static constexpr std::size_t getColumns ()
 
static constexpr std::size_t getRows ()
 

Additional Inherited Members

- Public Types inherited from TNL::Containers::NDArrayStorage< Array, Indexer, Device >
using ConstViewType = NDArrayView< std::add_const_t< ValueType >, DeviceType, IndexerType >
 Compatible constant NDArrayView type.
 
using DeviceType = Device
 Type of the device used for running operations on the array.
 
using IndexerType = Indexer
 Type of the N-dimensional indexer, NDArrayIndexer.
 
using IndexType = typename Indexer::IndexType
 Type of indices used for addressing the array elements.
 
using OverlapsType = typename Indexer::OverlapsType
 Sequence of integers representing the overlaps in each dimension of a distributed N-dimensional array.
 
using PermutationType = typename Indexer::PermutationType
 Permutation that is applied to indices when accessing the array elements.
 
using SizesHolderType = typename Indexer::SizesHolderType
 Type of the underlying object which represents the sizes of the N-dimensional array.
 
using StorageArray = Array
 Type of the underlying one-dimensional array storing the elements.
 
using ValueType = typename Array::ValueType
 Type of the values stored in the array.
 
using ViewType = NDArrayView< ValueType, DeviceType, IndexerType >
 Compatible NDArrayView type.
 
- Protected Attributes inherited from TNL::Containers::NDArrayStorage< Array, Indexer, Device >
StorageArray array
 Underlying one-dimensional array which stores the data.
 
IndexerType indexer
 Object which transforms the multi-dimensional indices to a one-dimensional index.
 

The documentation for this class was generated from the following file: