Template Numerical Library version\ main:40802e2e
Loading...
Searching...
No Matches
TNL::Containers::StaticVector< Size, Real > Class Template Reference

Vector with constant size. More...

#include <TNL/Containers/StaticVector.h>

Inheritance diagram for TNL::Containers::StaticVector< Size, Real >:
Collaboration diagram for TNL::Containers::StaticVector< Size, Real >:

Public Types

using IndexType = int
 Indexing type.
 
using RealType = Real
 Type of numbers stored in this vector.
 
- Public Types inherited from TNL::Containers::StaticArray< Size, double >
using IndexType
 Type being used for the array elements indexing.
 
using ValueType
 Type of elements stored in this array.
 

Public Member Functions

__cuda_callable__ constexpr StaticVector ()=default
 Default constructor.
 
template<typename T1 , typename T2 , typename Operation >
constexpr StaticVector (const Expressions::StaticBinaryExpressionTemplate< T1, T2, Operation > &expr)
 Constructor from binary vector expression.
 
template<typename T , typename Operation >
constexpr StaticVector (const Expressions::StaticUnaryExpressionTemplate< T, Operation > &expr)
 Constructor from unary expression.
 
__cuda_callable__ constexpr StaticVector (const StaticVector &)=default
 Default copy constructor.
 
template<typename VectorExpression >
constexpr StaticVectoroperator%= (const VectorExpression &expression)
 Elementwise modulo by a vector expression.
 
template<typename VectorExpression >
constexpr StaticVector< Size, Real > & operator%= (const VectorExpression &expression)
 
template<typename VectorExpression >
constexpr StaticVectoroperator*= (const VectorExpression &expression)
 Elementwise multiplication by a vector expression.
 
template<typename VectorExpression >
constexpr StaticVector< Size, Real > & operator*= (const VectorExpression &expression)
 
template<typename VectorExpression >
constexpr StaticVectoroperator+= (const VectorExpression &expression)
 Addition operator with a vector expression.
 
template<typename VectorExpression >
constexpr StaticVector< Size, Real > & operator+= (const VectorExpression &expression)
 
template<typename VectorExpression >
constexpr StaticVectoroperator-= (const VectorExpression &expression)
 Subtraction operator with a vector expression.
 
template<typename VectorExpression >
constexpr StaticVector< Size, Real > & operator-= (const VectorExpression &expression)
 
template<typename VectorExpression >
constexpr StaticVectoroperator/= (const VectorExpression &expression)
 Elementwise division by a vector expression.
 
template<typename VectorExpression >
constexpr StaticVector< Size, Real > & operator/= (const VectorExpression &expression)
 
constexpr StaticVectoroperator= (const StaticVector &)=default
 Default copy-assignment operator.
 
template<typename VectorExpression >
constexpr StaticVectoroperator= (const VectorExpression &expression)
 Assignment operator with a vector expression.
 
template<typename VectorExpression >
constexpr StaticVector< Size, Real > & operator= (const VectorExpression &expression)
 
constexpr StaticVectoroperator= (StaticVector &&) noexcept=default
 Default move-assignment operator.
 
- Public Member Functions inherited from TNL::Containers::StaticArray< Size, double >
__cuda_callable__ constexpr StaticArray ()=default
 Default constructor.
 
__cuda_callable__ constexpr StaticArray (const double &v)
 Constructor that sets all array components to value v.
 
__cuda_callable__ constexpr StaticArray (const double v[Size])
 Constructor from static array.
 
constexpr StaticArray (const double v[Size])
 
__cuda_callable__ constexpr StaticArray (const StaticArray &v)
 Copy constructor.
 
__cuda_callable__ constexpr StaticArray (const StaticArray< Size, OtherValue > &v)
 Templated copy constructor.
 
constexpr StaticArray (const StaticArray< Size, OtherValue > &v)
 
__cuda_callable__ constexpr StaticArray (const std::array< OtherValue, Size > &array)
 Constructor which initializes the array by copying elements from std::array.
 
__cuda_callable__ constexpr StaticArray (const std::initializer_list< OtherValue > &elems)
 Constructor which initializes the array by copying elements from std::initializer_list, e.g. {...}.
 
constexpr StaticArray (StaticArray &&) noexcept=default
 Move constructor.
 
__cuda_callable__ constexpr StaticArray (std::array< double, Size > &&array)
 Constructor which initializes the array by moving elements from std::array.
 
__cuda_callable__ constexpr StaticArray (Values &&... values)
 Constructor which initializes the array element-by-element using the supplied values.
 
constexpr const double * getData () const noexcept
 Gets constant pointer to data of this static array.
 
constexpr double * getData () noexcept
 Gets pointer to data of this static array.
 
constexpr double getElement (IndexType i) const noexcept
 Returns the value of the i-th element.
 
void load (File &file)
 Loads data from the file to this static array.
 
constexpr bool operator!= (const Array &array) const
 This function checks whether this static array is not equal to another array.
 
constexpr const double & operator() (int i) const noexcept
 Accesses specified element at the position i and returns a constant reference to its value.
 
