STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
stapl Namespace Reference

Namespaces

 runtime
 STAPL Runtime System implementation classes and functions.
 

Classes

struct  _Hashtable_const_iterator
 Iterator over the hashtable. More...
 
struct  _Hashtable_iterator
 Iterator over the hashtable. More...
 
class  accessor_base
 Accessor base class. Provides the basic operation for read and write values. More...
 
class  accessor_core_access
 Helper class to access the private methods of the given accessor. More...
 
struct  accessor_traits
 Metafunction that defines traits for accessors. More...
 
struct  add_edge_aggregator
 Adds edges to the graph. More...
 
struct  add_edge_aggregator< Cont, true >
 Adds edges with properties to the graph. More...
 
struct  add_edge_helper
 Helper to infer the property of the base class based on the current edge descriptor and adaptor and add an edge. More...
 
struct  add_edge_helper< OVGraph, typename OVGraph::edge_descriptor, use_default >
 Helper to infer the property of the base class based on the current edge descriptor and adaptor and add an edge. More...
 
class  add_edge_profiler
 
class  add_edge_profiler_bgl
 
class  add_svertex_wf
 Add a super vertex to a hierarchical graph. More...
 
struct  add_task_helper
 Functor used to call paragraph_impl::paragraph_view::add_task() from PARAGRAPH factories. More...
 
struct  add_task_helper< WF, true >
 Specialization for dynamic work functions that adds the paragraph_impl::paragraph_view as the first view in the task specification. More...
 
struct  add_to_supervertex
 Functor adding a vertex to a super-vertex. More...
 
struct  add_vertex_helper
 Helper to infer the property of the base class based on the current property and adaptor and add a vertex. More...
 
struct  add_vertex_helper< OVGraph, use_default >
 Helper to infer the property of the base class based on the current property and adaptor and add a vertex. More...
 
class  add_vertex_profiler_bgl
 
class  adjacency_graph_view
 A graph view using adaptors for vertex and edge properties. More...
 
class  adjacency_list_hashmap_storage
 An adjacency list using an unordered map for storing vertices.Used inside the adjacency_list_model to store vertices. More...
 
class  adjacency_list_impl
 Adjacency list of a vertex implemented as a vector of edges.Used inside the vertex_adj_list_impl to store adjacent edges. More...
 
class  adjacency_list_model
 This model describes operations on a graph that is modeled as an adjacency-list. Adjacency-lists store a list of vertices where each vertex has a list of edges to its adjacents. More...
 
class  adjacency_list_vector_storage
 An adjacency list using an std::vector for storing vertices.Used inside the adjacency_list_model to store vertices. More...
 
struct  affinity_tag
 Describes the affinity of a location. More...
 
class  aggregated_edge_subview
 View that provides access to an aggregated collection of task data flow values from the edge_container. More...
 
class  aggregated_edge_view
 Provides access to a dynamically selected group of values in the edge_container. The index type of the view, instead of being a single task identifier is logically a sequence of task identifiers. More...
 
struct  aggregator
 Applies Elem::operator() to vertex-property of Elem.target(). More...
 
struct  aggregator_apply
 Applies WF::operator() to a pointer to the graph on the target location and an Elem. More...
 
struct  aggregator_apply_impl
 Aggregates requests to apply a functor (WF) on the element (Elem). More...
 
struct  aggregator_base
 Base class for aggregators. More...
 
struct  all_locations_t
 Tag type to represent all locations of a gang. More...
 
class  anonymous_executor
 Provides support for getting a p_object on the gang of stapl_main(). More...
 
struct  apply_functor
 Work function which applies the given functor to its argument. More...
 
class  arbitrary_mesh_collapser
 Functor partitioning an arbitrary mesh by projecting its cells on axes and then calling a 1D balanced partitioner. More...
 
struct  arbitrary_partition_info
 Representation of a partition in the specification of an arbitrary distribution. More...
 
class  arbitrary_priority_scheduler
 Arbitrary priority scheduler that supports any type of priority. More...
 
struct  are_basic
 Returns if the types T are basic types. More...
 
class  array
 Parallel array container.Parallel sequence container with fixed size. By default, its GID type is a std::size_t, which represents the position of values in the array. More...
 
class  array_base_container
 The base container used for array. More...
 
struct  array_base_container_traits
 Default traits for the array base container. Specifies customizable type parameters that could be changed on a per-container basis. More...
 
class  array_ro_view
 One dimensional read only array view. More...
 
struct  array_traits
 Default traits for the array container. Specifies customizable type parameters that could be changed on a per-container basis. More...
 
class  array_view
 One dimensional array view. More...
 
struct  assign
 Work function which assigns the value of the first argument to the second. More...
 
class  associative_sequence
 Generates a sequence of std::pair<K, V> elements. More...
 
struct  async_transmitter
 Transmitter for Directory that sends requests using async_rmi(). More...
 
struct  aux_info
 Struct used to as temporary storage for the information required to compute list ranking over the list of base containers. More...
 
struct  aux_info_wrapper
 Defines a wrapper over the auxiliary information to provide the interface required for the execution of tasks. More...
 
struct  balance_map
 Computes a balanced mapping of ids to partitions. More...
 
struct  balance_map< 1, GID, Index, ContainerGID, CID >
 Computes a balanced mapping of ids to partitions in a one dimensional space. This is a specialization of the multi-dimension map function. More...
 
struct  balance_ndim_to_linear_map
 Computes the mapping of an n-dimensional component id to a linear location id in a balanced manner. More...
 
struct  balance_neighbor_partitions_wf
 Work function to balance 2 neighboring partitions in a diffusive fashion according to the independent set. More...
 
struct  balanced_partition
 Partition a one-dimensional domain into balanced subdomains. More...
 
struct  band_partition
 Partition to construct reference the elements in a band matrix. More...
 
struct  base_container_metadata
 Class for computing the metadata of base-containers. This class contains information needed to determine the locality metadata information for a base container. More...
 
struct  base_container_ordering
 Defines an object that keeps track of the ordering of base containers in a pContainer. More...
 
struct  base_view
 Base class to tag views. More...
 
class  basic_array_base_container
 A basic base container for array. This class differs from array_base_container in that it cannot be modified through traits. Its domain is indexed_domain. More...
 
class  basic_manager
 Implementation of common manager with balanced partition and block mapper. Implemented directly in terms of general manager, but reduces symbol length, compilation effort. Used in static_array implementation. More...
 
struct  bc_base
 Common base class for all base containers in the container framework. Use for single pointer type in base_container_ordering. More...
 
class  bfs_internal_profiler
 
class  bfs_internal_profiler_bgl
 
class  bfs_profiler
 
class  bfs_profiler_bgl
 
struct  binary_negate
 Function which returns whether its arguments were not matched by the given predicate. More...
 
class  binder1st
 Functor representing the result of binding the first argument of the given operation to the stored value. More...
 
class  binder2nd
 Functor representing the result of binding the second argument of the given operation to the stored value. More...
 
class  binder3rd
 Functor representing the result of binding the third argument of the given operation to the stored value. More...
 
struct  bit_and
 Function which returns the bitwise and of its arguments. More...
 
struct  bit_or
 Function which returns the bitwise or of its arguments. More...
 
struct  bit_xor
 Function which returns the bitwise xor of its arguments. More...
 
struct  bitreverse
 Given a value this functor computes its bitreversed value by considering the least signficant bits specified by ceil(log2(max)) More...
 
struct  bitreverse_map_function
 Mapping function used for views over bitreversed containers. More...
 
struct  bitwise_wrapper
 Wrapper class for a bitwise packed members. More...
 
class  blk_cyclic_part
 Partition a one-dimensional domain cyclically into subdomains with a fixed block size. More...
 
struct  block_map
 Computes a block mapping of ids to partitions. More...
 
class  block_partitioner
 Partition a one-dimensional domain into subdomains with a fixed block size. More...
 
class  block_sequence
 Generates a repeating sequence of values. More...
 
struct  build_centroids_wf
 Functor to compute the centroid of a cell. More...
 
struct  callable_traits
 Callable introspection class. More...
 
class  callback
 Registers the given function as a callback to be called when a primitive is called in the registering context. More...
 
struct  cast_container_view
 Helper class to change the container type and mapping function of the given View to the base container type C and the composition of all mapping functions encountered in the View containers. More...
 
struct  cast_container_view< array_ro_view< OldC, Params... >, NewC >
 Specialization ensures container transform for variadic based optionals is used. More...
 
struct  cast_container_view< array_view< OldC, Params... >, NewC >
 Specialization ensures container transform for variadic based optionals is used. More...
 
struct  cast_container_view< graph_view< OldC >, NewC >
 Specialization ensures container transform. More...
 
struct  cast_container_view< hgraph_view< OldC >, NewC >
 Specialization ensures container transform. More...
 
struct  cast_container_view< overlap_view< View >, NewC >
 Specialization for changing the container used for an overlap segmented view. More...
 
struct  cast_container_view< repeat_view< OldC >, NewC >
 Specialization ensures container transform for variadic based optionals is used. More...
 
struct  cast_container_view< segmented_view< C, P, MFG, SVC >, NewC >
 Specialization for changing the container used for a segmented view. More...
 
struct  cast_container_view< use_default, C >
 Specialization of cast_container_view when the given view is tagged to be default. More...
 
struct  cast_container_view< vector_view< OldC, Params... >, NewC >
 Specialization ensures container transform for variadic based optionals is used. More...
 
