libMesh
Classes | Functions
libMesh::Parallel::Utils Namespace Reference

Classes

struct  Convert
 A utility to convert a double to some sort of KeyType, for interpreting how histogram bounds relate to KeyType positions. More...
 
struct  Convert< Hilbert::HilbertIndices >
 
struct  Convert< std::pair< FirstKeyType, SecondKeyType > >
 A pseudoinverse for converting bounds back to pairs of key types. More...
 

Functions

template<typename KeyType >
bool is_sorted (const std::vector< KeyType > &v)
 
template<typename KeyType >
double to_double (const KeyType &k)
 A utility function which converts whatever KeyType is to a double for the histogram bounds. More...
 
template<typename FirstKeyType , typename SecondKeyType >
double to_double (const std::pair< FirstKeyType, SecondKeyType > &k)
 A utility function for pairs of key types. More...
 
template<>
double to_double (const Hilbert::HilbertIndices &bvt)
 

Function Documentation

◆ is_sorted()

template<typename KeyType >
bool libMesh::Parallel::Utils::is_sorted ( const std::vector< KeyType > &  v)
inline
Returns
true if the vector v is sorted, false otherwise.

This was implemented because std::is_sorted() was an STL extension at the time.

Definition at line 52 of file parallel_conversion_utils.h.

Referenced by libMesh::Parallel::BinSorter< KeyType, IdxType >::BinSorter(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::Parallel::Histogram< KeyType, IdxType >::Histogram(), libMesh::DofMap::process_mesh_constraint_rows(), and ParallelSortTest::testSort().

53 {
54  libmesh_deprecated();
55  return std::is_sorted(v.begin(), v.end());
56 }
bool is_sorted(const std::vector< KeyType > &v)

◆ to_double() [1/3]

template<typename KeyType >
double libMesh::Parallel::Utils::to_double ( const KeyType &  k)
inline

A utility function which converts whatever KeyType is to a double for the histogram bounds.

Definition at line 65 of file parallel_conversion_utils.h.

Referenced by libMesh::Parallel::BinSorter< KeyType, IdxType >::binsort(), libMesh::Parallel::Histogram< KeyType, IdxType >::make_histogram(), and to_double().

66 {
67  return static_cast<double>(k);
68 }

◆ to_double() [2/3]

template<typename FirstKeyType , typename SecondKeyType >
double libMesh::Parallel::Utils::to_double ( const std::pair< FirstKeyType, SecondKeyType > &  k)
inline

A utility function for pairs of key types.

When finding bounds, the second entry of the pair is effectively "rounded away".

Definition at line 107 of file parallel_conversion_utils.h.

References to_double().

108 {
109  return to_double(k.first);
110 }
double to_double(const Hilbert::HilbertIndices &bvt)

◆ to_double() [3/3]

template<>
double libMesh::Parallel::Utils::to_double ( const Hilbert::HilbertIndices &  bvt)
inline

Definition at line 117 of file parallel_conversion_utils.h.

118 {
119  return static_cast<double>(bvt.rack2);
120 }