Reference documentation for deal.II version 9.5.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::integral_constant< bool, false >) const |
void | copy_construct_or_assign (const std::size_t begin, const std::size_t end, std::integral_constant< bool, 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 868 of file aligned_vector.h.
|
inline |
Constructor. Issues a parallel call if there are sufficiently many elements, otherwise work in serial.
Definition at line 878 of file aligned_vector.h.
|
inlineoverridevirtual |
This sets elements on a subrange given by two integers.
Implements parallel::ParallelForInteger.
Definition at line 914 of file aligned_vector.h.
|
inlineprivate |
Definition at line 937 of file aligned_vector.h.
|
inlineprivate |
Definition at line 947 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 723 of file parallel.h.
|
staticprivate |
Definition at line 870 of file aligned_vector.h.
|
private |
Definition at line 931 of file aligned_vector.h.
|
mutableprivate |
Definition at line 932 of file aligned_vector.h.
|
private |
Definition at line 933 of file aligned_vector.h.