struct  cast_container_view_preserve_mapfunc< View< OldC, OptionalParams... >, NewC >
 Specialization of cast_container_view that preserves the mapping function of the original view (doesn't compose it with the mapping functions of the underlying views). More...
 
class  cell_property
 Default property for a mesh cell. More...
 
struct  choose_wf
 Default implementation of a functor to choose between fine-grain and coarse-grain work functions when specifying the tasks of a PARAGRAPH. More...
 
struct  choose_wf< composition::map_view< T > >
 Specialization for factories that receive a composition::map_view for which they will specify tasks. More...
 
struct  choose_wf< detail::row_slice_view< MTLRowSlice > >
 Specialization for factories that receive a detail::row_slice_view for which they will specify tasks. More...
 
struct  choose_wf< partitioned_mix_view< View, Part >, false >
 Specialization for factories that receive coarsened views for which they will specify tasks. More...
 
struct  choose_wf< View, true >
 Default implementation of a functor to choose between fine-grain and coarse-grain work functions when specifying the tasks of a PARAGRAPH. More...
 
class  chunker
 Support class for the sliding window implementation. More...
 
class  circular_lifeline_steal
 Steal in a circular way (always advance to the right neighbor of the last victim stealing policy. Avoids stealing from the same location if it didn't have anything the last time. More...
 
class  circular_steal
 Steal in a circular way (always advance to the right neighbor of the last victim stealing policy. More...
 
class  clock_gettime_timer
 Time counter that uses clock_gettime() in POSIX systems. More...
 
struct  cmr_base
 Work function that uses the fine-grain map and reduce operations provided to stapl::map_reduce to implement a coarse-grain operation that aggregates multiple calls with a for loop into a single result. More...
 
struct  cmr_base< Map, ::stapl::logical_and< bool > >
 Specialization of the coarsened map-reduce operation for logical_and as the reduce operation. If the fine-grain map operation returns false the coarsened operation returns false immediately without applying the map operation to the remaining sets of elements from the views. More...
 
struct  cmr_base< Map, ::stapl::logical_or< bool > >
 Specialization of the coarsened map-reduce operation for stapl::logical_or as the reduce operation. If the fine-grain map operation returns true the coarsened operation returns true immediately without applying the map operation to the remaining sets of elements from the views. More...
 
struct  coarse_assign
 Performs assignment of all values from one view to the elements of another. More...
 
struct  coarse_assign_helper
 Based on boolean parameter, dispatch logical invocation of the assignment operator on two view ranges either to a simple for loop or the destination view's set_elements member function. More...
 
struct  coarse_identity
 A workaround for the cases that a multidimensional coarsened view is passed to stapl::identity<T>. This struct brings a multidimensional coarsened view to PARAGRAPH environment. More...
 
struct  coarse_map_reduce_wf
 Work function that implements the coarsened map reduce operation and reflects the result_type defined by the fine-grain reduce operation. More...
 
struct  coarse_map_reduce_wf< Map, Reduce, false >
 Work function that implements the coarsened map reduce operation and uses the struct result to determine the result_type because the fine-grain reduce operation does not reflect a result_type. More...
 
class  coarse_map_wf
 Work function that wraps a fine-grain map operation in a loop in order to process coarse-grain view elements provided to PARAGRAPHs that are instances of map computations. More...
 
struct  coarse_swap_ranges
 Work function that swaps the values between two views. More...
 
struct  coarsen_all_but_last
 Functor to coarsen a set of given views, where the last view in the given set of views is coarsened using the null_coarsener. More...
 
struct  coarsen_views_native
 Helper functor to construct the coarsened view (partitioned_mix_view) for each view in the given set of views, using the native coarsen metadata partition. More...
 
struct  coarsened_wf
 Wrapper class around workfunction that a factory can detect, signaling that workfunction is designed to work on coarsened view data. More...
 
class  colocation
 Initial implementation of view colocation strategy that copies readonly data to the task's execution location to avoid excessive, fine grain communication. Assume a dense read pattern of these views.This implementation exists to fix performance problem with stapl::copy, currently the only user of the interface. (Hence only two view version of function operator). More...
 
class  common_view
 This class contains functionality that EVERY view must provide. More...
 
struct  compose_func
 Mapping functions composition. Compose two given mapping functions f(g(x)). More...
 
struct  compose_func< F, f_ident< T > >
 Specialization when the inner mapping function is identity. More...
 
struct  compose_func< f_ident< T >, f_ident< T > >
 Specialization when the two mapping functions are identity. More...
 
struct  compose_func< f_ident< T >, G >
 Specialization when only the outer mapping function is identity. More...
 
struct  compute_array_bc_traits
 Metafunction to detect whether the no_initialization type flag was passed during container template instantiation and reflect the appropriate base container traits. More...
 
struct  compute_level_offset
 Functor computing the vertex descriptor offset for the level above a given one. More...
 
struct  compute_mf_type
 Type metafunction to reflect identity mapping function if the passed view type parameter is actually a container, and hence does not define this type (and is by definition identity). More...
 
class  compute_rank_wf
 Work function used to compute the base container ranking. More...
 
struct  compute_type_parameters
 Metafunction that returns a tuple of types to a template instantiation that should be used for a set of optional template parameters. This allows writers to avoid use of default template parameters, reducing error message and symbol table sizes. More...
 
struct  conditonal_inherit
 Helper class that conditionally inherits from another class based on a compile-time condition. More...
 
class  confidence_interval_controller
 Base class to built upon by programs that want to collect profile information about certain functions. More...
 
class  const_container_accessor
 Const_accessor for global proxies over pContainers. More...
 
class  const_container_iterator
 Const_iterator that is used to globally traverse a container. More...
 
class  const_ea_iterator
 Edge Iterator Adaptor for filtering out specific edge properties (const).The property adaptor used in this iterator is default constructed. More...
 
class  const_graph_accessor
 accessor for vertices of a graph. More...
 
class  const_index_iterator
 Definition of the iterator used for the View. More...
 
class  const_local_accessor
 Accessor for local proxies over base containers. More...
 
class  const_local_accessor_graph
 Local accessor for pGraph's vertices.Derives from local_accessor and adds methods for property. More...
 
class  const_local_iterator
 Iterator that is used to locally traverse a base container. More...
 
struct  const_local_property_reference_constructor
 Functor creates a reference either as a proxy or a view, based on use_view_as_reference metafunction. More...
 
class  const_property_accessor
 Accessor for the property on vertices of a graph providing read-only access. More...
 
struct  const_property_reference_constructor
 Functor creates a reference either as a proxy or a view, based on use_view_as_reference metafunction. More...
 
struct  const_property_reference_constructor< T, Container, GID, true >
 
class  const_va_iterator
 Specialized iterator with property adaptor to filter particular members of the property (const).The property adaptor used in this iterator is default constructed. More...
 
class  const_va_iterator< VertexIterator, EdgeIter, use_default >
 Specialized vertex iterator for when only the edge is adapted (const).The property adaptor used in this iterator is default constructed. More...
 
struct  container
 Base-class for pContainers that implements general functionality needed by containers. More...
 
struct  container< C, true >
 Specialization when this is a nested container. More...
 
class  container_accessor
 Accessor for global proxies over pContainers. More...
 
class  container_directory
 The container directory is responsible for distributed metadata for GIDs. It knows in which location GIDs reside. It also provides methods to invoke arbitrary functors on the location of GIDs without requiring external entities to know exact locality information. More...
 
class  container_iterator
 Iterator that is used to traverse a container. More...
 
struct  container_levels
 Metafunction to determine how many containers are nested within the value_types of a given type. More...
 
struct  container_levels< T, true >
 Specialization of container_levels for the case when T is a container, effectively adding one more to the running total. More...
 
class  container_manager
 The container manager is responsible for local metadata for GIDs. It knows in which local base containers GIDs reside. It also provides methods to invoke base container methods on specific GIDs, abstracting out the need for external classes to know exactly in which base container a GID is. More...
 
class  container_manager_dynamic_graph
 Base-container manager for the dynamic_graph. More...
 
class  container_manager_static
 Container manager for static containers that disallow migration and allows at most one base container per location. More...
 
class  container_manager_static_graph
 Base-container manager for the stapl::graph. More...
 
class  container_profiler
 
struct  container_traits
 Metafunction to retrieve associated types for containers. This class is similar in spirit to the STL's iterator_traits. More...
 
struct  container_traits< adjacency_list_model< Traits > >
 Specialization of container_traits for adjacency_list_model. More...
 
struct  container_traits< array< T, OptionalParams... > >
 Specialization of container_traits for array. More...
 
struct  container_traits< directed_graph< D, M, OptionalParams... > >
 Specialization of container_traits for directed_graph. More...
 
struct  container_traits< dynamic_graph< D, M, OptionalParams... > >
 Specialization of container_traits for stapl::dynamic_graph. More...
 
struct  container_traits< dynamic_graph_base_container< Traits > >
 Specialization of container_traits for dynamic_graph_base_container. More...
 
struct  container_traits< graph< D, M, OptionalParams... > >
 Specialization of container_traits for stapl::graph. More...
 
struct  container_traits< graph_base_container_base< D, M, VertexP, EdgeP, Traits >>
 
struct  container_traits< identity_container< T > >
 Specialization of container_traits for identity_container. More...
 
struct  container_traits< lightweight_vector< T > >
 Specialization for lightweight_multiarray_base. More...
 
struct  container_traits< proxy< std::vector< T >, Accessor > >
 Specialization for proxy<std::vector<T>, Accessor>> More...
 
struct  container_traits< static_array< T, OptionalNoInitParam... > >
 Specialization of container_traits for static_array. More...
 
struct  container_traits< std::list< T > >
 Specialization for std::list. More...
 
struct  container_traits< std::vector< T > >
 Specialization for std::vector. More...
 
struct  container_traits< undirected_graph< D, M, OptionalParams... > >
 Specialization of container_traits for undirected_graph. More...
 
struct  container_traits< vector< T, OptionalParams... > >
 Specialization of container_traits for vector. More...
 
class  container_wrapper_ref
 A wrapper for storing containers as the value_type of another container. This is needed because we want to store a reference to the container as a p_object in a base container. More...
 
class  continuous_domain
 Defines a domain where the indexes are continuous and not numerable (e.g., float, string), but there is an order relation among the indexes (e.g., lexicographical order). More...
 
struct  convert_to_md_vec
 Defines the coarsen metadata view type for the given container type. More...
 
struct  convert_to_md_vec_array
 Defines the coarsen metadata view type for the given container type. More...
 
struct  copyable_intrusive_list
 Wrapper class that provides a copy constructor to boost::intrusive::slist. More...
 
class  core_view
 Main class to define a pView, composed of a reference to a collection of elements, a domain and a mapping function. More...
 
struct  count_static_votes_impl
 Counts the number of LQ_DONTCARE votes known at compile time. More...
 
struct  count_static_votes_impl< tuple< RuntimeViews const &... > >
 Base case when all views have been inspected. Return the number of static LQ_DONTCARE votes and the tuple of views that must be queried at runtime. More...
 
struct  count_static_votes_impl< tuple< RuntimeViews const &... >, View0, Views... >
 Recursive case. Inspect View0 and either increment static vote count or add to tuple of views requiring runtime evaluation. More...
 
class  counter
 Implements a configurable counter. More...
 
class  counter_group
 Controls enabling/disabling a specific group of counter objects at runtime. More...
 
struct  create_submesh_file_wf
 Functor creating a silo multimesh file storing a partition of a mesh. More...
 
class  cref_accessor
 Defines a read only accessor that references a local element. More...
 
struct  csr_base_container_traits
 Default traits for the csr_graph 's base container. More...
 
class  csr_edgelist_impl
 The edgelist for a CSR graph, implemented as a vector of edges. More...
 
class  csr_graph
 Implementation for a Compressed Sparse-Row (CSR) graph.CSR graphs do not allow addition and deletion of vertices or edges once the graph has been "committed". All edges must be added before calling the commit() method, which finalizes the graph. Inherits all methods from stapl::graph and adds method to commit. More...
 
struct  csr_graph_traits
 Default traits for the csr_graph container. Specifies customizable type parameters that could be changed on a per-container basis. More...
 
class  csr_model
 This model describes operations on a graph that is modeled as a Compressed Sparse-Row (CSR) graph. CSRs store a list of vertices and a separate list of edges. Each vertex points to its adjacent edges in the list of edges. More...
 
class  csr_short_edge_base_container_traits
 Base container traits for a CSR with short edges. More...
 
struct  csr_short_edge_graph_traits
 Traits for the short_csr_graph. More...
 
class  csr_vector_storage
 An CSR using an std::vector for storing vertices. Used inside the csr_model to store vertices. More...
 
struct  cycle_map
 Computes a cyclic mapping of ids to partitions. More...
 
struct  decompose_largest_dim
 Functor to set up the mesh decomposition, partitioning the mesh along the dimension with the highest number of cells. More...
 
struct  decompose_largest_dim<-1 >
 Functor to set up the mesh decomposition, partitioning the mesh along the dimension with the highest number of cells. More...
 
struct  decomposition_tuple_type
 Specify types of tuple variables used in the decomposition. The type depends on the number of projections. More...
 
struct  decomposition_tuple_type< Dim, 1, Precision >
 Specify types of tuple variables used in the decomposition. The type depends on the number of projections. More...
 
struct  decomposition_tuple_type< Dim, 2, Precision >
 Specify types of tuple variables used in the decomposition. The type depends on the number of projections. More...
 
struct  decomposition_tuple_type< Dim, 3, Precision >
 Specify types of tuple variables used in the decomposition. The type depends on the number of projections. More...
 
class  default_info
 Default scheduling information. More...
 
class  default_pin_location_mapper
 Default mapping function used by port based dataflow protocol to decide where a producer pin is flowed to in the consuming PARAGRAPH. Based on the hash-based key mapper of the Directory, it's used if no custom mapper is provided by user. More...
 
struct  default_task_placement_impl
 Default policy for initially mapping a task to a PARAGRAPH location for execution. More...
 
struct  default_traversal
 Metafunction to compute a the default traversal for an n-dimensional space. More...
 
struct  default_view_traits
 Reflects common trait types based on explicitly passed container, domain, mapping function, and derived parameter types. More...
 
struct  deferred_domain
 A domain that has been constructed without knowledge of the number of locations across which it will be distributed. More...
 
struct  deferred_map
 Captures a mapping function that has been constructed without knowledge of the number of locations and a factory that is invoked to reinitialize the mapping function when the number of locations is available. More...
 
struct  define_type_provider
 Transforms an object of type T to an object of type U that has a U::define_type(stapl::typer&) function through the apply() function. More...
 
struct  define_value_type
 Metafunction to compute the stored value of an element in a container. In the cases of nested containers, it is necessary to store a reference to the container, as it is a p_object. More...
 
class  delete_edge_profiler
 
class  delete_edge_profiler_bgl
 
class  delete_vertex_profiler
 
class  delete_vertex_profiler_bgl
 
struct  derived_types
 Provide traits for RMIs with arbitrary types. More...
 
struct  df_stored_type
 Type metafunction computing the actual type that will be stored for a requested edge type.Internally, it is useful to modify the type for some special cases outlined below in the various partial specializations of the class. More...
 
struct  df_stored_type< proxy< T, A > >
 Specialization for proxy edge types.Proxies' assignment operators are overloaded to behave like a real reference (i.e., redirect to reference object). We use a proxy_holder to give us a proper assignment operator to use. More...
 
struct  df_stored_type< std::pair< proxy< T1, A1 >, proxy< T2, A2 > > >
 Specialization for pairs of proxies.Some algorithms use pairs of proxies to denote ranges and transmit these through the edge container. Use a proxy_pair_holder for the same reason discussed in simple proxy specialization of df_stored_type. More...
 
struct  df_stored_type< void >
 Specialization for void edge types (i.e., signals).Internally pass an int to simplify code paths that expect to receive a parameter (can't pass void). More...
 
class  dfs_internal_profiler
 
class  dfs_profiler
 
class  dfs_profiler_bgl
 
struct  dgraph_param_selector
 Class for selecting between default and optional template parameters for dynamic_graph. More...
 
class  diffusive_steal
 Diffusive stealing policy. More...
 
class  digraph
 Creates a DIRECTED, NONMULTIEDGES graph.Static graphs do not allow addition or deletion of vertices. The number of vertices must be known at construction. Edges may be added/deleted. More...
 
class  dijkstra_profiler
 
struct  dimension_traits
 Metafunction to compute a compile-time constant representing the number of dimensions of a particular type (container, domain, size, etc.) More...
 
struct  dimension_traits< tuple< T... > >
 Specialization for tuples. More...
 
class  directed_graph
 Parallel directed-graph container. Inherits all functionality from directed_graph_base. More...
 
class  directed_graph_base
 Base-class for graph that implements all functionality needed for a directed static graph. Deriving classes may over-write functionality for adding/deleting edges (for Undirectedness). More...
 
class  directory
 Provides basic functionality to forward computation (via a generic functor) to a location determined by the distributed registration of key values. The class handles heterogeneous work requests and supports relaxed consistency, placing no synchronization requirements on the registration of key and functor forwarding requests employing that key. More...
 
class  directory< Key, Transmitter, Mapper, Registry, true >
 Specialization with migration support. More...
 
class  directory_registry
 This class is used to store directory entries in the container_directory class and subsequently, its base class directory. It models the map concept. For most pContainers, it is a safe assumption to expect that most GIDs will be mapped to the home location and that there will be only a small amount of GIDs that differ from this closed-form solution (through migration, etc.) More...
 
struct  disable_group_counter
 Disables a specific counter group at compile-time. More...
 
class  distributed_domain
 Defines a domain using a Distribution to support the query methods. More...
 
class  distributed_value
 A bool that has a representative on all locations and can perform an allreduce to AND / OR across all locations. More...
 
struct  distribution
 Base distribution class for the pContainers. Provides the base functionality for all distributions. More...
 
class  distribution_spec_view
 One dimensional read only view used to specify data distribution. More...
 
struct  distribution_traits
 Metafunction to retrieve associated types for container distributions. This class is similar in spirit to the STL's iterator_traits. and container_traits. More...
 
struct  distribution_traits< DistributionType< C > >
 Specialization used when distribution is customized by inheriting from distribution base. Type is incomplete, reflect types from the container_traits of the distribution's container. More...
 
struct  distribution_traits< DistributionType< C, Op1, Op2, Op3, Op4 > >
 Specialization used when distribution uses distribution, optionally passing operation template template parameters. Type is incomplete, reflect types from the container_traits of the distribution's container. More...
 
struct  distribution_traits< vector_distribution< C > >
 Specialization for distribution_traits over vector_distribution. More...
 
struct  divides
 Function which returns the result of dividing the first argument by the second. More...
 
struct  dom1D
 One dimensional domain. More...
 
struct  dom1Dbc
 One dimensional block-cyclic domain. More...
 
struct  dom2D
 Two dimensional domain implemented as a tuple of one-dimensional domains. More...
 
struct  domain_retype
 Helper class to change the domain type of the given. More...
 
struct  domain_retype< V< C, D, M, De >, NewDom >
 Specialization for domain_retype to change the domain from the given. More...
 
struct  domain_selector
 Default domains for the graph_distribution. Specifies domain and metadata domain types. More...
 
struct  domain_selector< Distribution, hgraph_traits< D, M, VertexPx, EdgePx, PSx, Mapx > >
 Default domains for the graph_distribution, specialized for the hierarchical_graph. Specifies domain and metadata domain types. More...
 
class  domainset1D
 Defines a one dimensional distributed domain for indexes that are not necessarily consecutive. More...
 
class  domset1D
 Defines an one dimensional domain composed of a set of intervals of consecutive indexes. More...
 
struct  dont_care
 Tag to represent that a particular item in an option will not change the overall choice. More...
 
class  dpg_view
 View providing predecessor info for graphs. Specialization when the underlying view/graph is DPG.In general there are two cases; one where this view is defined over a DPG graph, in which case the view is just a wrapper; and second where the underlying graph/view is not DPG and then we have to keep extra storage to keep track of predecessors in the view separate from the graph. These two cases are implemented using different partial specializations. More...
 
class  dsssp_in_profiler
 
class  dsssp_in_profiler_bgl
 
class  dynamic_graph
 Implementation of dynamic graph that supports addition and deletion of vertices and edges.Inherits from stapl::graph and adds functionality to add/delete vertices. More...
 
struct  dynamic_graph_base_container
 Base-container for dynamic_graph. Inherits all functionality from graph_base_container. More...
 
struct  dynamic_graph_base_container_traits
 Traits class for dynamic_graph_base_container. More...
 
struct  dynamic_graph_traits
 Default traits for the dynamic_graph container. Specifies customizable type parameters that could be changed on a per-container basis. More...
 
class  dynamic_graph_view
 A dynamic graph view using adaptors for vertex and edge properties. More...
 
struct  dynamic_wf
 Used to indicate that a work function deriving from this class should be provided the paragraph_impl::paragraph_view as the first argument to its function operator to allow it to add additional tasks to the PARAGRAPH. More...
 
struct  e_selector
 Selector for extracting the vertex descriptor, given either a vertex descriptor or a vertex reference.Used by the pGraph external property map, where property is stored externally. Assumes descriptor based random-access in container. More...
 
struct  e_selector< G, typename G::edge_descriptor >
 Selector for extracting the edge descriptor, given either an edge descriptor or an edge reference, specialized for descriptor.Used by the pGraph external edge property map, where property is stored externally. Assumes id based random-access in container. More...
 
struct  e_selector< G, typename G::edge_reference >
 Selector for extracting the edge descriptor, given either an edge descriptor or an edge reference, specialized for reference.Used by the pGraph external edge property map, where property is stored externally. Assumes id based random-access in container. More...
 
struct  e_selector< G, typename G::vertex_descriptor >
 Selector for extracting the vertex descriptor, given either a vertex descriptor or a vertex reference, specialized for descriptor.Used by the pGraph external property map, where property is stored externally. Assumes descriptor based random-access in container. More...
 
class  ea_iterator
 Edge Iterator Adaptor for filtering out specific edge properties.The property adaptor used in this iterator is default constructed. More...
 
struct  edge_accessor
 Underlying access mechanism for proxies of values stored in the PARAGRAPH edge_container. More...
 
class  edge_container
 The edge container maintains a distributed representation of the dependence (edges) for the PARAGRAPH and the various data flows they represent. It is the primary container for the PARAGRAPH infrastructure which is traversed during PARAGRAPH execution as tasks complete execution and notify the edge_container of their return value (if any), triggering data flow to all specified successors in the system. More...
 
class  edge_descriptor_impl
 Implementation of the edge descriptor. More...
 
struct  edge_source_comp
 Helper class to compare two edges based on their source vertex-descriptors. More...
 
struct  edge_target_comp
 Helper class to compare two edges based on their target vertex-descriptors. More...
 
struct  edge_target_equal
 Helper class to equate two edges based on their target vertex-descriptors. More...
 
class  edge_view
 Provides a view over the edge_container allowing PARAGRAPH tasks to create data flow value consumption. More...
 
struct  empty_class
 Empty class. More...
 
struct  eq_ed
 Finds an edge with the specified edge id, source and destination. More...
 
struct  eq_eid
 Finds an edge with the specified edge id. More...
 
struct  eq_property
 Finds an edge with the specified user property. More...
 
struct  eq_target
 Finds an edge with the specified target. More...
 
struct  equal_to
 Function which returns whether its arguments are equal. More...
 
struct  execute_all_t
 Tag type to execute all scheduled entries. More...
 
class  executor
 Executor for scheduling runnable tasks with specific scheduling information. More...
 
class  executor_base
 Executor base class. More...
 
class  exit_code
 Class to return exit codes from STAPL applications. More...
 
class  explicit_domain
 Defines an explicit one dimensional domain composed of indexes. The order of the indexes in the domain is given by the user. Each index that is valid in this domain must be explicitly enumerated. More...
 
class  explicit_partition
 Partition a one-dimensional domain explicitly into subdomains that are stored in a container. More...
 
class  external_descriptor_generator
 An empty vertex descriptor generator. The vertex descriptors will be controlled externally by the user. More...
 
struct  extract_closed_domain_type
 struct extracting the closed-form domain type of a graph view if any, otherwise domset1D type is picked. More...
 
struct  extracted_closed_domain_type
 struct extracting the closed-form domain type of a graph view if any, otherwise domset1D type is used. More...
 
struct  extracted_closed_domain_type< false, GraphVw >
 struct extracting the closed-form domain type of a graph view if any, otherwise domset1D type is picked. More...
 
struct  f_ident
 Defines an identity mapping function. More...
 
class  face_property
 Default face property for a cell face. More...
 
class  factory_wf
 Concept base class used by factory workfunctions to denote that they are factory classes. More...
 
class  fifo_scheduler
 FIFO scheduler. More...
 
class  filter_view
 Defines a filter view over the specified View. More...
 
class  find_edge_profiler
 
struct  find_first_indices
 Metafunction to find the indices of values in one tuple in another tuple. More...
 
class  find_vertex_profiler
 
struct  first_finite_domain_index
 Type metafunction returning the index of the first element (i.e., view) of the tuple parameter Views which has a finite domain. More...
 
class  frontier_view
 View over a subset of a graph based on the set of active vertices. More...
 
class  function
 A general-purpose polymorphic function wrapper. More...
 
struct  functor_container
 Generator container whose value for the element at an index is the application of a functor on the index itself. More...
 
struct  functor_view_type
 Defines a nested trait type that is the type of a functor view parameterized with a functor type. More...
 
class  future
 Provides a mechanism to access the result of asynchronous operations. More...
 
class  futures
 Provides a mechanism to access the result of asynchronous operations. More...
 
class  gang
 Creates a new gang by partitioning the existing one from which the gang construction is invoked. More...
 
class  gang_executor
 Gang associated executor. More...
 
class  generic_metadata_extraction
 Functor used to return the locality metadata information of a general container (container that does not provide a metadata locality extractor functor). More...
 
class  geom_vector
 n-dimensional geometric vector More...
 
class  geom_vector< 2, ELEMENT >
 2D geometric vector More...
 
class  geom_vector< 3, ELEMENT >
 3D geometric vector More...
 
struct  get_base_iterator
 Metafunction used to compute the iterator type reflected by a base container. More...
 
struct  get_base_iterator< std::valarray< T > >
 Specialization for valarray, where the iterator type is a raw pointer. More...
 
struct  get_descriptor
 Class for extracting descriptor from an iterator. More...
 
struct  get_fast_view_type
 Computes view type used if view localization (i.e. is_local()) succeeds during PARAGRAPH task creation. More...
 
struct  get_partition_domains
 Compute the cell domains of mesh partitions. More...
 
struct  get_partition_weights
 Functor to get and store partition weights in a property map. More...
 
struct  get_partitioner
 Helper to extract the partition type used for the given partitioned view (Base case). More...
 
struct  get_partitioner< overlap_view< View > >
 Helper to extract the partition type used for the given Overlap. More...
 
struct  get_partitioner< segmented_view< C, PS, MFG, SVC > >
 Helper to extract the partition type used for the given Segmented. More...
 
struct  get_vertex_weight
 Functor extracting a vertex-weight in a property map. More...
 
class  getrusage_timer
 Counter that uses getrusage() in POSIX systems. More...
 
class  gettickcount_timer
 Time counter that uses GetTickCount() in Windows systems. More...
 
class  gettimeofday_timer
 Time counter that uses gettimeofday() in POSIX systems. /. More...
 
class  gpartition
 Class representing a graph partition. The class provides queries to retrieve the partitions and measure its quality. More...
 
class  graph
 Parallel static graph container. Inherits all functionality from either undirected_graph or directed_graph.Static graphs do not allow addition or deletion of vertices. The number of vertices must be known at construction. Edges may be added/deleted. Uses directedness selector to inherit from correct directed/undirected base. More...
 
class  graph_accessor
 accessor for vertices of a graph. More...
 
struct  graph_base_container
 Graph's base-container. Inherits all functionality from either graph_base_container_base or graph_base_container_NME class. More...
 
struct  graph_base_container_base
 Base class for the graph's base-container. Provides functionality of the graph API for local storage. More...
 
struct  graph_base_container_NME
 Class for Non-Multiedged graph's base-container. Derives from the graph_base_container_base class and overloads add_edge method for checking multiple edges. More...
 
struct  graph_base_container_storage
 Graph's base-container. Inherits all functionality from either graph_base_container_storage_base or graph_base_container_storage_NME class. More...
 
struct  graph_base_container_storage_base
 Base class for the graph's base-container. Provides functionality of the graph API for local storage. More...
 
struct  graph_base_container_storage_NME
 Class for Non-Multiedged graph's base-container. Derives from the graph_base_container_base class and overloads add_edge method for checking multiple edges. More...
 
struct  graph_base_container_traits
 Traits class for static graph_base_container. More...
 
struct  graph_color
 A color interface class for Breadth-First Search, Depth-First Search and Dijkstra's algorithm. More...
 
struct  graph_color< size_t >
 A default specialization of the graph_color class with size_t chosen as the value type to represent the colors. More...
 
class  graph_commit_log
 Container for an ordered log of commits, which can be flushed later. Used by the lazy_graph_view_container to store log of deferred commits, as well as apply them to the appropriate pGraph at a suitable time. More...
 
struct  graph_directedness_container_selector
 Class for selecting between directed and undirected graphs. More...
 
struct  graph_directedness_container_selector< DIRECTED, M, OptionalParams... >
 Specialization of graph_directedness_container_selector for DIRECTED graph. More...
 
struct  graph_directedness_container_selector< UNDIRECTED, M, OptionalParams... >
 Specialization of graph_directedness_container_selector for UNDIRECTED graph. More...
 
struct  graph_distribution
 Distribution class for the dynamic_graph container. More...
 
struct  graph_distribution_static
 Distribution class for the stapl::graph container. More...
 
struct  graph_distribution_traits
 Default traits for the graph_distribution. Specifies distribution, domain and metadata types. More...
 
class  graph_edge_property_map
 Internal property map to access edge properties stored on graph edges. More...
 
class  graph_external_edge_property_map
 External property map to store edge properties. More...
 
class  graph_external_property_map
 External property map to store vertex properties. More...
 
class  graph_internal_property_map
 Internal property map to access vertex properties stored on graph vertices. More...
 
class  graph_metadata
 Class for computing the metadata of graph_distribution . More...
 
struct  graph_multiplicity_base_container_selector
 Class for selecting between multi-edged and non-multi-edged graphs. More...
 
struct  graph_multiplicity_base_container_selector< Traits, MULTIEDGES >
 Specialization of graph_multiplicity_base_container_selector for MULTIEDGES graph. More...
 
struct  graph_multiplicity_base_container_selector< Traits, NONMULTIEDGES >
 Specialization of graph_multiplicity_base_container_selector for NONMULTIEDGES graph. More...
 
struct  graph_param_selector
 Class for selecting between default and optional template parameters. More...
 
struct  graph_storage_multiplicity_base_container_selector
 Class for selecting between multi-edged and non-multi-edged graphs. More...
 
struct  graph_storage_multiplicity_base_container_selector< Traits, MULTIEDGES >
 Specialization of graph_storage_multiplicity_base_container_selector for MULTIEDGES graph. More...
 
struct  graph_storage_multiplicity_base_container_selector< Traits, NONMULTIEDGES >
 Specialization of graph_multiplicity_base_container_selector for NONMULTIEDGES graph. More...
 
class  graph_view
 View for the pGraph. Reflects all operations of a graph. More...
 
struct  greater
 Function which returns whether the first argument is greater than the second. More...
 
struct  greater_equal
 Function which returns whether the first argument is greater than or equal to the second. More...
 
struct  handle_accessor
 Defines an accessor over a p_object, keeping a rmi_handle reference to perform rmi communications. More...
 
struct  handle_both_op
 Helper function to evaluate the given binary operation Op when both input parameters are proxies. More...
 
struct  handle_both_op< Op, V, A1, A2, E1, typename A2::deferred_evaluation_accessor_ >
 Helper function to evaluate the given binary operation Op when both input parameters are proxies but the right hand side proxy supports deferred evaluation (it does not necessarily reference a concrete value yet). More...
 
struct  handle_both_op< Op, V, A1, A2, typename A1::deferred_evaluation_accessor_, E2 >
 Helper function to evaluate the given binary operation Op when both input parameters are proxies but the left hand side proxy supports deferred evaluation (it does not necessarily reference a concrete value yet). More...
 
struct  handle_both_op< Op, V, A1, A2, typename A1::deferred_evaluation_accessor_, typename A2::deferred_evaluation_accessor_ >
 Helper function to evaluate the given binary operation Op when both input parameters are proxies both proxies support deferred evaluation (it does not necessarily reference a concrete value yet). More...
 
struct  handle_both_op_convert
 Helper function to evaluate the given binary operation Op when both input parameters are proxies and the value types differ. More...
 
struct  handle_left_op
 Helper function to evaluate the given binary operation Op when the left hand side input parameter is a proxy. More...
 
struct  handle_left_op< Op, V, A, typename A::deferred_evaluation_accessor_ >
 Helper function to evaluate the given binary operation Op when the left hand side input parameter is a proxy with support for deferred evaluation (it does not necessarily reference a concrete value yet). More...
 
struct  handle_right_op
 Helper function to evaluate the given binary operation Op when the right hand side input parameter is a proxy. More...
 
struct  handle_right_op< Op, V, A, typename A::deferred_evaluation_accessor_ >
 Helper function to evaluate the given binary operation Op when the right hand side input parameter is a proxy with support for deferred evaluation (it does not necessarily reference a concrete value yet). More...
 
struct  has_contiguous_edges
 Metafunction to determine if a vertex's edge list is stored contiguously. More...
 
struct  has_finite_domain
 Type metafunction returning true if View parameter has a domain type other than infinite. More...
 
struct  has_finite_domain_impl
 Implementation metafunction for has_finite_domain, which guards inspection of a domain_type typedef to views that define it. More...
 
struct  has_identity_mf
 Metafunction to determine if a view has an identity mapping function. Differs from has_identity in that if the type is not a view, it defaults to false_type. More...
 
struct  has_identity_mf< View, true >
 Specialization for views. More...
 
struct  hash
 Default hash function for sequential hash containers. More...
 
struct  hash< tuple< Args... > >
 Specialization of hash for tuple. Use boost::hash_combine() to incorporate all elements of tuple into hash value. More...
 
class  hash_map
 Container that stores key-value pairs by hashing the key to determine the position in the container where the elements will be stored. More...
 
class  hashtable
 The Hashtable containing all the elements. More...
 
struct  helper_get_property
 Helper to extract the property of a vertex/edge. More...
 
struct  helper_get_property< Iterator, properties::no_property >
 Helper to extract the property of a vertex/edge. Specialized for when the vertex/edge does not have a property. More...
 
class  heterogeneous_composed_dist_spec
 Structure holding a composition of distribution specification views, each of which whose specification type and gid type maybe be different. More...
 
class  hgraph_view
 pView providing specific methods for hierarchical graphs. More...
 
struct  homogeneous_tuple_to_array
 Convert a tuple of homogeneous types to an std::array. More...
 
struct  homogeneous_tuple_type
 Type metafunction return tuple type of length N with with all elements of type T. More...
 
struct  i_edge_selector
 Selector for extracting the edge, given either an edge descriptor or an edge reference.Used by the pGraph internal edge property map, where property is stored internally on the edge by the pGraph, providing efficient storage and constant-time access to the edge property. More...
 
struct  i_edge_selector< G, typename G::edge_descriptor >
 Selector for extracting the edge, given either an edge descriptor or an edge reference, specialized for descriptor.Used by the pGraph internal edge property map, where property is stored internally on the edge by the pGraph, providing efficient storage and constant-time access to the edge property. More...
 
struct  i_vertex_selector
 Selector for extracting the vertex, given either a vertex descriptor or a vertex reference.Used by the pGraph internal property map, where property is stored internally on the vertex by the pGraph, providing efficient storage and constant-time access to the vertex property. More...
 
struct  i_vertex_selector< G, typename G::vertex_descriptor >
 Selector for extracting the vertex, given either a vertex descriptor or a vertex reference, specialized for descriptor.Used by the pGraph internal property map, where property is stored internally on the vertex by the pGraph, providing efficient storage and constant-time access to the vertex property. More...
 
class  ident_prop_func
 The identity functor for graph property maps. More...
 
struct  identity
 Function which returns its argument. More...
 
struct  identity_container
 Generator container whose value for the element at an index is the index itself. More...
 
struct  identity_map
 Computes an identity mapping of ids to partitions. More...
 
struct  identity_op
 Function which returns its argument. More...
 
struct  identity_selector
 An identity workfunction used in the skeleton framework can be both typed and typeless. In most of the cases if the workfunction used in a parametric dependency is strictly typed, meaning that it has defined result_type, the corresponding identity workfunction should be typed with the same type. More...
 
struct  identity_value
 Reflects the identity value for the given operation and operand types. More...
 
class  immutable_range_wrapper
 Wraps a reference to a temporarily immutable range of objects. More...
 
class  immutable_reference_wrapper
 Wraps a reference to a temporarily immutable object. More...
 
class  immutable_shared
 Describes an immutable object. More...
 
struct  implicit_regular_mesh_container
 Implicit container representing a regular mesh. More...
 
class  implicit_regular_mesh_domain
 Implicit domain representing the cells of a regular mesh. More...
 
struct  implicit_regular_mesh_metadata
 Functor returning the locality metadata information of the mesh container. More...
 
struct  implicit_regular_mesh_view_type
 Helper struct to get the type of a graph view over a mesh. More...
 
class  implicit_vertex
 Implicit mesh cell built on-the-fly. More...
 
struct  import_silo_file
 Functor importing a mesh from a silo file. More...
 
class  incremental_wf
 Concept base class used by factory workfunctions to denote that they may not complete their work of creating tasks during a single invocation of the function operator and hence must be queried to check for required reinvocation. More...
 
struct  index_bounds
 Class to determine the bounds (min, max, error) of an index or GID. More...
 
struct  index_bounds< stapl::tuple< T... > >
 Specialization when the index or GID is a std::pair of different types. More...
 
struct  index_bounds< std::pair< T, T > >
 Specialization when the index or GID is a std::pair of the same type. More...
 
struct  index_bounds< std::string >
 Specialization when the index or GID is a std::string. More...
 
class  index_iterator
 Definition of the iterator used for the View. More...
 
class  indexed_domain
 Defines a multi-dimensional domain where the indexes are consecutive and enumerable in each dimension. More...
 
class  indexed_domain< T, 1 >
 Specialization for a one-dimensional domain where the indexes are consecutive and numerable. More...
 
class  infinite
 Represents a one dimensional infinite domain. More...
 
class  infinite_nd
 Represents an n-dimensional infinite domain. More...
 
struct  inherit_retype
 Helper class to change the derived type of the given. More...
 
struct  inherit_retype< VT< C, D, F, Derived >, Child >
 Specialization to change the derived type of the given view. More...
 
struct  initialize_parameter
 Intercept optional parameters passed with an object of type use_default. If this occurs, return a default constructed instance of type Q. Otherwise, forward on the passed parameter. More...
 
struct  integer_sequence
 A compile-time sequence of integers. More...
 
struct  internal_adj_edge_iterator_selector
 Selector to infer adjacent edge iterator/property. More...
 
struct  internal_adj_edge_iterator_selector< VGraph, use_default >
 Selector to infer adjacent edge iterator/property. More...
 
struct  internal_edge_iterator_selector
 Selector to infer edge iterator/property. More...
 
struct  internal_edge_iterator_selector< VGraph, use_default >
 Selector to infer edge iterator/property. More...
 
struct  internal_vertex_iterator_selector
 Selector to infer vertex iterator/property. More...
 
struct  internal_vertex_iterator_selector< VGraph, EAdaptor, use_default >
 Selector to infer vertex iterator/property. More...
 
struct  internal_vertex_iterator_selector< VGraph, use_default, use_default >
 Selector to infer vertex iterator/property. More...
 
struct  interval_container_registry
 Base container storage that internally uses intervals based off the GID to perform loopkups. More...
 
class  interval_registry
 This class is used to store directory entries in the container_directory class and subsequently, its base class directory. It models the map concept. For most pContainers, it is a safe assumption to expect that most GIDs will be mapped to the home location and that there will be only a small amount of GIDs that differ from this closed-form solution (through migration, etc.) More...
 
struct  invoke_arg
 Wrapper used to specify the argument type during a function call declaration. More...
 
struct  is_arbitrary_view_based
 Used to determine if the view is defined over a container that is distributed using an arbitrary distribution. More...
 
struct  is_arbitrary_view_based< view_based_partition< DistributionView, int > >
 Used to determine if the view is defined over a container that is distributed using an arbitrary distribution. More...
 
struct  is_arbitrary_view_based< view_based_partition< DistributionView, PartitionInfoContainer > >
 Used to determine if the view is defined over a container that is distributed using an arbitrary distribution. More...
 
struct  is_basic
 Returns if T is a basic type. More...
 
struct  is_basic_impl
 Detects if a type is basic or not. More...
 
struct  is_basic_impl_or
 Returns if T is a basic type. More...
 
struct  is_bijective
 Metafunction to determine if a mapping function is bijective. A mapping function is bijective if it reflects a true is_bijective trait, or it is both injective and surjective. More...
 
struct  is_container
 Metafunction to determine if a given type is a STAPL container. The criteria for modeling a container is based on the existence of a nested distribution_type in T. More...
 
struct  is_container_wrapper_ref
 Metafunction to determine if a given type is a container_wrapper_ref. More...
 
struct  is_contiguous
 
struct  is_contiguous_domain
 Metafunction to compute whether or not a domain represents a contiguous chunk of GIDs. More...
 
struct  is_contiguous_domain< indexed_domain< T, N, OptionalTraversal... > >
 Specialization for indexed_domain. More...
 
struct  is_csr
 Metafunction to determine whether a graph is a CSR graph. More...
 
struct  is_csr< csr_graph< D, M, VP, EP, PS, Map, Traits > >
 Specialization for CSR graphs. More...
 
struct  is_distribution_view
 Used to determine if a type is an instantiation of a view-based distribution specification. More...
 
struct  is_distribution_view< V, false >
 Used to determine if a type is an instantiation of a view-based distribution specification. More...
 
struct  is_distribution_view< V, true >
 Used to determine if a type is an instantiation of a view-based distribution specification. More...
 
struct  is_domain_sparse
 Type checker to determine if a domain is a sparse domain. More...
 
struct  is_domain_sparse< domainset1D< Distribution > >
 Specialization of type checker to determine if domainset1D represents a sparse domain. More...
 
struct  is_domain_sparse< implicit_regular_mesh_domain< Coordinates, Traversal > >
 Make implicit regular mesh domain a sparse domain. More...
 
struct  is_factory
 Boolean type metafunction to detect if template parameter WF is a factory. More...
 
struct  is_identity
 Type checker to determine if a mapping function is an identity mapping function. More...
 
struct  is_implied_gid_set
 A metafunction that computes whether or not a GID set is an implied GID set. More...
 
struct  is_implied_gid_set< cm_impl::multi_implied_gid_set< Registry > >
 Specialization for the multi-base-container implied GID set. More...
 
struct  is_implied_gid_set< cm_impl::single_implied_gid_set< Registry > >
 Specialization for the single-base-container implied GID set. More...
 
struct  is_index_sequence
 Metafunction to compute whether or not a type is an index_sequence. More...
 
struct  is_injective
 Metafunction to determine if a mapping function is injective. More...
 
struct  is_invalid_gid
 Functor checking if a gid tuple is invalid. More...
 
struct  is_invalid_gid<-1 >
 Functor checking if a gid tuple is invalid. More...
 
struct  is_invertible_view
 Metafunction to determine if a view has an inverse function defined for its mapping function and a finite domain. More...
 
struct  is_known_basic
 Detects known basic types. More...
 
struct  is_local_iterator
 Small type metafunction to detect whether given parameter is an instance of the local_iterator template. More...
 
struct  is_native_partition
 Type checker to determine if a partition is a native_partition type. More...
 
struct  is_nested_container
 Metafunction to determine if a given type is a STAPL container. The criteria for modeling a container is based on the existence of a nested distribution_type in T. More...
 
struct  is_nested_container< std::pair< T, U > >
 Metafunction to determine if a given type is a STAPL container. This is a specialization used for map elements. The criteria for modeling a container is based on the existence of a nested distribution_type in T. More...
 
struct  is_non_commutative
 Detects if BinaryOperation is a non-commutative operation. More...
 
struct  is_non_commutative_impl
 Detects if BinaryOperation is non-commutative. More...
 
struct  is_p_object
 Detects if T is a p_object. More...
 
struct  is_p_object_pointer
 Detects if T is a pointer to a p_object. More...
 
struct  is_p_object_reference
 Detects if T is a reference to a p_object. More...
 
struct  is_proxy
 Type checker to determine if a variable is an instantiation of proxy. More...
 
struct  is_segmented_view
 Type checker to determine if the given View type is an instantiation of segmented_view. More...
 
struct  is_SLICED_view
 Type checker to determine if the given View type is an instantiation of SLICED_view. More...
 
struct  is_static
 Class for differentiating static and dynamic graphs based on domain-type of the graph. More...
 
struct  is_static< iterator_domain< C, D > >
 Class for differentiating static and dynamic graphs based on domain-type of the graph. More...
 
struct  is_static_dontcare
 Metafunction returns true if View type parameter is statically known to have an LQ_DONTCARE vote. Primary template covers case when task_placement_dontcare typedef is not reflected in class. More...
 
struct  is_static_dontcare< View, true >
 Specialization covers when task_placement_dontcare is defined. More...
 
struct  is_surjective
 Metafunction to determine if a mapping function is surjective. More...
 
struct  is_view
 Type checker to determine if a variable is an instantiation of view. More...
 
struct  is_view_based
 Used to determine if the partition and mapper classes of a container's distribution use a view-based distribution specification. More...
 
struct  is_view_based< view_based_mapper< DistributionView > >
 Used to determine if the partition and mapper classes of a container's distribution use a view-based distribution specification. More...
 
struct  is_view_based< view_based_partition< DistributionView, PartitionInfoContainer > >
 Used to determine if the partition and mapper classes of a container's distribution use a view-based distribution specification. More...
 
class  iterator_core_access
 Helper class to access the core members functions that are derived from iterator_facade. More...
 
class  iterator_domain
 Domains based on iterators. More...
 
struct  k_way_multilevel
 Parallel k-way multilevel graph partitioner partitioning a graph into k pieces using the multilevel scheme. More...
 
struct  kla_params
 Optional parameters that controls the behavior of KLA, including enabling hub avoidance and providing post/pre execute functors. More...
 
struct  lazy_edge_reference
 Reference object by edge_view when creating a task. Delays the creation of edge_accessor until the address of the flowed value is available (i.e., is it directly in edge_entry managed storage or available via cross-location, immutable sharing. More...
 
class  lazy_graph_view
 pGraph View for deferring pGraph operations which can be flushed later. More...
 
class  lazy_graph_view_container
 Container for deferring pGraph operations which can be flushed later. Used by the lazy_graph_view to defer commits, as well as apply them to the appropriate pGraph at a suitable time. More...
 
class  lazy_ref_release_func
 Helper functor to conditionally call release on a task's view members if they are a lazy_edge_reference. This functor is for use in ephemeral paragraphs and few call sites where lazy references are transiently created. More...
 
struct  lazy_ref_release_persistent_func
 Helper functor to conditionally call release on a task's view members if they are a lazy_edge_reference. This functor is for use in persistent paragraphs. More...
 
class  lazy_reference_wrapper
 std::reference_wrapper -like class for distributed objects. More...
 
struct  lazy_storage
 Provides lazy construction of objects with automatic storage. More...
 
struct  less
 Function which returns whether the first argument is less than the second. More...
 
struct  less_equal
 Function which returns whether the first argument is less than or equal to the second. More...
 
class  level
 Tag type to describe which level of the hierarchy is requested. More...
 
struct  lightweight_multiarray_base
 A base class for lightweight sequential containers used in the skeleton framework applications such as the NAS IS and FT benchmarks. This class wraps an std::vector and keeps a shared_ptr to the underlying std::vector. More...
 
struct  lightweight_multiarray_storage
 Basic linear storage class used by lightweight_multiarray_base to avoid initialization scan if desired. More...
 
struct  lightweight_vector
 This container is lightweight wrapper around std::vector and keeps a shared_ptr to the underlying std::vector. More...
 
class  local_accessor
 Accessor for local proxies over base containers. More...
 
class  local_accessor_graph
 Local accessor for pGraph's vertices.Derives from local_accessor and adds methods for property. More...
 
struct  local_accessor_traits
 Type metafunction to allow base containers to specify a different iterator type than their basic reflected type. Used in matrix base container when immediate iterator is a row iterator. More...
 
class  local_iterator
 Iterator that is used to locally traverse a base container. More...
 
struct  local_property_reference_constructor
 Functor creates a reference either as a proxy or a view, based on use_view_as_reference metafunction. More...
 
struct  locality_dist_metadata
 Helper to determine the metadata extractor type based on the given container (C) type. More...
 
struct  locality_dist_metadata< C, true >
 Helper to determine the metadata extractor type based on the given container (C) type. More...
 
class  locality_info
 Locality information class used by the containers and views to coarsen data and provide information to tasks placement policies of a given PARAGRAPH's scheduler. More...
 
struct  localize_element
 Defines an object that provides the same interface as std::pair. More...
 
class  location_range_wrapper
 Range of location ids. More...
 
class  location_specific_storage
 Supports global objects in the presence of locations. More...
 
struct  logical_and
 Function which returns the logical and of its arguments. More...
 
struct  logical_not
 Function which returns the logical not of its argument. More...
 
class  main_wf
 Function object that is used with execute() to initiate a STAPL application. More...
 
struct  make_index_sequence_impl
 Implementation of make_index_sequence. More...
 
struct  make_traversal
 Metafunction to compute a traveral type based on an integral variadic pack of indices. More...
 
struct  map_factory
 Factory that generates the tasks needed for a map operation. A map operation applies the work function provided on each set of elements of the input views that have the same offset from the beginning of their respective view. More...
 
struct  map_fun_gen
 Mapping function generator without state. More...
 
struct  map_fun_gen1
 Mapping function generator where every mapping function generated is constructed passing the index as input argument. More...
 
class  map_manager
 Responsible for determining the home location for elements of the map container, specifically for non-discrete GID types. More...
 
class  map_manager< Partition, Mapper, true, false >
 Responsible for determining the home location for elements of the map container, specifically for discrete GID types. More...
 
class  map_manager< Partition, Mapper, true, true >
 Responsible for determining the home location for elements of the map container, specifically for discrete GID types. More...
 
struct  map_reduce_factory
 Factory that generates the tasks needed for a map reduce operation. A map reduce operation applies the map work function provided on each set of elements of the input views that have the same offset from the beginning of their respective view. The map operations return values that are combined using the reduce operation provided to form a single result value. The result value is returned to each location in the gang executing the map_reduce call. More...
 
struct  mapfunc_retype
 Helper class to change the mapping function type of the given. More...
 
struct  mapfunc_retype< VT< C, D, F, Derived >, NF >
 Specialization for mapfunc_retype to change the mapping function from the given. More...
 
struct  mapper
 A container's mapper is responsible for mapping base container IDs (essentially subdomains) to locations. More...
 
class  member_accessor
 Accessor used to reference struct/class member through the struct/class Accessor. More...
 
class  member_iterator
 Defines an iterator used to reference data member elements directly through a pointer. More...
 
struct  member_referencer
 Functor creates a reference either as a proxy or a view for a member of another proxy, based on is_container metafunction. More...
 
struct  memory_used
 Returns an estimation of size of the passed object. More...
 
struct  memory_used< adjacency_list_impl< Edge > >
 Specialization of memory_used for adjacency_list_impl. More...
 
struct  memory_used< std::list< T > >
 Specialization used when the type is an std::list<>. More...
 
struct  memory_used< std::map< Key, T > >
 Specialization used when the type is an std::map<>. More...
 
struct  memory_used< vertex_adj_list_impl< VD, Property, AdjList > >
 Specialization of memory_used for vertex_adj_list_impl. More...
 
struct  mesh_partition_1d
 Partition a mesh along one dimension. More...
 
struct  metadata_entry
 Defines the metadata entry that is used as value_type of a coarsen metadata container (e.g. metadata::growable_container). More...
 
struct  metadata_from_container
 Helper functor to extract the locality metadata for each view in the given ViewSet. More...
 
struct  min
 Work function which returns the minimum of two values. More...
 
struct  minus
 Function which returns the difference of its arguments. More...
 
class  mix_view
 Defines a view that behaves as the given View type but has information about data locality specified by the given locality information (Info). More...
 
struct  modulus
 Function which returns the modulus of its arguments. More...
 
struct  move_vertex_wf
 Functor to move a vertex id from a partition to a target partition. More...
 
class  mpi_wtime_timer
 Time counter that uses MPI_Wtime() for systems with MPI. More...
 
class  multidigraph
 Creates an DIRECTED, MULTIEDGES graph.Static graphs do not allow addition or deletion of vertices. The number of vertices must be known at construction. Edges may be added/deleted. More...
 
class  multidimensional_mapper
 Maps multidimensional subdomains to locations in blocked manner in each dimension. More...
 
class  multigraph
 Creates an UNDIRECTED, MULTIEDGES graph.Static graphs do not allow addition or deletion of vertices. The number of vertices must be known at construction. Edges may be added/deleted. More...
 
struct  multiplies
 Function which returns the product of its arguments. More...
 
struct  multiview_coarsener
 Functor to coarsen a set of given views. More...
 
struct  native_ef
 Functor to specify the super-edges for the hierarchy level representing the current distribution. More...
 
struct  native_partitioner
 Functor to specify the creation of super-vertices representing the actual distribution of a new level of hierarchy. More...
 
struct  nd_globalize< GID, index_sequence< Indices... > >
 
struct  nd_globalize< size_t >
 
struct  nd_linearize
 Translates an n-dimensional gid to a 1-dimensional linearization, based on the given Traversal order. More...
 
struct  nd_linearize< size_t, Traversal >
 Base case for nd_linearize for 1-dimensional GID. More...
 
struct  nd_localize< size_t >
 
class  nd_partition
 Defines a multidimensional partition, where Traversal specifies the traversal order defined over the generated partitioned domains. More...
 
struct  nd_reverse_linearize
 Translates a 1-dimensional linearized GID to its n-dimensional GID, based on the given Traversal order. More...
 
struct  nd_reverse_linearize< size_t, Traversal >
 Base case for nd_reverse_linearize for 1-dimensional GID. More...
 
struct  ndom1D
 One dimensional domain. More...
 
struct  ndom2D
 Two dimensional domain with ovelap information support. More...
 
struct  negate
 Function which returns the negation of its argument. More...
 
struct  neighbor_locations_t
 Tag type to represent the neighbor locations of the current location. More...
 
class  neighbor_random_hybrid_steal
 Random neighbor stealing policy. More...
 
class  nested_parent_pg_view
 Lightweight view class created by consume and passed to add_task to facilitate setup dataflow from a parent's input port to a child PARAGRAPH. More...
 
class  nested_parent_pg_view_subview
 View class used as input to a nested paragraph created via add_task to setup dataflow from a parent's input port to a child PARAGRAPH. More...
 
class  nested_pg_view
 Lightweight view class created by consume and passed to add_task to facilitate setup of inter paragraph, port-based dataflow. More...
 
class  nested_pg_view_subview
 View class used as input to a nested paragraph created via add_task to setup dataflow from a producer, sibling paragraph. More...
 
struct  new_cast_container_view
 Container transformation meta-function with same purpose as cast_container_view but employing variadic based optional parameter support. More...
 
struct  new_cast_container_view< View< OldC, Params... >, NewC, typename std::enable_if< !is_segmented_view< View< OldC, Params... > >::value &&!preserve_composition< View< OldC, Params... > >::value >::type >
 new_cast_container_view specialization for the case when view composition should be flattened. More...
 
struct  new_cast_container_view< View< OldC, Params... >, NewC, typename std::enable_if< !is_segmented_view< View< OldC, Params... > >::value &&preserve_composition< View< OldC, Params... > >::value >::type >
 new_cast_container_view specialization for the case when view composition should be preserved. More...
 
struct  new_upcast_view
 Domain and mapping function transformation metafunction with purpose same as cast_container_view but employing variadic based optional parameter support. More...
 
struct  nfast_view
 A view that has the same behavior as the given View type, but uses a base container as underlying container to provide fast access over the data. More...
 
struct  nfast_view< mix_view< repeat_view< view_impl::repeat_container< T, 1, true, true > >, Info, CID > >
 Specialization for mix_view of repeat_view when a local copy might be fetched. Customized localization to be based on whether the local copy was fetched. Localize to a repeat view over this local copy. More...
 
struct  nfast_view< mix_view< transform_view< View, Functor >, Info, CID > >
 Specialization to construct a fast_view over a transform_view. More...
 
struct  nfast_view< mix_view< view_impl::reverse_view< View >, Info, CID > >
 Specialization for fast_view for reverse_view. More...
 
struct  nfast_view< mix_view< zip_view< Views... >, Info, CID > >
 Specialization for fast_view for zip_view. More...
 
class  no_comm_guard
 Registers the given context as a no communication section of code. More...
 
struct  no_init_array_base_container_traits
 Traits for the array base container that use an underlying container_type (lightweight_multiarray_storage), that avoids default initialization of values when possible (for now, when the stored datatype is fundamental). More...
 
struct  no_initialization
 Instruct the base container to attempt to use underlying sequential storage that does not default initialize elements during construction (unless a default value is defined by the user). More...
 
class  non_commutative_wrapper
 Wrapper class for a non-commutative binary operator. More...
 
struct  none_t
 Tag type for an invalid argument. More...
 
struct  normal_partition
 Partition in which domains created form a standard normal distribution. More...
 
struct  not_equal_to
 Function which returns whether its arguments are not equal. More...
 
struct  not_matched
 Tag class that is returned if a choice is not found for a static_match. More...
 
struct  not_same
 Negation of std::is_same. More...
 
struct  null_coarsener
 Identity coarsener. The same input views are returned as result of the coarsener. More...
 
struct  null_reference
 Tagging class used to define null references. More...
 
struct  null_sequence
 Functor to generate a sequence of default-constructed values. More...
 
struct  null_sequence< int >
 Functor to generate a sequence of default-constructed values. More...
 
class  offset_gen
 Wrapper around a generator functor that calls the generator's constructor to update its state to a specified offset, if the generator has implemented the method. More...
 
class  option
 Used to create a list of options. More...
 
struct  output_graph_to_file
 Work-function to print a native-view of the input graph to the given file. More...
 
struct  overlap_partition
 Overlapping partition for one dimensional domains. More...
 
class  overlap_view
 An overlap view is a segmented view whose segments overlap by some number of elements in each dimension as specified by the user. More...
 
class  p_object
 Implements the base class for distributed objects. More...
 
class  p_object_delete
 Deletes a distributed object. More...
 
struct  pack_ref
 Functor which serializes a reference. More...
 
struct  pack_ref< false >
 Functor which serializes a reference using a given typer. More...
 
class  package
 Class which deconstructs a view into its constituent parts so that it can be serialized. For general views, extract and store the container pointer, domain, and mapping function. If it's a mix view, also extract and store the id and metadata info members. More...
 
class  package< mix_view< repeat_view< Container >, Info, CID > >
 Specialization of package for mix_view over repeat_view Must be treated differently due to fake container underlying that view. More...
 
class  package< mix_view< View, Info, CID > >
 Specialization of package for mix_view. More...
 
class  package< repeat_view< Container > >
 Specialization of package for repeated view. Only store the underlying, repeatedly referenced value. Then, reconstruct using this value on destination. More...
 
class  package_container_storage
 Class which abstract storage of container for package, storing a pointer for a p_object container type and by value for other container types (i.e., proxy). More...
 
struct  pair_wise_tuple_comparison
 Functor comparing 2 tuples pair-wise. More...
 
struct  pair_wise_tuple_comparison< Op,-1 >
 Functor comparing 2 tuples pair-wise. More...
 
class  papi_counter
 Counter that uses PAPI to measure different events. More...
 
class  papi_cycle_counter
 Processor cycle counter that uses PAPI. More...
 
class  papi_timer
 Time counter that uses PAPI. More...
 
class  papi_timer_n_counter
 Counter that uses PAPI to measure both time and different events. More...
 
struct  paragraph_location_metadata
 Object held in location_specific_storage (one instance per location), tracking various pieces of low level information about the PARAGRAPHs executing on the location. More...
 
struct  parallel_reader
 Work-function to read a graph from the given input file.Uses the user-provided reader to read each line and add the edges from the line to the graph. More...
 
class  parent_pg_notifier
 Notifier used to wire pin from parent input port to child input port if handle resolution failed (i.e., the parent isn't initialized on the child PG affinity). Uses child input port's handle, location, and pin id. More...
 
class  part_id_size
 Helper class template that dispatches call to get_num_local_subviews to the first view parameter that has a finite domain. More...
 
struct  partition_view_type
 Helper to have the partition hierarchical view type. More...
 
class  partitioned_mix_view
 Represents a view over the partitioned distributed locality metadata used to specify the data used in the tasks. More...
 
class  persistent_scheduler
 Persistent scheduler that extends from default_scheduler. More...
 
struct  pg_aware_multiview_coarsener
 coarsening that doesn't apply coarsener on the views coming from paragraph results More...
 
struct  pg_edge_initialize
 Implementation functor of pg_edge_unpackager using partial specialization to call initialize_flow() on objects from instances of the class template nested_pg_view_subview. More...
 
class  pg_edge_unpackager
 Called in view initialization of PARAGRAPH constructor to initialize inter-paragraph dataflow with producer paragraphs. More...
 
class  pg_edge_view
 Provides a view over the input ports of an inter-paragraph dataflow backed view argument, so that point to point dataflow to tasks within a consuming paragraph can be initiated. More...
 
struct  pg_lazy_edge_reference
 Refinement of lazy_edge_reference concept for inter-paragraph port based dataflow. Holds pointer to associated edge_container to attempt evictions, instead of using task_graph reference provided by callers of release(). More...
 
struct  plus
 Function which returns the sum of its arguments. More...
 
class  pointer_wrapper
 std::reference_wrapper -like class for pointers to objects. More...
 
class  pool_allocator
 Pool backed allocator. More...
 
class  populate_graph_from_shards
 Work function that reads in a single shard and populates the graph. More...
 
struct  preserve_composition
 Meta-function providing a public member value which is true if given view composition ViewComp should be preserved during view casting. More...
 
struct  print_property_struct
 Functor to print the property on a vertex/edge (if it has one). More...
 
struct  print_property_struct< properties::no_property >
 Specialization for functor to print the property on a vertex/edge when it does not exist (stapl::properties::no_property). More...
 
struct  print_tuple_impl
 Static functor that uses template recursion to print all elements of a tuple with a comma delimiter. More...
 
class  priority_scheduler
 Priority scheduler that supports integer priority. More...
 
class  probe
 The probe is used to profile sections of code and dump the measurements to std::cout. More...
 
class  process_memory_usage_counter
 Memory usage counter that uses get_used_physical_memory(). More...
 
class  profile_config
 
struct  project_cells
 Functor to project a cell centroid on an axis. More...
 
class  promise
 Provides a means of setting a result asynchronously, which may be retrieved through an instance of future. More...
 
class  promise_notifier
 Function object encapsulating promised based notification. It is a notifier which holds the promise to be fulfilled and receives but ignores parameters used for rmi based data flow. More...
 
class  promise_notifier_adder
 Function object encapsulating promise_notifier initialization via the Directory at the producer location. More...
 
class  Property
 This class is a (specialization of) proxy for sequential::graph_property_edge. More...
 
class  property_accessor
 Accessor for the property on vertices of a graph. More...
 
struct  property_reference_constructor
 Functor creates a reference either as a proxy or a view, based on use_view_as_reference metafunction. More...
 
struct  property_reference_constructor< T, Container, GID, true >
 
class  proxy
 Defines a basic proxy over the element of type T. More...
 
class  proxy< aux_info, Accessor >
 Specialization of a proxy over aux_info. More...
 
class  proxy< dynamic_graph< D, M, OptionalParams... >, Accessor >
 This class is a (specialization of) proxy for dynamic_graph. More...
 
class  proxy< graph< D, M, OptionalParams... >, Accessor >
 Specialization of proxy for static stapl::graph. More...
 
class  proxy< graph_edge_property_map< PG, Functor >, Accessor >
 Specialization of proxy for graph_edge_property_map. More...
 
class  proxy< graph_external_edge_property_map< PG, Property, View >, Accessor >
 Specialization of proxy for graph_external_edge_property_map. More...
 
class  proxy< graph_external_property_map< PG, Property, View >, Accessor >
 Specialization of proxy for graph_external_property_map. More...
 
class  proxy< graph_internal_property_map< PG, Functor >, Accessor >
 Specialization of proxy for graph_internal_property_map. More...
 
class  proxy< paragraph< Scheduler, Factory, Views... >, Accessor >
 proxy specialization for PARAGRAPH type signature. More...
 
class  proxy< sequential::graph_edge, VD >
 This class is a (specialization of) proxy for sequential::graph_edge. More...
 
class  proxy< sequential::short_graph_edge, VD >
 This class is a (specialization of) proxy for sequential::short_graph_edge. More...
 
class  proxy< stapl::array< T, OptionalParams... >, Accessor >
 Specialization used when the type is an array. Refer to array for proper use of the container itself. More...
 
class  proxy< stapl::static_array< T >, Accessor >
 Specialization used when the type is a static_array. Refer to static_array for proper use of the container itself. More...
 
class  proxy< stapl::vector< T, OptionalParams... >, Accessor >
 Specialization of proxy for the vector container. More...
 
class  proxy< vertex_adj_list_impl< VD, Property, AdjList >, Accessor >
 Specialization of proxy for vertex_adj_list_impl. More...
 
class  proxy< vertex_adj_list_impl< VD, Property, AdjList >, local_accessor_graph< Container > >
 Specialization of proxy for vertex_adj_list_impl, specialized for local_accessor_graph, which lets us use a faster iterator over the edges than the member_iterator needed for the container_accessor. More...
 
class  proxy< vertex_csr_impl< VD, Property, AdjList >, Accessor >
 Specialization of proxy for vertex_csr_impl. More...
 
class  proxy< vertex_csr_impl< VD, Property, AdjList >, local_accessor_graph< Container > >
 Specialization of proxy for vertex_csr_impl, specialized for local_accessor_graph, which lets us use a faster iterator over the edges than the member_iterator needed for the container_accessor. More...
 
class  proxy_core_access
 Helper class used to access the proxy's accessor. More...
 
struct  proxy_holder
 Custom PARAGRAPH edge storage a proxy. More...
 
struct  proxy_pair_holder
 Custom PARAGRAPH edge storage for pairs of proxies. More...
 
struct  ptr_wrapper
 Wraps a view object with a interface that makes it behave as a pointer to a view of the same type would.This is used for PARAGRAPH edge views passed to add_task calls via consume calls, where there is not a view copy held/owned by the PARAGRAPH (i.e., those passed by user at PARAGRAPH creation). More...
 
class  random_lifeline_steal
 Stealing policy from one random neighbor. More...
 
class  random_location_generator
 Random location id generator. More...
 
class  random_sequence
 Generates a sequence of random values. More...
 
class  range_wrapper
 Describes a range of const objects. More...
 
struct  read_adj_list_line
 Adjacency-list line-reader functor for the graph_reader().Reads a vertex and its adjacencies from the input line (stream). format: More...
 
struct  read_dimacs_header
 Dimacs header-reader for the graph_reader().Reads the header lines from the input file-stream. Skips over comment lines and reads number of vertices. format: More...
 
struct  read_dimacs_line
 Dimacs line-reader for the graph_reader().Reads an edge (source and target) from the input line (stream). format: More...
 
struct  read_edge_list_line
 Edge-list line-reader functor for the graph_reader().Reads an edge (source and target) from the input line (stream). EdgeList format: #edge-source #edge-target format: More...
 
struct  read_edge_list_line_shuffle
 Edge-list line-reader functor for the graph_reader().Reads an edge (source and target) from the input line (stream). Randomly shuffle the vertex IDs but maintain the right edges. This is useful when a bad locality for the vertices has to be broken EdgeList format: #edge-source #edge-target #weight format: More...
 
struct  read_matrix_market_header
 Matrix Market header-reader for the graph_reader().Reads the header lines from the input file-stream. Skips over comment lines and reads number of vertices. format: More...
 
struct  read_matrix_market_line
 Matrix Market line-reader functor for the graph_reader(). The file format is described at http://math.nist.gov/MatrixMarket/formats.html. Note that the vertex numbering is one based. More...
 
struct  read_weighted_edge_list_line
 Weighted edge list line-reader functor for the graph_reader().Reads an edge (source target weight) from the input line (stream). EdgeList format: #edge-source #edge-target #weight format: More...
 
class  ref_accessor
 Defines the accessor that references a local element. More...
 
struct  referencer
 Functor creates a reference either as a proxy or a view, based on use_view_as_reference metafunction. More...
 
class  regular_face_property
 Cell face of a regular mesh. More...
 
struct  regular_mesh_cell_neighbor
 Functor that computes the index of a neighboring cell and the direction in which it lies from the cell provided. More...
 
struct  regular_mesh_cell_neighbor< DOM,-1 >
 Functor getting a cell neighbor. More...
 
struct  regular_mesh_edge_func
 Regular mesh edge functor creating the edges of a cell on-the-fly. More...
 
struct  remap_slices
 Metafunction used when creating nested deep slices views to remap the slices received in a .slice<> operation. More...
 
class  remote_notifier_adder
 Function object encapsulating remote_notifier initialization via the Directory at the producer location. More...
 
class  repeat_view
 A view that can provide infinite copies of the same element. More...
 
class  repetitive_sequence
 A sequence that repeats itself every 'repeat' elements. More...
 
struct  replicated_cid
 This code encapsulates a view index (previously call cid) used in cases when computation has been transparently replicated on portions of the system to avoid unnecessary communication. More...
 
struct  retype_ct_mf
 Type metafunction used by new_cast_container_view to substitute a new container and mapfunc type in a given view type. More...
 
struct  retype_ct_mf_impl
 Type metafunction which is implementation of retype_ct_mf. Receives original view, new container type, and new mapping function type. A boolean stating whether mapping function type has changed and a count of the number of optional params passed to view are used to dispatch to an appropriate partial specialization of the class template. More...
 
struct  retype_ct_mf_impl< View< OldC >, NewC, NewMF, false, 0 >
 Specialization for case when only container view type parameter was specified and new mapping function is not the same as old mapping function. More...
 
struct  retype_ct_mf_impl< View< OldC >, NewC, NewMF, true, 0 >
 Specialization for case when only container view type parameter was specified and new mapping function is the same as old mapping function. More...
 
struct  retype_ct_mf_impl< View< OldC, OldDom >, NewC, NewMF, false, 1 >
 Specialization for case when container and domain view type parameter were specified and new mapping function is not the same as old mapping function. More...
 
struct  retype_ct_mf_impl< View< OldC, OldDom >, NewC, NewMF, true, 1 >
 Specialization for case when container and domain view type parameter were specified and new mapping function is the same as old mapping function. More...
 
struct  retype_ct_mf_impl< View< OldC, OldDom, OldMF, OptionalArgs... >, NewC, NewMF, b_same_mf, num_optional >
 Specialization for case when at least container, domain, and mapping function view type parameter were specified. More...
 
class  reversed_domain
 Represents a one dimensional reversed domain over the given domain Dom. More...
 
class  rk_rk_steal
 Random-k random-k stealing policy. More...
 
class  rk_steal
 Random-k stealing policy. More...
 
class  rmi_handle
 Provides a registration mechanism for RMI communication. More...
 
struct  ro_binary_function
 Represent a read-only binary functor, which provides typedefs for the argument and return types. Mimics the equivalent STL construct to allow for compatibility. More...
 
struct  ro_unary_function
 Represent a read-only unary functor, which provides typedefs for the argument and return types. Mimics the equivalent STL construct to allow for compatibility. More...
 
struct  root_location_t
 Tag type to represent the root of a collective operation. More...
 
struct  rows_partition
 Partition in rows the given 2D domain. More...
 
class  runnable_base
 Common base for all entries that can be scheduled and executed, such as tasks and executors. More...
 
struct  safe_tuple_element
 Metafunction that acts like tuple_element except when the index is -1, in which case it gives a default type instead. More...
 
class  sched_entry
 Base scheduler entry class for entries that can know their scheduling information. More...
 
class  scoped_counter
 Function object to start and stop a counter object in a specific scope. More...
 
class  segmented_view
 Define a view over a virtual container of views (view_container). More...
 
struct  segmented_view_base
 Base class of segmented views. More...
 
struct  select_derived
 Determine the most derived class based on the given Derived type. More...
 
struct  select_graph_edge
 Helper for selecting the edge implementation based on property on edge and directedness of graph. Specializations for edges with no property are below. More...
 
struct  select_parameter
 Type metafunction used by class templates with default template parameters that might be lengthy in type / name. Shortens symbol names for better debug output and compile times. More...
 
struct  select_parameter< use_default, Default >
 Specialization when Passed parameter to metafunction is use_default. More...
 
struct  select_stub
 Helper to determine which stub to use based on the type of partition PS. More...
 
struct  seq_graph_traits
 Traits class for adjacency_list_model based on dynamic storage. More...
 
class  sequence
 Generates a sequence of consecutive values. More...
 
struct  sequence_element
 Get the I'th element in an. More...
 
struct  set_geom_vector
 Functor to set the coordinates of a geometric vector. More...
 
struct  set_geom_vector<-1 >
 Functor to set the coordinates of a geometric vector. Template specialization to stop the recursion on the coordinates. More...
 
struct  set_kba_like_partition_domains
 Functor to compute a final partition after the partitioning of each dimension. More...
 
struct  set_kba_like_partition_domains< Dim, 1, Precision >
 Functor to compute a final partition after the partitioning of each dimension. More...
 
struct  set_kba_like_partition_domains< Dim, 2, Precision >
 Functor to compute a final partition after the partitioning of each dimension. More...
 
struct  set_kba_like_partition_domains< Dim, 3, Precision >
 Functor to compute a final partition after the partitioning of each dimension. More...
 
struct  set_supervertex_domain
 Functor setting the children domain of a super-vertex of a hierarchical view. More...
 
struct  sharded_description
 Representation of how an input graph is sharded on disk. More...
 
struct  should_preserve
 Helper meta-function providing a public member value which is true if the composition containing the provided view type View should be preserved during view casting. More...
 
struct  single_container
 Generator container that returns the same element for every access. More...
 
struct  single_container_registry
 Base container storage for pContainers that are guaranteed to have only one base container per location. More...
 
class  single_element_range
 A range over a single element that can be used in a range-based for loop. More...
 
struct  size_tuple
 Struct helper to select tuple type with the dimension. More...
 
struct  size_tuple< 2 >
 Struct helper to select tuple type with the dimension. More...
 
struct  size_tuple< 3 >
 Struct helper to select tuple type with the dimension. More...
 
class  sliced_balance_map
 Computes a balanced mapping of ids to partitions using a subset of the elements in gid, as defined by the list of indices in PartitionIndexTuple. More...
 
class  sliced_partition
 Partitioner that slices off dimensions of a d-dimensional domain to produce subdomains of dimension d-|Slices|. More...
 
struct  sparse_interval_container_registry
 Base container storage that internally uses sets of intervals based off the GID to perform loopkups. More...
 
struct  spatial_decomposition
 Collapser decomposing a regular mesh into decomp partitions. More...
 
struct  spatial_regular_domain_decompose
 Partition a domain representing a regular mesh. More...
 
class  splitter_partition
 Partition a one-dimensional domain explicitly into subdomains based on a fixed set of splitter GIDs. More...
 
class  start_computation_wf
 Work function to start the base container ranking computation. More...
 
class  static_array
 Parallel non-migratable array container.This container provides fast access, but is limited in numerous ways: this container cannot be migrated; the distribution is fixed to a balanced partition with one base container per location. More...
 
struct  static_array_metadata
 Class for computing the metadata of static_array container that uses container_manager_static that inherits from the base-container, and thus, is the base-container itself. This type of container manager has only one component per location. More...
 
struct  static_array_traits
 Default traits for the static_array container. Specifies customizable type parameters that could be changed on a per-container basis. More...
 
struct  static_graph_traits
 Default traits for the stapl::graph container. Specifies customizable type parameters that could be changed on a per-container basis. More...
 
class  static_graph_view
 A static graph view using adaptors for vertex and edge properties. More...
 
struct  static_match
 Statically choose a type from a list of options. More...
 
class  static_registry
 This class is used to store directory entries in the container_directory class and subsequently, its base class directory. It models the map concept. More...
 
class  steal_from_previous
 Steal from left neighbor stealing policy. More...
 
class  steal_policy_base
 Base class for stealing policies. More...
 
struct  stl_vector_accessor
 Defines an accessor for std::vector. More...
 
struct  stl_vector_const_accessor
 Defines a const_accessor for std::vector. More...
 
struct  stream
 A wrapper around a stream whose instances can be kept as data members of work functions. The wrapper allows work functions to access to the stream any location to which they may be sent via RMI invocation. More...
 
class  strided_view
 A view over a container where elements are chosen based on a specified stride. More...
 
struct  stub
 Stub class to provide -> access on a locally fetched copy of a remote object. More...
 
struct  stub_dontcare
 Defines an object that provides the methods for data localization required for the task. More...
 
struct  stub_localize
 Defines an object that provides the methods for data localization required for the task. More...
 
struct  stub_localize_nat_view
 Defines an object that provides the methods for data localization required for the task. More...
 
struct  stub_self_element
 Defines a view that behaves as the given View and provides the methods for data localization required for the task. More...
 
class  task_factory_base
 Intermediate class of the task factory hierarchy that provides the edge_mf_type for all factories that derive from it. More...
 
struct  tautology
 Default functor that accepts everything. More...
 
class  tbb_range_adaptor
 Adaptor that allows creation of a TBB compatible range from a view. More...
 
class  terminator
 General termination detection. More...
 
class  terminator_base
 Base class for termination detection. More...
 
class  tg_callback
 Callback to PARAGRAPH used by tasks to inform it of task completion, migration requests, etc.Tasks can be migrated to execute at locations outside where the associated PARAGRAPH is defined. This class generalizes task access to the PARAGRAPH to support such cases. More...
 
struct  tg_initializer
 Allows the PARAGRAPH infrastructure to detect if an PARAGRAPH initialization is currently in progress. Aids in reference counting of cross PARAGRAPH data consumption when in non blocking execution mode. More...
 
struct  this_location_t
 Tag type to represent the current location. More...
 
struct  transform_assign
 Function which applies given functor to its first argument(s), and assigns the result to its last argument. More...
 
class  transform_view
 Defines a view that behaves as the given View but applies the given functor to the elements when they are returned by get data methods. More...
 
struct  transporter_packager
 Functor used by to create serialized views for an out of PARAGRAPH task placement via executor_rmi. More...
 
struct  transporter_packager_impl
 Support class of transport_packager polymorphic functor. If the specified argument is a view, store its constituent parts in package and return the package. Otherwise, just return the argument. More...
 
struct  transporter_unpackager
 Functor used by transporter to unpack views sent out of PARAGRAPH gang by the task placement policy. More...
 
struct  transporter_unpackager_impl
 Support class of transporter_unpackager polymorphic functor. If the specified argument is a package, invoke the function operator. Otherwise, just return the argument. More...
 
class  traversal_profiler
 
class  traversal_profiler_bgl
 
struct  trivial_accessor
 Defines an accessor over a constant value. More...
 
struct  try_transmitter
 Transmitter for Directory that sends requests with try_rmi(). More...
 
class  tunnel_aggregator
 Aggregates requests to apply a functor (Func) on elements of a container. More...
 
struct  tuple_element
 Wrap std::tuple_element and fix deficiency in libstdc++, which doesn't remove cv qualifications. More...
 
struct  tuple_size
 Wrap std::tuple_size and fix deficiency in libstdc++, which doesn't remove cv qualifications.This wrapper also reflects value_type and type, and implements value_type(). All of these interfaces are specified in the standard, but are not yet provided by libstd++. More...
 
struct  type_constant_equal
 Boost.MPL conforming metafunction to check that the passed compile-time constant is equal to N, regardless of whether it is a boost::mpl::int_ or std::integral_constant. More...
 
struct  type_id_impl
 Returns the type id of a non-polymorphic type. More...
 
struct  type_printer
 Prints the given type through the apply(std::ostream&) function. More...
 
struct  typelist_printer
 Prints the given list of types to the std::ostream. More...
 
class  typer
 typer class is used for packing, unpacking and copying objects. More...
 
class  typer_traits
 Provides methods for assisting in packing and unpacking objects. More...
 
struct  typer_traits_specialization
 Traits class to detect which typer_traits is a specialization and which is the default. More...
 
struct  unary_negate
 Function which returns whether its argument was not matched by the given predicate. More...
 
struct  unconditional_flow
 Simple filter to pass to general consume_pg so that all indices in the output port are flowed to the consumer. More...
 
struct  underlying_container< T, false >
 Specialization for non-views. More...
 
class  undirected_graph
 Class for undirected-graph.Inherits all functionality from directed_graph_base, over-writing edge-related methods to provide undirected behaviour. More...
 
struct  undirected_view_type
 Helper struct to get the type for undirected_view. More...
 
struct  uniform_ndim_to_linear_map
 Computes the mapping of an n-dimensional component id to a linear location id in a uniform manner. More...
 
class  unique_sorted_sequence
 Generates a sequence of unique random sorted values. More...
 
struct  unordered_async_transmitter
 Transmitter for Directory that sends requests using unordered::async_rmi(). More...
 
class  unordered_map_adjacency_list_impl
 Adjacency list of a vertex implemented as an unordered map of edges.Used inside the vertex_adj_list_impl to store adjacent edges. More...
 
class  unordered_registry
 
class  unstructured_mesh
 Implementation of n-dimensional unstructured mesh. Inherits from stapl::dynamic_graph and adds functionality to manage cells, faces and mesh vertices. More...
 
struct  upcast_view
 Helper class to change the domain and mapping function type of the given View to the specified new domain type Dom and mapping function type MF. More...
 
struct  upcast_view< array_ro_view< C >, Dom, MF >
 Specialization ensures container domain and mapping function transform. More...
 
struct  upcast_view< array_view< C >, Dom, MF >
 Specialization ensures container domain and mapping function transform. More...
 
struct  upcast_view< graph_view< C >, Dom, MF >
 Specialization ensures container domain and mapping function transform. More...
 
struct  upcast_view< hgraph_view< C >, Dom, MF >
 Specialization ensures container domain and mapping function transform. More...
 
struct  upcast_view< repeat_view< C >, Dom, MF >
 Specialization ensures container domain and mapping function transform for variadic based optionals is used. More...
 
struct  upcast_view< segmented_view< C, P, MFG, SVC >, NewDom, NewMF >
 Specialization of upcast_view (used to change mapping function and domain type of a view) for segmented_view. This has non standard template parameters (i.e., not C, D, MF, Derived) and furthermore is assumed to inherit domain from partition and have an identity mapping function. Assert that these have not been changed and reflect the original type passed to it. More...
 
struct  upcast_view< vector_view< C >, Dom, MF >
 Specialization ensures container domain and mapping function transform. More...
 
struct  upcast_view_helper
 Helper metafunction for new_upcast_view that dispatches based on presence of optional parameters and domain / mapping function changes to compute a view with possibly different domain and mapping function type parameters. More...
 
struct  upcast_view_helper< View, Dom, MF, true, true >
 Specialization handling case that no domain or mapping function provided in original's view instantiation and new domain and mapping function are the same. More...
 
struct  upcast_view_helper< View< C >, Dom, MF, false, false >
 Specialization handling case that no domain or mapping function provided in original's view instantiation and new domain and the mapping fucntion are the same. More...
 
struct  upcast_view_helper< View< C >, Dom, MF, false, true >
 Specialization handling case that no domain or mapping function provided in original's view instantiation and new domain is not the same but the mapping function is the same. More...
 
struct  upcast_view_helper< View< C, OldDom >, Dom, MF, false, true >
 Specialization handling case that domain is provided in original's view instantiation and new domain is not the same but the mapping function is the same. More...
 
struct  upcast_view_helper< View< C, OldDom, OldMF >, Dom, MF, same_dom, same_mf >
 Specialization handling case that domain and mapping function are provided in original's view instantiation. More...
 
struct  upcast_view_helper< View< C, OldDom, OldMF >, Dom, MF, true, true >
 Specialization handling case that domain and mapping function are provided in original's view instantiation and match the new domain and mapping function. More...
 
struct  use_coarse
 Implements the function operator to return the coarse-grained work function that will be used in a task specified by a factory. More...
 
struct  use_default
 Tag type detected by select_parameter metafunction to detect if a class template is specified by user or if default param is used. More...
 
class  va_iterator
 Specialized iterator with property adaptor to filter particular members of the property.The property adaptor used in this iterator is default constructed. More...
 
class  va_iterator< VertexIterator, EdgeIter, use_default >
 Specialized vertex iterator for when only the edge is adapted./The property adaptor used in this iterator is default constructed. More...
 
class  vdg_strided
 Class for generating vertex descriptors with a strided pattern.Used by the dynamic graph to add vertices when descriptors are not provided by users. More...
 
class  vector
 Parallel Vector container. More...
 
struct  vector_base_container
 The base container used for vector. More...
 
struct  vector_base_container_traits
 Default traits for the vector base container. These traits can be changed to customize base containers. More...
 
class  vector_container_manager
 Container manager used for the vector container. More...
 
class  vector_directory
 The container directory is responsible for distributed metadata for GIDs. It knows in which location GIDs reside. It also provides methods to invoke arbitrary functors on the location of GIDs without requiring external entities to know exact locality information. More...
 
class  vector_distribution
 Defines the vector distribution. More...
 
struct  vector_traits
 Collection of types for vector. More...
 
class  vector_view
 Defines a view that provides the interface of a vector abstract data type. (. More...
 
class  vertex_adj_list_impl
 Vertex for adjacency list for the graph. More...
 
class  vertex_csr_impl
 Vertex for a Compressed Sparse-Row (CSR) graph. More...
 
class  vertex_descriptor_generator
 A generator for vertex descriptors.This class will generate unique vertex descriptors, taking into account that the graph may auto generate them, as well as the users may specify them. This is specialized for different types of vertex descriptors. More...
 
class  vertex_descriptor_generator< size_t >
 A generator for vertex descriptors, specialized for size_t.This class will generate unique vertex descriptors, taking into account that the graph may auto generate them, as well as the users may specify them. More...
 
struct  vertex_to_adjlist_func
 A functor to print a vertex and its adjacencies. More...
 
struct  vertex_to_adjlist_prop_func
 A functor to print a vertex and its adjacencies. More...
 
struct  vertex_to_DOT_func
 A functor to print a vertex and its adjacencies in DOT format. More...
 
struct  vertex_to_edgelist_1based_func
 A functor to print a vertex and its adjacencies in 1-based form. More...
 
struct  vertex_to_edgelist_func
 A functor to print a vertex and its adjacencies. More...
 
struct  view_based_mapper
 Mapper which takes the functor mapping partition ids to locations from the distribution_view provided to the pContainer constructor. More...
 
struct  view_based_partition
 Partition which takes the functor mapping pContainer GIDs to partition ids from the distribution_view provided to the pContainer constructor. More...
 
struct  view_container_base
 Base class of view containers, which are containers that store subviews for segmented views. More...
 
struct  view_index_iterator
 Iterator that traverses a disjoint partition of the indices of a view's elements. More...
 
struct  view_index_iterator_base
 Base class used to allow view_index_iterator instances over different view types to be stored in an std::vector in a factory that performs incremental task generation. More...
 
struct  view_traits
 Helper structure to extract the types provided by the given view type. More...
 
struct  view_traits< array_ro_view< C > >
 Specialization for when only container type parameter is specified. More...
 
struct  view_traits< array_ro_view< C, D > >
 Specialization for when container and domain type parameters are specified. More...
 
struct  view_traits< array_ro_view< C, D, F > >
 Specialization for when container, domain, and mapping function type parameters are specified. More...
 
struct  view_traits< array_ro_view< C, D, F, Derived > >
 Specialization for when all four type parameters are specified. More...
 
struct  view_traits< array_view< C > >
 Specialization for when only container type parameter is specified. More...
 
struct  view_traits< array_view< C, D > >
 Specialization for when container and domain type parameters are specified. More...
 
struct  view_traits< array_view< C, D, F > >
 Specialization for when container, domain, and mapping function type parameters are specified. More...
 
struct  view_traits< array_view< C, D, F, Derived > >
 Specialization for when all four type parameters are specified. More...
 
struct  view_traits< distribution_spec_view< C, D, GID, CID > >
 Specialization for when container, domain, and mapping function type parameters are specified. More...
 
struct  view_traits< frontier_view< PG, Frontier > >
 Specialization for when only container type parameter is specified. More...
 
struct  view_traits< frontier_view< PG, Frontier, D > >
 Specialization for when container and domain type parameters are specified. More...
 
struct  view_traits< frontier_view< PG, Frontier, D, F > >
 Specialization for when container, domain, and mapping function type parameters are specified. More...
 
struct  view_traits< frontier_view< PG, Frontier, D, F, Derived > >
 Specialization for when all five type parameters are specified. More...
 
struct  view_traits< graph_view< C > >
 Specialization for when only container type parameter is specified. More...
 
struct  view_traits< graph_view< C, D > >
 Specialization for when container and domain type parameters are specified. More...
 
struct  view_traits< graph_view< C, D, F > >
 Specialization for when container, domain, and mapping function type parameters are specified. More...
 
struct  view_traits< graph_view< C, D, F, Derived > >
 Specialization for when all four type parameters are specified. More...
 
struct  view_traits< hgraph_view< C > >
 Specialization for when only container type parameter is specified. More...
 
struct  view_traits< hgraph_view< C, D > >
 Specialization for when container and domain type parameters are specified. More...
 
struct  view_traits< hgraph_view< C, D, F > >
 Specialization for when container, domain, and mapping function type parameters are specified. More...
 
struct  view_traits< hgraph_view< C, D, F, Derived > >
 Specialization for when all four type parameters are specified. More...
 
struct  view_traits< lazy_graph_view< C > >
 Specialization of for the lazy_graph_view. More...
 
struct  view_traits< partitioned_mix_view< View, Part, CC > >
 Specialization for view_traits to expose the types provided for partitioned_mix_view. More...
 
struct  view_traits< segmented_view< Container, Partition, MFG, SVC > >
 Specialization for view_traits to expose the types provided for segmented_view. More...
 
struct  view_traits< transform_view< View, Functor > >
 Specialization of view_traits for transform_view. More...
 
struct  view_traits< vector_view< C > >
 Specialization for when only container type parameter is specified. More...
 
struct  view_traits< vector_view< C, D > >
 Specialization for when container and domain type parameters are specified. More...
 
struct  view_traits< vector_view< C, D, F > >
 Specialization for when container, domain, and mapping function type parameters are specified. More...
 
struct  view_traits< vector_view< C, D, F, Derived > >
 Specialization for when all four type parameters are specified. More...
 
struct  view_traits< view_impl::reverse_view< View > >
 Specialization of view_traits for reverse_view. More...
 
struct  view_traits< VT< C, D, F, Derived >, typename std::enable_if<!stapl::is_view< D >::value and !stapl::is_container< D >::value > >
 Helper structure to extract the types provided by the given view type. Conditional inheritance guards against templates matching this signature that aren't views and enable_if prevents views accepting variadic number of views, and hence don't conform to their template parameter convention (i.e., Zip). More...
 
struct  view_traits< zip_view< Views... > >
 Specialization of view_traits for zip_view. More...
 
struct  view_traits_impl
 Define traits for views and containers that do not conform to the V<C,D,F,Derived> template parameter convention. More...
 
class  visitor_base
 A base class to be inherited by every visitor class. More...
 
class  visitor_predecessors_base
 A base class to be inherited by every visitor predecessors class. More...
 
struct  vs_map_helper
 Helper method for vs_map that does most of the actual work. Is passed the size of the tuples and this is used by the preprocessing below to create size specific specialization of this class template. Each specialization defines a static function with corresponding arity and repetition of operations. More...
 
struct  vs_map_reduce_helper
 Helper method for vs_map_reduce that does most of the actual work. Is passed the size of the tuples and this is used by preprocessing below to create size specific specialization of this class template. Each specialization defines a static function with corresponding arity and repetition of operations. More...
 
class  watchdog_timer
 Allows the creation of a watchdog timer that invokes the given function every interval milliseconds. More...
 
struct  weight_balanced_refiner
 Refiner to balance partitions in a diffusive fashion. The diffusion is done pair-wise and each diffusion phase considers an independent set of partition pairs (2 pairs which do not have a partition in common) More...
 
class  wf_iter_compare
 Helper class template that performs iterator comparison against an end iterator. The iterators are selected from a single view of a list of input views. The first view with a finite domain is selected for use in the comparison. More...
 
class  work_stealing_sched_entry
 Wrapper class for entries in a work-stealing scheduler. More...
 
class  work_stealing_sched_info
 Work-stealing scheduling information. More...
 
class  work_stealing_scheduler
 Scheduler that provides work stealing support. More...
 
struct  wrap_ref
 Functor which returns its argument (which is a reference). More...
 
struct  wrap_ref< false >
 Functor which wraps its argument in a stapl::proxy using a cref_accessor. More...
 
class  xc30_energy_counter
 Counter that measures energy consumption in Joules for the Cray XC30 platform. More...
 
class  zip_view
 Defines a one dimensional view over a zipped set of views. More...
 

Typedefs

template<typename GIDDomain = stapl::indexed_domain<unsigned long int>>
using distribution_spec = typename dist_spec_impl::distribution_spec< GIDDomain >::type
 The type of the view that provides the specification of a one-dimensional container distribution.
 
template<graph_attributes D, typename VP = properties::no_property, typename EP = properties::no_property, typename P = balanced_partition<indexed_domain<std::size_t>>, typename M = mapper<std::size_t>>
using short_csr_graph = csr_graph< D, NONMULTIEDGES, VP, EP, P, M, csr_short_edge_graph_traits< D, VP, EP, P, M > >
 Type alias for a CSR (compressed sparse row) graph that has short edges. A short edge is an edge that only has target information and no source or ID information in the case of multiedges. More...
 
template<graph_attributes D, typename VP = properties::no_property, typename EP = properties::no_property, typename P = balanced_partition<indexed_domain<std::uint32_t>>, typename M = mapper<std::uint32_t>>
using small_short_csr_graph = csr_graph< D, NONMULTIEDGES, VP, EP, P, M, csr_short_edge_graph_traits< D, VP, EP, P, M > >
 Type alias for a CSR (compressed sparse row) graph that has short edges and is limited to 2^32 vertices. A short edge is an edge that only has target information and no source or ID information in the case of multiedges. More...
 
template<typename T >
using is_base_container = std::is_base_of< bc_base, T >
 Metafunction to determine if a given type is a STAPL base container. More...
 
typedef int process_id
 Process id type.
 
typedef std::uint8_t level_type
 Level type.
 
typedef gettimeofday_timer default_timer
 
typedef fifo_scheduler< default_task_placement > default_scheduler
 Default scheduler is the fifo_scheduler.
 
typedef fifo_scheduler< default_task_placement > default_gang_scheduler
 Default gang scheduler is the fifo_scheduler.
 
template<typename T >
using object_pointer_wrapper = pointer_wrapper< T, false >
 pointer_wrapper when it is known that T is not a distributed object.
 
template<typename T >
using p_object_pointer_wrapper = pointer_wrapper< T, true >
 pointer_wrapper when it is known that T is a distributed object.
 
using type_id = std::uintptr_t
 Id for a type.
 
typedef unsigned int location_type
 
template<typename C >
using lightweight_vector_accessor = stl_vector_accessor< C >
 
template<typename C >
using lightweight_vector_const_accessor = stl_vector_const_accessor< C >
 
template<typename T , typename Default >
using default_type = typename std::conditional< std::is_same< T, stapl::use_default >::value, Default, T >::type
 
template<typename Mutex , bool Condition>
using conditional_lock_guard = conditonal_inherit< std::lock_guard< Mutex >, Condition >
 A lock guard that locks based on a compile-time condition. If the condition is false, then no locking happens.
 
template<std::size_t... Ints>
using index_sequence = integer_sequence< std::size_t, Ints... >
 Helper alias template for integer_sequence for std::size_t.
 
template<std::size_t N>
using make_index_sequence = typename make_index_sequence_impl< N >::type
 Creates an index_sequence with the values 0, 1, ..., N-1.
 
template<typename Items , template< typename... > class Predicate, typename... Arg>
using find_first_index = detail::find_first_index_impl< Items, Predicate, 0, tuple_size< Items >::value, Arg... >
 Finds the index of the first item in a given tuple that satisfies a given predicate. More...
 
template<typename Items , typename For , template< typename... > class Predicate, typename... Arg>
using find_first_indices_seq = detail::find_first_indices_impl< Items, For, Predicate, make_index_sequence< tuple_size< For >::value >, Arg... >
 Return an index_sequence with the result of find_first_index for all of the elements in For. More...
 
template<int N, typename T >
using homogeneous_tuple_type_t = typename homogeneous_tuple_type< N, T >::type
 
template<typename std::size_t N, typename Tuple >
using tuple_element_t = typename tuple_element< N, Tuple >::type
 
template<class A >
using type_identity = std::enable_if< true, A >
 An identity metafunction.
 
template<typename A , typename B >
using type_less = std::integral_constant< bool,(A::value< B::value)>
 Compares the value member of two types.
 
template<typename GID >
using identity_map_func_gen = map_fun_gen< f_ident< GID > >
 Template alias for making a identity mapping function generator given the specified GID type.
 
template<typename MDCont >
using convert_to_wrap_partition = metadata::view_wrapper< typename MDCont::second_type::value_type, typename MDCont::second_type::domain_type, metadata_traits< typename MDCont::second_type >::is_isomorphic::value >
 Defines the coarsen metadata wrapper type for the given container type. More...
 
using default_coarsener = multiview_coarsener< true >
 
template<typename View >
using underlying_container_t = typename underlying_container< View >::type
 

Enumerations

enum  visitor_return { CONTINUE, EARLY_QUIT }
 
enum  graph_attributes { DIRECTED, UNDIRECTED, MULTIEDGES, NONMULTIEDGES }
 Enumeration of graph attributes.Used to specify if the graph is DIRECTED or UNDIRECTED, or if it allows multiple edges between the same source and target vertices (MULTIEDGES) or not (NONMULTIEDGES).
 
enum  graph_generator_type {
  random, complete, mesh, smesh,
  torus, plod, cplod, small_world,
  erdos_renyi, star
}
 
enum  edge_request_type {
  NONE = -1, SIGNAL = 0, FILTERED = 1, FULL = 2,
  REMOTE = 3
}
 
enum  df_add_status { REMOTE_REQ_COVERED, SEND_NOTIFIER_REQ }
 
enum  rmi_handle_flags { no_aggregation = 0x1, no_fence_information = 0x2, allow_try_rmi = 0x4 }
 Flags for registering objects. More...
 
enum  init_specifier { initialized, non_initialized }
 
enum  { __stl_num_primes = 28 }
 
enum  loc_qual { LQ_CERTAIN, LQ_LOOKUP, LQ_DONTCARE }
 Qualifies the locality information a view or container returns about an element. More...
 
enum  distribution_type {
  balanced, blocked, block_cyclical, cyclical,
  unknown
}
 Enumeration of the regular distributions recognized. More...
 

Functions

template<typename View0 , typename View1 >
void copy (View0 const &vw0, View1 const &vw1)
 Copy the elements of the input view to the output view. More...
 
template<typename View0 , typename View1 , typename Size >
void copy_n (View0 const &vw0, View1 const &vw1, Size n)
 Copy the first n elements from the input view to the output view. More...
 
template<typename View , typename View2 , typename Pred >
bool lexicographical_compare (View const &pview1, View2 const &pview2, Pred const &pred)
 Determines if the first view is lexicographically less than the second view, using the given functor. More...
 
template<typename View , typename View2 >
bool lexicographical_compare (View const &pview1, View2 const &pview2)
 Determines if the first view is lexicographically less than the second view. More...
 
template<typename View , typename Generator >
void generate (View const &view, Generator gen)
 Assign each value of the input view to the result of calling the provided functor. More...
 
template<typename View , typename Generator >
void generate_n (View const &view, size_t first_elem, size_t n, Generator gen)
 Assign the n values of the input view starting at the given element to the result of calling the provided functor. More...
 
template<typename View , typename Predicate >
void replace_if (View &vw, Predicate pred, typename View::value_type const &new_value)
 Replace the values from the input view for which the given predicate returns true with the new value. More...
 
template<typename View >
void replace (View &vw, typename View::value_type const &old_value, typename View::value_type const &new_value)
 Replace the given value in the input with the new value. More...
 
template<typename View0 , typename View1 , typename Predicate >
View1::iterator replace_copy_if (View0 const &vw0, View1 const &vw1, Predicate pred, typename View0::value_type new_value)
 Copy the values from the input view to the output, except for those elements for which the given predicate returns true, which are replaced with the given value. More...
 
template<typename View , typename Size >
void fill_n (View &vw, typename View::value_type value, Size n)
 Assigns the given value to the first n elements of the input view. More...
 
template<typename View >
void fill (View const &vw, typename View::value_type value)
 Assigns the given value to the elements of the input view. More...
 
template<typename View1 , typename View2 , typename MergeView >
void merge (View1 const &view1, View2 const &view2, MergeView &merged)
 Merges the two sorted input views into the output view in sorted order. More...
 
template<typename View >
void swap_ranges (View &vw0, View &vw1)
 Swaps the elements of the two input views. More...
 
template<typename View0 , typename View1 >
View1::iterator replace_copy (View0 &vw0, View1 &vw1, typename View0::value_type old_value, typename View0::value_type new_value)
 Copy the elements from the input to the output, replacing the given old_value with the new_value. More...
 
template<typename View0 , typename Function >
Function for_each (const View0 &vw0, Function func)
 Applies the given functor to all of the elements in the input. More...
 
template<typename View0 , typename View1 , typename Function >
void transform (const View0 &vw0, const View1 &vw1, Function func)
 Applies the given function to the input, and stores the result in the output. More...
 
template<typename View0 , typename View1 , typename View2 , typename Function >
void transform (View0 &vw0, View1 &vw1, View2 &vw2, Function func)
 Applies the given function to the inputs, and stores the result in the output. More...
 
template<typename View , typename Comp >
bool is_sorted (View const &view, Comp comp)
 Computes whether the input view is sorted. More...
 
template<typename View >
bool is_sorted (View const &view)
 Computes whether the input view is sorted. More...
 
template<typename View , typename Comp >
View is_sorted_until (View const &v, Comp const &c)
 Finds the range of elements in the input which are sorted. More...
 
template<typename View >
View is_sorted_until (View const &v)
 Finds the range of elements in the input which are sorted. More...
 
template<typename View , typename Predicate >
bool is_partitioned (View const &pview, Predicate predicate)
 Decides if the input view is partitioned according to the given functor, in that all elements which return true precede all those that do not. More...
 
template<typename View0 , typename View1 >
bool equal (View0 const &view0, View1 const &view1)
 Compares the two input views and returns true if all of their elements compare pairwise equal. More...
 
template<typename View0 , typename View1 , typename Predicate >
bool equal (View0 const &view0, View1 const &view1, Predicate predicate)
 Compares the two input views and returns true if all of their elements compare pairwise equal. More...
 
template<typename View , typename T , typename StrictWeakOrdering >
View::reference lower_bound (View const &view, T value, StrictWeakOrdering comparator)
 Finds the first element in the input view which compares greater than or equal to the given value. More...
 
template<typename View , typename T >
View::reference lower_bound (View const &view, T const &value)
 Finds the first element in the input view which compares greater than or equal to the given value. More...
 
template<typename View , typename T , typename StrictWeakOrdering >
View::reference upper_bound (View const &view, T value, StrictWeakOrdering comparator)
 Finds the first element in the input view which compares greater than the given value. More...
 
template<typename View , typename T >
View::reference upper_bound (View const &view, T const &value)
 Finds the first element in the input view which compares greater than the given value. More...
 
template<typename View , typename StrictWeakOrdering >
bool binary_search (View const &view, typename View::value_type value, StrictWeakOrdering comparator)
 Searches the input view for the given value using a binary search, and returns true if that value exists in the input. More...
 
template<typename View >
bool binary_search (View const &view, typename View::value_type const &value)
 Searches the input view for the given value using a binary search, and returns true if that value exists in the input. More...
 
template<typename View , typename StrictWeakOrdering >
View equal_range (View const &view, typename View::value_type value, StrictWeakOrdering comparator)
 Computes the range of elements which are equal to the given value. More...
 
template<typename View >
View equal_range (View const &view, typename View::value_type const &value)
 Computes the range of elements which are equal to the given value. More...
 
template<typename T >
proxy< T, cref_accessor< T > > make_cref (T const &t)
 
 STAPL_DEFINE_IDENTITY_VALUE (min< unsigned char >, unsigned char, std::numeric_limits< unsigned char >::max()) STAPL_DEFINE_IDENTITY_VALUE(min< unsigned int >
 
 STAPL_DEFINE_IDENTITY_VALUE (max< unsigned char >, unsigned char, std::numeric_limits< unsigned char >::min()) STAPL_DEFINE_IDENTITY_VALUE(max< unsigned int >
 
 STAPL_DEFINE_IDENTITY_VALUE (logical_and< long unsigned int >, long unsigned int, 1) template< typename T > struct logical_or
 Function which returns the logical or of its arguments. More...
 
template<typename Predicate >
unary_negate< Predicate > not1 (Predicate const &pred)
 Construct a unary_negate functor with the given predicate. More...
 
template<typename Predicate >
binary_negate< Predicate > not2 (Predicate const &pred)
 Construct a binary_negate functor with the given predicate. More...
 
template<typename Operation , typename T >
binder1st< Operation, T, false > bind1st (Operation const &fn, T const &x)
 Bind the first argument of fn to x. More...
 
template<typename Operation , typename T , typename A >
binder1st< Operation, proxy< T, A >, true > bind1st (Operation const &fn, proxy< T, A > p)
 Bind the first argument of fn to x. More...
 
template<typename Operation , typename T >
binder2nd< Operation, T, false > bind2nd (Operation const &fn, T const &x)
 Bind the second argument of fn to x. More...
 
template<typename Operation , typename T , typename A >
binder2nd< Operation, proxy< T, A >, true > bind2nd (Operation const &fn, proxy< T, A > p)
 Bind the second argument of fn to x. More...
 
template<typename Operation , typename T >
binder3rd< Operation, T, false > bind3rd (Operation const &fn, T const &x)
 Bind the third argument of fn to x. More...
 
template<typename Operation , typename T , typename A >
binder3rd< Operation, proxy< T, A >, true > bind3rd (Operation const &fn, proxy< T, A > p)
 Bind the third argument of fn to x. More...
 
template<typename View , typename Comparator >
View::reference max_element (View const &view, Comparator const &comparator)
 Finds the largest element in the input view (or the first largest if there are multiple), which does not compare less than any other element using the given functor. More...
 
template<typename View >
View::reference max_element (View const &view)
 Finds the largest element in the input view (or the first largest if there are multiple). More...
 
template<typename View , typename Comparator >
View::value_type max_value (View const &view, Comparator comparator)
 Finds the largest value in the input view. More...
 
template<typename View >
View::value_type max_value (View const &view)
 Finds the largest value in the input view. More...
 
template<typename View , typename Comparator >
View::reference min_element (View const &view, Comparator const &comparator)
 Finds the smallest element in the input view (or the first smallest if there are multiple), which compares less than any other element using the given functor. More...
 
template<typename View >
View::reference min_element (View const &view)
 Finds the smallest element in the input view (or the first smallest if there are multiple). More...
 
template<typename View , typename Comparator >
View::value_type min_value (View const &view, Comparator const &comparator)
 Finds the smallest value in the input view. More...
 
template<typename View >
View::value_type min_value (View const &view)
 Finds the smallest value in the input view. More...
 
template<typename View , typename Comparator >
std::pair< typename View::reference, typename View::reference > minmax_element (View const &view, Comparator const &comparator)
 Returns a pair containing references to the minimum and maximum elements returned by the given comparator when called on all values in the input view. More...
 
template<typename View >
std::pair< typename View::reference, typename View::reference > minmax_element (View const &view)
 Returns a pair containing references to the minimum and maximum elements returned when using less as a comparator on all values in the input view. More...
 
template<typename View , typename Comparator >
std::pair< typename View::value_type, typename View::value_type > minmax_value (View const &view, Comparator const &comparator)
 Returns a pair containing the minimum and maximum values returned by the given comparator when called on all values in the input view. More...
 
template<typename View >
std::pair< typename View::value_type, typename View::value_type > minmax_value (View const &view)
 Returns a pair containing the minimum and maximum values returned when using less as a comparator. More...
 
template<typename View0 , typename Predicate >
bool all_of (View0 const &view, Predicate predicate)
 Returns true if the given predicate returns true for all of the elements in the input view. More...
 
template<typename View0 , typename Predicate >
bool none_of (View0 const &view, Predicate predicate)
 Returns true if the given predicate returns false for all of the elements in the input view, or the view is empty. More...
 
template<typename View0 , typename Predicate >
bool any_of (View0 const &view, Predicate predicate)
 Returns true if the given predicate returns true for any of the elements in the input view. More...
 
template<typename View , typename Predicate >
View::size_type count_if (View const &view, Predicate predicate)
 Computes the number of elements in the input view for which the given functor returns true. More...
 
template<typename View , typename T >
View::size_type count (View const &view, T const &value)
 Computes the number of elements in the input view which compare equal to the given value. More...
 
template<typename View1 , typename View2 , typename Predicate >
std::pair< typename View1::reference, typename View2::reference > mismatch (View1 const &view1, View2 const &view2, Predicate predicate)
 Given two input views, returns the positions of the first elements which do not match. More...
 
template<typename View1 , typename View2 >
std::pair< typename View1::reference, typename View2::reference > mismatch (View1 const &view1, View2 const &view2)
 Given two input views, returns the positions of the first elements which do not match. More...
 
template<typename View , typename Predicate >
View::reference find_if (View const &view, Predicate predicate)
 Finds the first element in the input for which the predicate returns true, or null_reference if none exist. More...
 
template<typename View , typename Predicate >
View::reference find_if_not (View const &view, Predicate predicate)
 Finds the first element in the input for which the predicate returns false, or null_reference if none exist. More...
 
template<typename View , typename T >
View::reference find (View const &view, T const &value)
 Finds the first occurrence of the given value in the input, null_reference if it is not found. More...
 
template<typename View , typename Predicate >
View::reference adjacent_find (View const &view, Predicate predicate)
 Return the position of the first adjacent pair of equal elements. More...
 
template<typename View >
View::reference adjacent_find (View const &view)
 Return the position of the first adjacent pair of equal elements. More...
 
template<typename View1 , typename View2 , typename Predicate >
View1::reference find_end (View1 const &sequence, View2 const &pattern, Predicate predicate)
 Finds the last occurrence of the given pattern in the input sequence. More...
 
template<typename View1 , typename View2 >
View1::reference find_end (View1 const &sequence, View2 const &pattern)
 Finds the last occurrence of the given pattern in the input sequence. More...
 
template<typename View0 , typename View1 , typename Predicate >
View0::reference find_first_of (View0 const &view0, View1 const &view1, Predicate predicate)
 Finds the first element in the input which matches any of the elements in the given view, according to the given predicate. More...
 
template<typename View0 , typename View1 >
View0::reference find_first_of (View0 const &view0, View1 const &view1)
 Finds the first element in the input which matches any of the elements in the given view. More...
 
template<typename View1 , typename View2 , typename Predicate >
View1::reference search (View1 const &v1, View2 const &v2, Predicate predicate)
 Return the position of the first occurrence of the given search sequence within the input, or a null_reference instance if it is not found. More...
 
template<typename View1 , typename View2 >
View1::reference search (View1 const &v1, View2 const &v2)
 Return the position of the first occurrence of the given sequence within the input, or a null_reference instance if the sequence is not found. More...
 
template<typename View , typename Predicate >
View::reference search_n (View const &v, size_t count, typename View::value_type value, Predicate predicate)
 Return the position of the first occurrence of a sequence of the given value which is of the given length, or a null_reference instance if it is not found. More...
 
template<typename View1 >
View1::reference search_n (View1 const &v1, size_t count, typename View1::value_type value)
 Return the position of the first occurrence of a sequence of the given value which is of the given length, or null_reference if none exists. More...
 
template<typename View , typename Oper >
view_traits< View >::value_type accumulate (View const &view, typename view_traits< View >::value_type init, Oper oper)
 Compute the sum of the elements and the initial value. More...
 
template<typename View >
view_traits< View >::value_type accumulate (View const &view, typename view_traits< View >::value_type init)
 Compute the sum of the elements and the initial value. More...
 
template<typename View1 , typename View2 , typename Oper >
void adjacent_difference (View1 const &view1, View2 &view2, Oper oper)
 Assign each element of the output the difference between the corresponding input element and the input element that precedes it. More...
 
template<typename View1 , typename View2 >
void adjacent_difference (View1 const &view1, View2 &view2)
 Assign each element of the output the difference between the corresponding input element and the input element that precedes it. More...
 
template<typename View1 , typename View2 , typename Sum , typename Product >
view_traits< View1 >::value_type inner_product (View1 const &view1, View2 const &view2, typename view_traits< View1 >::value_type init, Sum op1, Product op2)
 Compute the inner product of the elements of two input views. Inner product is defined as the sum of pair-wise products of the elements of two input views. More...
 
template<typename View1 , typename View2 >
view_traits< View1 >::value_type inner_product (View1 const &view1, View2 const &view2, typename view_traits< View1 >::value_type init)
 Compute the inner product of the elements of two input views. Inner product is defined as the sum of pair-wise products of the elements of two input views. More...
 
template<typename View1 , typename View2 , typename View3 , typename Sum , typename Product >
view_traits< View1 >::value_type weighted_inner_product (View1 const &view1, View2 const &view2, View3 const &wt, typename view_traits< View1 >::value_type init, Sum op1, Product op2)
 Compute a weighted inner product of the elements of two views, where each pair-wise product is multiplied by a weight factor before the sum of products is performed. More...
 
template<typename View1 , typename View2 , typename View3 >
view_traits< View1 >::value_type weighted_inner_product (View1 const &view1, View2 const &view2, View3 const &wt, typename view_traits< View1 >::value_type init)
 Compute a weighted inner product of the elements of two views, where each pair-wise product is multiplied by a weight factor before the sum of products is performed. More...
 
template<typename View1 , typename View2 , typename Sum , typename Product >
View1::value_type weighted_norm (View1 const &view1, View2 const &wt, Sum op1, Product op2)
 Compute a weighted normal of the elements of a view. More...
 
template<typename View1 , typename View2 >
View1::value_type weighted_norm (View1 const &view1, View2 const &wt)
 Compute a weighted normal of the elements of a view. More...
 
template<typename View0 , typename View1 , typename BinaryOp >
void partial_sum (View0 const &view0, View1 const &view1, BinaryOp binary_op, const bool shift)
 Computes the prefix sum of the elements of the input view and stores the result in the output view. More...
 
template<typename View0 , typename View1 >
void partial_sum (View0 const &view0, View1 const &view1, const bool shift)
 Computes the prefix sum of the elements of the input view and stores the result in the output view. More...
 
template<typename View0 , typename View1 , typename BinaryFunction >
View0::value_type partial_sum_accumulate (View0 const &view0, View1 const &view1, typename view_traits< View0 >::value_type init_value, BinaryFunction binary_op, const bool shift)
 Combination the prefix sum and accumulate of the elements of the input view. The prefix sum results are stored in the. More...
 
template<typename View0 , typename View1 >
View0::value_type partial_sum_accumulate (View0 const &view0, View1 const &view1, typename view_traits< View0 >::value_type init_value, const bool shift)
 Combination the prefix sum and accumulate of the elements of the input view. The prefix sum results are stored in the. More...
 
template<typename View0 >
void iota (View0 const &view, typename View0::value_type const &value)
 Initializes the elements of the view such that the first element is assigned value, the next element value+1, etc. More...
 
template<typename View0 , typename View1 , typename BinaryFunction >
void partial_sum (View0 const &view0, View1 const &view1, BinaryFunction binary_op, const bool shift=false)
 
template<typename Generator >
composed_dist_spec make_composed_dist_spec (Generator const &gen)
 Constructs a composed distribution specification that will use the functor provided to generate the distribution specifications of the elements of the composed container instance. More...
 
template<typename Generator >
composed_dist_spec * make_composed_dist_spec_ptr (Generator const &gen)
 
template<typename Generator , typename ... DistributionSpecs>
heterogeneous_composed_dist_spec< Generator, tuple<>, tuple< DistributionSpecs... > > make_heterogeneous_composed_dist_spec (Generator &&gen)
 Constructs a composed distribution specification that will use the functor provided to generate the distribution specifications of the elements of the composed container instance. The gid types of the distribution need not be homogeneous. More...
 
size_t base_container_ranking (base_container_ordering &order)
 Work function used to update the base container ranks after compute them. More...
 
distribution_spec block (unsigned long int n, unsigned long int block_size, level lvl=current_level)
 Construct the specification of a blocked distribution. More...
 
distribution_spec block (unsigned long int n, unsigned long int block_size, std::vector< location_type > const &locs)
 Construct the specification of a blocked distribution that will span a specific set of locations. More...
 
distribution_spec cyclic (unsigned long int n, level lvl=current_level)
 Construct the specification of a cyclic distribution. More...
 
distribution_spec cyclic (unsigned long int n, std::vector< location_type > const &locs)
 Construct the specification of a cyclic distribution that will span a specific set of locations. More...
 
distribution_spec block_cyclic (unsigned long int n, unsigned long int block_size, level lvl=current_level)
 Construct the specification of a block-cyclic distribution. More...
 
distribution_spec block_cyclic (unsigned long int n, unsigned long int block_size, std::vector< location_type > const &locs)
 Construct the specification of a block-cyclic distribution that will span a specific set of locations. More...
 
distribution_spec balance (unsigned long int n, level lvl=current_level)
 Construct the specification of a balanced distribution. More...
 
distribution_spec balance (unsigned long int n, std::vector< location_type > const &locs)
 Construct the specification of a balanced distribution that will span a specific set of locations. More...
 
template<typename View >
distribution_spec arbitrary (View const &part_view, level lvl=current_level)
 Construct the specification of an arbitrary distribution. More...
 
template<typename View >
distribution_spec arbitrary (View const &part_view, std::vector< location_type > const &locs)
 Construct the specification of an arbitrary distribution that will span a specific set of locations. More...
 
template<typename GIDMapFunc , typename PIDMapFunc >
distribution_spec arbitrary (unsigned long int n, unsigned long int nparts, GIDMapFunc const &gid_to_pid, PIDMapFunc const &pid_to_lid, level lvl=current_level)
 Construct the specification of an arbitrary distribution. More...
 
template<typename Dom , typename GIDMapFunc , typename PIDMapFunc , typename >
distribution_spec< Dom > arbitrary (Dom const &dom, unsigned long int nparts, GIDMapFunc const &gid_to_pid, PIDMapFunc const &pid_to_lid, level lvl=current_level)
 Construct the specification of an arbitrary distribution. More...
 
template<typename GIDMapFunc , typename PIDMapFunc >
distribution_spec arbitrary (unsigned long int n, unsigned long int nparts, GIDMapFunc const &gid_to_pid, PIDMapFunc const &pid_to_lid, std::vector< location_type > const &locs)
 Construct the specification of an arbitrary distribution that will span a specific set of locations. More...
 
 STAPL_PROXY_HEADER (arbitrary_partition_info)
 
template<typename Policy , typename GView >
void betweenness_centrality (Policy &&policy, GView &gv, size_t num_sources=0, bool partial=false)
 Computes betweenness centrality value of unweighted, directed graph. More...
 
template<typename GView >
void betweenness_centrality (GView &gv, size_t num_sources=0, bool partial=false)
 Computes betweenness centrality value of unweighted, directed graph. More...
 
template<typename Policy , typename View , typename Predicate >
size_t breadth_first_search (Policy &&policy, View &g, typename View::vertex_descriptor const &source, Predicate &&finish_pred)
 A Parallel Breadth-First Search (BFS) More...
 
template<typename Policy , typename View >
size_t breadth_first_search (Policy &&policy, View &g, typename View::vertex_descriptor const &source)
 A Parallel Breadth-First Search (BFS) More...
 
template<typename View >
size_t breadth_first_search (View &g, typename View::vertex_descriptor const &source)
 A Parallel Breadth-First Search (BFS) More...
 
template<typename Policy , typename GView >
size_t connected_components (Policy &&policy, GView &g)
 A Parallel Connected Components (CC) Algorithm. More...
 
template<typename GView >
size_t connected_components (GView &g)
 A Parallel Connected Components (CC) Algorithm. More...
 
template<typename GView >
std::vector< std::pair< typename GView::vertex_descriptor, size_t > > cc_stats (GView &g)
 Algorithm to compute the number of vertices belonging to each connected-component in the graph, given the connected-component of each vertices. More...
 
template<typename GView , typename VertexDescriptor , typename ResView >
void cc_stats (GView &g, VertexDescriptor CCid, ResView &output)
 Algorithm to compute all vertices belonging to the specified connected-component. More...
 
template<typename GView >
bool is_same_cc (GView &g, typename GView::vertex_descriptor v1, typename GView::vertex_descriptor v2)
 Algorithm to compute if two specified vertices belong to the same connected component (i.e., are connected through a path), based on the given input graph and the Connected-Component IDs of vertices. More...
 
template<typename GraphVw >
void write_adj_list (GraphVw &g, std::string filename="")
 Function to output the adjacency-list of a graph. More...
 
template<typename GraphVw >
void write_adj_list_prop (GraphVw &g, std::string filename="")
 Function to output the adjacency-list of a graph, when it has both vertex and edge properties.. More...
 
template<typename GraphVw >
void write_matrix_market (GraphVw &g, std::string filename="", std::string comments="")
 Function to output the adjacency-list of a graph in Matrix Market format. More...
 
template<typename GraphVw >
void write_edge_list (GraphVw &g, std::string filename="")
 Function to output the edge-list of a graph, without properties. More...
 
template<typename GraphVw >
void write_dot (GraphVw &g, std::string filename)
 Function to output a DOT graph, without properties. More...
 
template<typename GraphVw >
void write_PMPL_graph (GraphVw &g, std::string filename="")
 Function to output the graph in PMPL format. More...
 
template<typename Graph , typename LineReader >
graph_view< Graph > graph_reader (std::string filename, LineReader line_reader, size_t blk_sz=4096)
 Algorithm to read a graph from the given input file.Uses the user-provided reader to read each line and add the edges from the line to the graph. More...
 
template<typename Graph , typename LineReader , typename HeaderReader >
graph_view< Graph > graph_reader (std::string filename, LineReader line_reader, HeaderReader header_reader, size_t blk_sz=4096)
 Algorithm to read a graph from the given input file.Uses the user-provided reader to read each line and add the edges from the line to the graph. More...
 
template<typename Graph , typename LineReader >
graph_view< Graph > sharded_graph_reader (std::string filename, LineReader line_reader)
 Algorithm to read a sharded graph from the given input file.Uses the user-provided reader to read each line and add the edges from the line to the graph. Input graph must be sharded using the sharder. A sharded file is split into multiple input files and a metadata file that keeps track of the number of shards, vertices and edges, etc. More...
 
template<typename Graph >
graph_view< Graph > read_edge_list (std::string filename, size_t blk_sz=4096)
 Function to wrap around file-reader to support reading an edge-list.
 
template<typename Graph >
graph_view< Graph > read_weighted_edge_list (std::string filename, size_t blk_sz=4096)
 Function to wrap around file-reader to support reading a weighted edge-list.
 
template<typename Graph , typename ShuffleMapperView >
graph_view< Graph > read_edge_list_shuffle (ShuffleMapperView const &mapper, std::string filename, size_t blk_sz=4096)
 Function to wrap around file-reader to support reading an edge-list and rename the vertices id when added to the graph view.
 
template<typename Graph >
graph_view< Graph > read_adj_list (std::string filename, size_t blk_sz=4096)
 Function to wrap around file-reader to support reading an adjacency-list.
 
template<typename Graph >
graph_view< Graph > read_dimacs (std::string filename, size_t blk_sz=4096)
 Function to wrap around file-reader to support reading a DIMACS graph.
 
template<typename Graph >
graph_view< Graph > read_matrix_market (std::string filename, size_t blk_sz=4096)
 Function to wrap around file-reader to support reading a Matrix Market graph.
 
void graph_sharder (std::string filename, size_t shard_size, bool removecomments=true)
 Function to shard an input file for efficient parallel reading. More...
 
template<typename Functor1 , typename Functor2 , typename View0 , typename ... View>
Functor2::result_type nc_map_reduce (Functor1 const &func1, Functor2 const &func2, View0 const &view0, View const &... view)
 map_reduce() variant that does not coarsen the input views if size of view0 is less than the number of locations. More...
 
template<typename Functor , typename View0 , typename ... View>
void nc_map_func (Functor const &func, View0 const &view0, View const &... view)
 map_func() variant that does not coarsen the input views if size of view0 is less than the number of locations. More...
 
template<typename View , typename Oper >
View::value_type nc_accumulate (View const &view, typename View::value_type init, Oper oper)
 accumulate() variant that does not coarsen the input views if size of view is less than the number of locations. More...
 
template<typename View >
View::value_type nc_accumulate (View const &view, typename View::value_type init)
 accumulate() variant that does not coarsen the input views if size of view is less than the number of locations. More...
 
template<typename View0 , typename View1 >
void nc_partial_sum (View0 const &view0, View1 const &view1, bool shift)
 partial_sum() variant that does not coarsen the input views if size of view0 is less than the number of locations. More...
 
template<typename View0 , typename View1 >
View0::value_type nc_partial_sum_accumulate (View0 const &view0, View1 const &view1, typename View0::value_type init_value, bool shift)
 combination of nc_partial_sum and nc_accumulate More...
 
template<typename Policy , typename GView >
size_t page_rank (Policy &&policy, GView &graph, size_t iterations, double damp=0.85)
 Parallel Level-Synchronized PageRank Algorithm. More...
 
template<typename GView >
size_t page_rank (GView &graph, size_t iterations, double damp=0.85)
 Parallel Level-Synchronized PageRank Algorithm. More...
 
template<typename WF , typename UF , typename InitOp , typename Frontier , typename GView , typename OccupancyType , typename Predicate = kla_detail::false_predicate>
size_t kla_paradigm_driver (WF const &uwf, UF const &, InitOp const &init_op, GView &g, Frontier &&frontier, OccupancyType &&occupancy, size_t k=0, kla_params< GView, Predicate > const &params=kla_params< GView, Predicate >())
 Driver for kla_paradigm to choose the appropriate internal specialization. More...
 
template<typename VertexOp , typename NeighborOp , typename InitOp , typename GView , typename OrderingType , typename OccupancyType , typename Predicate = kla_detail::false_predicate>
size_t kla_paradigm (VertexOp &&vertex_op, NeighborOp &&neighbor_op, InitOp &&init_op, GView &g, OrderingType, OccupancyType &&occupancy, std::size_t k=0, kla_params< GView, Predicate > const &params=kla_params< GView, Predicate >())
 The Parallel k-Level-Asynchronous (KLA) Paradigm. More...
 
sharded_description read_metadata_file (std::string const &filename)
 Read the metadata file from disk and create a description of how the input graph is sharded. More...
 
template<typename Graph , typename LineReader >
graph_view< Graph > nested_sharded_graph_reader (std::string filename, LineReader line_reader)
 Algorithm to read a graph that is sharded in a nested way. More...
 
template<typename GView >
size_t sssp (GView &g, typename GView::vertex_descriptor const &source, size_t k=0)
 A Parallel Single-Source Shortest Paths (SSSP) algorithm. More...
 
constexpr std::size_t commit_load (void)
 
constexpr std::size_t commit_buffer (void)
 
template<typename InputIt , typename OutputIt , typename T >
OutputIt exclusive_scan (InputIt first, InputIt last, OutputIt out, T init)
 Perform an exclusive prefix sum of the input range and store it in the output range, with the first value being an initial value. More...
 
template<class VD , class Property , class AdjList >
std::ostream & operator<< (std::ostream &os, vertex_adj_list_impl< VD, Property, AdjList > const &v)
 
template<typename Graph >
void try_commit (Graph &g)
 Commit a graph if it is a CSR representation. If not, do nothing. More...
 
template<typename Graph >
void try_uncommit (Graph &g)
 Uncommit a graph if it is a CSR representation. If not, do nothing. More...
 
template<typename EdgeListView , typename GraphView >
void transform_edge_list (EdgeListView edge_list, GraphView g, bool reverse_edges=false)
 Transform a graph represented by a flat edge list into a stapl::graph. More...
 
void create_master_mesh_file (std::string const &filename, size_t const &num_submeshes)
 Create silo master multimesh file. More...
 
template<typename MeshType , typename PropertyMap >
void generate_silo_file (MeshType &mesh, PropertyMap partition_weight_map, std::string filename)
 Output a mesh to silo multimesh files. More...
 
template<typename ELEMENT >
geom_vector< 2, ELEMENT > operator* (geom_vector< 2, ELEMENT > const &v, ELEMENT const &a)
 Multiplication of the coordinates of a vector v with a value a. More...
 
template<typename ELEMENT >
geom_vector< 2, ELEMENT > operator/ (geom_vector< 2, ELEMENT > const &v, ELEMENT const &a)
 Division of the coordinates of a vector v with a value a. More...
 
template<typename ELEMENT >
geom_vector< 2, ELEMENT > operator* (ELEMENT const &a, geom_vector< 2, ELEMENT > const &v)
 Multiplication of a value a with the coordinates of a vector v. More...
 
template<typename ELEMENT >
geom_vector< 2, ELEMENT > operator+ (geom_vector< 2, ELEMENT > const &v1, geom_vector< 2, ELEMENT > const &v2)
 Coordinate-wise addition of 2 geometric vectors. More...
 
template<typename ELEMENT >
geom_vector< 2, ELEMENT > operator- (geom_vector< 2, ELEMENT > const &v1, geom_vector< 2, ELEMENT > const &v2)
 Coordinate-wise subtraction of 2 geometric vectors. More...
 
template<typename ELEMENT >
std::ostream & operator<< (std::ostream &s, geom_vector< 2, ELEMENT > const &coords)
 Output the coordinates of vector coords to an output stream s. More...
 
template<typename ELEMENT >
geom_vector< 3, ELEMENT > operator* (geom_vector< 3, ELEMENT > const &v, ELEMENT const &a)
 Multiplication of the coordinates of a vector v with a value a. More...
 
template<typename ELEMENT >
geom_vector< 3, ELEMENT > operator/ (geom_vector< 3, ELEMENT > const &v, ELEMENT const &a)
 Division of the coordinates of a vector v with a value a. More...
 
template<typename ELEMENT >
geom_vector< 3, ELEMENT > operator* (ELEMENT const &a, geom_vector< 3, ELEMENT > const &v)
 Multiplication of a value a with the coordinates of a vector v. More...
 
template<typename ELEMENT >
geom_vector< 3, ELEMENT > operator+ (geom_vector< 3, ELEMENT > const &v1, geom_vector< 3, ELEMENT > const &v2)
 Coordinate-wise addition of 2 geometric vectors. More...
 
template<typename ELEMENT >
geom_vector< 3, ELEMENT > operator- (geom_vector< 3, ELEMENT > const &v1, geom_vector< 3, ELEMENT > const &v2)
 Coordinate-wise subtraction of 2 geometric vectors. More...
 
template<typename ELEMENT >
std::ostream & operator<< (std::ostream &s, geom_vector< 3, ELEMENT > const &coords)
 Output the coordinates of vector coords to an output stream s. More...
 
template<int N>
implicit_regular_mesh_view_type< N >::type make_implicit_regular_mesh_view (typename implicit_regular_mesh_container< N >::tuple_type const &size)
 Function creating an implicit regular mesh. More...
 
template<typename T1 , typename T2 >
std::ostream & operator<< (std::ostream &os, implicit_regular_mesh_domain< T1, T2 > const &d)
 Output the domain d to an output stream os. More...
 
std::vector< size_t > get_sister_face (std::vector< size_t > const &face)
 Return the sister face of a cell face. More...
 
template<typename FaceMap , typename MeshType >
void push_to_face_map (FaceMap &face_map, std::vector< size_t > const &face, size_t const &cell_id, MeshType &mesh)
 Store a face in a map and connect it in the mesh to its sister face if it exists in the map. More...
 
void set_face_order (std::vector< size_t > &face)
 Reorder the vertices of a face to have the vertex with the minimum id stored in front. More...
 
size_t get_node_id (DBucdmesh *mesh_file, size_t const &zone_id, size_t const &index)
 Return global identifier of a vertex from silo file. More...
 
template<typename FaceMap , typename MeshType >
void extract_2d_zones (DBucdmesh *mesh_file, FaceMap &face_map, MeshType &mesh)
 Extract 2d cells and its vertices from a silo file. More...
 
template<typename FaceMap , typename MeshType >
void extract_tetrahedron_zones (DBucdmesh *mesh_file, FaceMap &face_map, MeshType &mesh)
 Extract tetrahedral cells and its vertices from a silo file. More...
 
template<typename T >
domset1D< T > convert_to_domset1d (std::vector< T > &dom)
 Convert a vector to a domset1D domain. More...
 
template<typename GView >
partition_view_type< GView >::type create_partition_view (GView const &gview, size_t const &num_partitions)
 Create a partition view level over a graph view with a specific number of partitions. More...
 
template<typename PG , typename Dom , typename MapFunc , typename Derived >
partition_view_type< hierarchical_graph_view< PG, Dom, MapFunc, Derived > >::type create_partition_view (hierarchical_graph_view< PG, Dom, MapFunc, Derived > const &hview, size_t const &num_partitions)
 Create a partition view level over another partition view with a specific number of partitions. More...
 
template<typename Hview >
void move_vertex (Hview &partition_view, size_t const &partition_source_id, size_t const &partition_target_id, size_t const &vertex_id)
 Move a vertex id from a partition to a target partition. More...
 
template<typename MeshType >
void build_centroids (MeshType &mesh)
 Compute the cell centroids of a mesh. More...
 
template<class GView , class Collapser , class Refiner >
gpartition< GView > graph_partition (GView &gview, Collapser const &collapse, Refiner const &refine)
 Partition a graph with a collapser functor and a refiner functor. More...
 
template<class GView , class Collapser >
gpartition< GView > graph_partition (GView &gview, Collapser const &collapse)
 Partition a graph with a collapser functor. More...
 
template<class GView , class Collapser >
gpartition< typename gpartition< GView >::partition_view_t > graph_partition (gpartition< GView > &gpart, Collapser const &collapse)
 Partition a partition with a collapser functor. More...
 
template<class GView , class Refiner >
gpartition< GView > graph_repartition (gpartition< GView > &gpart, Refiner const &refine)
 Refine a partition with a refiner functor. More...
 
template<typename HView >
HView heavy_edge_matching_collapser (HView const &hview, size_t const &level)
 Match pair of vertices connected with a heavy edge weight and create a new graph with a super-vertex representing a pair of matched vertices or an unmatched vertex. More...
 
template<typename HView >
size_t recursive_bisection_partition (HView &hview, size_t const &num_partitions, size_t const &imbalance)
 Parallel nested bisection partitioning of a graph. This implementation uses the METIS library for the bisection. More...
 
template<typename HView >
void fm_refinement (HView const &hview, size_t const &num_partitions, size_t const &optimal_part_weight, size_t const &imbalance, size_t const &pass_fm)
 Fiduccia-Mattheyses heuristic to decrease the edge-cut of a graph partition while maintaining a low partition imbalance. More...
 
template<typename HView >
std::pair< double, size_t > print_partition_quality (HView const &hview, size_t const &num_parts)
 Compute the imbalance and cut-weight of a graph partition. More...
 
template<int Dim>
size_tuple< Dim >::type KBA ()
 Create the KBA partition layout using the number of locations. More...
 
size_tuple< 2 >::type KBA (size_t const &num_x)
 Create the KBA partition layout using num_x partitions on the x axis. More...
 
size_tuple< 3 >::type KBA (size_t const &num_x, size_t const &num_y)
 Create the KBA partition layout using num_x partitions on the x axis and num_y partitions on the y axis. More...
 
template<typename Graph , typename Frontier >
frontier_view< Graph, Frontier > make_frontier_view (Graph const &graph, Frontier &frontier)
 Create a view over a subset of a graph based on the set of active vertices. More...
 
template<typename GraphVw , typename VertPart , typename EdgeFunc >
GraphVw create_hierarchy (const GraphVw &graph, const VertPart &partitioner, const EdgeFunc &ef, compute_level_offset const &calculate_offset=compute_level_offset())
 Create a new hierarchy level over a given view. More...
 
template<typename C >
lazy_graph_view< lazy_graph_view_container< C > > lazy_graph (C &c)
 Helper function to create a lazy_graph_view over the given pGraph pContainer. More...
 
template<typename View >
undirected_view_type< View >::type undirected_view (View &view)
 Function to return an undirected view of a directed graph. More...
 
template<typename C , typename A , typename Cat >
container_traits< C >::gid_type gid_of (const_container_iterator< C, A, Cat > const &it)
 
template<typename C , typename A >
std::ostream & operator<< (std::ostream &os, const_local_iterator< C, A > const &it)
 
template<typename C , typename A , typename Cat >
container_traits< C >::gid_type gid_of (const container_iterator< C, A, Cat > &it)
 
template<typename Iter >
boost::unordered::iterator_detail::iterator< Iter >::value_type::first_type gid_of (boost::unordered::iterator_detail::iterator< Iter > it)
 
template<typename Iter , typename Iter2 >
boost::unordered::iterator_detail::c_iterator< Iter, Iter2 >::value_type gid_of (boost::unordered::iterator_detail::c_iterator< Iter, Iter2 > it)
 
template<typename C , typename A >
std::ostream & operator<< (std::ostream &os, local_iterator< C, A > const &it)
 
template<class ED >
bool is_valid (ED const &ed)
 Utility function to check the validity of an edge descriptor.This method is used to ensure there were no errors while executing the methods returning edge descriptors (for example add_edge).
 
template<class ED >
bool is_source_valid (ED const &ed)
 Utility function to check the validity of an edge descriptor.This method is used to ensure there were no errors while executing the methods returning edge descriptors (for example add_edge).
 
template<class ED >
bool is_target_valid (ED const &ed)
 Utility function to check the validity of an edge descriptor.This method is used to ensure there were no errors while executing the methods returning edge descriptors (for example add_edge).
 
template<class ED >
bool is_id_valid (ED const &ed)
 Utility function to check the validity of an edge descriptor.This method is used to ensure there were no errors while executing the methods returning edge descriptors (for example add_edge).
 
template<class Iter , class Pred >
Iter graph_find (Iter b, Iter e, Pred const &pred)
 A simple search function for the graph.Searches the range from b to e, and returns the first place where pred is satisfied. Can't use std::find for certain operations, as the predicate will have the iterator as argument and not the reference to the element. More...
 
template<class Iterator >
Iterator::property_type get_property (Iterator it)
 Returns the property associated with an iterator (edge or vertex) Returns no_property for when property not defined.
 
template<class Graph >
void copy_graph (Graph &source, Graph &dest)
 Copies a source graph into a destination graph, handling cases for property which may or may not be there. More...
 
template<typename T >
void print_vector (std::string name, std::vector< T > &vec)
 
void print_vector (std::string name, std::vector< size_t > &vec)
 
void print_vector (std::string name, std::vector< std::pair< size_t, size_t > > &vec)
 
template<typename G >
std::vector< typename G::vertex_descriptor > read_from_file_bgl (G &g, std::string filename)
 
void rename_vertices (std::vector< size_t > &verts)
 
void rename_vertices (std::vector< void *> &)
 
template<typename G >
void propertize_bgl (G &g, size_t seed=42)
 
template<typename G >
void print_graph_bgl (G &g)
 
template<typename Graph >
void build_graph (Graph &g, profile_config &config)
 
template<typename G >
std::vector< typename G::vertex_descriptor > read_from_file (G &g, std::string filename)
 
template<typename G >
void write_to_file (G &g, std::string filename)
 
template<typename G >
void print_graph (G &g)
 
template<typename G >
void propertize (G &g, size_t seed=42)
 
template<typename Container >
container_traits< Container >::domain_type get_domain (const Container &container)
 
template<typename T >
T * get_pointer (container_wrapper_ref< T > const &t)
 Retrieve the pointer from a wrapped reference. More...
 
template<typename T >
T & unwrap_container_wrapper (T &t)
 Unwraps t from container_wrapper_ref.
 
template<typename T >
T & unwrap_container_wrapper (container_wrapper_ref< T > t)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, continuous_domain< T > const &d)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, domainset1D< T > const &d)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, ndom1D< T > const &d)
 
template<typename T >
std::ostream & operator<< (std::ostream &o, dom1Dbc< T > const &d)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, dom1D< T > const &d)
 
template<typename T1 , typename T2 >
std::ostream & operator<< (std::ostream &os, dom2D< T1, T2 > const &d)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, ndom2D< T > const &d)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, explicit_domain< T > const &d)
 
template<typename T , int N, typename ... OptTrav>
std::ostream & operator<< (std::ostream &os, indexed_domain< T, N, OptTrav... > const &d)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, indexed_domain< T > const &d)
 
std::ostream & operator<< (std::ostream &os, infinite const &)
 
template<int N>
std::ostream & operator<< (std::ostream &os, infinite_nd< N > const &)
 
template<typename D0 , typename D1 >
result_of::intersect< D0, D1 >::type intersect (D0 const &d0, D1 const &d1)
 Function to compute the intersection between two given domains (d0 and d1).
 
template<typename T >
std::ostream & operator<< (std::ostream &os, domset1D< T > const &d)
 
template<typename DomT , typename DomS , typename IMF >
DomT invert_domain (DomS const &dom, IMF const &imf)
 Function to compute the inverse mapping of a given domain (dom) applying the provided mapping function imf.
 
template<typename T >
auto begin (stapl::proxy< T, edge_accessor< T >> &&t) -> decltype(const_cast< stapl::proxy< T, edge_accessor< T >> const &&>(t).begin())
 Specialization of stand-alone begin for rvalue references to a proxy with an edge_accessor. More...
 
template<typename T >
auto begin (stapl::proxy< T, edge_accessor< T >> &t) -> decltype(const_cast< stapl::proxy< T, edge_accessor< T >> const &>(t).begin())
 Specialization of stand-alone begin for lvalue references to a proxy with an edge_accessor. More...
 
template<typename T >
auto end (stapl::proxy< T, edge_accessor< T >> &&t) -> decltype(const_cast< stapl::proxy< T, edge_accessor< T >> const &&>(t).end())
 Specialization of stand-alone end for rvalue references to a proxy with an edge_accessor. More...
 
template<typename T >
auto end (stapl::proxy< T, edge_accessor< T >> &t) -> decltype(const_cast< stapl::proxy< T, edge_accessor< T >> const &>(t).end())
 Specialization of stand-alone end for lvalue references to a proxy with an edge_accessor. More...
 
template<typename Scheduler , typename Factory , typename... Views>
result_of::make_paragraph< Scheduler, Factory, Views... >::type make_paragraph (Factory const &factory, Views const &... views)
 Signature of make_paragraph used when PARAGRAPH creation is collective and should be spawned on all locations in current gang. More...
 
template<typename Factory , typename Scheduler , typename... Views>
result_of::make_paragraph< Scheduler, Factory, Views... >::type make_paragraph (Factory const &factory, Scheduler const &scheduler, Views const &... views)
 Signature of make_paragraph used when PARAGRAPH creation is collective and should be spawned on all locations in current gang. More...
 
template<typename Factory , typename... Views>
result_of::make_paragraph< default_scheduler, Factory, Views... >::type make_paragraph (Factory const &factory, Views const &... views)
 Signature of make_paragraph used when PARAGRAPH creation is collective and should be spawned on all locations in current gang. and no scheduler specified. Uses default scheduler. More...
 
template<typename WF >
coarsened_wf< WF > is_coarse_wf (WF const &wf)
 Function that returns coarsened_wf wrapper class around the specified workfunction. More...
 
template<typename T , typename... OptionalFilterParam>
std::pair< ptr_wrapper< edge_view< T, typename std::decay< OptionalFilterParam >::type... > >, std::size_t > consume (paragraph_impl::paragraph_view_base const &, std::size_t tid, OptionalFilterParam &&... filter)
 Creates a parameter passed as a view argument to add_task invocations, denoting that the task should consume the value produced by another task. More...
 
template<typename T , typename TaskIdsRef , typename... OptionalFilterParam>
std::enable_if< !std::is_integral< typename std::decay< TaskIdsRef >::type >::value, typename result_of::aggregated_consume< T, OptionalFilterParam... >::type >::type consume (paragraph_impl::paragraph_view_base const &pgv, TaskIdsRef &&tids, OptionalFilterParam &&... filter)
 Sets up consumption as the basic consume call, except that multiple predecessors task_ids can be specified. Their results will be presented to consumer task as a view implementing the array_view concept. More...
 
template<typename T , typename... OptionalParams>
std::pair< ptr_wrapper< nested_pg_view< T, OptionalParams... > >, std::size_t > consume_pg (paragraph_impl::paragraph_view_base const &pgv, std::size_t tid, OptionalParams &&... params)
 Call to allow consumption from a nested paragraph by a sibling paragraph with a filter specified to limit values that are flowed. Called in the parent paragraph's factory. More...
 
template<typename T , typename PinIdsRef , typename... OptionalParams1, typename... OptionalParams2>
std::pair< ptr_wrapper< nested_parent_pg_view< T, typename std::decay< OptionalParams2 >::type... > >, typename std::decay< PinIdsRef >::type > consume_pg (nested_parent_pg_view_subview< T, OptionalParams1... > const &view, PinIdsRef &&pin_ids, OptionalParams2 &&... params)
 Signature for task consumption specialized for consumption of a range of values from one of my parent's input ports. Called in the parent paragraph's factory. More...
 
template<typename T , typename PinIdsRef , typename... OptionalParams1, typename... OptionalParams2>
std::pair< ptr_wrapper< nested_parent_pg_view< T, typename std::decay< OptionalParams2 >::type... > >, typename std::decay< PinIdsRef >::type > consume_pg (nested_pg_view_subview< T, OptionalParams1... > const &view, PinIdsRef &&pin_ids, OptionalParams2 &&... params)
 Signature for task consumption specialized for consumption of a range of values from the output port of a sibling PARAGRAPH. More...
 
template<typename T , typename Q , typename... OptionalParams>
std::pair< ptr_wrapper< pg_edge_view< typename nested_pg_view_subview< T, OptionalParams... >::value_type > >, std::size_t > consume (nested_pg_view_subview< Q, OptionalParams... > const &view, std::size_t pin_id)
 Signature for task consumption specialized for consumption from input port (i.e., flow from another paragraph) when a filter is provided which will be applied to all pins prior to transmission to the consuming PARAGRAPH.
 
template<typename T , typename... OptionalParams>
std::pair< ptr_wrapper< pg_edge_view< T > >, std::size_t > consume (nested_parent_pg_view_subview< T, OptionalParams... > const &view, std::size_t pin_id)
 Signature for task consumption specialized for consumption from an input port backed by one of my parent's input ports.
 
template<typename GReturn , typename LReturn , typename LView , typename GView , typename IsPView >
GReturn promote_ref (LReturn const &, LView const &, GView const &, IsPView)
 Called by promotion resolver to perform actual promotion of localized workfunction return value. More...
 
template<typename GReturn , typename C , typename T , typename LView , typename GView >
GReturn promote_ref (proxy< T, local_accessor< C > > ref, LView const &, GView const &gv, std::integral_constant< bool, false >)
 Signature for promoting a local_accessor to GReturn.
 
template<typename GReturn , typename T , typename LView , typename GView >
GReturn promote_ref (proxy< T, ref_accessor< T > > ref, LView const &lv, GView const &gv, std::integral_constant< bool, false >)
 Signature for promoting a ref_accessor to GReturn. More...
 
template<typename GReturn , typename T , typename LView , typename GView >
GReturn promote_ref (proxy< T, ref_accessor< T > > ref, LView const &lv, GView const &gv, std::integral_constant< bool, true >)
 Signature for promoting a ref_accessor to GReturn when: (1) GView is a partitioned view and (2) ref is a reference to an element of an element of that view.
 
template<typename GReturn , typename T , typename C , typename LView , typename GView >
GReturn promote_ref (proxy< T, local_accessor< C > > ref, LView const &lv, GView const &gv, std::integral_constant< bool, true >)
 Signature for promoting a local_accessor to GReturn when: (1) GView is a partitioned view and (2) ref is a reference to an element of an element of that view.
 
template<typename GReturn , typename C , typename T , typename LView , typename GView >
GReturn promote_ref (proxy< T, local_accessor_graph< C > > ref, LView const &lv, GView const &gv, std::integral_constant< bool, false >)
 Signature for promoting a local_accessor_graph to GReturn.
 
template<typename S >
void ts_print (S const &s)
 Print a message preceded by a time stamp. More...
 
void print_base_profiler_cmdline_help (std::ostream &os)
 
constexpr bool operator== (const affinity_tag x, const affinity_tag y) noexcept
 
constexpr bool operator!= (const affinity_tag x, const affinity_tag y) noexcept
 
std::ostream & operator<< (std::ostream &, const affinity_tag)
 
template<typename R , typename T , typename... Arg>
runtime::bind_rmi_result< R, T, runtime::identity_member_pointer, Arg... > bind_rmi (R(T::*pmf)(Arg...), rmi_handle::reference const &h)
 Returns an object used to do asynchronous RMIs to the member function pmf of object h. More...
 
template<typename R , typename T , typename... Arg>
runtime::bind_rmi_result< R, T, runtime::const_member_pointer, Arg... > bind_rmi (R(T::*pmf)(Arg...) const, rmi_handle::const_reference const &h)
 
unsigned int get_aggregation (void) noexcept
 Obtain the current aggregation setting.
 
std::vector< long long > & operator+= (std::vector< long long > &x, std::vector< long long > const &y) noexcept
 
papi_counter::value_type & operator+= (papi_counter::value_type &x, papi_counter::value_type const &y) noexcept
 
papi_timer_n_counter::value_typeoperator+= (papi_timer_n_counter::value_type &x, papi_timer_n_counter::value_type const &y) noexcept
 
struct timeval & operator+= (struct timeval &x, struct timeval const &y) noexcept
 
struct timeval & operator-= (struct timeval &x, struct timeval const &y) noexcept
 
struct rusage & operator+= (struct rusage &x, struct rusage const &y) noexcept
 
struct rusage & operator-= (struct rusage &x, struct rusage const &y) noexcept
 
template<typename T , typename Tag >
void swap (probe< T, Tag > &x, probe< T, Tag > &y) noexcept
 
anonymous_executorget_anonymous_executor (void)
 Returns the instance of the anonymous_executor.
 
std::size_t get_default_executor_window_size (void) noexcept
 Returns the default sliding window size for executors.
 
std::size_t get_default_executor_retire_chunk (void) noexcept
 Returns the default retire chunk size for executors.
 
template<typename... Views>
auto count_static_votes (Views const &... views) STAPL_AUTO_RETURN((count_static_votes_impl< tuple<>
 Inspect input views and return a tuple with two elements. The first is the number of statically resolvable LQ_DONTCARE votes. The second is a tuple of views requiring runtime evaluation. Both are passed to the runtime portion of the default task placement policy.
 
void rmi_flush (void)
 Flush all remaining aggregated RMI requests on the calling location. More...
 
template<typename T , typename = typename std::enable_if<!std::is_reference<T>::value>::type>
location_range_wrapper< typename std::decay< T >::type > location_range (T &&t)
 Returns a location_range_wrapper from t.
 
template<typename T >
location_range_wrapper< T const & > location_range (T &t)
 Returns a location_range_wrapper from t. More...
 
void abort (std::string const &)
 Displays the given std::string and aborts execution.
 
void abort (void)
 Aborts execution.
 
template<typename T >
void abort (T const &t)
 Outputs the given object to std::cerr as a string and aborts execution.
 
template<typename T , typename... Args>
future< rmi_handle::referenceconstruct (neighbor_locations_t, Args &&... args)
 Creates an object of type T in a new gang over all the locations of the current gang that are on shared memory. More...
 
template<typename T , typename U , typename... Args>
future< rmi_handle::referenceconstruct (location_range_wrapper< U > const &r, Args &&... args)
 Creates an object of type T in a new gang over the range r of the locations of the current gang. More...
 
template<typename T , typename Function , typename U , typename... Args>
void async_construct (Function &&f, location_range_wrapper< U > const &r, Args &&... args)
 Creates an object of type T in a new gang over the range r of the locations of the current gang and calls f with the object pointer. More...
 
template<typename T , typename... Args>
future< rmi_handle::referenceconstruct (rmi_handle::const_reference const &h, all_locations_t, Args &&... args)
 Creates an object of type T in a new gang over all the locations of the gang of h. More...
 
template<typename T , typename Function , typename... Args>
void async_construct (Function &&f, rmi_handle::const_reference const &h, all_locations_t, Args &&... args)
 Creates an object of type T in a new gang over all the locations of the gang of h and calls f with the object pointer. More...
 
template<typename T , typename U , typename... Args>
future< rmi_handle::referenceconstruct (rmi_handle::const_reference const &h, location_range_wrapper< U > const &r, Args &&... args)
 Creates an object of type T in a new gang over the range r of the locations of the gang of h. More...
 
template<typename T , typename Function , typename U , typename... Args>
void async_construct (Function &&f, rmi_handle::const_reference const &h, location_range_wrapper< U > const &r, Args &&... args)
 Creates an object of type T in a new gang over the range r of the locations of the gang of h and calls f with the object pointer. More...
 
template<typename T , typename... Args>
future< rmi_handle::referenceconstruct (level const &l, Args &&... args)
 Creates an object of type T in a new gang over the level l of the hierarchy. More...
 
std::set< unsigned int > external_callers (void)
 Returns the location ids that are going to make the external call.
 
template<typename F , typename... T>
runtime::external_caller< typename std::result_of< F(T...)>::type >::result_type external_call (F &&f, T &&... t)
 Calls an external library function. More...
 
template<typename Handle , typename MemFun , typename... T>
future< typename callable_traits< MemFun >::result_type > restore (Handle const &h, MemFun const &pmf, T &&... t)
 Restores the SPMD execution of the gang of the given object, using as the entry point the given member function. More...
 
template<typename T , typename U >
bool operator== (pointer_wrapper< T > const &x, pointer_wrapper< U > const &y)
 
template<typename T , typename U >
bool operator!= (pointer_wrapper< T > const &x, pointer_wrapper< U > const &y)
 
template<typename T , typename U >
bool operator< (pointer_wrapper< T > const &x, pointer_wrapper< U > const &y)
 
template<typename T , typename U >
bool operator> (pointer_wrapper< T > const &x, pointer_wrapper< U > const &y)
 
template<typename T , typename U >
bool operator<= (pointer_wrapper< T > const &x, pointer_wrapper< U > const &y)
 
template<typename T , typename U >
bool operator>= (pointer_wrapper< T > const &x, pointer_wrapper< U > const &y)
 
template<typename Handle , typename MemFun , typename... T>
futures< typename callable_traits< MemFun >::result_type > allgather_rmi (Handle const &h, MemFun const &pmf, T &&... t)
 Allgather RMI primitive. More...
 
template<typename BinaryOperation , typename Handle , typename MemFun , typename... T>
future< runtime::binary_operation_result_t< typename callable_traits< MemFun >::result_type, BinaryOperation >> allreduce_rmi (BinaryOperation op, Handle const &h, MemFun const &pmf, T &&... t)
 Allreduce RMI primitive. More...
 
template<typename Handle , typename MemFun , typename... T>
void async_rmi (unsigned int dest, Handle const &h, MemFun const &pmf, T &&... t)
 Asynchronous RMI primitive. More...
 
template<typename Handle , typename MemFun , typename... T>
void async_rmi (all_locations_t, Handle const &h, MemFun const &pmf, T &&... t)
 Asynchronous RMI primitive to all locations the object exists on. More...
 
template<typename Handle , typename MemFun , typename... T>
future< typename callable_traits< MemFun >::result_type > broadcast_rmi (root_location_t, Handle const &h, MemFun const &pmf, T &&... t)
 Broadcast RMI primitive for root locations. More...
 
template<typename MemFun >
future< typename callable_traits< MemFun >::result_type > broadcast_rmi (unsigned int root, MemFun const &)
 Broadcast RMI primitive for non-root locations. More...
 
template<typename Handle , typename F >
void executor_rmi (unsigned int dest, Handle const &h, F &&f)
 Invokes the given function on the gang_executor of the location that h lives on. More...
 
template<typename Handle , typename MemFun , typename... T>
future< typename callable_traits< MemFun >::result_type > opaque_rmi (unsigned int dest, Handle const &h, MemFun const &pmf, T &&... t)
 Asynchronous RMI primitive. More...
 
template<typename Handle , typename MemFun , typename... T>
futures< typename callable_traits< MemFun >::result_type > opaque_rmi (all_locations_t, Handle const &h, MemFun const &pmf, T &&... t)
 Asynchronous RMI primitive to all locations the object it exists on. More...
 
template<typename BinaryOperation , typename Handle , typename MemFun , typename... T>
runtime::binary_operation_result_t< typename callable_traits< MemFun >::result_type, BinaryOperation > sync_reduce_rmi (BinaryOperation op, Handle const &h, MemFun const &pmf, T &&... t)
 Reduction RMI primitive. More...
 
template<typename BinaryOperation , typename Handle , typename MemFun , typename... T>
future< runtime::binary_operation_result_t< typename callable_traits< MemFun >::result_type, BinaryOperation >> reduce_rmi (BinaryOperation op, Handle const &h, MemFun const &pmf, T &&... t)
 Reduction RMI primitive. More...
 
template<typename Handle , typename MemFun , typename... T>
callable_traits< MemFun >::result_type sync_rmi (unsigned int dest, Handle const &h, MemFun const &pmf, T &&... t)
 Synchronous RMI primitive. More...
 
template<typename Handle , typename MemFun , typename... T>
void try_rmi (unsigned int dest, Handle const &h, MemFun const &pmf, T &&... t)
 Asynchronous best-effort RMI primitive. More...
 
template<typename T >
T const & get_p_object (rmi_handle::const_reference const &h)
 Returns a reference to the object registered with the rmi_handle that h refers to. More...
 
template<typename T >
T const & get_p_object (rmi_handle::const_light_reference const &h)
 Returns a reference to the object registered with the rmi_handle that h refers to. More...
 
template<typename T >
T & get_p_object (rmi_handle::reference const &h)
 Returns a reference to the object registered with the rmi_handle that h refers to. More...
 
template<typename T >
T & get_p_object (rmi_handle::light_reference const &h)
 Returns a reference to the object registered with the rmi_handle that h refers to. More...
 
template<typename T >
T const * resolve_handle (rmi_handle::const_reference const &h) noexcept
 Attempts to return a pointer to the object registered with the rmi_handle that h refers to. More...
 
template<typename T >
T * resolve_handle (rmi_handle::reference const &h) noexcept
 Attempts to return a pointer to the object registered with the rmi_handle that h refers to. More...
 
template<typename T >
T const * resolve_handle (rmi_handle::const_light_reference const &h) noexcept
 Attempts to return a pointer to the object registered with the rmi_handle that h refers to. More...
 
template<typename T >
T * resolve_handle (rmi_handle::light_reference const &h) noexcept
 Attempts to return a pointer to the object registered with the rmi_handle that h refers to. More...
 
void initialize (option opts=option{})
 Initializes the STAPL Runtime System. More...
 
void initialize (int &argc, char **&argv)
 Initializes the STAPL Runtime System. More...
 
void finalize (void)
 Finalizes the STAPL Runtime System. More...
 
bool is_initialized (void) noexcept
 Returns true if the STAPL Runtime System is initialized. More...
 
std::vector< unsigned int > const & get_hierarchy_widths (void) noexcept
 Returns the widths of all hierarchy levels.
 
unsigned int get_available_levels (void) noexcept
 Returns the available parallelism levels. More...
 
void execute (std::function< void(void)> f, unsigned int n=1)
 Executes the given function on a new created environment. More...
 
process_id get_process_id (void) noexcept
 Returns the current process id.
 
process_id get_num_processes (void) noexcept
 Returns the number of processes.
 
unsigned int get_location_id (void) noexcept
 Returns the current location id.
 
unsigned int get_num_locations (void) noexcept
 Returns the number of locations in the current gang.
 
std::pair< unsigned int, unsigned int > get_location_info (void) noexcept
 Returns the current location information consisting of the location id and the number of locations in the gang.
 
int compare_gangs (rmi_handle::const_reference const &x, rmi_handle::const_reference const &y) noexcept
 Returns if the two handles are defined over identical, similar or completely different gangs. More...
 
void rmi_synchronize (void)
 A synchronization point for all locations in a gang. More...
 
void rmi_barrier (void)
 Barrier for all locations in a gang. More...
 
void rmi_fence (void)
 Ensures that all outstanding RMI requests have been completed. More...
 
void rmi_poll (void)
 Causes the calling location to check for and process all available requests. If none are available it returns immediately. More...
 
unsigned int set_aggregation (const unsigned int agg) noexcept
 Override the current aggregation settings. More...
 
void set_rmi_buffer_size (const std::size_t)
 Sets the default RMI buffer size. It will reset aggregation to maximum. More...
 
template<typename Scheduler >
void set_executor_scheduler (Scheduler &&scheduler)
 Sets the scheduler of the gang_executor of the current execution context. More...
 
executor_baseget_executor (void)
 Returns the gang_executor of the current execution context.
 
template<typename Predicate >
void block_until (Predicate &&pred)
 Causes the calling location to block until the given predicate returns true. More...
 
template<typename T >
T * clone (T const &t)
 Clones t.
 
constexpr bool operator== (level const &x, level const &y)
 
constexpr bool operator!= (level const &x, level const &y)
 
template<typename T >
constexpr type_id get_type_id (T const &t) noexcept
 Returns the type id of the given object.
 
template<typename T >
type_id get_type_id (void) noexcept
 Returns the type id of the given type.
 
template<typename T1 , std::size_t N1, typename T2 , std::size_t N2>
constexpr bool operator== (pool_allocator< T1 > const &, pool_allocator< T2 > const &) noexcept
 
template<typename T1 , std::size_t N1, typename T2 , std::size_t N2>
constexpr bool operator!= (pool_allocator< T1, N1 > const &, pool_allocator< T2, N2 > const &) noexcept
 
template<typename MapOp , typename ... V>
void map_func (MapOp const &map_op, V &&... views)
 Construct and execute a PARAGRAPH that will perform a map operation, applying the fine-grain work function to the element of the views provided. More...
 
template<typename Tag , typename MapOp , typename ... V>
void map_func (MapOp const &map_op, V &&... views)
 
template<typename MapOp , typename ReduceOp , typename ... V>
std::enable_if< !std::is_base_of< skeletons::tags::coarsening_tag, MapOp >::value, stapl::result_of::map_reduce< stapl::use_default, MapOp, ReduceOp, V... >>::type::type map_reduce (MapOp const &map_op, ReduceOp const &reduce_op, V &&... v)
 Applies map-reduce on a set of inputs. In the first step the given map operation (zip operation if there is more than one view involved) on the given inputs and the results are reduce using the given reduce operation (reduce_op) More...
 
template<typename Tag , typename MapOp , typename ReduceOp , typename ... V>
stapl::result_of::map_reduce< Tag, MapOp, ReduceOp, V... >::type map_reduce (MapOp const &map_op, ReduceOp const &reduce_op, V &&... v)
 Applies map-reduce on the given input by using the specific map_reduce implementation specified by the given tag. Current set of tags which can be used for map_reduce are: More...
 
template<typename Scheduler , typename MapOp , typename ReduceOp , typename ... V>
stapl::result_of::map_reduce< stapl::use_default, MapOp, ReduceOp, V... >::type map_reduce_sched (Scheduler const &scheduler, MapOp const &map_op, ReduceOp const &reduce_op, V &&... v)
 Construct and execute a PARAGRAPH that will perform a map operation, applying the fine-grain work function to the element of the views provided. The scheduler provided will be used by the executor processing the tasks of the PARAGRAPH as it is executed. More...
 
template<typename Scheduler , typename MapOp , typename ... V>
void map_func_sched (Scheduler const &scheduler, MapOp const &map_op, V &&... views)
 Construct and execute a PARAGRAPH that will perform a map operation, applying the fine-grain work function to the element of the views provided. The scheduler provided will be used by the executor processing the tasks of the PARAGRAPH as it is executed. More...
 
template<typename Tag = stapl::use_default, typename View , typename BinaryOp >
std::decay< View >::type::value_type reduce (View &&view, BinaryOp const &binop)
 Users can specify which version of the reduce skeleton to be used for reduction algorithm. The possible choices are. More...
 
template<typename ScanTag , typename CoarseTag , typename View0 , typename View1 , typename Binop >
void scan (View0 &&view0, View1 &&view1, Binop binop)
 A scan is an operation in which each element in the results is the result of the cumulative operation on all elements before it. It can be one of two types. More...
 
template<typename CoarseTag = stapl::use_default, typename View0 , typename View1 , typename Binop >
void scan (View0 &&view0, View1 &&view1, Binop binop, bool shift=false)
 A scan is an operation in which each element in the results is the result of the cumulative operation on all elements before it. It can be one of two types. More...
 
template<typename ScanTag , typename CoarseTag , typename View0 , typename View1 , typename Binop >
std::decay< View0 >::type::value_type scan_reduce (View0 &&view0, View1 &&view1, Binop binop)
 combines the functionality of scan and reduce skeleton. More...
 
template<typename CoarseTag = stapl::use_default, typename View0 , typename View1 , typename Binop >
std::decay< View0 >::type::value_type scan_reduce (View0 &&view0, View1 &&view1, Binop binop, bool shift=false)
 Combines the functionality of scan and reduce skeleton. More...
 
template<typename Tag = stapl::use_default, typename WF , typename... V>
void serial_sets (WF &&wf, int nsets, V &&... v)
 Construct and execute a skeleton that performs a set of serial computations on the views provided. The tasks of the serial computation are divided into the nsets specified. Tasks within a set are processed serially, while each set is processed concurrently. More...
 
template<typename Tag = stapl::use_default, typename WF , typename... V>
void serial (WF &&wf, V &&... v)
 Specialized form of serial_sets that schedules all tasks created by the skeleton on location chosen by the task placement policy in effect. More...
 
template<typename Tag = stapl::use_default, typename WF , typename... V>
void serial_io (WF &&wf, V &&... v)
 Specialized form of serial_sets that schedules all tasks created by the skeleton on location 0 for execution using location_0_placement_policy task placement policy. More...
 
template<typename... V>
std::size_t compute_num_subviews (V &&... v)
 
template<typename V >
view_index_iterator< typename std::remove_reference< V >::type > make_index_view_iterator (V &&v, std::size_t num_subviews, bool b_replicated_aware=false)
 Constructs a ref stapl::view_index_iterator instances for the given view. More...
 
template<bool b_replicated_aware, typename... V>
tuple< view_index_iterator< typename std::remove_reference< V >::type >... > partition_id_set (V &&... v)
 Constructs a set of stapl::view_index_iterator instances, one for each of the input views. More...
 
template<typename... V>
tuple< view_index_iterator< typename std::remove_reference< V >::type >... > partition_id_set (V &&... v)
 The default case of partition_id_set which assumes that replication awareness is set to false. More...
 
template<typename F , typename... V>
void cross_map (F &&f, V &&... v)
 Call a function repeatedly with the set of elements generated by the cross product of all elements in an arbitrary number of containers. More...
 
template<typename F , typename... Args>
auto do_once (F &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)...))
 When called in SPMD code section, invokes specified function once globally (i.e., on one and only one location of computation). More...
 
template<typename... Args>
void do_once (void(*fun)(Args...), Args... args)
 Signature matching pointer to function with void return type. More...
 
template<typename Rtn , typename... Args>
Rtn do_once (Rtn(*fun)(Args...), Args... args)
 Signature matching pointer to function with non-void return type. More...
 
template<typename Domain , typename F >
void domain_map (Domain const &dom, F &&f)
 Apply a function to each GID in a domain. More...
 
template<typename DerivedPtr , typename Base >
DerivedPtr down_cast (Base *const base_ptr)
 Perform downcast of a pointer from a base class to a derived class. In debug mode, use dynamic_cast and test with assertion. Otherwise, use static_cast<>().
 
template<typename Derived , typename Base >
Derived & down_cast (Base &base_ref)
 Perform downcast of a reference from a base class to a derived class. In debug mode, use dynamic_cast and test with assertion. Otherwise, use static_cast<>().
 
template<typename Derived , typename Base >
Derived const & down_cast (Base const &base_ref)
 Perform downcast of a const reference from a base class to a derived class In debug mode, use dynamic_cast and test with assertion. Otherwise, use static_cast<>().
 
template<class _Key , class _Tp , class _HashFn , class _EqKey , class _Alloc >
bool operator== (const hash_map< _Key, _Tp, _HashFn, _EqKey, _Alloc > &, const hash_map< _Key, _Tp, _HashFn, _EqKey, _Alloc > &)
 
template<class _Key , class _Tp , class _HashFcn , class _EqlKey , class _Alloc >
bool operator== (const hash_map< _Key, _Tp, _HashFcn, _EqlKey, _Alloc > &__hm1, const hash_map< _Key, _Tp, _HashFcn, _EqlKey, _Alloc > &__hm2)
 
template<class _Key , class _Tp , class _HashFcn , class _EqlKey , class _Alloc >
bool operator!= (const hash_map< _Key, _Tp, _HashFcn, _EqlKey, _Alloc > &__hm1, const hash_map< _Key, _Tp, _HashFcn, _EqlKey, _Alloc > &__hm2)
 
template<class _Key , class _Tp , class _HashFcn , class _EqlKey , class _Alloc >
void swap (hash_map< _Key, _Tp, _HashFcn, _EqlKey, _Alloc > &__hm1, hash_map< _Key, _Tp, _HashFcn, _EqlKey, _Alloc > &__hm2)
 Swaps the content of two hash_map. More...
 
unsigned long __stl_next_prime (unsigned long __n)
 Returns the next prime number from a list of prime numbers. More...
 
template<class _Val , class _Key , class _HF , class _Ex , class _Eq , class _All >
bool operator== (const hashtable< _Val, _Key, _HF, _Ex, _Eq, _All > &__ht1, const hashtable< _Val, _Key, _HF, _Ex, _Eq, _All > &__ht2)
 
template<class _Val , class _Key , class _HF , class _ExK , class _EqK , class _All >
std::bidirectional_iterator_tag iterator_category (const _Hashtable_iterator< _Val, _Key, _HF, _ExK, _EqK, _All > &)
 
template<class _Val , class _Key , class _HF , class _ExK , class _EqK , class _All >
_Val * value_type (const _Hashtable_iterator< _Val, _Key, _HF, _ExK, _EqK, _All > &)
 Converts an iterator to a null pointer of pointer-to-value_type.
 
template<class _Val , class _Key , class _HF , class _ExK , class _EqK , class _All >
hashtable< _Val, _Key, _HF, _ExK, _EqK, _All >::difference_type * distance_type (const _Hashtable_iterator< _Val, _Key, _HF, _ExK, _EqK, _All > &)
 Converts an iterator to a null pointer of pointer-to-difference_type.
 
template<class _Val , class _Key , class _HF , class _ExK , class _EqK , class _All >
std::bidirectional_iterator_tag iterator_category (const _Hashtable_const_iterator< _Val, _Key, _HF, _ExK, _EqK, _All > &)
 Returns the iterator category tag of the hashtable : std::bidirectional_iterator_tag.
 
template<class _Val , class _Key , class _HF , class _ExK , class _EqK , class _All >
_Val * value_type (const _Hashtable_const_iterator< _Val, _Key, _HF, _ExK, _EqK, _All > &)
 Converts an iterator to a null pointer of pointer-to-value_type.
 
template<class _Val , class _Key , class _HF , class _ExK , class _EqK , class _All >
hashtable< _Val, _Key, _HF, _ExK, _EqK, _All >::difference_type * distance_type (const _Hashtable_const_iterator< _Val, _Key, _HF, _ExK, _EqK, _All > &)
 Converts an iterator to a null pointer of pointer-to-difference_type.
 
template<class _Val , class _Key , class _HF , class _Ex , class _Eq , class _All >
bool operator!= (const hashtable< _Val, _Key, _HF, _Ex, _Eq, _All > &__ht1, const hashtable< _Val, _Key, _HF, _Ex, _Eq, _All > &__ht2)
 
template<class _Val , class _Key , class _HF , class _Extract , class _EqKey , class _All >
void swap (hashtable< _Val, _Key, _HF, _Extract, _EqKey, _All > &__ht1, hashtable< _Val, _Key, _HF, _Extract, _EqKey, _All > &__ht2)
 Swaps the content of two hashtable. More...
 
template<typename T >
auto begin (T &&t) -> decltype(t.begin())
 
template<typename T >
auto end (T &&t) -> decltype(t.end())
 General implementation of end that redirects it to type.end().
 
std::ostream & operator<< (std::ostream &s, const loc_qual q)
 Output operator overload for the location qualifier enum loc_qual.
 
template<typename Stream , typename T >
stream< Stream > & operator<< (stream< Stream > &os, T const &val)
 Output operator for stream wrapper. More...
 
template<typename Stream >
stream< Stream > & operator<< (stream< Stream > &os, std::ostream &(*endlPar)(std::ostream &os))
 Specialization of the output operator to intercept std::endl. More...
 
template<typename Stream , typename T >
stream< Stream > & operator>> (stream< Stream > &os, T &val)
 Input operator for the stream wrapper. More...
 
template<int N, typename T >
homogeneous_tuple_type< N, T >::type homogeneous_tuple (T const &t)
 Helper function to create a tuple of homogeneous types where each element of the tuple has the same value. More...
 
template<typename Tuple >
homogeneous_tuple_to_array< Tuple >::type convert_homogeneous_tuple_to_array (Tuple const &t)
 Convert a tuple of homogeneous types to an std::array. More...
 
template<std::size_t I, typename T >
ignore_index (T const &t)
 Helper function that returns the value passed to it and ignores the index template parameter.
 
std::ostream & print_tuple (std::ostream &os, tuple<> const &)
 Fallback implementation of print_tuple for an empty tuple. More...
 
template<typename ... Args>
std::ostream & print_tuple (std::ostream &os, tuple< Args... > const &t)
 Simple tuple printer with default separator ','. More...
 
template<typename ... Args>
std::ostream & print_tuple (std::ostream &os, std::string sep, tuple< Args... > const &t)
 Simple tuple printer. More...
 
template<typename T >
std::ostream & print_tuple (std::ostream &os, T const &t)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, type_printer< T > const &)
 
template<typename... T>
std::ostream & operator<< (std::ostream &os, typelist_printer< T... > const &p)
 
template<typename Map , typename VS0 , typename ... ViewSets>
auto vs_map (Map const &fmap, VS0 &&vs0, ViewSets &... viewsets) -> decltype(vs_map_helper< Map, tuple_size< typename std::decay< VS0 >::type >::value >()(fmap, std::forward< VS0 >(vs0), viewsets...))
 Invokes the input functor tuple_size<VS0> times, using the ith element of each viewset as argument. More...
 
template<typename Map , typename Reduce , typename... VS>
Reduce::result_type vs_map_reduce (Map const &fmap, Reduce const &freduce, typename Reduce::result_type const &init, VS... vs)
 Invokes fmap tuple_size<ViewSet0> times, using the ith element of each viewset as argument. The return values of these invocations are then reduced to a single value using freduce and returned from the function. More...
 
template<typename View >
tbb_range_adaptor< View > make_tbb_range (View const &vw)
 Creates a new tbb_range_adaptor from the given view.
 
template<typename Container >
array_view< Container > make_array_view (Container &ct)
 Helper function to construct an array_view over the passed container. More...
 
template<typename Container , typename ... OptionalParams>
array_view< Container > operator* (array_view< Container, OptionalParams... > const &x, array_view< Container, OptionalParams... > const &y)
 
template<typename Container , typename ... OptionalParams>
array_view< Container, OptionalParams... > const & operator*= (array_view< Container, OptionalParams... > const &x, array_view< Container, OptionalParams... > const &y)
 Performs multiply-assign operation (x *= y) with the elements referenced by the two given views x and y, updating the first view (x) on return.
 
template<typename Container , typename ... OptionalParams>
array_view< Container > operator* (typename Container::value_type const &scalar, array_view< Container, OptionalParams... > const &x)
 Multiplies each element referenced through Array x by the scalar provided, returning an Array over the resulting container.
 
template<typename Container , typename ... OptionalParams>
array_view< Container > operator* (array_view< Container, OptionalParams... > const &x, typename Container::value_type const &scalar)
 Multiplies each element referenced through Array x by the scalar provided, returning an Array over the resulting container.
 
template<typename Container , typename ... OptionalParams>
array_view< Container, OptionalParams... > const & operator*= (array_view< Container, OptionalParams... > const &x, typename Container::value_type const &scalar)
 Scales given view by a scalar.
 
template<typename Container , typename ... OptionalParams>
array_view< Container > operator+ (array_view< Container, OptionalParams... > const &x, array_view< Container, OptionalParams... > const &y)
 Performs pair-wise addition of the elements referenced by the two given views x and y, returning a new array_view over the resulting container.
 
template<typename Container , typename ... OptionalParams>
array_view< Container > operator+ (typename Container::value_type const &scalar, array_view< Container, OptionalParams... > const &x)
 Adds a scalar to each element referenced through the given array_view, returning a new array_view over the resulting container.
 
template<typename Container , typename ... OptionalParams>
array_view< Container > operator+ (array_view< Container, OptionalParams... > const &x, typename Container::value_type const &scalar)
 Adds a scalar to each element referenced through the given array_view, returning a new array_view over the resulting container.
 
template<typename Container , typename ... OptionalParams>
array_view< Container, OptionalParams... > const & operator+= (array_view< Container, OptionalParams... > const &x, array_view< Container, OptionalParams... > const &y)
 Performs add-assign operation (x += y) with the elements referenced by the two given views x and y, updating the first view (x) on return.
 
template<typename Container , typename ... OptionalParams>
array_view< Container, OptionalParams... > const & operator+= (array_view< Container, OptionalParams... > const &x, typename Container::value_type const &scalar)
 Adds a scalar to each element referenced through the given array_view, updating the view in the process.
 
template<typename Container , typename ... OptionalParams>
array_view< Container > operator- (array_view< Container, OptionalParams... > const &x, array_view< Container, OptionalParams... > const &y)
 Performs pair-wise subtraction (x - y) of the elements referenced by the two given views x and y, returning a new array_view over the resulting container.
 
template<typename Container , typename ... OptionalParams>
array_view< Container > operator- (array_view< Container, OptionalParams... > const &x, typename Container::value_type const &scalar)
 Subtracts a scalar from each element referenced through the given array_view, returning a new array_view over the resulting container.
 
template<typename Container , typename ... OptionalParams>
array_view< Container, OptionalParams... > const & operator-= (array_view< Container, OptionalParams... > const &x, array_view< Container, OptionalParams... > const &y)
 Performs subtract-assign operation (x -= y) with the elements referenced by the two given views x and y, updating the first view (x) on return.
 
template<typename Container , typename ... OptionalParams>
array_view< Container, OptionalParams... > const & operator-= (array_view< Container, OptionalParams... > const &x, typename Container::value_type const &scalar)
 Subtracts a scalar from each element referenced through the given array_view, updating the view in the process.
 
template<typename View >
result_of::balance_view< View >::type balance_view (const View &view, size_t n)
 Helper function to construct a balance_view. More...
 
template<typename C >
array_view< C, indexed_domain< size_t >, bitreverse_map_function< size_t > > bitreversed_view (C &container, size_t n)
 A view which looks at the elements of a 1D container in a bitreversed way, meaning that given an index, it gets the element in the bitreversed index of the container. More...
 
template<typename T , typename Policy = view_impl::default_container>
result_of::counting_view< T, Policy >::type counting_view (size_t n, T init=0)
 Helper function that creates a read-only view representing a set of increasing elements. More...
 
template<typename View >
result_of::domain_view< View >::type domain_view (View const &vw)
 Helper function that creates a domain_view that uses the provided view's domain to represent the collection of elements. More...
 
template<typename View , typename Pred >
filter_view< View, Pred > filter (View const &view, Pred const &pred)
 
template<typename Func >
functor_view_type< Func, 1 >::type functor_view (std::size_t size, Func const &func)
 Helper function that creates an array view on top of a functor container. More...
 
template<typename Container >
result_of::counting_view_nd< typename Container::gid_type, tuple_size< typename Container::gid_type >::value, view_impl::default_container_nd, typename Container::distribution_type >::type index_view (Container const &ct)
 Helper function that creates a read-only view representing the indices of the passed container, with the same logical partitioning of elements on locations as that container. More...
 
template<typename Derived , typename Accessor >
Derived::difference_type operator- (iterator_facade< Derived, Accessor > const &lhs, iterator_facade< Derived, Accessor > const &rhs)
 
template<typename Derived , typename Accessor , typename Category , typename Difference >
Derived::difference_type operator- (iterator_facade< Derived, Accessor, Category, Difference > const &lhs, iterator_facade< Derived, Accessor, Category, Difference > const &rhs)
 
template<typename Derived1 , typename Accessor1 , typename Category1 , typename Difference1 , typename Derived2 , typename Accessor2 , typename Category2 , typename Difference2 >
Derived2::difference_type operator- (iterator_facade< Derived1, Accessor1, Category1, Difference1 > const &lhs, iterator_facade< Derived2, Accessor2, Category2, Difference2 > const &rhs)
 
template<typename Derived , typename Accessor >
Derived::difference_type operator== (iterator_facade< Derived, Accessor > const &lhs, iterator_facade< Derived, Accessor > const &rhs)
 
template<typename Derived , typename Accessor , typename Category , typename Difference >
Derived::difference_type operator== (iterator_facade< Derived, Accessor, Category, Difference > const &lhs, iterator_facade< Derived, Accessor, Category, Difference > const &rhs)
 
template<typename Derived1 , typename Accessor1 , typename Category1 , typename Difference1 , typename Derived2 , typename Accessor2 , typename Category2 , typename Difference2 >
Derived2::difference_type operator== (iterator_facade< Derived1, Accessor1, Category1, Difference1 > const &lhs, iterator_facade< Derived2, Accessor2, Category2, Difference2 > const &rhs)
 
template<typename Derived , typename Accessor >
bool operator!= (iterator_facade< Derived, Accessor > const &lhs, iterator_facade< Derived, Accessor > const &rhs)
 
template<typename Derived , typename Accessor , typename Category , typename Difference >
bool operator!= (iterator_facade< Derived, Accessor, Category, Difference > const &lhs, iterator_facade< Derived, Accessor, Category, Difference > const &rhs)
 
template<typename Derived1 , typename Accessor1 , typename Category1 , typename Difference1 , typename Derived2 , typename Accessor2 , typename Category2 , typename Difference2 >
bool operator!= (iterator_facade< Derived1, Accessor1, Category1, Difference1 > const &lhs, iterator_facade< Derived2, Accessor2, Category2, Difference2 > const &rhs)
 
template<typename Derived , typename Accessor >
bool operator< (iterator_facade< Derived, Accessor > const &lhs, iterator_facade< Derived, Accessor > const &rhs)
 
template<typename Derived , typename Accessor , typename Category , typename Difference >
bool operator< (iterator_facade< Derived, Accessor, Category, Difference > const &lhs, iterator_facade< Derived, Accessor, Category, Difference > const &rhs)
 
template<typename Derived1 , typename Accessor1 , typename Category1 , typename Difference1 , typename Derived2 , typename Accessor2 , typename Category2 , typename Difference2 >
bool operator< (iterator_facade< Derived1, Accessor1, Category1, Difference1 > const &lhs, iterator_facade< Derived2, Accessor2, Category2, Difference2 > const &rhs)
 
template<typename Derived , typename Accessor >
bool operator> (iterator_facade< Derived, Accessor > const &lhs, iterator_facade< Derived, Accessor > const &rhs)
 
template<typename Derived , typename Accessor , typename Category , typename Difference >
bool operator> (iterator_facade< Derived, Accessor, Category, Difference > const &lhs, iterator_facade< Derived, Accessor, Category, Difference > const &rhs)
 
template<typename Derived1 , typename Accessor1 , typename Category1 , typename Difference1 , typename Derived2 , typename Accessor2 , typename Category2 , typename Difference2 >
bool operator> (iterator_facade< Derived1, Accessor1, Category1, Difference1 > const &lhs, iterator_facade< Derived2, Accessor2, Category2, Difference2 > const &rhs)
 
template<typename Derived , typename Accessor >
bool operator<= (iterator_facade< Derived, Accessor > const &lhs, iterator_facade< Derived, Accessor > const &rhs)
 
template<typename Derived , typename Accessor , typename Category , typename Difference >
bool operator<= (iterator_facade< Derived, Accessor, Category, Difference > const &lhs, iterator_facade< Derived, Accessor, Category, Difference > const &rhs)
 
template<typename Derived1 , typename Accessor1 , typename Category1 , typename Difference1 , typename Derived2 , typename Accessor2 , typename Category2 , typename Difference2 >
bool operator<= (iterator_facade< Derived1, Accessor1, Category1, Difference1 > const &lhs, iterator_facade< Derived2, Accessor2, Category2, Difference2 > const &rhs)
 
template<typename Derived , typename Accessor >
bool operator>= (iterator_facade< Derived, Accessor > const &lhs, iterator_facade< Derived, Accessor > const &rhs)
 
template<typename Derived , typename Accessor , typename Category , typename Difference >
bool operator>= (iterator_facade< Derived, Accessor, Category, Difference > const &lhs, iterator_facade< Derived, Accessor, Category, Difference > const &rhs)
 
template<typename Derived1 , typename Accessor1 , typename Category1 , typename Difference1 , typename Derived2 , typename Accessor2 , typename Category2 , typename Difference2 >
bool operator>= (iterator_facade< Derived1, Accessor1, Category1, Difference1 > const &lhs, iterator_facade< Derived2, Accessor2, Category2, Difference2 > const &rhs)
 
template<typename T >
proxy< T, ref_accessor< T > > make_ref (T const &t)
 
template<typename View , typename GID >
localize_element< View, GID, stub_localize< View, GID > > localize_ref (View const &vw, GID const &i)
 Helper function to construct the localization object over the element referenced by the index i in the given view vw.
 
template<typename View >
localize_element< View, size_t, stub_dontcare< View, size_t > > localize_ref (View const &vw)
 Helper function to construct the localization object over the view vw.
 
template<typename View >
localize_element< View, size_t, stub_self_element< View, size_t > > localize_self_element (View &vw)
 Helper function to construct a view extended with localization information.
 
template<typename C , typename PS , typename MFG , typename SVC , typename GID >
localize_element< segmented_view< C, PS, MFG, SVC >, GID, typename select_stub< segmented_view< C, PS, MFG, SVC >, GID, PS >::type > localize_ref (segmented_view< C, PS, MFG, SVC > const &vw, GID const &i)
 Helper function to construct the localization object when the given view is a Segmented.
 
template<typename View , typename GID >
localize_element< overlap_view< View >, GID, typename select_stub< overlap_view< View >, GID, typename overlap_view< View >::partition_type >::type > localize_ref (overlap_view< View > const &vw, GID const &i)
 Helper function to construct the localization object when the given view is an Overlap.
 
template<typename Ref >
result_of::localize_object< Ref, false >::type localize_object (Ref const &ref)
 Helper function to return an object that provides the required methods to localize the given reference (ref). More...
 
template<bool isLiteral, typename Ref >
result_of::localize_object< Ref, isLiteral >::type localize_object (Ref const &ref)
 Specialized helper function to return an object that provides the required methods to localize the given reference (ref) is a literal. More...
 
template<typename View >
result_of::native_view< View >::type native_view (const View &view)
 Helper function to construct a native_view. More...
 
template<typename View >
overlap_view< View > make_overlap_view (View const &view, size_t c, size_t l=0, size_t r=0)
 Helper function to construct an overlap segmented view. More...
 
template<typename T , typename Accessor >
T & as_reference (proxy< T, Accessor > p)
 Extract the raw reference that a proxy is encapsulating. This is only defined for local accessors. More...
 
template<typename T , typename A >
A::index_type index_of (proxy< T, A > const &p)
 Returns the associated index of the element referenced by the given proxy.
 
template<typename T , typename A >
bool is_null_reference (proxy< T, A > const &p)
 
template<typename T , typename D1 , typename D2 >
void swap (proxy< T, D1 > a, proxy< T, D2 > b)
 Specialization to allow STL to swap proxies as they won't bind to references in general swap in typical usage cases.
 
template<typename CharT , typename Traits , class T , class B >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, proxy< T, B > const &prx)
 
