deal.II version GIT relicensing-2165-gc91f007519 2024-11-20 01:40:00+00:00
\(\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
Classes | Typedefs | Functions | Variables
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

Definition at line 39 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 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.