libMesh
Classes | Namespaces | Functions
utility.h File Reference

Go to the source code of this file.

Classes

class  libMesh::Utility::is_streamable< T >
 Helper struct for enabling template metaprogramming/SFINAE. More...
 
struct  libMesh::Utility::do_pow< N, T >
 An efficient template instantiation for raising to an arbitrary integer power. More...
 
struct  libMesh::Utility::do_pow< 6, T >
 
struct  libMesh::Utility::do_pow< 1, T >
 
struct  libMesh::Utility::do_pow< 0, T >
 
class  libMesh::Utility::ReverseBytes
 This Functor simply takes an object and reverses its byte representation. More...
 
struct  libMesh::Utility::CompareUnderlying
 Struct which defines a custom comparison object that can be used with std::sets of std::unique_ptrs. More...
 

Namespaces

 libMesh
 The libMesh namespace provides an interface to certain functionality in the library.
 
 libMesh::Utility
 

Functions

std::string libMesh::Utility::system_info ()
 
template<typename Map , typename Key , typename std::enable_if<!is_streamable< Key >::value, Key >::type * = nullptr>
Map::mapped_type & libMesh::Utility::map_find (Map &map, const Key &key, const char *filename, int line_number)
 -Wdangling-reference was nowhere near ready to add to -Wall in gcc 13. More...
 
template<typename Map , typename Key , typename std::enable_if<!is_streamable< Key >::value, Key >::type * = nullptr>
const Map::mapped_type & libMesh::Utility::map_find (const Map &map, const Key &key, const char *filename, int line_number)
 A version of the function above that works for const objects. More...
 
template<typename Vector >
Vector::reference & libMesh::Utility::vector_at (Vector &vec, typename Vector::size_type i, const char *filename, int line_number)
 A replacement for std::vector::at(i) which is meant to be used with a macro, and, unlike at(), gives a proper line number and useful error message when the index is past the end. More...
 
template<typename Vector >
Vector::const_reference & libMesh::Utility::vector_at (const Vector &vec, typename Vector::size_type i, const char *filename, int line_number)
 Same as above, but for const inputs. More...
 
template<typename ForwardIter , typename T >
void libMesh::Utility::iota (ForwardIter first, ForwardIter last, T value)
 Utility::iota was created back when std::iota was just an SGI STL extension. More...
 
template<class InputIterator >
bool libMesh::Utility::is_sorted (InputIterator first, InputIterator last)
 Utility::is_sorted was created back when std::is_sorted was just an SGI STL extension. More...
 
template<class ForwardIterator , class T >
ForwardIterator libMesh::Utility::binary_find (ForwardIterator first, ForwardIterator last, const T &value)
 The STL provides std::binary_search() which returns true or false depending on whether the searched-for value is found. More...
 
template<class ForwardIterator , class T , class Compare >
ForwardIterator libMesh::Utility::binary_find (ForwardIterator first, ForwardIterator last, const T &value, Compare comp)
 As above, but takes a custom comparison object. More...
 
template<int N, typename T >
libMesh::Utility::pow (const T &x)
 
unsigned int libMesh::Utility::factorial (unsigned int n)
 A simple implementation of the factorial. More...
 
template<typename T >
libMesh::Utility::binomial (T n, T k)
 
template<typename T >
void libMesh::Utility::deallocate (std::vector< T > &vec)
 A convenient method to truly empty a vector using the "swap trick". More...
 
std::string_view libMesh::Utility::basename_of (const std::string &fullname)
 
std::string libMesh::Utility::complex_filename (std::string basename, unsigned int r_o_c=0)
 
void libMesh::Utility::prepare_complex_data (const std::vector< Complex > &source, std::vector< Real > &real_part, std::vector< Real > &imag_part)
 Prepare complex data for writing. More...
 
int libMesh::Utility::mkdir (const char *pathname)
 Create a directory. More...
 
std::string libMesh::Utility::unzip_file (std::string_view name)
 Create an unzipped copy of a bz2 or xz file, returning the name of the now-unzipped file that can be directly opened. More...