Galois
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Traits.h File Reference
#include <tuple>
#include <type_traits>
#include "galois/config.h"
#include "galois/worklists/WorkList.h"

Go to the source code of this file.

Classes

struct  galois::trait_has_type< T >
 
struct  galois::trait_has_value< T >
 
struct  galois::trait_has_svalue< T, V >
 
struct  galois::get_trait_type< T, Tuple >
 Returns the type associated with the given trait in a tuple. More...
 
struct  galois::function_traits< T, Enable >
 
struct  galois::function_traits< T, typename std::enable_if< has_function_traits< T >(0)>::type >
 
struct  galois::loopname_tag
 Indicate name to appear in statistics. More...
 
struct  galois::loopname
 
struct  galois::steal_tag
 Indicate whetherlink do_all()} loops should perform work-stealing. More...
 
struct  galois::steal
 
struct  galois::wl_tag
 Indicates worklist to use. More...
 
struct  galois::s_wl< T, Args >
 
struct  galois::parallel_break_tag
 Indicates the operator may request the parallel loop to be suspended and a given function run in serial. More...
 
struct  galois::parallel_break
 
struct  galois::no_pushes_tag
 Indicates the operator does not generate new work and push it on the worklist. More...
 
struct  galois::no_pushes
 
struct  galois::per_iter_alloc_tag
 Indicates the operator may request the access to a per-iteration allocator. More...
 
struct  galois::per_iter_alloc
 
struct  galois::no_stats_tag
 Indicates the operator doesn't need its execution stats recorded. More...
 
struct  galois::no_stats
 
struct  galois::more_stats_tag
 Indicates the operator needs detailed stats Must provide loopname to enable this flag. More...
 
struct  galois::more_stats
 
struct  galois::no_conflicts_tag
 Indicates the operator doesn't need abort support. More...
 
struct  galois::no_conflicts
 
struct  galois::fixed_neighborhood_tag
 Indicates that the neighborhood set does not change through out i.e. More...
 
struct  galois::fixed_neighborhood
 
struct  galois::intent_to_read_tag
 Indicates that the operator uses the intent to read flag. More...
 
struct  galois::intent_to_read
 
struct  galois::neighborhood_visitor_tag
 Indicates the operator has a function that visits the neighborhood of the operator without modifying it. More...
 
struct  galois::neighborhood_visitor< T >
 
struct  galois::det_parallel_break_tag
 Indicates the operator has a function that allows a galois::for_each loop to be exited deterministically. More...
 
struct  galois::det_parallel_break< T >
 
struct  galois::det_id_tag
 Indicates the operator has a function that optimizes the generation of unique ids for active elements. More...
 
struct  galois::det_id< T >
 
struct  galois::local_state_tag
 Indicates the operator has a type that encapsulates state that is passed between the suspension and resumpsion of an operator during deterministic scheduling. More...
 
struct  galois::local_state< T >
 
struct  galois::op_tag
 For distributed Galois. More...
 
struct  galois::chunk_size_tag
 
struct  galois::chunk_size< SZ >
 Specify chunk size for do_all_coupled & do_all_choice at compile time or at runtime. More...
 

Namespaces

 galois
 The Galois namespace containing all Galois structures and functions.
 

Functions

template<template< typename...> class TT, typename... Args>
auto galois::make_trait_with_args (Args...args) -> TT< Args...>
 Utility function to simplify creating traits that take unnamed functions (i.e., lambdas). More...
 
template<typename T , typename Tuple , size_t Int, size_t... Ints>
constexpr size_t galois::find_trait (std::index_sequence< Int, Ints...>)
 Returns index of first matching trait in Tuple. More...
 
template<typename T , typename Tuple >
constexpr size_t galois::find_trait ()
 
template<typename T , typename... Ts>
constexpr bool galois::has_trait (std::tuple< Ts...> *)
 Returns true if the tuple type contains the given trait T. More...
 
template<typename T , typename Tuple >
constexpr bool galois::has_trait ()
 
template<typename T , typename Tuple >
constexpr auto galois::get_trait_value (Tuple tpl)
 Returns the value associated with the given trait T in a tuple. More...
 
template<typename S , typename T , typename D >
constexpr auto galois::get_default_trait_value (S, T, D, typename std::enable_if< has_trait< T, S >()>::type *=nullptr)
 
template<typename S , typename T , typename D >
constexpr auto galois::get_default_trait_value (S GALOIS_UNUSED(source), T GALOIS_UNUSED(tags), D defaults, typename std::enable_if<!has_trait< T, S >()>::type *=nullptr)
 
template<typename S , typename T , typename D >
constexpr auto galois::get_default_trait_values (std::index_sequence<> GALOIS_UNUSED(seq), S GALOIS_UNUSED(source), T GALOIS_UNUSED(tags), D GALOIS_UNUSED(defaults))
 Returns a tuple that has an element from defaults[i] for every type from tags[i] missing in source. More...
 
template<size_t... Ints, typename S , typename T , typename D >
constexpr auto galois::get_default_trait_values (std::index_sequence< Ints...> GALOIS_UNUSED(seq), S source, T tags, D defaults)
 
template<typename S , typename T , typename D >
constexpr auto galois::get_default_trait_values (S source, T tags, D defaults)
 
template<typename T >
constexpr auto galois::has_function_traits (int) -> decltype(std::declval< typename T::function_traits >(), bool())
 
template<typename >
constexpr auto galois::has_function_traits (...) -> bool
 

Variables

template<typename Base , typename Derived >
constexpr bool galois::at_least_base_of
 True if Derived is derived from Base or is Base itself. More...
 
typedef
worklists::PerSocketChunkFIFO
< chunk_size<>::value > 
galois::defaultWL
 
template<typename T , typename... Args>
s_wl< T, Args...> galois::wl (Args &&...args)