|
| template<typename outputValueType , class ... outputProperties, typename inputValueType , class ... inputProperties> |
| static void | extractScalarValues (Kokkos::DynRankView< outputValueType, outputProperties... > output, const Kokkos::DynRankView< inputValueType, inputProperties... > input) |
| | Extract scalar type values from Sacado-based array. More...
|
| |
| template<typename outputValueType , class ... outputProperties, typename inputValueType , class ... inputProperties> |
| static void | clone (Kokkos::DynRankView< outputValueType, outputProperties... > output, const Kokkos::DynRankView< inputValueType, inputProperties... > input) |
| | Clone input array. More...
|
| |
| template<typename absArrayValueType , class ... absArrayProperties, typename inArrayValueType , class ... inArrayProperties> |
| static void | absval (Kokkos::DynRankView< absArrayValueType, absArrayProperties... > absArray, const Kokkos::DynRankView< inArrayValueType, inArrayProperties... > inArray) |
| | Computes absolute value of an array. More...
|
| |
| template<typename inoutArrayValueType , class ... inoutArrayProperties> |
| static void | absval (Kokkos::DynRankView< inoutArrayValueType, inoutArrayProperties... > inoutArray) |
| | Computes, in place, absolute value of an array. More...
|
| |
| template<typename normArrayValueType , class ... normArrayProperties, typename inVecValueType , class ... inVecProperties> |
| static void | vectorNorm (Kokkos::DynRankView< normArrayValueType, normArrayProperties... > normArray, const Kokkos::DynRankView< inVecValueType, inVecProperties... > inVecs, const ENorm normType) |
| | Computes norms (1, 2, infinity) of vectors stored in a array of total rank 2 (array of vectors), indexed by (i0, D), or 3 (array of arrays of vectors), indexed by (i0, i1, D). More...
|
| |
| template<typename transposeMatValueType , class ... transposeMatProperties, typename inMatValueType , class ... inMatProperties> |
| static void | transpose (Kokkos::DynRankView< transposeMatValueType, transposeMatProperties... > transposeMats, const Kokkos::DynRankView< inMatValueType, inMatProperties... > inMats) |
| | Computes transposes of square matrices stored in an array of total rank 2 (single matrix), indexed by (D, D), 3 (array of matrices), indexed by (i0, D, D), or 4 (array of arrays of matrices), indexed by (i0, i1, D, D). More...
|
| |
| template<typename inverseMatValueType , class ... inverseMatProperties, typename inMatValueType , class ... inMatProperties> |
| static void | inverse (Kokkos::DynRankView< inverseMatValueType, inverseMatProperties... > inverseMats, const Kokkos::DynRankView< inMatValueType, inMatProperties... > inMats) |
| | Computes inverses of nonsingular matrices stored in an array of total rank 2 (single matrix), indexed by (D, D), 3 (array of matrices), indexed by (i0, D, D), or 4 (array of arrays of matrices), indexed by (i0, i1, D, D). More...
|
| |
| template<typename detArrayValueType , class ... detArrayProperties, typename inMatValueType , class ... inMatProperties> |
| static void | det (Kokkos::DynRankView< detArrayValueType, detArrayProperties... > detArray, const Kokkos::DynRankView< inMatValueType, inMatProperties... > inMats) |
| | Computes determinants of matrices stored in an array of total rank 3 (array of matrices), indexed by (i0, D, D), or 4 (array of arrays of matrices), indexed by (i0, i1, D, D). More...
|
| |
| template<typename sumArrayValueType , class ... sumArrayProperties, typename inArray1ValueType , class ... inArray1Properties, typename inArray2ValueType , class ... inArray2Properties> |
| static void | add (Kokkos::DynRankView< sumArrayValueType, sumArrayProperties... > sumArray, const Kokkos::DynRankView< inArray1ValueType, inArray1Properties... > inArray1, const Kokkos::DynRankView< inArray2ValueType, inArray2Properties... > inArray2) |
| | Adds arrays inArray1 and inArray2:
sumArray = inArray1 + inArray2. More...
|
| |
| template<typename inoutSumArrayValueType , class ... inoutSumArrayProperties, typename inArrayValueType , class ... inArrayProperties> |
| static void | add (Kokkos::DynRankView< inoutSumArrayValueType, inoutSumArrayProperties... > inoutSumArray, const Kokkos::DynRankView< inArrayValueType, inArrayProperties... > inArray) |
| | Adds, in place, inArray into inoutSumArray:
inoutSumArray = inoutSumArray + inArray. More...
|
| |
| template<typename diffArrayValueType , class ... diffArrayProperties, typename inArray1ValueType , class ... inArray1Properties, typename inArray2ValueType , class ... inArray2Properties> |
| static void | subtract (Kokkos::DynRankView< diffArrayValueType, diffArrayProperties... > diffArray, const Kokkos::DynRankView< inArray1ValueType, inArray1Properties... > inArray1, const Kokkos::DynRankView< inArray2ValueType, inArray2Properties... > inArray2) |
| | Subtracts inArray2 from inArray1:
diffArray = inArray1 - inArray2. More...
|
| |
| template<typename inoutDiffArrayValueType , class ... inoutDiffArrayProperties, typename inArrayValueType , class ... inArrayProperties> |
| static void | subtract (Kokkos::DynRankView< inoutDiffArrayValueType, inoutDiffArrayProperties... > diffArray, const Kokkos::DynRankView< inArrayValueType, inArrayProperties... > inArray) |
| | Subtracts, in place, inArray from diffArray:
diffArray = diffArray - inArray. More...
|
| |
| template<typename ValueType , typename scaledArrayValueType , class ... scaledArrayProperties, typename inArrayValueType , class ... inArrayProperties> |
| static void | scale (Kokkos::DynRankView< scaledArrayValueType, scaledArrayProperties... > scaledArray, const Kokkos::DynRankView< inArrayValueType, inArrayProperties... > inArray, const ValueType alpha) |
| | Multiplies array inArray by the scalar scalar (componentwise):
scaledArray = scalar * inArray. More...
|
| |
| template<typename ValueType , typename inoutScaledArrayValueType , class ... inoutScaledArrayProperties> |
| static void | scale (Kokkos::DynRankView< inoutScaledArrayValueType, inoutScaledArrayProperties... > inoutScaledArray, const ValueType alpha) |
| | Multiplies, in place, array inoutScaledArray by the scalar scalar (componentwise):
inoutScaledArray = scalar * inoutScaledArray. More...
|
| |
| template<typename dotArrayValueType , class ... dotArrayProperties, typename inVec1ValueType , class ... inVec1Properties, typename inVec2ValueType , class ... inVec2Properties> |
| static void | dot (Kokkos::DynRankView< dotArrayValueType, dotArrayProperties... > dotArray, const Kokkos::DynRankView< inVec1ValueType, inVec1Properties... > inVecs1, const Kokkos::DynRankView< inVec2ValueType, inVec2Properties... > inVecs2) |
| | Computes dot product of vectors stored in an array of total rank 2 (array of vectors), indexed by (i0, D), or 3 (array of arrays of vectors), indexed by (i0, i1, D). More...
|
| |
| template<typename matVecValueType , class ... matVecProperties, typename inMatValueType , class ... inMatProperties, typename inVecValueType , class ... inVecProperties> |
| static void | matvec (Kokkos::DynRankView< matVecValueType, matVecProperties... > matVecs, const Kokkos::DynRankView< inMatValueType, inMatProperties... > inMats, const Kokkos::DynRankView< inVecValueType, inVecProperties... > inVecs) |
| | Matrix-vector left multiply using multidimensional arrays:
matVec = inMat * inVec. More...
|
| |
| template<typename vecProdValueType , class ... vecProdProperties, typename inLeftValueType , class ... inLeftProperties, typename inRightValueType , class ... inRightProperties> |
| static void | vecprod (Kokkos::DynRankView< vecProdValueType, vecProdProperties... > vecProd, const Kokkos::DynRankView< inLeftValueType, inLeftProperties... > inLeft, const Kokkos::DynRankView< inRightValueType, inRightProperties... > inRight) |
| | Vector product using multidimensional arrays:
vecProd = inVecLeft x inVecRight More...
|
| |
template<typename ExecSpaceType = void>
class Intrepid2::RealSpaceTools< ExecSpaceType >
Implementation of basic linear algebra functionality in Euclidean space.
Note:
- Compiled on devices (KOKKOS_INLINE_FUNCTION)
- Callable on devices and Kokkos functor (no temporary allocation)
- parallel_for inside of Intrepid functions is dictated by the provided execution space
- With Kokkos::Serial, functions (that already contain parallel_for) can be nested in Kokkos functors
- When a function is decorated with KOKKOS_INLINE_FUNCTION, remove Teuchos testing and std::vectors
- For norm and det computations, the value_type is chosen from the first input container.
- As the name says, the class assumes that input containers are "real type" and not complex type.
- Functions that are designed for small problems are not parallelized e.g., dot, norm and det. These functions have non-void return types and expect to be used for small problems. However, high level (working on cell-level) functions are parallelized.
Definition at line 79 of file Intrepid2_RealSpaceTools.hpp.