Reference documentation for deal.II version 9.3.3
\(\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\}}\)
Classes | Typedefs | Functions | Variables
internal::VectorOperations Namespace Reference

Classes

struct  AddAndDot
 
struct  Dot
 
struct  functions
 
struct  functions< Number, Number, ::MemorySpace::CUDA >
 
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 >
void accumulate_regular (const Operation &op, const size_type &n_chunks, size_type &index, ResultType(&outer_results)[vector_accumulation_recursion_threshold], std::integral_constant< bool, false >)
 
template<typename Operation , typename Number >
void accumulate_regular (const Operation &op, size_type &n_chunks, size_type &index, Number(&outer_results)[vector_accumulation_recursion_threshold], std::integral_constant< bool, 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

Definition at line 42 of file vector_operations_internal.h.

Function Documentation

◆ is_non_negative() [1/2]

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

Definition at line 46 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 54 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 68 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 75 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 84 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 150 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 990 of file vector_operations_internal.h.

◆ accumulate_regular() [1/2]

template<typename Operation , typename ResultType >
void internal::VectorOperations::accumulate_regular ( const Operation &  op,
const size_type n_chunks,
size_type index,
ResultType(&)  outer_results[vector_accumulation_recursion_threshold],
std::integral_constant< bool, false >   
)

Definition at line 1128 of file vector_operations_internal.h.

◆ accumulate_regular() [2/2]

template<typename Operation , typename Number >
void internal::VectorOperations::accumulate_regular ( const Operation &  op,
size_type n_chunks,
size_type index,
Number(&)  outer_results[vector_accumulation_recursion_threshold],
std::integral_constant< bool, true >   
)

Definition at line 1166 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 
)

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

Definition at line 1354 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 986 of file vector_operations_internal.h.