template<typename CharT , typename Traits , typename T , typename D >
std::basic_istream< CharT, Traits > & operator>> (std::basic_istream< CharT, Traits > &is, proxy< T, D > &prx)
 
template<typename T , typename D >
T * operator & (proxy< T, D > const &)
 
template<typename Reference , typename Functor >
result_of::transform_reference< Reference, Functor >::type transform_reference (Reference ref, Functor func)
 Helper to construct a deferred reference to evaluate the given unary functor func.
 
template<typename Reference1 , typename Reference2 , typename Functor >
result_of::transform_reference< Reference1, Reference2, Functor >::type transform_reference (Reference1 ref1, Reference2 ref2, Functor func)
 Helper to construct a deferred reference to evaluate the given binary functor func.
 
template<typename T >
repeat_view< view_impl::repeat_container< T > > make_repeat_view (T const &data)
 Helper function to construct a repeat_view. More...
 
template<typename T >
repeat_view< view_impl::repeat_container< T, 1, true > > make_repeat_ro_view (T const &data)
 
template<int N, typename T >
repeat_view< view_impl::repeat_container< T, N > > make_repeat_view_nd (T const &data)
 Helper function to construct a repeat_view. More...
 
template<typename View >
view_impl::reverse_view< View > reverse_view (View const &view)
 Helper function to create a reverse view over the given view.
 
