|
AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
Namespaces | |
| ArrayOptions | |
| bump | |
| detail | |
| experimental | |
| fmt | |
| inlet | |
| internal | |
| klee | |
| lumberjack | |
| mint | |
| mir | |
| multimat | |
| numerics | |
| primal | |
| quest | |
| runtime_policy | |
| serial | |
| sidre | |
| sina | |
| slam | |
| slic | |
| sol | |
| spin | |
| utilities | |
Classes | |
| class | Array |
| Provides a generic multidimensional array container. More... | |
| class | ArrayBase |
| class | ArrayBase< T, 1, ArrayType > |
| Array implementation specific to 1D Arrays. More... | |
| class | ArrayIteratorBase |
| An iterator type for Array-like types. Each increment operation advances the iterator to the next element in the Array-like. More... | |
| class | ArrayView |
| Provides a view over a generic array container. More... | |
| class | DeviceHash |
| Implements a host/device-callable hash function for supported types, and passes through to std::hash otherwise. More... | |
| class | FlatMapView |
| Forward declaration of FlatMapView. More... | |
| class | FlatMap |
| Provides a generic associative key-value container. More... | |
| class | IndexedCollection |
| IndexedCollection is a container for a collection of pointers to items of template parameter type T, each with a corresponding index. More... | |
| class | ItemCollection |
| ItemCollection is an abstract base class template for holding a collection of items of template parameter type T. Derived child classes can determine how to specifically store the items. More... | |
| class | IteratorBase |
| Base class for a random access iterator over positions in a set. More... | |
| class | ListCollection |
| ListCollection is a container class template for holding a collection of items of template parameter type T, using a list container. More... | |
| class | MapCollection |
| MapCollection is a container class template for holding a collection of items of template parameter type T. More... | |
| class | MDMapping |
| For indexing multidimensional arrays. More... | |
| struct | Allocator |
| Wrapper type representing an Umpire allocator ID. More... | |
| class | NumericArray |
| A simple statically sized array of data with component-wise operators. More... | |
| struct | NonChar |
| Type trait to avoid outputting chars when a value is expected This avoids unintentionally outputting system beeps. More... | |
| struct | NonChar< char > |
| struct | NonChar< unsigned char > |
| class | Path |
| Path class for performing basic path operations with a user-selectable delimiter character. More... | |
| class | RangeAdapter |
| Simple adapter class that converts a pair of iterators into a range that can be iterated over in a range-based for-loop. More... | |
| class | StackArray |
| Provides a wrapper for a compile time sized array, similar to std::array. This class is needed because NVCC doesn't capture standard stack arrays in device lambdas. Furthermore we can't use std::array because it is not host-device decorated. More... | |
| class | StaticArray |
| This class extends StackArray with some std::vector-like convenience methods. More... | |
| struct | auto_atomic |
| struct | is_serial_atomic_exec |
| struct | execution_space |
| The execution_space is a traits class that binds the execution space to a corresponding RAJA execution policies and default memory allocator. More... | |
Typedefs | |
| template<typename T > | |
| using | MCArray = Array< T, 2 > |
| Helper alias for multi-component arrays. More... | |
| template<typename T > | |
| using | numeric_limits = std::numeric_limits< T > |
| using | float32 = float |
| using | float64 = double |
| using | IndexType = std::int32_t |
| template<typename ExecSpace , typename T > | |
| using | ReduceSum = axom::serial::reductions::ReduceSum< ExecSpace, T > |
| template<typename ExecSpace , typename T > | |
| using | ReduceMin = axom::serial::reductions::ReduceMin< ExecSpace, T > |
| template<typename ExecSpace , typename T > | |
| using | ReduceMinLoc = axom::serial::reductions::ReduceMinLoc< ExecSpace, T > |
| template<typename ExecSpace , typename T > | |
| using | ReduceMax = axom::serial::reductions::ReduceMax< ExecSpace, T > |
| template<typename ExecSpace , typename T > | |
| using | ReduceMaxLoc = axom::serial::reductions::ReduceMaxLoc< ExecSpace, T > |
| template<typename ExecSpace , typename T > | |
| using | ReduceBitAnd = axom::serial::reductions::ReduceBitAnd< ExecSpace, T > |
| template<typename ExecSpace , typename T > | |
| using | ReduceBitOr = axom::serial::reductions::ReduceBitOr< ExecSpace, T > |
ArrayView to wrap a pointer and provide indexing semantics | |
| template<typename T > | |
| using | MCArrayView = ArrayView< T, 2 > |
| Helper alias for multi-component arrays. More... | |
Enumerations | |
| enum class | ArrayStrideOrder : int { ARBITRARY = 0 , ROW = 1 , COLUMN = 2 , BOTH = ROW | COLUMN } |
| Indicator for stride ordering. More... | |
| enum class | MemorySpace { Malloc , Dynamic } |
| Memory spaces supported by Array-like types. More... | |
Functions | |
| template<typename T , int DIM, typename ArrayType > | |
| std::ostream & | print (std::ostream &os, const ArrayBase< T, DIM, ArrayType > &array) |
| Free functions implementing ArrayBase's operator(s) More... | |
| bool | isValidAllocatorID (int allocatorId) noexcept |
| Returns whether allocatorId is a valid Axom allocator id. More... | |
| bool | isDeviceAllocator (int AXOM_UNUSED_PARAM(allocator_id)) |
| Determines whether an allocator id is on device. More... | |
| bool | operator== (const Path &lhs, const Path &rhs) |
| Equality operator (equals) More... | |
| bool | operator!= (const Path &lhs, const Path &rhs) |
| Equality operator (not equals) More... | |
| template<typename T , int N> | |
| AXOM_HOST_DEVICE bool | operator== (const StackArray< T, N > &lhs, const StackArray< T, N > &rhs) |
| Equality comparison operator for StackArray. More... | |
| template<typename T , int N> | |
| AXOM_HOST_DEVICE bool | operator!= (const StackArray< T, N > &lhs, const StackArray< T, N > &rhs) |
| Inequality comparison operator for StackArray. More... | |
| template<typename T , int N> | |
| AXOM_HOST_DEVICE bool | operator< (const StackArray< T, N > &lhs, const StackArray< T, N > &rhs) |
| Less than operator for StackArray. More... | |
| template<typename T , int N> | |
| std::ostream & | operator<< (std::ostream &os, const StackArray< T, N > &obj) |
| Print the StackArray to a stream. More... | |
| std::string | gitSHA () |
| Returns the Git SHA if Axom was built in Git repository, empty if not. More... | |
| void | about () |
| Prints info about how Axom was configured and built to stdout. More... | |
| void | about (std::ostream &oss) |
| Prints info about how Axom was configured and built to a stream. More... | |
| std::string | getVersion () |
| Returns a string consisting of the Axom version. More... | |
| template<typename ExecSpace , typename T > | |
| AXOM_HOST_DEVICE T | atomicAdd (T *address, T value) |
| template<typename ExecSpace , typename T > | |
| AXOM_HOST_DEVICE T | atomicSub (T *address, T value) |
| template<typename ExecSpace , typename T > | |
| AXOM_HOST_DEVICE T | atomicMin (T *address, T value) |
| template<typename ExecSpace , typename T > | |
| AXOM_HOST_DEVICE T | atomicMax (T *address, T value) |
| template<typename ExecSpace , typename T > | |
| AXOM_HOST_DEVICE T | atomicAnd (T *address, T value) |
| template<typename ExecSpace , typename T > | |
| AXOM_HOST_DEVICE T | atomicOr (T *address, T value) |
| template<typename ExecSpace , typename T > | |
| AXOM_HOST_DEVICE T | atomicXor (T *address, T value) |
| template<typename ExecSpace , typename T > | |
| AXOM_HOST_DEVICE T | atomicExchange (T *address, T value) |
| template<typename ExecSpace , typename T > | |
| AXOM_HOST_DEVICE T | atomicLoad (T *address) |
| template<typename ExecSpace , typename T > | |
| AXOM_HOST_DEVICE void | atomicStore (T *address, T value) |
| int | policyToDefaultAllocatorID (axom::runtime_policy::Policy policy) |
| Return default allocator id for a runtime policy. More... | |
| template<typename ExecSpace , typename T > | |
| void | sort (T *input, axom::IndexType size) |
| Sort an array. More... | |
| template<typename ExecSpace , typename ContiguousMemoryContainer > | |
| void | sort (ContiguousMemoryContainer &input) |
| Sort a container. More... | |
| template<typename ExecSpace , typename Container1 , typename Container2 > | |
| void | sort_pairs (Container1 &input1, Container2 &input2) |
| Sort a pair of containers using the first container's elements as the values to sort. The second container is sorted the same way. More... | |
| template<typename ExecSpace , typename T , typename U > | |
| void | stable_sort_pairs (T *input1, U *input2, axom::IndexType size) |
| Sort a pair of arrays using the first array's elements as the values to sort. The second array is sorted the same way. This sort is stable. More... | |
| template<typename ExecSpace , typename Container1 , typename Container2 > | |
| void | stable_sort_pairs (Container1 &input1, Container2 &input2) |
| Sort a pair of containers using the first container's elements as the values to sort. The second container is sorted the same way. This sort is stable. More... | |
| template<typename ExecSpace > | |
| void | synchronize () noexcept |
| Synchronizes all execution threads when using an ASYNC policy with the specified execution space. More... | |
| template<> | |
| void | synchronize< SEQ_EXEC > () noexcept |
Overloaded ArrayBase Operator(s) | |
| template<typename T , int DIM, typename ArrayType > | |
| std::ostream & | operator<< (std::ostream &os, const ArrayBase< T, DIM, ArrayType > &arr) |
| Overloaded output stream operator. Outputs the Array-like to the given output stream. More... | |
| template<typename T1 , typename T2 , int DIM, typename LArrayType , typename RArrayType > | |
| bool | operator== (const ArrayBase< T1, DIM, LArrayType > &lhs, const ArrayBase< T2, DIM, RArrayType > &rhs) |
| Equality comparison operator for Array-likes. More... | |
| template<typename T1 , typename T2 , int DIM, typename LArrayType , typename RArrayType > | |
| bool | operator!= (const ArrayBase< T1, DIM, LArrayType > &lhs, const ArrayBase< T2, DIM, RArrayType > &rhs) |
| Inequality comparison operator for Arrays. More... | |
Memory Management Routines | |
| void | setDefaultAllocator (int allocId) |
| Sets the default memory allocator to use. More... | |
| int | getDefaultAllocatorID () |
| Returns the ID of the current default Umpire allocator or MALLOC_ALLOCATOR_ID if Umpire is not used. More... | |
| int | getAllocatorIDFromPointer (const void *ptr) |
| Get the allocator id from which data has been allocated. More... | |
| bool | isSharedMemoryAllocator (int allocID) |
| Determines whether an allocator id is for shared memory. More... | |
| int | getSharedMemoryAllocatorID (std::size_t minSegmentSize=0) |
| Get the allocator ID for Axom's shared memory allocator. More... | |
| template<typename T > | |
| T * | allocate (std::size_t n, int allocID=getDefaultAllocatorID()) noexcept |
| Allocates a chunk of memory of type T. More... | |
| template<typename T > | |
| T * | allocate (std::size_t n, const std::string &name, int allocID=getDefaultAllocatorID()) noexcept |
| Allocates a chunk of memory of type T with a user-supplied allocation name. More... | |
| template<typename T > | |
| void | deallocate (T *&p) noexcept |
| Frees the chunk of memory pointed to by the supplied pointer, p. More... | |
| template<typename T > | |
| T * | reallocate (T *p, std::size_t n, int allocID=getDefaultAllocatorID()) noexcept |
| Reallocates the chunk of memory pointed to by the supplied pointer. More... | |
| void | copy (void *dst, const void *src, std::size_t numbytes) noexcept |
| Copies memory from the source to the destination. More... | |
| template<typename T > | |
| void | fill (void *dst, std::size_t n, const T &value) noexcept |
| Fills memory with a value. More... | |
Forward Declared Overloaded Operators | |
| template<typename T , int SIZE> | |
| AXOM_HOST_DEVICE bool | operator== (const NumericArray< T, SIZE > &lhs, const NumericArray< T, SIZE > &rhs) |
| Checks if two numeric arrays are component-wise equal. More... | |
| template<typename T , int SIZE> | |
| AXOM_HOST_DEVICE bool | operator!= (const NumericArray< T, SIZE > &lhs, const NumericArray< T, SIZE > &rhs) |
| Checks if two numeric arrays are not component-wise equal. More... | |
| template<typename T , int SIZE> | |
| AXOM_HOST_DEVICE NumericArray< T, SIZE > | operator+ (const NumericArray< T, SIZE > &lhs, const NumericArray< T, SIZE > &rhs) |
| Performs component-wise addition of two numeric arrays. More... | |
| template<typename T , int SIZE> | |
| AXOM_HOST_DEVICE NumericArray< T, SIZE > | operator- (const NumericArray< T, SIZE > &lhs, const NumericArray< T, SIZE > &rhs) |
| Performs component-wise subtraction of two numeric arrays. More... | |
| template<typename T , int SIZE> | |
| AXOM_HOST_DEVICE NumericArray< T, SIZE > | operator- (const NumericArray< T, SIZE > &arr) |
| Unary negation of a numeric array instance. More... | |
| template<typename T , int SIZE> | |
| AXOM_HOST_DEVICE NumericArray< T, SIZE > | operator* (const NumericArray< T, SIZE > &arr, double scalar) |
| Scalar multiplication a numeric array; Scalar on rhs. More... | |
| template<typename T , int SIZE> | |
| AXOM_HOST_DEVICE NumericArray< T, SIZE > | operator* (double scalar, const NumericArray< T, SIZE > &arr) |
| Scalar multiplication a numeric array; Scalar on lhs. More... | |
| template<typename T , int SIZE> | |
| AXOM_HOST_DEVICE NumericArray< T, SIZE > | operator* (const NumericArray< T, SIZE > &lhs, const NumericArray< T, SIZE > &rhs) |
| Component-wise multiplication of NumericArrays. More... | |
| template<typename T , int SIZE> | |
| AXOM_HOST_DEVICE NumericArray< T, SIZE > | operator/ (const NumericArray< T, SIZE > &lhs, const NumericArray< T, SIZE > &rhs) |
| Component-wise division of NumericArrays. More... | |
| template<typename T , int SIZE> | |
| AXOM_HOST_DEVICE NumericArray< T, SIZE > | operator/ (const NumericArray< T, SIZE > &arr, double scalar) |
| Scalar division of NumericArray; Scalar on rhs. More... | |
| template<typename T , int SIZE> | |
| AXOM_HOST_DEVICE NumericArray< T, SIZE > | abs (const NumericArray< T, SIZE > &arr) |
| Coordinate-wise absolute value on the NumericArray. More... | |
| template<typename T , int SIZE> | |
| std::ostream & | operator<< (std::ostream &os, const NumericArray< T, SIZE > &arr) |
| Overloaded output operator for numeric arrays. More... | |
Generic Loop Traversal Functions | |
| template<typename ExecSpace , typename KernelType > | |
| void | for_all (const IndexType &begin, const IndexType &end, KernelType &&kernel) noexcept |
| Loops over a specified contiguous range, I:[begin,end-1]. More... | |
| template<typename ExecSpace , typename KernelType > | |
| void | for_all (const IndexType &N, KernelType &&kernel) noexcept |
| Loops over the contiguous range, I:[0,N-1], given by its length, N. More... | |
| template<typename ExecSpace , typename KernelType > | |
| void | for_all (const axom::StackArray< IndexType, 2 > &iRange, const axom::StackArray< IndexType, 2 > &jRange, KernelType &&kernel) noexcept |
| Loops over a 2D specified contiguous range. More... | |
| template<typename ExecSpace , typename KernelType > | |
| void | for_all (const axom::StackArray< IndexType, 2 > &shape, KernelType &&kernel) noexcept |
| Loops over a 2D specified contiguous range. More... | |
| template<typename ExecSpace , typename KernelType > | |
| void | for_all (const axom::StackArray< IndexType, 2 > &iRange, const axom::StackArray< IndexType, 2 > &jRange, const axom::StackArray< IndexType, 2 > &kRange, KernelType &&kernel) noexcept |
| Loops over a 3D specified contiguous range. More... | |
| template<typename ExecSpace , typename KernelType > | |
| void | for_all (const StackArray< IndexType, 3 > &shape, KernelType &&kernel) noexcept |
| Loops over a 3D specified contiguous range. More... | |
Scans | |
| template<typename ExecSpace , typename Container1 , typename Container2 > | |
| void | exclusive_scan (const Container1 &input, Container2 &&output) |
| Performs exclusive scan over input view and stores result in output. More... | |
| template<typename ExecSpace , typename Container > | |
| void | exclusive_scan_inplace (Container &&input) |
| Performs exclusive scan over input view and stores result also in input. More... | |
| template<typename ExecSpace , typename Container1 , typename Container2 > | |
| void | inclusive_scan (const Container1 &input, Container2 &&output) |
| Performs inclusive scan over input view and stores result in output. More... | |
| template<typename ExecSpace , typename Container > | |
| void | inclusive_scan_inplace (Container &&input) |
| Performs inclusive scan over input view and stores result in input. More... | |
Generic Timed Loop Traversal Functions | |
| template<typename ExecSpace , typename KernelType > | |
| void | timed_for_all (const std::string &name, axom::IndexType n, KernelType &&kernel) |
| Execute axom::for_all and add a caliper timer (if enabled). Certain ExecSpace types may output additional timing information. More... | |
Variables | |
| constexpr int | INVALID_ALLOCATOR_ID = -1 |
| Place holder for no/unknown allocator. More... | |
| constexpr int | MALLOC_ALLOCATOR_ID = -3 |
| Refers to MemorySpace::Malloc. More... | |
| static constexpr IndexType | InvalidIndex = -1 |
| template<typename ExecSpace > | |
| constexpr bool | is_serial_atomic_exec_v = is_serial_atomic_exec<ExecSpace>::value |
| using axom::MCArray = typedef Array<T, 2> |
Helper alias for multi-component arrays.
| using axom::MCArrayView = typedef ArrayView<T, 2> |
Helper alias for multi-component arrays.
| using axom::numeric_limits = typedef std::numeric_limits<T> |
| using axom::float32 = typedef float |
| using axom::float64 = typedef double |
| using axom::IndexType = typedef std::int32_t |
| using axom::ReduceSum = typedef axom::serial::reductions::ReduceSum<ExecSpace, T> |
| using axom::ReduceMin = typedef axom::serial::reductions::ReduceMin<ExecSpace, T> |
| using axom::ReduceMinLoc = typedef axom::serial::reductions::ReduceMinLoc<ExecSpace, T> |
| using axom::ReduceMax = typedef axom::serial::reductions::ReduceMax<ExecSpace, T> |
| using axom::ReduceMaxLoc = typedef axom::serial::reductions::ReduceMaxLoc<ExecSpace, T> |
| using axom::ReduceBitAnd = typedef axom::serial::reductions::ReduceBitAnd<ExecSpace, T> |
| using axom::ReduceBitOr = typedef axom::serial::reductions::ReduceBitOr<ExecSpace, T> |
|
strong |
|
strong |
Memory spaces supported by Array-like types.
This abstraction is not implemented using Umpire's MemoryResourceType enum in order to also include
| Enumerator | |
|---|---|
| Malloc | Host memory using malloc, free and realloc. |
| Dynamic | Refers to Umpire's current default allocator. |
| std::ostream & axom::operator<< | ( | std::ostream & | os, |
| const ArrayBase< T, DIM, ArrayType > & | arr | ||
| ) |
Overloaded output stream operator. Outputs the Array-like to the given output stream.
| [in,out] | os | output stream object. |
| [in] | arr | user-supplied Array-like instance. |
References print().
| bool axom::operator== | ( | const ArrayBase< T1, DIM, LArrayType > & | lhs, |
| const ArrayBase< T2, DIM, RArrayType > & | rhs | ||
| ) |
Equality comparison operator for Array-likes.
| [in] | lhs | left Array-like to compare |
| [in] | rhs | right Array-like to compare |
References axom::ArrayBase< T, DIM, ArrayType >::flatIndex(), axom::detail::getAllocatorID(), and axom::ArrayBase< T, DIM, ArrayType >::shape().
|
inline |
Free functions implementing ArrayBase's operator(s)
References axom::detail::getAllocatorID(), and axom::utilities::processAbort().
|
inlinenoexcept |
Returns whether allocatorId is a valid Axom allocator id.
axom::MALLOC_ALLOCATOR_ID. References INVALID_ALLOCATOR_ID, and MALLOC_ALLOCATOR_ID.
|
inline |
Sets the default memory allocator to use.
| [in] | allocId | the Umpire allocator id |
References AXOM_UNUSED_VAR.
|
inline |
Returns the ID of the current default Umpire allocator or MALLOC_ALLOCATOR_ID if Umpire is not used.
References MALLOC_ALLOCATOR_ID.
|
inline |
Get the allocator id from which data has been allocated.
axom::MALLOC_ALLOCATOR_ID.References INVALID_ALLOCATOR_ID, and MALLOC_ALLOCATOR_ID.
| bool axom::isSharedMemoryAllocator | ( | int | allocID | ) |
Determines whether an allocator id is for shared memory.
| allocID | An allocator id. |
| int axom::getSharedMemoryAllocatorID | ( | std::size_t | minSegmentSize = 0 | ) |
Get the allocator ID for Axom's shared memory allocator.
| [in] | minSegmentSize | Minimum desired shared-memory segment size in bytes (0 to use defaults). This value is treated as a minimum; the implementation will use the maximum of this value and Umpire's default shared-memory segment size when creating the allocator. This minimum is applied when creating the allocator and is ignored if the allocator already exists (except for validation). |
|
inlinenoexcept |
Allocates a chunk of memory of type T.
| [in] | n | the number of elements to allocate. |
| [in] | allocID | the Umpire allocator to use (optional) |
| T | the type of pointer returned. |
References MALLOC_ALLOCATOR_ID, and axom::utilities::processAbort().
|
inlinenoexcept |
Allocates a chunk of memory of type T with a user-supplied allocation name.
| [in] | n | the number of elements to allocate. |
| [in] | name | allocation name (must be non-empty for shared memory allocators) |
| [in] | allocID | the Umpire allocator to use (optional) |
References AXOM_UNUSED_VAR, MALLOC_ALLOCATOR_ID, and axom::utilities::processAbort().
|
inlinenoexcept |
Frees the chunk of memory pointed to by the supplied pointer, p.
| [in/out] | p a pointer to memory allocated with allocate/reallocate or a nullptr. |
|
inlinenoexcept |
Reallocates the chunk of memory pointed to by the supplied pointer.
| [in] | p | pointer to memory allocated with allocate/reallocate, or a nullptr. |
| [in] | n | the number of elements to allocate. |
| [in] | allocID | the ID of the allocator to use if pointer is null (optional) |
| T | the type pointer p points to. |
References copy(), deallocate(), INVALID_ALLOCATOR_ID, MALLOC_ALLOCATOR_ID, and axom::utilities::processAbort().
|
inlinenoexcept |
Copies memory from the source to the destination.
| [in/out] | dst the destination to copy to. | |
| [in] | src | the source to copy from. |
| [in] | numbytes | the number of bytes to copy. |
|
inlinenoexcept |
Fills memory with a value.
| [in/out] | dst the destination to copy to. | |
| [in] | n | the number of items to copy. |
| [in] | The | value to copy. It must be trivially copyable for use with GPU. |
|
inline |
Determines whether an allocator id is on device.
| allocator_id | An allocator id. |
| AXOM_HOST_DEVICE bool axom::operator== | ( | const NumericArray< T, SIZE > & | lhs, |
| const NumericArray< T, SIZE > & | rhs | ||
| ) |
Checks if two numeric arrays are component-wise equal.
Free functions implementing comparison and arithmetic operators.
| [in] | lhs | numeric array instance on the left-hand side. |
| [in] | rhs | numeric array instance on the right-hand side. |
| AXOM_HOST_DEVICE bool axom::operator!= | ( | const NumericArray< T, SIZE > & | lhs, |
| const NumericArray< T, SIZE > & | rhs | ||
| ) |
Checks if two numeric arrays are not component-wise equal.
| [in] | lhs | numeric array instance on the left-hand side. |
| [in] | rhs | numeric array instance on the right-hand side. |
|
inline |
Performs component-wise addition of two numeric arrays.
| [in] | lhs | numeric array instance on the left-hand side. |
| [in] | rhs | numeric array instance on the right-hand side. |
|
inline |
Performs component-wise subtraction of two numeric arrays.
| [in] | lhs | numeric array instance on the left-hand side. |
| [in] | rhs | numeric array instance on the right-hand side. |
|
inline |
Unary negation of a numeric array instance.
| [in] | arr | numeric array instance on the left-hand side. |
|
inline |
Scalar multiplication a numeric array; Scalar on rhs.
| [in] | arr | numeric array instance. |
| [in] | scalar | user-supplied scalar. |
|
inline |
Scalar multiplication a numeric array; Scalar on lhs.
| [in] | scalar | user-supplied scalar. |
| [in] | arr | numeric array instance. |
|
inline |
Component-wise multiplication of NumericArrays.
| [in] | lhs | numeric array instance on the left-hand side. |
| [in] | rhs | numeric array instance on the right-hand side. |
|
inline |
Component-wise division of NumericArrays.
| [in] | lhs | numeric array instance on the left-hand side. |
| [in] | rhs | numeric array instance on the right-hand side. |
|
inline |
Scalar division of NumericArray; Scalar on rhs.
| [in] | arr | numeric array instance |
| [in] | scalar | user-supplied scalar |
|
inline |
Coordinate-wise absolute value on the NumericArray.
| [in] | arr | numeric array instance |
References axom::utilities::abs().
| std::ostream & axom::operator<< | ( | std::ostream & | os, |
| const NumericArray< T, SIZE > & | arr | ||
| ) |
Overloaded output operator for numeric arrays.
| [in] | os | C++ output stream |
| [in] | arr | numeric array instance. |
References axom::NumericArray< T, SIZE >::print().
| AXOM_HOST_DEVICE bool axom::operator== | ( | const StackArray< T, N > & | lhs, |
| const StackArray< T, N > & | rhs | ||
| ) |
Equality comparison operator for StackArray.
| [in] | lhs | left StackArray to compare |
| [in] | rhs | right StackArray to compare |
| AXOM_HOST_DEVICE bool axom::operator!= | ( | const StackArray< T, N > & | lhs, |
| const StackArray< T, N > & | rhs | ||
| ) |
Inequality comparison operator for StackArray.
| [in] | lhs | left StackArray to compare |
| [in] | rhs | right StackArray to compare |
| AXOM_HOST_DEVICE bool axom::operator< | ( | const StackArray< T, N > & | lhs, |
| const StackArray< T, N > & | rhs | ||
| ) |
Less than operator for StackArray.
| [in] | lhs | left StackArray to compare |
| [in] | rhs | right StackArray to compare |
| std::ostream& axom::operator<< | ( | std::ostream & | os, |
| const StackArray< T, N > & | obj | ||
| ) |
Print the StackArray to a stream.
| os | The stream to use. |
| obj | The StackArray to print. |
References axom::StackArray< T, N >::m_data.
| std::string axom::gitSHA | ( | ) |
Returns the Git SHA if Axom was built in Git repository, empty if not.
Note: This will not update unless you re-run CMake between commits.
| void axom::about | ( | ) |
Prints info about how Axom was configured and built to stdout.
| void axom::about | ( | std::ostream & | oss | ) |
Prints info about how Axom was configured and built to a stream.
| [in,out] | oss | the target stream where to append the Axom info |
| std::string axom::getVersion | ( | ) |
Returns a string consisting of the Axom version.
|
inline |
|
inline |
|
inline |
References axom::utilities::min().
|
inline |
References axom::utilities::max().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Return default allocator id for a runtime policy.
References axom::execution_space< ExecSpace >::allocatorID(), axom::runtime_policy::cuda, axom::runtime_policy::hip, INVALID_ALLOCATOR_ID, axom::runtime_policy::omp, and axom::runtime_policy::seq.
|
inlinenoexcept |
Loops over a specified contiguous range, I:[begin,end-1].
| [in] | begin | start index of the iteration. |
| [in] | end | length of the iteration space. |
| [in] | kernel | user-supplied kernel, i.e., a lambda or functor. |
| ExecSpace | the execution space where to run the supplied kernel |
| KernelType | the type of the supplied kernel (detected by the compiler) |
Usage Example:
References AXOM_STATIC_ASSERT, axom::utilities::annotations::begin(), and axom::utilities::annotations::end().
|
inlinenoexcept |
Loops over the contiguous range, I:[0,N-1], given by its length, N.
| [in] | N | the length of the contiguous range. |
| [in] | kernel | user-supplied kernel, i.e., a lambda or functor. |
| ExecSpace | the execution space where to run the supplied kernel |
| KernelType | the type of the supplied kernel (detected by the compiler) |
Usage Example:
References AXOM_STATIC_ASSERT.
|
inlinenoexcept |
Loops over a 2D specified contiguous range.
| [in] | iRange | The start/end values for the inner loop. |
| [in] | jRange | The start/end values for the outer loop. |
| [in] | kernel | user-supplied kernel, i.e., a lambda or functor. |
| ExecSpace | the execution space where to run the supplied kernel |
| KernelType | the type of the supplied kernel (detected by the compiler) |
Usage Example:
References AXOM_STATIC_ASSERT.
|
inlinenoexcept |
Loops over a 2D specified contiguous range.
| [in] | shape | 2 values that indicate the range of the inner, outer loops, respectively. |
| [in] | kernel | user-supplied kernel, i.e., a lambda or functor. |
| ExecSpace | the execution space where to run the supplied kernel |
| KernelType | the type of the supplied kernel (detected by the compiler) |
Usage Example:
|
inlinenoexcept |
Loops over a 3D specified contiguous range.
| [in] | iRange | The start/end values for the inner loop. |
| [in] | jRange | The start/end values for the middle loop. |
| [in] | kRange | The start/end values for the outer loop. |
| [in] | kernel | user-supplied kernel, i.e., a lambda or functor. |
| ExecSpace | the execution space where to run the supplied kernel |
| KernelType | the type of the supplied kernel (detected by the compiler) |
Usage Example:
References AXOM_STATIC_ASSERT.
|
inlinenoexcept |
Loops over a 3D specified contiguous range.
| [in] | shape | An array containing the x,y,z sizes of the loops. |
| [in] | kernel | user-supplied kernel, i.e., a lambda or functor. |
| ExecSpace | the execution space where to run the supplied kernel |
| KernelType | the type of the supplied kernel (detected by the compiler) |
Usage Example:
|
inline |
Performs exclusive scan over input view and stores result in output.
| [in] | input | The input container to be scanned. |
| [out] | output | The container that will contain the output scan data. This must have the same number of elements as input. |
| ExecSpace | the execution space where to run the supplied kernel |
| Container1 | The container type that holds the input data. |
| Container2 | The container type that holds the output data. |
Usage Example:
References AXOM_STATIC_ASSERT.
|
inline |
Performs exclusive scan over input view and stores result also in input.
| [in,out] | input | The container to be scanned. |
| ExecSpace | the execution space where to run the supplied kernel |
| Container | The container type that holds the data |
References AXOM_STATIC_ASSERT.
|
inline |
Performs inclusive scan over input view and stores result in output.
| [in] | input | The input container to be scanned. |
| [out] | output | The container that will contain the output scan data. This must have the same number of elements as input. |
| ExecSpace | the execution space where to run the supplied kernel |
| Container1 | The container type that holds the input data |
| Container2 | The container type that holds the output data |
Usage Example:
References AXOM_STATIC_ASSERT.
|
inline |
Performs inclusive scan over input view and stores result in input.
| [in,out] | input | The container to be scanned. |
| ExecSpace | the execution space where to run the supplied kernel |
| Container | The container type that holds the data |
References AXOM_STATIC_ASSERT.
|
inline |
Sort an array.
| ExecSpace | The execution space where the sort occurs. |
| T | The type of data to sort. |
| input | The data array to sort. |
| size | The number of elements to sort. |
References AXOM_STATIC_ASSERT, and axom::utilities::Sorting< T, N >::sort().
|
inline |
Sort a container.
| ExecSpace | The execution space where the sort occurs. |
| ContiguousMemoryContainer | Container type for the data to sort. |
| input | The container to sort. |
|
inline |
Sort a pair of containers using the first container's elements as the values to sort. The second container is sorted the same way.
| ExecSpace | The execution space where the sort occurs. |
| Container1 | The container type to sort. |
| Container2 | The second container type to sort. |
| input1 | The container to sort (used as sorting key values). |
| input2 | A second container to sort (according to input1's sort order). |
References AXOM_STATIC_ASSERT, and axom::utilities::sort_multiple().
|
inline |
Sort a pair of arrays using the first array's elements as the values to sort. The second array is sorted the same way. This sort is stable.
| ExecSpace | The execution space where the sort occurs. |
| T | Type for the first data array to sort. |
| U | Type for the second data array to sort. |
| input1 | The data array to sort (used as sorting key values). |
| input2 | A second array to sort (according to input1's sort order). |
| size | The number of elements in input1 and input2. |
References AXOM_STATIC_ASSERT.
|
inline |
Sort a pair of containers using the first container's elements as the values to sort. The second container is sorted the same way. This sort is stable.
| ExecSpace | The execution space where the sort occurs. |
| Container1 | The container type to sort. |
| Container2 | The second container type to sort. |
| input1 | The data container to sort (used as sorting key values). |
| input2 | A second container to sort (according to input1's sort order). |
| size | The number of elements in input1 and input2. |
|
inlinenoexcept |
Synchronizes all execution threads when using an ASYNC policy with the specified execution space.
| ExecSpace | the execution space |
References AXOM_STATIC_ASSERT.
|
inlinenoexcept |
| void axom::timed_for_all | ( | const std::string & | name, |
| axom::IndexType | n, | ||
| KernelType && | kernel | ||
| ) |
Execute axom::for_all and add a caliper timer (if enabled). Certain ExecSpace types may output additional timing information.
| name | The name of the loop being timed. |
| n | The number it items in the loop. |
| kernel | The kernel to execute. |
References axom::detail::TimedForAll< ExecSpace, KernelType >::execute().
|
constexpr |
Place holder for no/unknown allocator.
|
constexpr |
Refers to MemorySpace::Malloc.
|
staticconstexpr |
|
constexpr |