Reference documentation for deal.II version 9.6.2
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
internal::VectorOperations Namespace Reference

Classes

struct  AddAndDot
struct  Dot
struct  functions
struct  functions< Number, Number, ::MemorySpace::Default >
struct  functions< Number, Number2, ::MemorySpace::Host >
struct  MeanValue
struct  Norm1
struct  Norm2
struct  NormP
struct  TBBForFunctor
struct  TBBReduceFunctor
struct  Vector_copy
struct  Vector_set
struct  Vectorization_add_av
struct  Vectorization_add_avpbw
struct  Vectorization_add_factor
struct  Vectorization_add_v
struct  Vectorization_equ_au
struct  Vectorization_equ_aubv
struct  Vectorization_equ_aubvcw
struct  Vectorization_multiply_factor
struct  Vectorization_ratio
struct  Vectorization_sadd_xav
struct  Vectorization_sadd_xavbw
struct  Vectorization_sadd_xv
struct  Vectorization_scale
struct  Vectorization_subtract_v

Typedefs

using size_type = types::global_dof_index

Functions

template<typename T>
bool is_non_negative (const T &t)
template<typename T>
bool is_non_negative (const std::complex< T > &)
template<typename T, typename U>
void copy (const T *begin, const T *end, U *dest)
template<typename T, typename U>
void copy (const std::complex< T > *begin, const std::complex< T > *end, std::complex< U > *dest)
template<typename T, typename U>
void copy (const std::complex< T > *, const std::complex< T > *, U *)
template<typename Functor>
void parallel_for (Functor &functor, const size_type start, const size_type end, const std::shared_ptr<::parallel::internal::TBBPartitioner > &partitioner)
template<typename Operation, typename ResultType>
void accumulate_recursive (const Operation &op, const size_type first, const size_type last, ResultType &result)
template<typename Operation, typename ResultType>
size_type do_accumulate (const Operation op, const size_type vec_size, const size_type start_index, ResultType *outer_results, std::bool_constant< false >)
template<typename Operation, typename Number>
size_type do_accumulate (const Operation op, const size_type vec_size, const size_type start_index, Number *outer_results, std::bool_constant< true >)
template<typename Operation, typename ResultType>
void parallel_reduce (const Operation &op, const size_type start, const size_type end, ResultType &result, const std::shared_ptr<::parallel::internal::TBBPartitioner > &partitioner)

Variables

const unsigned int vector_accumulation_recursion_threshold = 128

Typedef Documentation

◆ size_type

Function Documentation

◆ is_non_negative() [1/2]

template<typename T>
bool internal::VectorOperations::is_non_negative ( const T & t)

Definition at line 43 of file vector_operations_internal.h.

◆ is_non_negative() [2/2]

template<typename T>
bool internal::VectorOperations::is_non_negative ( const std::complex< T > & )

Definition at line 51 of file vector_operations_internal.h.

◆ copy() [1/3]

template<typename T, typename U>
void internal::VectorOperations::copy ( const T * begin,
const T * end,
U * dest )

Definition at line 65 of file vector_operations_internal.h.

◆ copy() [2/3]

template<typename T, typename U>
void internal::VectorOperations::copy ( const std::complex< T > * begin,
const std::complex< T > * end,
std::complex< U > * dest )

Definition at line 72 of file vector_operations_internal.h.

◆ copy() [3/3]

template<typename T, typename U>
void internal::VectorOperations::copy ( const std::complex< T > * ,
const std::complex< T > * ,
U *  )

Definition at line 81 of file vector_operations_internal.h.

◆ parallel_for()

template<typename Functor>
void internal::VectorOperations::parallel_for ( Functor & functor,
const size_type start,
const size_type end,
const std::shared_ptr<::parallel::internal::TBBPartitioner > & partitioner )

Definition at line 147 of file vector_operations_internal.h.

◆ accumulate_recursive()

template<typename Operation, typename ResultType>
void internal::VectorOperations::accumulate_recursive ( const Operation & op,
const size_type first,
const size_type last,
ResultType & result )

Definition at line 998 of file vector_operations_internal.h.

◆ do_accumulate() [1/2]

template<typename Operation, typename ResultType>
size_type internal::VectorOperations::do_accumulate ( const Operation op,
const size_type vec_size,
const size_type start_index,
ResultType * outer_results,
std::bool_constant< false >  )

Definition at line 1112 of file vector_operations_internal.h.

◆ do_accumulate() [2/2]

template<typename Operation, typename Number>
size_type internal::VectorOperations::do_accumulate ( const Operation op,
const size_type vec_size,
const size_type start_index,
Number * outer_results,
std::bool_constant< true >  )

Definition at line 1194 of file vector_operations_internal.h.

◆ parallel_reduce()

template<typename Operation, typename ResultType>
void internal::VectorOperations::parallel_reduce ( const Operation & op,
const size_type start,
const size_type end,
ResultType & result,
const std::shared_ptr<::parallel::internal::TBBPartitioner > & partitioner )
inline

This is the general caller for parallel reduction operations that work in parallel.

Definition at line 1411 of file vector_operations_internal.h.

Variable Documentation

◆ vector_accumulation_recursion_threshold

const unsigned int internal::VectorOperations::vector_accumulation_recursion_threshold = 128

The minimum number of chunks (each of size 32) to divide the range [first,last) into two (second part of the if branch in accumulate_recursive).

Definition at line 994 of file vector_operations_internal.h.