template<typename Container , typename Partition , typename... OptionalParams>
segmented_view< Container, Partition, OptionalParams... > make_segmented_view (Container const &container, Partition const &partition, OptionalParams const &... params)
 Helper function to construct a segmented view. More...
 
template<typename BV >
strided_view< BV >::type make_strided_view (BV const &view, typename BV::index_type const &step, typename BV::index_type const &start)
 Takes an input view and creates a strided view over the original view's container. More...
 
distribution_spec_view< dist_view_impl::system_container, indexed_domain< location_type >, location_type, location_type > * system_view (location_type nlocs=get_num_locations())
 Creates a read-only view representing the set of locations in the system. More...
 
distribution_spec_view< dist_view_impl::system_container, indexed_domain< location_type >, location_type, location_type > * system_view (std::vector< location_type > const &locs)
 Creates a read-only view representing a set of locations in the system. More...
 
distribution_spec_view< dist_view_impl::system_container, indexed_domain< location_type >, location_type, location_type > * system_view (level const lvl)
 Creates a read-only view representing a set of locations in the system. More...
 
template<typename ContainerGID , typename ContainerCID >
distribution_spec_view< dist_view_impl::system_container, indexed_domain< location_type >, ContainerGID, ContainerCID > * system_view (dist_view_impl::system_container &sys_ct)
 Creates a read-only view representing a set of locations in the system using an external system_container. More...
 
