|
|
using | value_type = T |
| |
|
using | size_type = size_t |
| |
|
using | difference_type = std::ptrdiff_t |
| |
|
using | BaseType = blaze::CustomVector< T, blaze::AlignmentFlag::unaligned, blaze::PaddingFlag::unpadded, blaze::defaultTransposeFlag, blaze_default_group, VectorType > |
| |
|
using | ElementType = T |
| |
|
using | TransposeType = VectorImpl< T, VectorType > |
| |
|
using | CompositeType = const VectorImpl< T, VectorType > & |
| |
|
using | iterator = typename BaseType::Iterator |
| |
|
using | const_iterator = typename BaseType::ConstIterator |
| |
|
| | VectorImpl (size_t set_size) noexcept |
| | Create with the given size. In debug mode, the vector is initialized to 'NaN' by default. If not initialized to 'NaN', the memory is allocated but not initialized. More...
|
| |
| | VectorImpl (size_t set_size, T value) noexcept |
| | Create with the given size and value. More...
|
| |
|
| VectorImpl (T *start, size_t set_size) noexcept |
| | Create a non-owning VectorImpl that points to start
|
| |
|
template<class U , Requires< std::is_same_v< U, T > > = nullptr> |
| | VectorImpl (std::initializer_list< U > list) noexcept |
| | Create from an initializer list of T.
|
| |
|
| VectorImpl ()=default |
| | Empty VectorImpl.
|
| |
|
VectorImpl & | operator= (const T &rhs) noexcept |
| |
| void | destructive_resize (const size_t new_size) noexcept |
| | A common operation for checking the size and resizing a memory buffer if needed to ensure that it has the desired size. This operation is not permitted on a non-owning vector. More...
|
| |
|
bool | is_owning () const noexcept |
| | Returns true if the class owns the data.
|
| |
|
void | pup (PUP::er &p) noexcept |
| | Serialization for Charm++.
|
| |
|
template<typename T , typename VectorType > |
| | VectorImpl (const VectorImpl< T, VectorType > &rhs) noexcept |
| |
|
template<typename T , typename VectorType > |
| | VectorImpl (VectorImpl< T, VectorType > &&rhs) noexcept |
| |
|
| const BaseType & | operator* () const noexcept |
| | Upcast to BaseType More...
|
| |
| BaseType & | operator* () noexcept |
| | Upcast to BaseType More...
|
| |
|
|
void | set_data_ref (gsl::not_null< VectorType * > rhs) noexcept |
| | Set the VectorImpl to be a reference to another VectorImpl object.
|
| |
|
void | set_data_ref (T *const start, const size_t set_size) noexcept |
| | Set the VectorImpl to be a reference to another VectorImpl object.
|
| |
template<typename T, typename VectorType>
class VectorImpl< T, VectorType >
Base class template for various DataVector and related types.
Details
The VectorImpl class is the generic parent class for vectors representing collections of related function values, such as DataVectors for contiguous data over a computational domain.
The VectorImpl does not itself define any particular mathematical operations on the contained values. The VectorImpl template class and the macros defined in VectorImpl.hpp assist in the construction of various derived classes supporting a chosen set of mathematical operations.
In addition, the equivalence operator == is inherited from the underlying blaze::CustomVector type, and returns true if and only if the size and contents of the two compared vectors are equivalent.
Template parameters:
T is the underlying stored type, e.g. double, std::complex<double>, float, etc.
VectorType is the type that should be associated with the VectorImpl during mathematical computations. In most cases, inherited types should have themselves as the second template argument, e.g.
Stores a collection of function values.
Definition: DataVector.hpp:46
Base class template for various DataVector and related types.
Definition: VectorImpl.hpp:80
The second template parameter communicates arithmetic type restrictions to the underlying Blaze framework. For example, if VectorType is DataVector, then the underlying architecture will prevent addition with a vector type whose ResultType (which is aliased to its VectorType) is ModalVector. Since DataVectors and ModalVectors represent data in different spaces, we wish to forbid several operations between them. This vector-type-tracking through an expression prevents accidental mixing of vector types in math expressions.
- Note
- If created with size 0, then
data() will return nullptr
- If either
SPECTRE_DEBUG or SPECTRE_NAN_INIT are defined, then the VectorImpl is default initialized to signaling_NaN(). Otherwise, the vector is filled with uninitialized memory for performance.