Galois
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
gstl.h File Reference
#include <algorithm>
#include <iterator>
#include <utility>
#include <cassert>
#include <vector>
#include <set>
#include <deque>
#include <map>
#include <list>
#include <string>
#include <sstream>
#include "galois/config.h"
#include "galois/PriorityQueue.h"

Go to the source code of this file.

Classes

struct  galois::gstl::StrMaker< T >
 
struct  galois::gstl::StrMaker< std::string >
 
struct  galois::gstl::StrMaker< Str >
 
struct  galois::gstl::StrMaker< const char * >
 
class  galois::IterRange< I >
 
class  galois::SerFIFO< T, C >
 
class  galois::SerStack< T, C >
 

Namespaces

 galois
 The Galois namespace containing all Galois structures and functions.
 
 galois::gstl
 Standard library structures that use Galois allocators.
 

Typedefs

template<typename T >
using galois::gstl::Pow2Alloc = typename runtime::Pow_2_BlockAllocator< T >
 [define Pow_2_VarSizeAlloc] More...
 
template<typename T >
using galois::gstl::FixedSizeAlloc = typename runtime::FixedSizeAllocator< T >
 [define Pow_2_VarSizeAlloc] More...
 
template<typename T >
using galois::gstl::Vector = std::vector< T, Pow2Alloc< T >>
 [STL vector using Pow_2_VarSizeAlloc] More...
 
template<typename T >
using galois::gstl::Deque = std::deque< T, Pow2Alloc< T >>
 [STL vector using Pow_2_VarSizeAlloc] More...
 
template<typename T >
using galois::gstl::List = std::list< T, FixedSizeAlloc< T >>
 
template<typename T , typename C = std::less<T>>
using galois::gstl::Set = std::set< T, C, FixedSizeAlloc< T >>
 
template<typename K , typename V , typename C = std::less<K>>
using galois::gstl::Map = std::map< K, V, C, FixedSizeAlloc< std::pair< const K, V >>>
 
template<typename K , typename V , typename Hash = std::hash<K>, typename KeyEqual = std::equal_to<K>>
using galois::gstl::UnorderedMap = std::unordered_map< K, V, Hash, KeyEqual, FixedSizeAlloc< std::pair< const K, V >>>
 
template<typename T , typename C = std::less<T>>
using galois::gstl::PQ = MinHeap< T, C, Vector< T >>
 
using galois::gstl::Str = std::basic_string< char, std::char_traits< char >, Pow2Alloc< char >>
 

Functions

template<typename T >
Str galois::gstl::makeStr (const T &x)
 
template<typename I >
auto galois::makeIterRange (const I &beg, const I &end)
 
template<typename C >
auto galois::makeIterRange (C &&cont)
 
template<typename IterTy , class Distance >
IterTy galois::safe_advance_dispatch (IterTy b, IterTy e, Distance n, std::random_access_iterator_tag)
 
template<typename IterTy , class Distance >
IterTy galois::safe_advance_dispatch (IterTy b, IterTy e, Distance n, std::input_iterator_tag)
 
template<typename IterTy , class Distance >
IterTy galois::safe_advance (IterTy b, IterTy e, Distance n)
 Like std::advance but returns end if end is closer than the advance amount. More...
 
template<typename IterTy >
IterTy galois::split_range (IterTy b, IterTy e)
 Finds the midpoint of a range. More...
 
template<typename IterTy , typename std::enable_if<!std::is_integral< IterTy >::value >::type * = nullptr>
std::pair< IterTy, IterTy > galois::block_range (IterTy b, IterTy e, unsigned id, unsigned num)
 Returns a continuous block from the range based on the number of divisions and the id of the block requested. More...
 
template<typename IntTy , typename std::enable_if< std::is_integral< IntTy >::value >::type * = nullptr>
std::pair< IntTy, IntTy > galois::block_range (IntTy b, IntTy e, unsigned id, unsigned num)
 
template<typename I >
std::enable_if_t
<!std::is_scalar
< internal::Val_ty< I >
>::value > 
galois::uninitialized_destroy (I first, I last)
 Destroy a range. More...
 
template<class I >
std::enable_if_t
< std::is_scalar
< internal::Val_ty< I >
>::value > 
galois::uninitialized_destroy (I, I)