template<typename SysView , typename PartitionIds , typename MappingFunction , typename GID = typename PartitionIds::index_type>
distribution_spec_view< SysView, PartitionIds, GID, typename PartitionIds::index_type > mapping_view (SysView &system, PartitionIds const &domain, MappingFunction const &mapping_func)
 Creates a read-only view whose domain is the identifiers of the partitions of an element partitioning and whose mapping function maps from partition id to location id. More...
 
template<typename MappingView , typename GIDDomain , typename PartitioningFunction >
distribution_spec_view< MappingView, GIDDomain, typename GIDDomain::index_type, typename MappingView::index_type > partitioning_view (MappingView &mapping_view, GIDDomain const &domain, PartitioningFunction const &partitioning_func)
 Creates a read-only view whose domain is the identifiers of a container's elements and whose mapping function maps from element GID to partition id. More...
 
template<typename T >
bool is_nested_construction (T const &t)
 Function to determine whether t is a nested construct.
 
template<typename Container >
vector_view< Container > make_vector_view (Container &ct)
 Helper function to construct a vector_view over the passed container. More...
 
template<typename... Views>
zip_view< Views... > zip (Views... vs)
 Helper function to construct zip views.
 
template<int I, typename T , typename A >
tuple_element< I, T >::type proxy_get (stapl::proxy< T, A > const &val)
 Temporary function to get an element from the zip_view::value_type.
 