constexpr double & operator() (int i) noexcept
 Accesses specified element at the position i and returns a reference to its value.
 
constexpr StaticArrayoperator= (const StaticArray &v)
 Copy-assignment operator.
 
constexpr StaticArray< Size, double > & operator= (const T &v)
 Assigns an object v of type T.
 
constexpr StaticArrayoperator= (StaticArray &&) noexcept=default
 Move-assignment operator.
 
constexpr bool operator== (const Array &array) const
 This function checks whether this static array is equal to another array.
 
constexpr const double & operator[] (int i) const noexcept
 Accesses specified element at the position i and returns a constant reference to its value.
 
constexpr double & operator[] (int i) noexcept
 Accesses specified element at the position i and returns a reference to its value.
 
void save (File &file) const
 Saves this static array into the file.
 
constexpr void setElement (IndexType i, ValueType value) noexcept
 Sets the value of the i-th element to value.
 
constexpr void setValue (const ValueType &val)
 Sets all values of this static array to val.
 
constexpr void sort ()
 Sorts the elements in this static array in ascending order.
 
std::ostreamwrite (std::ostream &str, const char *separator=" ") const
 Writes the array values into stream str with specified separator.
 
constexpr const double & x () const noexcept
 Returns constant reference to the first coordinate.
 
constexpr double & x () noexcept
 Returns reference to the first coordinate.
 
constexpr const double & y () const noexcept
 Returns constant reference to the second coordinate for arrays with Size >= 2.
 
constexpr double & y () noexcept
 Returns reference to the second coordinate for arrays with Size >= 2.
 
constexpr const double & z () const noexcept
 Returns constant reference to the third coordinate for arrays with Size >= 3.
 
constexpr double & z () noexcept
 Returns reference to the third coordinate for arrays with Size >= 3.
 

Additional Inherited Members

- Static Public Member Functions inherited from TNL::Containers::StaticArray< Size, double >
static constexpr int getSize ()
 Gets size of this array.
 
- Protected Attributes inherited from TNL::Containers::StaticArray< Size, double >
std::array< double, Size > data
 

Detailed Description

template<int Size, typename Real = double>
class TNL::Containers::StaticVector< Size, Real >

Vector with constant size.

Parameters
SizeSize of static vector. Number of its elements.
RealType of the values in the static vector.

Constructor & Destructor Documentation

◆ StaticVector() [1/2]

template<int Size, typename Real >
template<typename T1 , typename T2 , typename Operation >
TNL::Containers::StaticVector< Size, Real >::StaticVector ( const Expressions::StaticBinaryExpressionTemplate< T1, T2, Operation > & expr)
constexpr

Constructor from binary vector expression.

Parameters
expris binary expression.

◆ StaticVector() [2/2]

template<int Size, typename Real >
template<typename T , typename Operation >
TNL::Containers::StaticVector< Size, Real >::StaticVector ( const Expressions::StaticUnaryExpressionTemplate< T, Operation > & expr)
constexpr

Constructor from unary expression.

Parameters
expris unary expression

Member Function Documentation

◆ operator%=()

template<int Size, typename Real = double>
template<typename VectorExpression >
StaticVector & TNL::Containers::StaticVector< Size, Real >::operator%= ( const VectorExpression & expression)
constexpr

Elementwise modulo by a vector expression.

The vector expression can be even just static vector.

Parameters
expressionis the vector expression
Returns
reference to this vector

◆ operator*=()

template<int Size, typename Real = double>
template<typename VectorExpression >
StaticVector & TNL::Containers::StaticVector< Size, Real >::operator*= ( const VectorExpression & expression)
constexpr

Elementwise multiplication by a vector expression.

The vector expression can be even just static vector.

Parameters
expressionis the vector expression.
Returns
reference to this vector

◆ operator+=()

template<int Size, typename Real = double>
template<typename VectorExpression >
StaticVector & TNL::Containers::StaticVector< Size, Real >::operator+= ( const VectorExpression & expression)
constexpr

Addition operator with a vector expression.

The vector expression can be even just static vector.

Parameters
expressionis the vector expression
Returns
reference to this vector

◆ operator-=()

template<int Size, typename Real = double>
template<typename VectorExpression >
StaticVector & TNL::Containers::StaticVector< Size, Real >::operator-= ( const VectorExpression & expression)
constexpr

Subtraction operator with a vector expression.

The vector expression can be even just static vector.

Parameters
expressionis the vector expression
Returns
reference to this vector

◆ operator/=()

template<int Size, typename Real = double>
template<typename VectorExpression >
StaticVector & TNL::Containers::StaticVector< Size, Real >::operator/= ( const VectorExpression & expression)
constexpr

Elementwise division by a vector expression.

The vector expression can be even just static vector.

Parameters
expressionis the vector expression
Returns
reference to this vector

◆ operator=()

template<int Size, typename Real = double>
template<typename VectorExpression >
StaticVector & TNL::Containers::StaticVector< Size, Real >::operator= ( const VectorExpression & expression)
constexpr

Assignment operator with a vector expression.

The vector expression can be even just static vector.

Parameters
expressionis the vector expression
Returns
reference to this vector

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