![]() |
Reference documentation for deal.II version 9.6.0
|
#include <deal.II/base/aligned_vector.h>
Public Member Functions | |
AlignedVectorInitialize (const std::size_t size, const T &element, T *const destination) | |
virtual void | apply_to_subrange (const std::size_t begin, const std::size_t end) const override |
Private Member Functions | |
void | copy_construct_or_assign (const std::size_t begin, const std::size_t end, std::bool_constant< false >) const |
void | copy_construct_or_assign (const std::size_t begin, const std::size_t end, std::bool_constant< true >) const |
void | apply_parallel (const std::size_t begin, const std::size_t end, const std::size_t minimum_parallel_grain_size) const |
Private Attributes | |
const T & | element_ |
T * | destination_ |
bool | trivial_element |
Static Private Attributes | |
static const std::size_t | minimum_parallel_grain_size |
A class that given a range of memory locations either calls the placement-new operator on these memory locations (if initialize_memory==true
) or just copies the given initializer into this memory location (if initialize_memory==false
). The latter is appropriate for classes that have only trivial constructors, such as the built-in types double
, int
, etc., and structures composed of such types.
initialize_memory | Determines whether the set command should initialize memory (with a call to the copy constructor) or rather use the copy assignment operator. A template is necessary to select the appropriate operation since some classes might define only one of those two operations. |
Definition at line 897 of file aligned_vector.h.
|
inline |
Constructor. Issues a parallel call if there are sufficiently many elements, otherwise work in serial.
Definition at line 907 of file aligned_vector.h.
|
inlineoverridevirtual |
This sets elements on a subrange given by two integers.
Implements parallel::ParallelForInteger.
Definition at line 943 of file aligned_vector.h.
|
inlineprivate |
Definition at line 967 of file aligned_vector.h.
|
inlineprivate |
Definition at line 977 of file aligned_vector.h.
|
inlineinherited |
This function runs the for loop over the given range [lower,upper)
, possibly in parallel when end-begin is larger than the minimum parallel grain size. This function is marked const because it any operation that changes the data of a derived class will inherently not be thread-safe when several threads work with the same data simultaneously.
Definition at line 743 of file parallel.h.
|
staticprivate |
Definition at line 899 of file aligned_vector.h.
|
private |
Definition at line 961 of file aligned_vector.h.
|
mutableprivate |
Definition at line 962 of file aligned_vector.h.
|
private |
Definition at line 963 of file aligned_vector.h.