std::ostream & operator<< (std::ostream &os, executor_base &ex)
 
affinity_tag get_affinity (void) noexcept
 

Variables

unsigned int
 
unsigned long long unsigned float
 
unsigned long long unsigned double
 
const size_t defer_spec = std::numeric_limits<int>::max()
 
constexpr affinity_tag invalid_affinity_tag
 Invalid affinity tag. More...
 
constexpr process_id invalid_process_id = -1
 Invalid process id.
 
constexpr unsigned int invalid_location_id
 Invalid location id. More...
 
constexpr all_locations_t all_locations = { }
 Tag to represent all locations of a gang.
 
constexpr this_location_t this_location = { }
 Tag to represent the current location in a gang.
 
constexpr root_location_t root_location = { }
 Tag to represent the root of a collective operation.
 
constexpr neighbor_locations_t neighbor_locations = { }
 Tag to represent the neighbor locations of the current location.
 
constexpr none_t none = { }
 Tag for invalid argument.
 
constexpr execute_all_t execute_all = { }
 Tag to execute all scheduled entries.
 
constexpr level lowest_level {level::max, true}
 Tag for lowest level.
 
constexpr level current_level {level::current, false}
 Tag for current level.
 
constexpr level lower_level {level::lower, true}
 Tag for one level down.
 
