Non-domain-specific infrastructure. More...
Topics | |
| Profiling | |
| Markers for categorizing performance measurements. | |
| Filling Curves | |
| Space-filling curve, key generators | |
| KDTree | |
| KDTree based search utilities. | |
| Point | |
| Spatial representation of a point based on dimensioned_array | |
| Graphviz Support | |
Wrapper for libcgraph. | |
| MPI | |
| These require MPI tasks, not the MPI backend. | |
| Serialization | |
| Serialization without default constructibility. | |
| Unit Testing | |
| Unit test framework much like Google Test but with task support. | |
| Ranges | |
| Range and iterator tools, mostly backported from the standard library. | |
Classes | |
| struct | counter< M > |
| A counter with a maximum. More... | |
| struct | crs |
| Efficient (compressed-row) storage for a sequence of sequences of integers. More... | |
| struct | dag< NodePolicy > |
| Basic DAG type. More... | |
| class | dimensioned_array< TYPE, DIMENSION, NAMESPACE > |
| The dimensioned_array type provides a general base for defining contiguous array types that have a specific dimension. More... | |
| struct | equal_map |
| A partition with substrings of equal size. More... | |
| struct | identity |
| Interpret a type as itself in functional contexts. More... | |
| struct | key_tuple< VT > |
| A std::tuple containing the given types and indexed by the given keys. More... | |
| struct | map_base< D > |
| A partition of some prefix of the whole numbers into substrings. More... | |
| struct | offsets |
| A partition with substrings of arbitrary size. More... | |
| struct | sort< FieldRef > |
| Sort object implementing a distributed sort and load balancing. More... | |
| struct | Symbol< S > |
| Dummy class template. More... | |
Macros | |
| #define | FLECSI_DEVICE_CODE |
| Specify if the code is being built on GPU. | |
| #define | FLECSI_INLINE_TARGET |
| Make a function inline and available on a GPU. | |
| #define | FLECSI_TARGET |
| Make a function available on a GPU. | |
Typedefs | |
| using | Dimension |
| Type for spatial dimensions and counts thereof. | |
| using | gid |
| Global topology entity ID type. | |
| using | id |
| Local (color-specific) topology entity ID type. | |
Functions | |
| template<class T > | |
| constexpr T | bit_width (T x) noexcept |
| Simple emulation of std::bit_width from C++20. | |
| std::string | demangle (const char *const name) |
| Return the demangled name. | |
| template<typename T > | |
| void | force_unique (std::vector< T > &v) |
| Sort a std::vector and remove duplicates. | |
| template<class InputIt1 , class InputIt2 > | |
| bool | intersects (InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2) |
| Detect intersections of sorted lists. | |
| template<typename order_iterator , typename value_iterator > | |
| void | reorder (const order_iterator order_begin, const order_iterator order_end, const value_iterator v) |
| Reorders an array in place. | |
| template<typename order_iterator , typename value_iterator > | |
| void | reorder_destructive (const order_iterator order_begin, const order_iterator order_end, const value_iterator v) |
| Reorders an array in place. | |
| template<class T > | |
| std::set< T > | set_difference (const std::set< T > &s1, const std::set< T > &s2) |
| Convenience function wrapper around std::set_difference function. | |
| template<class T > | |
| std::set< T > | set_intersection (const std::set< T > &s1, const std::set< T > &s2) |
| Convenience function wrapper around std::set_intersection function. | |
| template<class T > | |
| std::set< T > | set_union (const std::set< T > &s1, const std::set< T > &s2) |
| Convenience function wrapper around std::set_union function. | |
| template<typename T > | |
| constexpr T | square (const T &a) |
| P.O.D. | |
| std::string | strip_parameter_list (const std::string &sig) |
| Return signature without parameter list. | |
| std::string | strip_return_type (const std::string &sig) |
| Return signature without return type. | |
| template<auto & S> | |
| std::string | symbol () |
| Return the name of the template argument. | |
| template<class T > | |
| std::string | type () |
| Return the demangled name of the type T. | |
| std::string | type (const std::type_info &type_info) |
| Return the demangled name of the type identified by type_info. | |
| template<typename K , typename T > | |
| void | unique_each (std::map< K, T > &m) |
| Apply force_unique to each element of a std::map. | |
| template<typename T > | |
| void | unique_each (std::vector< T > &vv) |
| Apply force_unique to each element of a std::vector. | |
Non-domain-specific infrastructure.
Contents are in flecsi::util unless otherwise specified.
This header provides the features in the following additional deprecated headers:
| #define FLECSI_TARGET |
Make a function available on a GPU.
Use before a return type or a lambda's parameter list.
| #define FLECSI_INLINE_TARGET |
Make a function inline and available on a GPU.
| #define FLECSI_DEVICE_CODE |
Specify if the code is being built on GPU.
| using Dimension |
Type for spatial dimensions and counts thereof.
Appears directly in flecsi.
| using id |
Local (color-specific) topology entity ID type.
Often provided in a index-space-specific convertible wrapper.
| using gid |
Global topology entity ID type.
|
constexprnoexcept |
Simple emulation of std::bit_width from C++20.
|
constexpr |
P.O.D.
| void force_unique | ( | std::vector< T > & | v | ) |
Sort a std::vector and remove duplicates.
| void unique_each | ( | std::map< K, T > & | m | ) |
Apply force_unique to each element of a std::map.
Note that force_unique is currently only implemented for std::vector.
| void unique_each | ( | std::vector< T > & | vv | ) |
Apply force_unique to each element of a std::vector.
Note that force_unique is currently only implemented for std::vector.
| std::string demangle | ( | const char *const | name | ) |
Return the demangled name.
| name | The string to demangle. |
| std::string strip_parameter_list | ( | const std::string & | sig | ) |
Return signature without parameter list.
| sig | The function signature |
| std::string strip_return_type | ( | const std::string & | sig | ) |
Return signature without return type.
While this works for many cases, if the heuristic fails to detect the return type, it will return the full signature.
Example of a not supported signature:
| sig | The function signature |
| std::string type | ( | ) |
Return the demangled name of the type T.
| T | the type (references and cv-qualification ignored) |
| std::string type | ( | const std::type_info & | type_info | ) |
Return the demangled name of the type identified by type_info.
| std::string symbol | ( | ) |
Return the name of the template argument.
| a | reference to a function or variable |
| void reorder | ( | const order_iterator | order_begin, |
| const order_iterator | order_end, | ||
| const value_iterator | v ) |
Reorders an array in place.
| [in] | order_begin | The begin iterator for the order array |
| [in] | order_end | The end iterator for the order array |
| [in,out] | v | The begin iterator for the value array |
| void reorder_destructive | ( | const order_iterator | order_begin, |
| const order_iterator | order_end, | ||
| const value_iterator | v ) |
Reorders an array in place.
| [in,out] | order_begin | The begin iterator for the order array |
| [in,out] | order_end | The end iterator for the order array |
| [in,out] | v | The begin iterator for the value array |
| bool intersects | ( | InputIt1 | first1, |
| InputIt1 | last1, | ||
| InputIt2 | first2, | ||
| InputIt2 | last2 ) |
Detect intersections of sorted lists.
| std::set< T > set_intersection | ( | const std::set< T > & | s1, |
| const std::set< T > & | s2 ) |
Convenience function wrapper around std::set_intersection function.
This version computes the intersection of two sets and returns the result as a set.
| s1 | The first set of the intersection. |
| s2 | The second set of the intersection. |
| std::set< T > set_union | ( | const std::set< T > & | s1, |
| const std::set< T > & | s2 ) |
Convenience function wrapper around std::set_union function.
This version computes the union of two sets and returns the result as a set.
| s1 | The first set of the union. |
| s2 | The second set of the union. |
| std::set< T > set_difference | ( | const std::set< T > & | s1, |
| const std::set< T > & | s2 ) |
Convenience function wrapper around std::set_difference function.
This version computes the difference of two sets and returns the result as a set.
| s1 | The first set of the difference. |
| s2 | The second set of the difference. |