GEOSX
|
The top level namespace. More...
Namespaces | |
arrayManipulation | |
Contains functions for operating on a contiguous array of values. | |
bufferManipulation | |
Contains template functions for performing common operations on buffers. | |
indexing | |
Contains functions to aid in multidimensional indexing. | |
input | |
Contains functions for filling array objects from strings. | |
math | |
Contains protable wrappers around cmath functions and some cuda specific functions. | |
sortedArrayManipulation | |
Contains functions for operating on a contiguous sorted unique array of values. | |
system | |
Contains functions that interact with the system or runtime environment. | |
tensorOps | |
Contains operations for operating on compile time sized vectors and matrices. | |
typeManipulation | |
Contains templates for manipulating types. | |
Classes | |
class | Array |
This class provides a fixed dimensional resizeable array interface in addition to an interface similar to std::vector for a 1D array. More... | |
class | ArrayOfArrays |
This class implements an array of arrays like object with contiguous storage. More... | |
class | ArrayOfArraysView |
This class provides a view into an array of arrays like object. More... | |
class | ArrayOfSets |
This class implements an array of sets like object with contiguous storage. More... | |
class | ArrayOfSetsView |
This class provides a view into an array of sets like object. More... | |
class | ArraySlice |
This class serves to provide a sliced multidimensional interface to the family of LvArray classes. More... | |
class | ArrayView |
This class serves to provide a "view" of a multidimensional array. More... | |
class | ChaiBuffer |
Implements the Buffer interface using CHAI. More... | |
class | CRSMatrix |
This class implements a compressed row storage matrix. More... | |
class | CRSMatrixView |
This class provides a view into a compressed row storage matrix. More... | |
class | MallocBuffer |
Implements the Buffer interface using malloc and free. More... | |
struct | NumericLimits |
A wrapper for the std::numeric_limits< T > member functions, this allows their values to be used on device. More... | |
struct | NumericLimitsNC |
The same as NumericLimits except the entries are not static or constexpr. More... | |
class | SortedArray |
This class provides an interface similar to an std::set. More... | |
class | SortedArrayView |
This class provides a view into a SortedArray. More... | |
class | SparsityPattern |
This class implements a compressed row storage sparsity pattern. More... | |
class | SparsityPatternView |
This class provides a view into a compressed row storage sparsity pattern. More... | |
class | StackBuffer |
This class implements the Buffer interface using a c-array. More... | |
Typedefs | |
template<typename T , int NDIM, typename PERMUTATION , typename INDEX_TYPE , int LENGTH> | |
using | StackArray = typename internal::StackArrayHelper< T, NDIM, PERMUTATION, INDEX_TYPE, LENGTH >::type |
An alias for a Array backed by a StackBuffer. More... | |
Enumerations | |
enum | MemorySpace { NONE, CPU } |
An enum containing the available memory spaces. | |
Functions | |
std::ostream & | operator<< (std::ostream &os, MemorySpace const space) |
Output a MemorySpace enum to a stream. More... | |
template<typename OUTPUT , typename INPUT > | |
std::enable_if_t< internal::canEasilyConvert< INPUT, OUTPUT >, OUTPUT > constexpr | integerConversion (INPUT input) |
template<typename OUTPUT , typename INPUT > | |
std::enable_if_t< !internal::canEasilyConvert< INPUT, OUTPUT > &&std::is_unsigned< INPUT >::value, OUTPUT > | integerConversion (INPUT input) |
template<typename OUTPUT , typename INPUT > | |
std::enable_if_t< !internal::canEasilyConvert< INPUT, OUTPUT > &&!std::is_unsigned< INPUT >::value, OUTPUT > | integerConversion (INPUT input) |
template<typename T , int NDIM, int USD, typename INDEX_TYPE > | |
std::ostream & | operator<< (std::ostream &stream, ::LvArray::ArraySlice< T, NDIM, USD, INDEX_TYPE > const slice) |
This function outputs the contents of an array slice to an output stream. More... | |
template<typename T , int NDIM, int USD, typename INDEX_TYPE , template< typename > class BUFFER_TYPE> | |
std::ostream & | operator<< (std::ostream &stream, ::LvArray::ArrayView< T, NDIM, USD, INDEX_TYPE, BUFFER_TYPE > const &view) |
This function outputs the contents of an ArrayView to an output stream. More... | |
template<typename T , typename INDEX_TYPE , template< typename > class BUFFER_TYPE> | |
std::ostream & | operator<< (std::ostream &stream, SortedArrayView< T const, INDEX_TYPE, BUFFER_TYPE > const &view) |
This function outputs the contents of view to an output stream. More... | |
template<typename T , typename INDEX_TYPE , template< typename > class BUFFER_TYPE> | |
std::ostream & | operator<< (std::ostream &stream, SortedArray< T, INDEX_TYPE, BUFFER_TYPE > const &array) |
This function outputs the contents of array to an output stream. More... | |
template<typename T , typename INDEX_TYPE , template< typename > class BUFFER_TYPE> | |
std::ostream & | operator<< (std::ostream &stream, ArrayOfArraysView< T const, INDEX_TYPE const, true, BUFFER_TYPE > const &view) |
This function outputs the contents of view to an output stream. More... | |
template<typename T , typename INDEX_TYPE , template< typename > class BUFFER_TYPE> | |
std::ostream & | operator<< (std::ostream &stream, ArrayOfArrays< T, INDEX_TYPE, BUFFER_TYPE > const &array) |
This function outputs the contents of array to an output stream. More... | |
template<typename T , typename COL_TYPE , typename INDEX_TYPE , template< typename > class BUFFER_TYPE> | |
std::ostream & | operator<< (std::ostream &stream, CRSMatrixView< T const, COL_TYPE const, INDEX_TYPE const, BUFFER_TYPE > const &view) |
This function outputs the contents of view to an output stream. More... | |
template<typename T , int N> | |
std::enable_if_t< !std::is_same< T, char >::value, std::ostream &> | operator<< (std::ostream &stream, T const (&array)[N]) |
Output a c-array to a stream. More... | |
template<typename T , int M, int N> | |
std::ostream & | operator<< (std::ostream &stream, T const (&array)[M][N]) |
Output a 2D c-array to a stream. More... | |
template<typename T , typename LAMBDA > | |
void | forValuesInSlice (T &value, LAMBDA &&f) |
Apply the given function to the given value. More... | |
template<typename T , int NDIM, int USD, typename INDEX_TYPE , typename LAMBDA > | |
void | forValuesInSlice (ArraySlice< T, NDIM, USD, INDEX_TYPE > const slice, LAMBDA &&f) |
Iterate over the values in the slice in lexicographic order. More... | |
template<typename T , typename LAMBDA , typename ... INDICES> | |
void | forValuesInSliceWithIndices (T &value, LAMBDA &&f, INDICES const ... indices) |
Apply the function f to the value value also passing f any indices used to reach value . More... | |
template<typename T , int NDIM, int USD, typename INDEX_TYPE , typename LAMBDA , typename ... INDICES> | |
void | forValuesInSliceWithIndices (ArraySlice< T, NDIM, USD, INDEX_TYPE > const slice, LAMBDA &&f, INDICES const ... indices) |
Iterate over the values in the slice in lexicographic order, passing the indices as well as the value to the lambda. More... | |
template<typename T , int USD_SRC, typename INDEX_TYPE > | |
void | sumOverFirstDimension (ArraySlice< T const, 1, USD_SRC, INDEX_TYPE > const src, T &dst) |
Add the values in src to dst . More... | |
template<typename T , int NDIM, int USD_SRC, int USD_DST, typename INDEX_TYPE > | |
void | sumOverFirstDimension (ArraySlice< T const, NDIM, USD_SRC, INDEX_TYPE > const src, ArraySlice< T, NDIM - 1, USD_DST, INDEX_TYPE > const dst) |
Sum over the first dimension of src adding the results to dst. More... | |
Variables | |
template<typename > | |
constexpr bool | isArray = false |
True if the template type is an Array. | |
template<typename T , int NDIM, typename PERMUTATION , typename INDEX_TYPE , template< typename > class BUFFER_TYPE> | |
constexpr bool | isArray< Array< T, NDIM, PERMUTATION, INDEX_TYPE, BUFFER_TYPE > > = true |
Specialization of isArray for the Array class. More... | |
template<class > | |
constexpr bool | isArrayView = false |
True if the template type is a ArrayView. | |
template<typename T , int NDIM, int USD, typename INDEX_TYPE , template< typename > class BUFFER_TYPE> | |
constexpr bool | isArrayView< ArrayView< T, NDIM, USD, INDEX_TYPE, BUFFER_TYPE > > = true |
Specialization of isArrayView for the ArrayView class. More... | |
template<class > | |
constexpr bool | isSortedArray = false |
True if the template type is a SortedArray. | |
template<class T , class INDEX_TYPE , template< typename > class BUFFER_TYPE> | |
constexpr bool | isSortedArray< SortedArray< T, INDEX_TYPE, BUFFER_TYPE > > = true |
Specialization of isSortedArrayView for the SortedArray class. More... | |
template<class > | |
constexpr bool | isSortedArrayView = false |
True if the template type is a SortedArrayView. | |
template<class T , class INDEX_TYPE , template< typename > class BUFFER_TYPE> | |
constexpr bool | isSortedArrayView< SortedArrayView< T, INDEX_TYPE, BUFFER_TYPE > > = true |
Specialization of isSortedArrayView for the SortedArrayView class. More... | |
The top level namespace.
using LvArray::StackArray = typedef typename internal::StackArrayHelper< T, NDIM, PERMUTATION, INDEX_TYPE, LENGTH >::type |
An alias for a Array backed by a StackBuffer.
void LvArray::forValuesInSlice | ( | T & | value, |
LAMBDA && | f | ||
) |
Apply the given function to the given value.
T | The type of value . |
LAMBDA | the type of the function f to apply. |
value | the value to pass to the function. |
f | the function to apply to the value. |
Definition at line 31 of file sliceHelpers.hpp.
void LvArray::forValuesInSlice | ( | ArraySlice< T, NDIM, USD, INDEX_TYPE > const | slice, |
LAMBDA && | f | ||
) |
Iterate over the values in the slice in lexicographic order.
T | The type of values stored in slice . |
NDIM | the dimension of slice . |
USD | the unit stride dimension of slice . |
INDEX_TYPE | the integer used to index into slice . |
LAMBDA | the type of the function f to apply. |
slice | the slice to iterate over. |
f | the function to apply to each value. |
Definition at line 47 of file sliceHelpers.hpp.
void LvArray::forValuesInSliceWithIndices | ( | T & | value, |
LAMBDA && | f, | ||
INDICES const ... | indices | ||
) |
Apply the function f
to the value value
also passing f
any indices used to reach value
.
T | The type of value . |
INDICES | variadic pack of indices. |
LAMBDA | the type of the function f to apply. |
value | The value to apply f to. |
f | The function to apply to each value. |
indices | The previous sliced off indices. |
Definition at line 68 of file sliceHelpers.hpp.
void LvArray::forValuesInSliceWithIndices | ( | ArraySlice< T, NDIM, USD, INDEX_TYPE > const | slice, |
LAMBDA && | f, | ||
INDICES const ... | indices | ||
) |
Iterate over the values in the slice in lexicographic order, passing the indices as well as the value to the lambda.
T | The type of values stored in slice . |
NDIM | the dimension of slice . |
USD | the unit stride dimension of slice . |
INDEX_TYPE | the integer used to index into slice . |
INDICES | variadic pack of indices. |
LAMBDA | the type of the function f to apply. |
slice | The slice to iterate over. |
f | The lambda to apply to each value. |
indices | The previous sliced off indices. |
Definition at line 87 of file sliceHelpers.hpp.
|
inline |
INPUT | The input integer type. |
OUTPUT | The output integer type. |
input
to type OUTPUT,aborting | execution if the conversion can't be performed. |
input | The value to convert. |
Definition at line 115 of file limits.hpp.
|
inline |
INPUT | The input integer type. |
OUTPUT | The output integer type. |
input
to type OUTPUT,aborting | execution if the conversion can't be performed. |
input | The value to convert. |
Definition at line 134 of file limits.hpp.
|
inline |
INPUT | The input integer type. |
OUTPUT | The output integer type. |
input
to type OUTPUT,aborting | execution if the conversion can't be performed. |
input | The value to convert. |
Definition at line 155 of file limits.hpp.
std::ostream& LvArray::operator<< | ( | std::ostream & | stream, |
::LvArray::ArraySlice< T, NDIM, USD, INDEX_TYPE > const | slice | ||
) |
This function outputs the contents of an array slice to an output stream.
T | The type of the values in slice . |
NDIM | The number of dimensions of slice . |
USD | The unit stride dimension of slice . |
INDEX_TYPE | The integer used by slice . |
stream | The output stream to write to. |
slice | The slice to output. |
stream
. Definition at line 40 of file output.hpp.
|
inline |
Output a MemorySpace enum to a stream.
os | The output stream to write to. |
space | The MemorySpace to output. |
os
. Definition at line 46 of file bufferManipulation.hpp.
std::ostream& LvArray::operator<< | ( | std::ostream & | stream, |
::LvArray::ArrayView< T, NDIM, USD, INDEX_TYPE, BUFFER_TYPE > const & | view | ||
) |
This function outputs the contents of an ArrayView to an output stream.
T | The type of the values in view . |
NDIM | The number of dimensions of view . |
USD | The unit stride dimension of view . |
INDEX_TYPE | The integer used by view . |
BUFFER_TYPE | The buffer type used by view . |
stream | The output stream to write to. |
view | The view to output. |
stream
. Definition at line 77 of file output.hpp.
std::ostream& LvArray::operator<< | ( | std::ostream & | stream, |
SortedArrayView< T const, INDEX_TYPE, BUFFER_TYPE > const & | view | ||
) |
This function outputs the contents of view
to an output stream.
T | The type of the values in view . |
INDEX_TYPE | The integer used by view . |
stream | The output stream to write to. |
view | The SortedArrayView to output. |
stream
. Definition at line 90 of file output.hpp.
std::ostream& LvArray::operator<< | ( | std::ostream & | stream, |
SortedArray< T, INDEX_TYPE, BUFFER_TYPE > const & | array | ||
) |
This function outputs the contents of array
to an output stream.
T | The type of the values in array . |
INDEX_TYPE | The integer used by array . |
stream | The output stream to write to. |
array | The SortedArray to output. |
stream
. Definition at line 122 of file output.hpp.
std::ostream& LvArray::operator<< | ( | std::ostream & | stream, |
ArrayOfArraysView< T const, INDEX_TYPE const, true, BUFFER_TYPE > const & | view | ||
) |
This function outputs the contents of view
to an output stream.
T | The type of the values in view . |
INDEX_TYPE | The integer used by view . |
stream | The output stream to write to. |
view | The ArrayOfArraysView to output. |
stream
. Definition at line 135 of file output.hpp.
std::ostream& LvArray::operator<< | ( | std::ostream & | stream, |
ArrayOfArrays< T, INDEX_TYPE, BUFFER_TYPE > const & | array | ||
) |
This function outputs the contents of array
to an output stream.
T | The type of the values in array . |
INDEX_TYPE | The integer used by array . |
stream | The output stream to write to. |
array | The ArrayOfArrays to output. |
stream
. Definition at line 164 of file output.hpp.
std::ostream& LvArray::operator<< | ( | std::ostream & | stream, |
CRSMatrixView< T const, COL_TYPE const, INDEX_TYPE const, BUFFER_TYPE > const & | view | ||
) |
This function outputs the contents of view
to an output stream.
T | The type of the values in view . |
INDEX_TYPE | The integer used by view . |
stream | The output stream to write to. |
view | The ArrayOfArraysView to output. |
stream
. Definition at line 177 of file output.hpp.
std::enable_if_t< !std::is_same< T, char >::value, std::ostream & > LvArray::operator<< | ( | std::ostream & | stream, |
T const (&) | array[N] | ||
) |
Output a c-array to a stream.
T | The type contained in the array. |
N | The size of the array. |
stream | The output stream to write to. |
array | The c-array to output. |
stream
. Definition at line 202 of file output.hpp.
std::ostream& LvArray::operator<< | ( | std::ostream & | stream, |
T const (&) | array[M][N] | ||
) |
Output a 2D c-array to a stream.
T | The type contained in the array. |
M | The size of the first dimension. |
N | The size of the second dimension. |
stream | The output stream to write to. |
array | The 2D c-array to output. |
stream
. Definition at line 223 of file output.hpp.
void LvArray::sumOverFirstDimension | ( | ArraySlice< T const, 1, USD_SRC, INDEX_TYPE > const | src, |
T & | dst | ||
) |
Add the values in src
to dst
.
T | The type of values stored in src . |
NDIM | the dimension of src . |
USD_SRC | the unit stride dimension of src . |
INDEX_TYPE | the integer used to index into src . |
src | The array slice to sum over. |
dst | The value to add the sum to. |
Definition at line 108 of file sliceHelpers.hpp.
void LvArray::sumOverFirstDimension | ( | ArraySlice< T const, NDIM, USD_SRC, INDEX_TYPE > const | src, |
ArraySlice< T, NDIM - 1, USD_DST, INDEX_TYPE > const | dst | ||
) |
Sum over the first dimension of src
adding the results to dst.
T | The type of values stored in src . |
NDIM | the dimension of src . |
USD_SRC | the unit stride dimension of src . |
USD_DST | the unit stride dimension of dst . |
INDEX_TYPE | the integer used to index into src and dst . |
src | The slice to sum over. |
dst | The slice to add to. |
Definition at line 129 of file sliceHelpers.hpp.
constexpr bool LvArray::isArray< Array< T, NDIM, PERMUTATION, INDEX_TYPE, BUFFER_TYPE > > = true |
Specialization of isArray for the Array class.
constexpr bool LvArray::isArrayView< ArrayView< T, NDIM, USD, INDEX_TYPE, BUFFER_TYPE > > = true |
Specialization of isArrayView for the ArrayView class.
T | The type contained in the ArrayView. |
NDIM | The number of dimensions in the ArrayView. |
USD | The unit stride dimension. |
INDEX_TYPE | The integral type used as an index. |
BUFFER_TYPE | The type used to manager the underlying allocation. |
Definition at line 685 of file ArrayView.hpp.
constexpr bool LvArray::isSortedArray< SortedArray< T, INDEX_TYPE, BUFFER_TYPE > > = true |
Specialization of isSortedArrayView for the SortedArray class.
T | The type contained in the SortedArray. |
INDEX_TYPE | The integral type used as an index. |
BUFFER_TYPE | The type used to manager the underlying allocation. |
Definition at line 401 of file SortedArray.hpp.
constexpr bool LvArray::isSortedArrayView< SortedArrayView< T, INDEX_TYPE, BUFFER_TYPE > > = true |
Specialization of isSortedArrayView for the SortedArrayView class.
T | The type contained in the SortedArrayView. |
INDEX_TYPE | The integral type used as an index. |
BUFFER_TYPE | The type used to manager the underlying allocation. |
Definition at line 316 of file SortedArrayView.hpp.