static const unsigned long __stl_prime_list [__stl_num_primes]
 
static location_specific_storage< paragraph_location_metadatastack
 
static STAPL_RUNTIME_THREAD_LOCAL(anonymous_executor *, anon_exec) static std anonymous_executor get_anonymous_executor )(void)
 anonymous_executor instance. More...
 

Detailed Description

Typedef Documentation

◆ short_csr_graph

template<graph_attributes D, typename VP = properties::no_property, typename EP = properties::no_property, typename P = balanced_partition<indexed_domain<std::size_t>>, typename M = mapper<std::size_t>>
using stapl::short_csr_graph = typedef csr_graph< D, NONMULTIEDGES, VP, EP, P, M, csr_short_edge_graph_traits< D, VP, EP, P, M > >

Type alias for a CSR (compressed sparse row) graph that has short edges. A short edge is an edge that only has target information and no source or ID information in the case of multiedges.

See also
csr_graph
Note
By definition, a graph with short edges cannot be multiedged, as there is no ID to distinguish between multiple edges to the same source-target pair.
Template Parameters
Dgraph-attribute specifying Directedness (DIRECTED/UNDIRECTED).
VPType of property for the vertex. Default is no_property.
EPType of property for the edge. Default is no_property.
P(Optional) Partition strategy that defines how to partition the original domain into subdomains.
M(Optional) Mapper that defines how to map the subdomains produced by the partition to locations.

◆ small_short_csr_graph

template<graph_attributes D, typename VP = properties::no_property, typename EP = properties::no_property, typename P = balanced_partition<indexed_domain<std::uint32_t>>, typename M = mapper<std::uint32_t>>
using stapl::small_short_csr_graph = typedef csr_graph< D, NONMULTIEDGES, VP, EP, P, M, csr_short_edge_graph_traits< D, VP, EP, P, M > >

Type alias for a CSR (compressed sparse row) graph that has short edges and is limited to 2^32 vertices. A short edge is an edge that only has target information and no source or ID information in the case of multiedges.

In terms of memory, this is the smallest graph that SGL offers with storage requirement of $$8n+4m$$ bytes, in addition to other auxiliary metadata and properties.

See also
csr_graph
Note
By definition, a graph with short edges cannot be multiedged, as there is no ID to distinguish between multiple edges to the same source-target pair.
Template Parameters
Dgraph-attribute specifying Directedness (DIRECTED/UNDIRECTED).
VPType of property for the vertex. Default is no_property.
EPType of property for the edge. Default is no_property.
P(Optional) Partition strategy that defines how to partition the original domain into subdomains.
M(Optional) Mapper that defines how to map the subdomains produced by the partition to locations.

◆ is_base_container

template<typename T >
using stapl::is_base_container = typedef std::is_base_of<bc_base, T>

Metafunction to determine if a given type is a STAPL base container.

Template Parameters
TThe type in question

◆ find_first_index

template<typename Items , template< typename... > class Predicate, typename... Arg>
using stapl::find_first_index = typedef detail::find_first_index_impl< Items, Predicate, 0, tuple_size<Items>::value, Arg...>

Finds the index of the first item in a given tuple that satisfies a given predicate.

Template Parameters
Itemsthe tuple of input elements
Predicatethe predicate to be tested on each element
Argadditional arguments to pass to Predicate after each element

◆ find_first_indices_seq

template<typename Items , typename For , template< typename... > class Predicate, typename... Arg>
using stapl::find_first_indices_seq = typedef detail::find_first_indices_impl< Items, For, Predicate, make_index_sequence<tuple_size<For>::value>, Arg...>

Return an index_sequence with the result of find_first_index for all of the elements in For.

Template Parameters
Itemsthe tuple of input elements
Forthe tuple of predicate arguments
Predicatethe predicate to be tested on each element
Argadditional arguments to pass to Predicate after each element of Items and For
See also
index_sequence
find_first_index
find_first_indices

◆ convert_to_wrap_partition

template<typename MDCont >
using stapl::convert_to_wrap_partition = typedef metadata::view_wrapper< typename MDCont::second_type::value_type, typename MDCont::second_type::domain_type, metadata_traits<typename MDCont::second_type>::is_isomorphic::value >

Defines the coarsen metadata wrapper type for the given container type.

Template Parameters
MDContMetadata container type.
See also
metadata::view_wrapper.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Note
assumes long is at least 32 bits.

◆ loc_qual

Qualifies the locality information a view or container returns about an element.

LQ_CERTAIN indicates that the element is stored on the specified location. LQ_LOOKUP indicates that the current location wasn't able to determine the element's locality, and that the locality query should be reexecuted on the specified location. LQ_DONTCARE indicates that the storage of the location is irrelevant.

◆ distribution_type

Enumeration of the regular distributions recognized.

Use of the enum in the distribution_spec_view enables run-time specialization.

Function Documentation

◆ make_composed_dist_spec()

template<typename Generator >
composed_dist_spec stapl::make_composed_dist_spec ( Generator const &  gen)

Constructs a composed distribution specification that will use the functor provided to generate the distribution specifications of the elements of the composed container instance.

Parameters
genFunctor whose function operator is passed the multi-dimensional index of the container element for which a distribution specification is needed. Gid types must all be the same. Hence the list is passed as an std::vector<>.

◆ make_heterogeneous_composed_dist_spec()

template<typename Generator , typename ... DistributionSpecs>
heterogeneous_composed_dist_spec< Generator, tuple<>, tuple<DistributionSpecs...> > stapl::make_heterogeneous_composed_dist_spec ( Generator &&  gen)

Constructs a composed distribution specification that will use the functor provided to generate the distribution specifications of the elements of the composed container instance. The gid types of the distribution need not be homogeneous.

Parameters
genFunctor whose function operator is passed the series of gids in the container nest as distinct parameters with (possibly) differing types.

◆ base_container_ranking()

size_t stapl::base_container_ranking ( base_container_ordering order)

Work function used to update the base container ranks after compute them.

Updates the rank of the local base containers.

Computes and updates the base container rank of the base containers referenced by the given base container ordering object.

Returns
Returns the total number of base containers.

◆ betweenness_centrality() [1/2]

template<typename Policy , typename GView >
void stapl::betweenness_centrality ( Policy &&  policy,
GView &  gv,
size_t  num_sources = 0,
bool  partial = false 
)

Computes betweenness centrality value of unweighted, directed graph.

Parameters
policyA policy for execution.
gvView of graph on which centrality will be computed.
num_sourcesNumber of sources to process at a time, if num_sources equals zero then all sources are processed at the the same time.
partialIndicating whether or not all vertices should be sources. If not, only num_sources traversals are considered

◆ betweenness_centrality() [2/2]

template<typename GView >
void stapl::betweenness_centrality ( GView &  gv,
size_t  num_sources = 0,
bool  partial = false 
)

Computes betweenness centrality value of unweighted, directed graph.

Parameters
gvView of graph on which centrality will be computed.
num_sourcesNumber of sources to process at a time, if num_sources equals zero then all sources are processed at the the same time.
partialIndicating whether or not all vertices should be sources. If not, only num_sources traversals are considered

◆ breadth_first_search() [1/3]

template<typename Policy , typename View , typename Predicate >
size_t stapl::breadth_first_search ( Policy &&  policy,
View &  g,
typename View::vertex_descriptor const &  source,
Predicate &&  finish_pred 
)

A Parallel Breadth-First Search (BFS)

Performs a breadth-first search on the input graph_view, storing the BFS-level and BFS-parent on each reachable vertex.

Parameters
policyA policy for execution.
gThe graph_view over the input graph.
sourceThe descriptor of the source vertex for this traversal.
finish_predA predicate indicating when to terminate that receives a vertex.
Returns
The number of iterations performed by the paradigm.

◆ breadth_first_search() [2/3]

template<typename Policy , typename View >
size_t stapl::breadth_first_search ( Policy &&  policy,
View &  g,
typename View::vertex_descriptor const &  source 
)

A Parallel Breadth-First Search (BFS)

Performs a breadth-first search on the input graph_view, storing the BFS-level and BFS-parent on each reachable vertex.

Parameters
policyA policy for execution.
gThe graph_view over the input graph.
sourceThe descriptor of the source vertex for this traversal.
Returns
The number of iterations performed by the paradigm.

◆ breadth_first_search() [3/3]

template<typename View >
size_t stapl::breadth_first_search ( View &  g,
typename View::vertex_descriptor const &  source 
)

A Parallel Breadth-First Search (BFS)

Performs a breadth-first search on the input graph_view, storing the BFS-level and BFS-parent on each reachable vertex.

Parameters
gThe graph_view over the input graph.
sourceThe descriptor of the source vertex for this traversal.
Returns
The number of iterations performed by the paradigm.

◆ connected_components() [1/2]

template<typename Policy , typename GView >
size_t stapl::connected_components ( Policy &&  policy,
GView &  g 
)

A Parallel Connected Components (CC) Algorithm.

Marks all vertices belonging to the same CC with the same connected-component ID.

Parameters
policyA policy for execution.
gThe graph_view over the input graph. property_type on the vertex needs to have methods: vertex_descriptor cc(void) – for getting the connected-component id. cc(vertex_descriptor) – for setting the connected-component id. bool active(void) – for checking if vertices are active. void active(bool) – for marking vertices as active.
Returns
The number of iterations performed by the algorithm.

◆ connected_components() [2/2]

template<typename GView >
size_t stapl::connected_components ( GView &  g)

A Parallel Connected Components (CC) Algorithm.

Marks all vertices belonging to the same CC with the same connected-component ID.

Parameters
gThe graph_view over the input graph. property_type on the vertex needs to have methods: vertex_descriptor cc(void) – for getting the connected-component id. cc(vertex_descriptor) – for setting the connected-component id. bool active(void) – for checking if vertices are active. void active(bool) – for marking vertices as active.
Returns
The number of iterations performed by the algorithm.

◆ cc_stats() [1/2]

template<typename GView >
std::vector<std::pair<typename GView::vertex_descriptor, size_t> > stapl::cc_stats ( GView &  g)

Algorithm to compute the number of vertices belonging to each connected-component in the graph, given the connected-component of each vertices.

Parameters
gThe graph_view over the input graph. property_type on the vertex needs to have methods: vertex_descriptor cc(void) – for getting the connected-component id. cc(vertex_descriptor) – for setting the connected-component id. The connected-component for each vertex must be available, or be filled-in by calling connected_components(g) algorithm before calling cc_stats.
Returns
A vector of pairs containing the CCID and the number of vertices in that connected-component, for each CC. [Size: O(num CC)]

◆ cc_stats() [2/2]

template<typename GView , typename VertexDescriptor , typename ResView >
void stapl::cc_stats ( GView &  g,
VertexDescriptor  CCid,
ResView &  output 
)

Algorithm to compute all vertices belonging to the specified connected-component.

Given a Graph, and Connected-Component IDs for each vertex, this returns all vertices belonging to the connected-component specified by CCid.

Parameters
gThe graph_view over the input graph. property_type on the vertex needs to have methods: vertex_descriptor cc(void) – for getting the connected-component id. cc(vertex_descriptor) – for setting the connected-component id. The connected-component for each vertex must be available, or be filled-in by calling connected_components(g) algorithm before calling cc_stats.
CCidThe connected-component ID of the desired connected-component.
outputThe output view used to store and return vertices belonging to the specified connected-component. Can be a view over stapl::array<std::vector<VD> > or any 1-d view of std::vectors<VD>. Each location stores the local vertices belonging to the specified CC.

◆ is_same_cc()

template<typename GView >
bool stapl::is_same_cc ( GView &  g,
typename GView::vertex_descriptor  v1,
typename GView::vertex_descriptor  v2 
)

Algorithm to compute if two specified vertices belong to the same connected component (i.e., are connected through a path), based on the given input graph and the Connected-Component IDs of vertices.

Parameters
gThe graph_view over the input graph. property_type on the vertex needs to have methods: vertex_descriptor cc(void) – for getting the connected-component id. cc(vertex_descriptor) – for setting the connected-component id. The connected-component for each vertex must be available, or be filled-in by calling connected_components(g) algorithm before calling is_same_cc.
v1Vertex descriptor of the first vertex.
v2Vertex descriptor of the second vertex.
Returns
True if both vertices are in the same Connected-Component, or false otherwise.

◆ write_adj_list()

template<typename GraphVw >
void stapl::write_adj_list ( GraphVw &  g,
std::string  filename = "" 
)

Function to output the adjacency-list of a graph.

Format:

/// #vertices #edges
/// source0 target00 target01 target02 ...
/// source1 target10 target11 target12 ...
/// :
/// 
Parameters
gThe input graph_view to be printed.
filenameThe name of the file where the graph will be printed.

◆ write_adj_list_prop()

template<typename GraphVw >
void stapl::write_adj_list_prop ( GraphVw &  g,
std::string  filename = "" 
)

Function to output the adjacency-list of a graph, when it has both vertex and edge properties..

Format:

/// VID VERTEXPROP #edges TGT0 EDGEPROP0 TGT1 EDGEPROP1 ...
/// VID VERTEXPROP #edges TGT0 EDGEPROP0 TGT1 EDGEPROP1 ...
/// :
/// 
Parameters
gThe input graph_view to be printed.
filenameThe name of the file where the graph will be printed.

◆ write_matrix_market()

template<typename GraphVw >
void stapl::write_matrix_market ( GraphVw &  g,
std::string  filename = "",
std::string  comments = "" 
)

Function to output the adjacency-list of a graph in Matrix Market format.

Format:

/// TOTAL_ROWS TOTAL_COLUMNS TOTAL_EDGES
/// ROW        COLUMN
/// ROW        COLUMN
/// :
/// 
Parameters
gThe input graph_view to be printed.
filenameThe name of the file where the graph will be printed.
commentsComments added at the beginning of the file.

◆ write_edge_list()

template<typename GraphVw >
void stapl::write_edge_list ( GraphVw &  g,
std::string  filename = "" 
)

Function to output the edge-list of a graph, without properties.

Format:

/// SRC0 TGT0
/// SRC1 TGT1
/// SRC2 TGT2
/// :
/// 
Parameters
gThe input graph_view to be printed.
filenameThe name of the file where the graph will be printed.

◆ write_dot()

template<typename GraphVw >
void stapl::write_dot ( GraphVw &  g,
std::string  filename 
)

Function to output a DOT graph, without properties.

Parameters
gThe input graph_view to be printed.
filenameThe name of the file where the graph will be printed.

◆ write_PMPL_graph()

template<typename GraphVw >
void stapl::write_PMPL_graph ( GraphVw &  g,
std::string  filename = "" 
)

Function to output the graph in PMPL format.

Parameters
gThe input graph_view to be printed.
filenameThe name of the file where the graph will be printed.

◆ graph_reader() [1/2]

template<typename Graph , typename LineReader >
graph_view<Graph> stapl::graph_reader ( std::string  filename,
LineReader  line_reader,
size_t  blk_sz = 4096 
)

Algorithm to read a graph from the given input file.Uses the user-provided reader to read each line and add the edges from the line to the graph.

Parameters
filenameThe name of the input file.
line_readerThe functor used to read-in a line of text from file and add the appropriate edges to the provided aggregator, LineReader is given a stream with the line and an Edge-Aggregator. It should read the stream and add the appropriate edges to the provided Aggregator. LineReader should return '0' for success, '1' for failure.
blk_szThe size of the block (in number of lines), in which the input file will be partitioned to be read.
Returns
A graph_view over the output graph, populated with the vertices and edges from the input file.

◆ graph_reader() [2/2]

template<typename Graph , typename LineReader , typename HeaderReader >
graph_view<Graph> stapl::graph_reader ( std::string  filename,
LineReader  line_reader,
HeaderReader  header_reader,
size_t  blk_sz = 4096 
)

Algorithm to read a graph from the given input file.Uses the user-provided reader to read each line and add the edges from the line to the graph.

Parameters
filenameThe name of the input file.
line_readerThe functor used to read-in a line of text from file and add the appropriate edges to the provided aggregator, LineReader is given a stream with the line and an Edge-Aggregator. It should read the stream and add the appropriate edges to the provided Aggregator. LineReader should return '0' for success, '1' for failure.
blk_szThe size of the block (in number of lines), in which the input file will be partitioned to be read.
Returns
A graph_view over the output graph, populated with the vertices and edges from the input file.
Parameters
header_readerA custom header reader to parse the header of a file and extract number of vertices.

◆ sharded_graph_reader()

template<typename Graph , typename LineReader >
graph_view<Graph> stapl::sharded_graph_reader ( std::string  filename,
LineReader  line_reader 
)

Algorithm to read a sharded graph from the given input file.Uses the user-provided reader to read each line and add the edges from the line to the graph. Input graph must be sharded using the sharder. A sharded file is split into multiple input files and a metadata file that keeps track of the number of shards, vertices and edges, etc.

Parameters
filenameThe name of the input file.
line_readerThe functor used to read-in a line of text from file and add the appropriate edges to the provided aggregator, LineReader is given a stream with the line and an Edge-Aggregator. It should read the stream and add the appropriate edges to the provided Aggregator. LineReader should return '0' for success, '1' for failure.
Returns
A graph_view over the output graph, populated with the vertices and edges from the input file.

◆ graph_sharder()

void stapl::graph_sharder ( std::string  filename,
size_t  shard_size,
bool  removecomments = true 
)

Function to shard an input file for efficient parallel reading.

Files sharded by the graph sharder can be read by sharded_graph_reader(). This function is not parallel and works from one location.

Parameters
filenameThe name of the input file. The input file must contain the number of vertices and edges in the graph in the first line. The output shards created will be named with the provided filename as the prefix, followed by the shard-ID. A metadata file with the name filename.metadata will be created containing the metadata for the shards (#vertices, #edges, #shards, etc.).
shard_sizeThe size (in number of lines) of each output shard.
removecommentsSet to true for excluding commented lines from shards, or false to keep the commented lines in the output shards.

◆ nc_map_reduce()

template<typename Functor1 , typename Functor2 , typename View0 , typename ... View>
Functor2::result_type stapl::nc_map_reduce ( Functor1 const &  func1,
Functor2 const &  func2,
View0 const &  view0,
View const &...  view 
)

map_reduce() variant that does not coarsen the input views if size of view0 is less than the number of locations.

Note
This is needed to make map-reduce work with views with sizes less than the number of locations until the metadata reported is corrected to exclude empty base containers.

◆ nc_map_func()

template<typename Functor , typename View0 , typename ... View>
void stapl::nc_map_func ( Functor const &  func,
View0 const &  view0,
View const &...  view 
)

map_func() variant that does not coarsen the input views if size of view0 is less than the number of locations.

Note
This is needed to make map-func work with views with sizes less than the number of locations until the metadata reported is corrected to exclude empty base containers.

◆ nc_accumulate() [1/2]

template<typename View , typename Oper >
View::value_type stapl::nc_accumulate ( View const &  view,
typename View::value_type  init,
Oper  oper 
)

accumulate() variant that does not coarsen the input views if size of view is less than the number of locations.

Note
This is needed to make accumulate work with views with sizes less than the number of locations until the metadata reported is corrected to exclude empty base containers.

◆ nc_accumulate() [2/2]

template<typename View >
View::value_type stapl::nc_accumulate ( View const &  view,
typename View::value_type  init 
)

accumulate() variant that does not coarsen the input views if size of view is less than the number of locations.

Note
This is needed to make accumulate work with views with sizes less than the number of locations until the metadata reported is corrected to exclude empty base containers.

◆ nc_partial_sum()

template<typename View0 , typename View1 >
void stapl::nc_partial_sum ( View0 const &  view0,
View1 const &  view1,
bool  shift 
)

partial_sum() variant that does not coarsen the input views if size of view0 is less than the number of locations.

Note
This is needed to make partial-sum work with views with sizes less than the number of locations until the metadata reported is corrected to exclude empty base containers.

◆ nc_partial_sum_accumulate()

template<typename View0 , typename View1 >
View0::value_type stapl::nc_partial_sum_accumulate ( View0 const &  view0,
View1 const &  view1,
typename View0::value_type  init_value,
bool  shift 
)

combination of nc_partial_sum and nc_accumulate

Note
This is needed to make partial_sum_accumulate work with views with sizes less than the number of locations until locations until the metadata reported is corrected to exclude empty base containers.

◆ page_rank() [1/2]

template<typename Policy , typename GView >
size_t stapl::page_rank ( Policy &&  policy,
GView &  graph,
size_t  iterations,
double  damp = 0.85 
)

Parallel Level-Synchronized PageRank Algorithm.

Performs a PageRank on the input graph_view, storing the ranks of all vertices on their properties.

Parameters
policyA policy for execution.
graphThe graph_view over the input graph.
iterationsThe number of PageRank iterations to perform.
dampingThe damping factor for the algorithm.
Returns
The number of iterations performed.

◆ page_rank() [2/2]

template<typename GView >
size_t stapl::page_rank ( GView &  graph,
size_t  iterations,
double  damp = 0.85 
)

Parallel Level-Synchronized PageRank Algorithm.

Performs a PageRank on the input graph_view, storing the ranks of all vertices on their properties.

Parameters
graphThe graph_view over the input graph.
iterationsThe number of PageRank iterations to perform.
dampingThe damping factor for the algorithm.
Returns
The number of iterations performed.

◆ kla_paradigm_driver()

template<typename WF , typename UF , typename InitOp , typename Frontier , typename GView , typename OccupancyType , typename Predicate = kla_detail::false_predicate>
size_t stapl::kla_paradigm_driver ( WF const &  uwf,
UF const &  ,
InitOp const &  init_op,
GView &  g,
Frontier &&  frontier,
OccupancyType &&  occupancy,
size_t  k = 0,
kla_params< GView, Predicate > const &  params = kla_params<GView, Predicate>() 
)

Driver for kla_paradigm to choose the appropriate internal specialization.

Parameters
uwfThe type of the user provided vertex-operator expressing computation to be performed over each vertex.
ufThe type of the user provided neighbor-operator expressing computation to be performed over neighboring vertices.
iopThe initialization operator that will be used to initialize the frontier
gThe graph_view over the input graph.
frontierThe frontier to use during the traversal
superstep_occupancyTuple of how many vertices will be active during key points in the traversal
kThe maximum amount of asynchrony allowed in each phase. 0 <= k <= inf. k == 0 implies level-synchronous KLA. k >= D performed implies fully asynchronous KLA (D is the number of iterations by the level-synchronous variant of the algorithm).
Returns
The number of iterations performed by the paradigm.

◆ kla_paradigm()

template<typename VertexOp , typename NeighborOp , typename InitOp , typename GView , typename OrderingType , typename OccupancyType , typename Predicate = kla_detail::false_predicate>
size_t stapl::kla_paradigm ( VertexOp &&  vertex_op,
NeighborOp &&  neighbor_op,
InitOp &&  init_op,
GView &  g,
OrderingType  ,
OccupancyType &&  occupancy,
std::size_t  k = 0,
kla_params< GView, Predicate > const &  params = kla_params<GView, Predicate>() 
)

The Parallel k-Level-Asynchronous (KLA) Paradigm.

Implements the KLA paradigm, which iteratively executes KLA-Supersteps (KLA-SS). Each KLA-SS can perform asynchronous visits up to 'k' levels deep. Any communication generated within a KLA-SS is guaranteed to have finished before the KLA-SS finishes. The user provides a vertex-operator to express the computation to be performed on each vertex, and a neighbor-operator that will be applied to each neighbor that is visited. The vertex-operator is passed in a vertex and a visit object. To visit a neighboring vertex, the vertex-operator must call visit(neighbor, neighbor-operator()). The vertex-operator must return true if the vertex was active (i.e. its value was updated), or false otherwise. The neighbor-operator is passed in the target vertex. Neighbor-operators may carry state, but must be immutable. They should return true if the visit was successful (i.e. the target vertex will be activated after this visit), or false otherwise. Users may also provide additional functions to be executed before and after each KLA-SS.

Parameters
vertex_opThe type of the user provided vertex-operator expressing computation to be performed over each vertex.
neighbor_opThe type of the user provided neighbor-operator expressing computation to be performed over neighboring vertices.
init_opThe initialization operator that will be used to initialize the frontier
gThe graph_view over the input graph.
ordering_typeThe algorithm's ordering requirements for the operators
superstep_occupancyTuple of how many vertices will be active during
kThe maximum amount of asynchrony allowed in each phase. 0 <= k <= inf. k == 0 implies level-synchronous KLA. k >= D performed implies fully asynchronous KLA (D is the number of iterations by the level-synchronous variant of the algorithm).
paramsA struct of other parameters controlling the traversal
Returns
The number of iterations performed by the paradigm.

◆ read_metadata_file()

sharded_description stapl::read_metadata_file ( std::string const &  filename)

Read the metadata file from disk and create a description of how the input graph is sharded.

Note
This is a collective operation. One location will read the file and broadcast its contents to all other locations.
Parameters
filenamePath to the metadata file
Returns
Description of the sharding

◆ nested_sharded_graph_reader()

template<typename Graph , typename LineReader >
graph_view<Graph> stapl::nested_sharded_graph_reader ( std::string  filename,
LineReader  line_reader 
)

Algorithm to read a graph that is sharded in a nested way.

Uses the user-provided reader to read each line and add the edges from the line to the graph.

Input graph must be sharded using the nested sharder. A sharded file is split into multiple input files and a metadata file that keeps track of the number of vertices, edges, total shards and nested dimensions.

An example metadata file would be: 1000 1000000 128 2 100

Each line after the first line represents the shape of the space. The files would then be in nested directories (e.g., base/1/24)

Parameters
filenameThe name of the input metadata file.
line_readerThe functor used to read-in a line of text from file and add the appropriate edges to the provided aggregator, LineReader is given a stream with the line and an Edge-Aggregator. It should read the stream and add the appropriate edges to the provided Aggregator. LineReader should return '0' for success, '1' for failure.
Returns
A graph_view over the output graph, populated with the vertices and edges from the input file.

◆ sssp()

template<typename GView >
size_t stapl::sssp ( GView &  g,
typename GView::vertex_descriptor const &  source,
size_t  k = 0 
)

A Parallel Single-Source Shortest Paths (SSSP) algorithm.

Performs a single-source shortest path query on the input graph_view, storing the shortest path distance and parent on each reachable vertex. All vertices will be initialized with their distance as infinity (MAX) and their active state as false, except the source-vertex, which will have its distance set to zero (0) and active state set to true. Parents of each vertex will be initialized to the vertex's descriptor.

Parameters
gThe graph_view over the input graph.
sourceThe descriptor of the source vertex for this traversal.
kThe maximum amount of asynchrony allowed in each phase. 0 <= k <= inf. k == 0 implies level-synchronous SSSP. k >= D implies fully asynchronous SSSP (D is diameter of graph).
Returns
The number of iterations performed by the paradigm.

◆ exclusive_scan()

template<typename InputIt , typename OutputIt , typename T >
OutputIt stapl::exclusive_scan ( InputIt  first,
InputIt  last,
OutputIt  out,
init 
)

Perform an exclusive prefix sum of the input range and store it in the output range, with the first value being an initial value.

◆ try_commit()

template<typename Graph >
void stapl::try_commit ( Graph &  g)

Commit a graph if it is a CSR representation. If not, do nothing.

Parameters
gThe graph to commit

◆ try_uncommit()

template<typename Graph >
void stapl::try_uncommit ( Graph &  g)

Uncommit a graph if it is a CSR representation. If not, do nothing.

Parameters
gThe graph to uncommit

◆ transform_edge_list()

template<typename EdgeListView , typename GraphView >
void stapl::transform_edge_list ( EdgeListView  edge_list,
GraphView  g,
bool  reverse_edges = false 
)

Transform a graph represented by a flat edge list into a stapl::graph.

Warning
This method can only be called when the number of processors is a power of 2, as the butterfly requires that p is a power of 2. This can be modified by performing a reduction to power of 2 before the butterfly and a split after the butterfly.
Parameters
edge_listView over an array of pairs where the first element is the edge source and the second is the target.
gThe graph to populate. This graph must be prepopulated with vertices.
reverse_edgesIf true, every edge's reverse will also be added to the graph

◆ create_master_mesh_file()

void stapl::create_master_mesh_file ( std::string const &  filename,
size_t const &  num_submeshes 
)

Create silo master multimesh file.

Parameters
filenameoutput mesh file name.
num_submeshesnumber of mesh partitions.

◆ generate_silo_file()

template<typename MeshType , typename PropertyMap >
void stapl::generate_silo_file ( MeshType &  mesh,
PropertyMap  partition_weight_map,
std::string  filename 
)

Output a mesh to silo multimesh files.

Parameters
meshmesh data structure.
partition_weight_mapproperty map storing values associated to mesh cells.
filenameoutput mesh file name.

◆ operator*() [1/4]

template<typename ELEMENT >
geom_vector<2, ELEMENT> stapl::operator* ( geom_vector< 2, ELEMENT > const &  v,
ELEMENT const &  a 
)

Multiplication of the coordinates of a vector v with a value a.

Parameters
vgeometric vector.
avalue.
Returns
new geometric vector.

◆ operator/() [1/2]

template<typename ELEMENT >
geom_vector<2, ELEMENT> stapl::operator/ ( geom_vector< 2, ELEMENT > const &  v,
ELEMENT const &  a 
)

Division of the coordinates of a vector v with a value a.

Parameters
vgeometric vector.
avalue.
Returns
new geometric vector.

◆ operator*() [2/4]

template<typename ELEMENT >
geom_vector<2, ELEMENT> stapl::operator* ( ELEMENT const &  a,
geom_vector< 2, ELEMENT > const &  v 
)

Multiplication of a value a with the coordinates of a vector v.

Parameters
avalue.
vgeometric vector.
Returns
new geometric vector.

◆ operator+() [1/2]

template<typename ELEMENT >
geom_vector<2, ELEMENT> stapl::operator+ ( geom_vector< 2, ELEMENT > const &  v1,
geom_vector< 2, ELEMENT > const &  v2 
)

Coordinate-wise addition of 2 geometric vectors.

Parameters
v1first geometric vector.
v2second geometric vector.
Returns
new geometric vector.

◆ operator-() [1/2]

template<typename ELEMENT >
geom_vector<2, ELEMENT> stapl::operator- ( geom_vector< 2, ELEMENT > const &  v1,
geom_vector< 2, ELEMENT > const &  v2 
)

Coordinate-wise subtraction of 2 geometric vectors.

Parameters
v1first geometric vector.
v2second geometric vector.
Returns
new geometric vector.

◆ operator<<() [1/5]

template<typename ELEMENT >
std::ostream& stapl::operator<< ( std::ostream &  s,
geom_vector< 2, ELEMENT > const &  coords 
)

Output the coordinates of vector coords to an output stream s.

Parameters
soutput stream.
coordsgeometric vector.
Returns
the output stream s.

◆ operator*() [3/4]

template<typename ELEMENT >
geom_vector<3, ELEMENT> stapl::operator* ( geom_vector< 3, ELEMENT > const &  v,
ELEMENT const &  a 
)

Multiplication of the coordinates of a vector v with a value a.

Parameters
vgeometric vector.
avalue.
Returns
new geometric vector.

◆ operator/() [2/2]

template<typename ELEMENT >
geom_vector<3, ELEMENT> stapl::operator/ ( geom_vector< 3, ELEMENT > const &  v,
ELEMENT const &  a 
)

Division of the coordinates of a vector v with a value a.

Parameters
vgeometric vector.
avalue.
Returns
new geometric vector.

◆ operator*() [4/4]

template<typename ELEMENT >
geom_vector<3, ELEMENT> stapl::operator* ( ELEMENT const &  a,
geom_vector< 3, ELEMENT > const &  v 
)

Multiplication of a value a with the coordinates of a vector v.

Parameters
avalue.
vgeometric vector.
Returns
new geometric vector.

◆ operator+() [2/2]

template<typename ELEMENT >
geom_vector<3, ELEMENT> stapl::operator+ ( geom_vector< 3, ELEMENT > const &  v1,
geom_vector< 3, ELEMENT > const &  v2 
)

Coordinate-wise addition of 2 geometric vectors.

Parameters
v1first geometric vector.
v2second geometric vector.
Returns
new geometric vector.

◆ operator-() [2/2]

template<typename ELEMENT >
geom_vector<3, ELEMENT> stapl::operator- ( geom_vector< 3, ELEMENT > const &  v1,
geom_vector< 3, ELEMENT > const &  v2 
)

Coordinate-wise subtraction of 2 geometric vectors.

Parameters
v1first geometric vector.
v2second geometric vector.
Returns
new geometric vector.

◆ operator<<() [2/5]

template<typename ELEMENT >
std::ostream& stapl::operator<< ( std::ostream &  s,
geom_vector< 3, ELEMENT > const &  coords 
)

Output the coordinates of vector coords to an output stream s.

Parameters
soutput stream.
coordsgeometric vector.
Returns
the output stream s.

◆ make_implicit_regular_mesh_view()

template<int N>
implicit_regular_mesh_view_type<N>::type stapl::make_implicit_regular_mesh_view ( typename implicit_regular_mesh_container< N >::tuple_type const &  size)

Function creating an implicit regular mesh.

Template Parameters
Nmesh dimension.
Parameters
sizesize of the mesh in each dimension.
Returns
graph view over the created mesh.

◆ operator<<() [3/5]

template<typename T1 , typename T2 >
std::ostream& stapl::operator<< ( std::ostream &  os,
implicit_regular_mesh_domain< T1, T2 > const &  d 
)

Output the domain d to an output stream os.

Parameters
osoutput stream.
ddomain.
Returns
the output stream os.

◆ get_sister_face()

std::vector<size_t> stapl::get_sister_face ( std::vector< size_t > const &  face)

Return the sister face of a cell face.

Parameters
facecell face.
Returns
sister of the cell face.

◆ push_to_face_map()

template<typename FaceMap , typename MeshType >
void stapl::push_to_face_map ( FaceMap &  face_map,
std::vector< size_t > const &  face,
size_t const &  cell_id,
MeshType &  mesh 
)

Store a face in a map and connect it in the mesh to its sister face if it exists in the map.

Parameters
face_mapmap storing cell faces.
facecell face to be stored.
cell_idcell identifier of the face.
meshmesh data structure.

◆ set_face_order()

void stapl::set_face_order ( std::vector< size_t > &  face)

Reorder the vertices of a face to have the vertex with the minimum id stored in front.

Parameters
facecell face to be reordered.

◆ get_node_id()

size_t stapl::get_node_id ( DBucdmesh *  mesh_file,
size_t const &  zone_id,
size_t const &  index 
)

Return global identifier of a vertex from silo file.

Parameters
mesh_filesilo file storing the mesh.
zone_idcell identifier of the vertex.
indexposition of the vertex in the cell.
Returns
global identifier of the vertex.

◆ extract_2d_zones()

template<typename FaceMap , typename MeshType >
void stapl::extract_2d_zones ( DBucdmesh *  mesh_file,
FaceMap &  face_map,
MeshType &  mesh 
)

Extract 2d cells and its vertices from a silo file.

Parameters
mesh_filesilo mesh file.
face_mapmap data structure storing cell faces.
meshmesh data structure.

◆ extract_tetrahedron_zones()

template<typename FaceMap , typename MeshType >
void stapl::extract_tetrahedron_zones ( DBucdmesh *  mesh_file,
FaceMap &  face_map,
MeshType &  mesh 
)

Extract tetrahedral cells and its vertices from a silo file.

Parameters
mesh_filesilo mesh file.
face_mapmap data structure storing cell faces.
meshmesh data structure.

◆ convert_to_domset1d()

template<typename T >
domset1D<T> stapl::convert_to_domset1d ( std::vector< T > &  dom)

Convert a vector to a domset1D domain.

Parameters
domvector storing identifiers.
Returns
domset1D domain of the vector.

◆ create_partition_view() [1/2]

template<typename GView >
partition_view_type<GView>::type stapl::create_partition_view ( GView const &  gview,
size_t const &  num_partitions 
)

Create a partition view level over a graph view with a specific number of partitions.

Parameters
gviewbase graph view.
num_partitionsnumber of partitions.
Returns
partition view of size num_partitions.

◆ create_partition_view() [2/2]

template<typename PG , typename Dom , typename MapFunc , typename Derived >
partition_view_type<hierarchical_graph_view<PG, Dom, MapFunc, Derived> >::type stapl::create_partition_view ( hierarchical_graph_view< PG, Dom, MapFunc, Derived > const &  hview,
size_t const &  num_partitions 
)

Create a partition view level over another partition view with a specific number of partitions.

Parameters
hviewpartition view.
num_partitionsnumber of partitions.
Returns
partition view of size num_partitions.

◆ move_vertex()

template<typename Hview >
void stapl::move_vertex ( Hview &  partition_view,
size_t const &  partition_source_id,
size_t const &  partition_target_id,
size_t const &  vertex_id 
)

Move a vertex id from a partition to a target partition.

Template Parameters
Hviewpartition view type.
Parameters
partition_viewpartition view.
partition_source_idsource partition.
partition_target_idtarget partition id.
vertex_idvertex descriptor to be moved.

◆ build_centroids()

template<typename MeshType >
void stapl::build_centroids ( MeshType &  mesh)

Compute the cell centroids of a mesh.

Parameters
meshmesh data structure.

◆ graph_partition() [1/3]

template<class GView , class Collapser , class Refiner >
gpartition<GView> stapl::graph_partition ( GView &  gview,
Collapser const &  collapse,
Refiner const &  refine 
)

Partition a graph with a collapser functor and a refiner functor.

Parameters
gviewgraph view to be partitioned
collapsecollapser functor
refinerefiner functor
Returns
gpartition object representing the partition

◆ graph_partition() [2/3]

template<class GView , class Collapser >
gpartition<GView> stapl::graph_partition ( GView &  gview,
Collapser const &  collapse 
)

Partition a graph with a collapser functor.

Parameters
gviewgraph view to be partitioned
collapsecollapser functor
Returns
gpartition object representing the partition

◆ graph_partition() [3/3]

template<class GView , class Collapser >
gpartition<typename gpartition<GView>::partition_view_t> stapl::graph_partition ( gpartition< GView > &  gpart,
Collapser const &  collapse 
)

Partition a partition with a collapser functor.

Parameters
gpartpartition object to be partitioned
collapsecollapser functor
Returns
gpartition object representing the partition

◆ graph_repartition()

template<class GView , class Refiner >
gpartition<GView> stapl::graph_repartition ( gpartition< GView > &  gpart,
Refiner const &  refine 
)

Refine a partition with a refiner functor.

Parameters
gpartpartition object to be partitioned
refinerefiner functor
Returns
gpartition object representing the partition

◆ heavy_edge_matching_collapser()

template<typename HView >
HView stapl::heavy_edge_matching_collapser ( HView const &  hview,
size_t const &  level 
)

Match pair of vertices connected with a heavy edge weight and create a new graph with a super-vertex representing a pair of matched vertices or an unmatched vertex.

Parameters
hviewgraph view whose vertices are matched.
levellevel of hierarchy of hview.
Returns
new level of hierarchy containing the super-vertices.

◆ recursive_bisection_partition()

template<typename HView >
size_t stapl::recursive_bisection_partition ( HView &  hview,
size_t const &  num_partitions,
size_t const &  imbalance 
)

Parallel nested bisection partitioning of a graph. This implementation uses the METIS library for the bisection.

Parameters
hviewgraph view.
num_partitionsnumber of partitions created.
imbalancepartition imbalance allowed.
Returns
total vertex weight of graph hview.

◆ fm_refinement()

template<typename HView >
void stapl::fm_refinement ( HView const &  hview,
size_t const &  num_partitions,
size_t const &  optimal_part_weight,
size_t const &  imbalance,
size_t const &  pass_fm 
)

Fiduccia-Mattheyses heuristic to decrease the edge-cut of a graph partition while maintaining a low partition imbalance.

Parameters
hviewgraph view.
num_partitionsnumber of partitions.
opt_part_weightoptimal partition weight.
imbalancepartition imbalance allowed for the refinement.
pass_fmnumber of refinement passes.

◆ print_partition_quality()

template<typename HView >
std::pair<double, size_t> stapl::print_partition_quality ( HView const &  hview,
size_t const &  num_parts 
)

Compute the imbalance and cut-weight of a graph partition.

Parameters
hviewpartitioned graph view.
num_partsnumber of partitions.
Returns
pair of the imbalance and cut-weight of the partition of hview.

◆ KBA() [1/3]

template<int Dim>
size_tuple<Dim>::type stapl::KBA ( )

Create the KBA partition layout using the number of locations.

Returns
KBA partition layout.

◆ KBA() [2/3]

size_tuple<2>::type stapl::KBA ( size_t const &  num_x)

Create the KBA partition layout using num_x partitions on the x axis.

Parameters
num_xnumber of partitions on the x axis.
Returns
KBA partition layout.

◆ KBA() [3/3]

size_tuple<3>::type stapl::KBA ( size_t const &  num_x,
size_t const &  num_y 
)

Create the KBA partition layout using num_x partitions on the x axis and num_y partitions on the y axis.

Parameters
num_xnumber of partitions on the x axis.
num_ynumber of partitions on the y axis.
Returns
KBA partition layout.

◆ make_frontier_view()

template<typename Graph , typename Frontier >
frontier_view<Graph, Frontier> stapl::make_frontier_view ( Graph const &  graph,
Frontier &  frontier 
)

Create a view over a subset of a graph based on the set of active vertices.

Parameters
graphThe graph container
frontierThe frontier / set of active vertices

◆ create_hierarchy()

template<typename GraphVw , typename VertPart , typename EdgeFunc >
GraphVw stapl::create_hierarchy ( const GraphVw &  graph,
const VertPart &  partitioner,
const EdgeFunc &  ef,
compute_level_offset const &  calculate_offset = compute_level_offset() 
)

Create a new hierarchy level over a given view.

Parameters
graphthe hierarchy level will be created on top of this view.
partitionerfunctor partitioning the view graph.
effunctor creating the edges in the new hierarchy level.
calculate_offsetfunctor determining the vertex descriptor offset between 2 level of hierarchy.
Returns
new level of hierarchy view.

Using the name "create_hierarchy" to avoid a conflict with the "create_level" functions of the other hierarchical view implementation.

◆ lazy_graph()

template<typename C >
lazy_graph_view<lazy_graph_view_container<C> > stapl::lazy_graph ( C &  c)

Helper function to create a lazy_graph_view over the given pGraph pContainer.

Template Parameters
CThe type of pGraph to which the deferred commits will be applied.
Parameters
cThe pGraph to which the deferred commits will be applied.
Returns
A lazy_graph_view over the given pGraph pContainer.

◆ undirected_view()

template<typename View >
undirected_view_type<View>::type stapl::undirected_view ( View &  view)

Function to return an undirected view of a directed graph.

Parameters
viewThe type of the input graph_view over a directed graph.
Returns
A graph_view over the undirected graph.
Note
This function copies the internal graph and adds the bidirectional edges. The view returned is over a copy of the input graph, so changes made to the output view will not be reflected in the original container.

◆ graph_find()

template<class Iter , class Pred >
Iter stapl::graph_find ( Iter  b,
Iter  e,
Pred const &  pred 
)

A simple search function for the graph.Searches the range from b to e, and returns the first place where pred is satisfied. Can't use std::find for certain operations, as the predicate will have the iterator as argument and not the reference to the element.

Parameters
bAn iterator to the beginning of the range.
eAn iterator to the end of the range.
predThe predicate.
Returns
An iterator to the first element satisfying the predicate.

◆ copy_graph()

template<class Graph >
void stapl::copy_graph ( Graph &  source,
Graph &  dest 
)

Copies a source graph into a destination graph, handling cases for property which may or may not be there.

Parameters
sourceThe source graph.
destThe destination graph.

◆ read_from_file_bgl()

template<typename G >
std::vector<typename G::vertex_descriptor> stapl::read_from_file_bgl ( G &  g,
std::string  filename 
)

Reads a graph from file and reconstructs it in the passed graph parameter.

◆ rename_vertices()

void stapl::rename_vertices ( std::vector< size_t > &  verts)

Renames the VDs in a vector of BGL VDs so that when the delete_vertex profiler uses the vector to perform deletion, the 'same' vertices are deleted that would have been deleted in the SSGL version of the profiler. This can be verified by attaching size_t properties to the BGL vertices and checking them before and after the deletions are performed.

The first definition of the function is for when the boost adjacency_list is storing vertices in a vector. The overload is for when vertices are in a list, which requires no renaming since list elements will not be physically shifted like in a vector when deletion is performed...

◆ read_from_file()

template<typename G >
std::vector<typename G::vertex_descriptor> stapl::read_from_file ( G &  g,
std::string  filename 
)

takes an empty graph g, and reads from file.

◆ get_pointer()

template<typename T >
T* stapl::get_pointer ( container_wrapper_ref< T > const &  t)

Retrieve the pointer from a wrapped reference.

Parameters
tThe reference
Returns
The pointer that is within the reference

◆ consume_pg() [1/3]

template<typename T , typename... OptionalParams>
std::pair<ptr_wrapper<nested_pg_view<T, OptionalParams...> >, std::size_t> stapl::consume_pg ( paragraph_impl::paragraph_view_base const &  pgv,
std::size_t  tid,
OptionalParams &&...  params 
)

Call to allow consumption from a nested paragraph by a sibling paragraph with a filter specified to limit values that are flowed. Called in the parent paragraph's factory.

Template Parameters
TThe elementary value type that will be flowed.
OptionalParamsOptional parameters to control dataflow. Currently: (1) PortFilter - boolean functor queried to see if pin should be flowed. (2) ValueFilter - functor applied to produced value prior to dataflow. (3) PinLocationMapper - maps producer pin to location in this consumer where it should be flowed.

◆ consume_pg() [2/3]

template<typename T , typename PinIdsRef , typename... OptionalParams1, typename... OptionalParams2>
std::pair< ptr_wrapper< nested_parent_pg_view<T, typename std::decay<OptionalParams2>::type...> >, typename std::decay<PinIdsRef>::type> stapl::consume_pg ( nested_parent_pg_view_subview< T, OptionalParams1... > const &  view,
PinIdsRef &&  pin_ids,
OptionalParams2 &&...  params 
)

Signature for task consumption specialized for consumption of a range of values from one of my parent's input ports. Called in the parent paragraph's factory.

Parameters
viewThe parent input port to consume from.
pin_idsThe pins from the input parent to consume.
paramsOptional parameters. For now: (1) A pin id mapper that changes the pin_id of the producer when placing it in the consumer input port. (2) A pin location mapper that defines which location in the consumer PARAGRAPH this value will be initially flowed to and managed by.

◆ consume_pg() [3/3]

template<typename T , typename PinIdsRef , typename... OptionalParams1, typename... OptionalParams2>
std::pair< ptr_wrapper< nested_parent_pg_view<T, typename std::decay<OptionalParams2>::type...> >, typename std::decay<PinIdsRef>::type> stapl::consume_pg ( nested_pg_view_subview< T, OptionalParams1... > const &  view,
PinIdsRef &&  pin_ids,
OptionalParams2 &&...  params 
)

Signature for task consumption specialized for consumption of a range of values from the output port of a sibling PARAGRAPH.

Parameters
viewThe parent input port to consume from.
pin_idsThe pins from the input parent to consume.
paramsOptional parameters. For now: (1) A pin id mapper that changes the pin_id of the producer when placing it in the consumer input port. (2) A pin location mapper that defines which location in the consumer PARAGRAPH this value will be initially flowed to and managed by.

◆ ts_print()

template<typename S >
void stapl::ts_print ( S const &  s)

Print a message preceded by a time stamp.

Useful for coarse estimation of the time elapsed between two consecutive invocations.

◆ cross_map()

template<typename F , typename... V>
void stapl::cross_map ( F &&  f,
V &&...  v 
)

Call a function repeatedly with the set of elements generated by the cross product of all elements in an arbitrary number of containers.

Parameters
fFunction to call. The arity must be equal to the number of containers passed to cross_map.
vAn arbitrary number of containers. They must be iterable using the range-based for construct.

◆ do_once() [1/2]

template<typename... Args>
void stapl::do_once ( void(*)(Args...)  fun,
Args...  args 
)

Signature matching pointer to function with void return type.

Parameters
funPointer to C function returning void.
argsList of arguments to pass to function call.

◆ do_once() [2/2]

template<typename Rtn , typename... Args>
Rtn stapl::do_once ( Rtn(*)(Args...)  fun,
Args...  args 
)

Signature matching pointer to function with non-void return type.

Parameters
funPointer to C function with return type Rtn.
argsList of arguments to pass to function call.

◆ domain_map()

template<typename Domain , typename F >
void stapl::domain_map ( Domain const &  dom,
F &&  f 
)

Apply a function to each GID in a domain.

Parameters
domThe domain to iterate over.
fFunction to call, which must accept a single GID as its argument.

◆ operator<<() [4/5]

template<typename Stream , typename T >
stream<Stream>& stapl::operator<< ( stream< Stream > &  os,
T const &  val 
)

Output operator for stream wrapper.

Parameters
osstream to which the value will be written
valvariable to be written
Returns
reference to the stream to allow chaining of the operator

◆ operator<<() [5/5]

template<typename Stream >
stream<Stream>& stapl::operator<< ( stream< Stream > &  os,
std::ostream &(*)(std::ostream &os)  endlPar 
)

Specialization of the output operator to intercept std::endl.

Parameters
osstream to which the value will be written
endlParfunction pointer to std::endl
Returns
reference to the stream to allow chaining of the operator
Note
Required because file streams don't allow customization of the buffer (i.e., by invoking set_rdbuf), which would allow the sync method of the buffer to be overwritten and the call intercepted using the non-specialized output operator.

◆ operator>>()

template<typename Stream , typename T >
stream<Stream>& stapl::operator>> ( stream< Stream > &  os,
T &  val 
)

Input operator for the stream wrapper.

Parameters
osStream from which to read
valVariable to which the value read will be assigned

◆ homogeneous_tuple()

template<int N, typename T >
homogeneous_tuple_type<N, T>::type stapl::homogeneous_tuple ( T const &  t)

Helper function to create a tuple of homogeneous types where each element of the tuple has the same value.

Template Parameters
Numberof elements in the tuple
Parameters
tValue that is going to be copied to all elements in the tuple

◆ convert_homogeneous_tuple_to_array()

template<typename Tuple >
homogeneous_tuple_to_array<Tuple>::type stapl::convert_homogeneous_tuple_to_array ( Tuple const &  t)

Convert a tuple of homogeneous types to an std::array.

Parameters
tthe input tuple to be converted to an array

◆ print_tuple() [1/3]

std::ostream& stapl::print_tuple ( std::ostream &  os,
tuple<> const &   
)

Fallback implementation of print_tuple for an empty tuple.

Parameters
osOutput stream to write to.

◆ print_tuple() [2/3]

template<typename ... Args>
std::ostream& stapl::print_tuple ( std::ostream &  os,
tuple< Args... > const &  t 
)

Simple tuple printer with default separator ','.

Parameters
osOutput stream to write tuple to.
tThe tuple to be printed.

◆ print_tuple() [3/3]

template<typename ... Args>
std::ostream& stapl::print_tuple ( std::ostream &  os,
std::string  sep,
tuple< Args... > const &  t 
)

Simple tuple printer.

Parameters
osOutput stream to write tuple to.
sepSeparator character
tThe tuple to be printed.

◆ make_array_view()

template<typename Container >
array_view<Container> stapl::make_array_view ( Container &  ct)

Helper function to construct an array_view over the passed container.

Parameters
ctUnderlying container used for the array_view.
Returns
An array_view over the Container.

◆ balance_view()

template<typename View >
result_of::balance_view<View>::type stapl::balance_view ( const View &  view,
size_t  n 
)

Helper function to construct a balance_view.

Parameters
viewto partition
nnumber of partitions
Returns
a balanced partitioned view

◆ bitreversed_view()

template<typename C >
array_view<C, indexed_domain<size_t>, bitreverse_map_function<size_t> > stapl::bitreversed_view ( C &  container,
size_t  n 
)

A view which looks at the elements of a 1D container in a bitreversed way, meaning that given an index, it gets the element in the bitreversed index of the container.

For example if the indices of a 1D container are from [0-7]: --------------------------------- |000|001|010|011|100|101|110|111| --------------------------------- Then the bitreversed view will map the indices as follows: --------------------------------- bitreversed view |000|001|010|011|100|101|110|111| --------------------------------- | | | | | | | | --------------------------------- container |000|100|010|110|001|101|011|111| ---------------------------------

◆ domain_view()

template<typename View >
result_of::domain_view<View>::type stapl::domain_view ( View const &  vw)

Helper function that creates a domain_view that uses the provided view's domain to represent the collection of elements.

Parameters
viewfrom which the domain is used.
Returns
a domain_view over the provide view's domain.

◆ functor_view()

template<typename Func >
functor_view_type<Func, 1>::type stapl::functor_view ( std::size_t  size,
Func const &  func 
)

Helper function that creates an array view on top of a functor container.

Parameters
sizeNumber of elements in the container.
funcFunctor to be called on each [] operator call.

◆ index_view()

template<typename Container >
result_of::counting_view_nd< typename Container::gid_type, tuple_size<typename Container::gid_type>::value, view_impl::default_container_nd, typename Container::distribution_type>::type stapl::index_view ( Container const &  ct)

Helper function that creates a read-only view representing the indices of the passed container, with the same logical partitioning of elements on locations as that container.

Parameters
ctThe container whose domain and partition should be used to create the index_view.

Relies on Counting implementation.

◆ localize_object() [1/2]

template<typename Ref >
result_of::localize_object<Ref, false>::type stapl::localize_object ( Ref const &  ref)

Helper function to return an object that provides the required methods to localize the given reference (ref).

This helper method is used during task specifications and the generated object is queried to determine where the task should be executed.

◆ localize_object() [2/2]

template<bool isLiteral, typename Ref >
result_of::localize_object<Ref, isLiteral>::type stapl::localize_object ( Ref const &  ref)

Specialized helper function to return an object that provides the required methods to localize the given reference (ref) is a literal.

This helper method is used during task specifications and the generated object is queried to determine where the task should be executed.

◆ native_view()

template<typename View >
result_of::native_view<View>::type stapl::native_view ( const View &  view)

Helper function to construct a native_view.

Parameters
viewto partition
Returns
a native partitioned view

◆ make_overlap_view()

template<typename View >
overlap_view<View> stapl::make_overlap_view ( View const &  view,
size_t  c,
size_t  l = 0,
size_t  r = 0 
)

Helper function to construct an overlap segmented view.

The overlap domains are defined specifying the number of elements that are overlap to the left (l), the number of elements that are not overlapped (c) and the number of elements overlap to the right (r). Each subdomain has size: l+c+r.

Example:
Domain to partition: [0..8]
left overlap (l): 2
non overlap (c): 3
right overlap (r): 1
Resulting partition: {[0..5],[3..8]}
Parameters
viewView to partition.
cNumber of elements not overlapped.
lNumber of elements overlapped to the left.
rNumber of elements overlapped to the right.
Returns
An overlap segmented view.

◆ as_reference()

template<typename T , typename Accessor >
T& stapl::as_reference ( proxy< T, Accessor >  p)

Extract the raw reference that a proxy is encapsulating. This is only defined for local accessors.

◆ operator &()

template<typename T , typename D >
T* stapl::operator& ( proxy< T, D > const &  )

◆ make_repeat_view()

template<typename T >
repeat_view<view_impl::repeat_container<T> > stapl::make_repeat_view ( T const &  data)

Helper function to construct a repeat_view.

Template Parameters
dataThe object provide access to, regardless of provided index.

◆ make_repeat_view_nd()

template<int N, typename T >
repeat_view<view_impl::repeat_container<T, N> > stapl::make_repeat_view_nd ( T const &  data)

Helper function to construct a repeat_view.

Template Parameters
Ndimensionality to create repeat view with.
Telement type to repeat
Returns
a repeat view with N dimensions

◆ make_segmented_view()

template<typename Container , typename Partition , typename... OptionalParams>
segmented_view<Container, Partition, OptionalParams...> stapl::make_segmented_view ( Container const &  container,
Partition const &  partition,
OptionalParams const &...  params 
)

Helper function to construct a segmented view.

Template Parameters
ContainerThe container which is segmented.
ParititionThe partition used to segment the container.
OptionalParamsOptional mapping function generator and subview creator parameters.

◆ make_vector_view()

template<typename Container >
vector_view<Container> stapl::make_vector_view ( Container &  ct)

Helper function to construct a vector_view over the passed container.

Parameters
ctUnderlying container used for the vector_view.
Returns
A vector_view over the Container.

Variable Documentation

◆ __stl_prime_list

const unsigned long stapl::__stl_prime_list[__stl_num_primes]
static
Initial value:
=
{
53ul, 97ul, 193ul, 389ul, 769ul,
1543ul, 3079ul, 6151ul, 12289ul, 24593ul,
49157ul, 98317ul, 196613ul, 393241ul, 786433ul,
1572869ul, 3145739ul, 6291469ul, 12582917ul, 25165843ul,
50331653ul, 100663319ul, 201326611ul, 402653189ul, 805306457ul,
1610612741ul, 3221225473ul, 4294967291ul
}

◆ get_anonymous_executor

STAPL_RUNTIME_THREAD_LOCAL (anonymous_executor*, anon_exec) static std anonymous_executor stapl::get_anonymous_executor) (void)
static

anonymous_executor instance.

anonymous_executor shared among threads.