|
| | LvArray::tensorOps::internal::HAS_STATIC_MEMBER (SIZE) |
| | Expands to a static constexpr template bool HasStaticMember_SIZE which is true if T has a static member T::SIZE. More...
|
| |
| | LvArray::tensorOps::internal::HAS_STATIC_MEMBER (NDIM) |
| | Expands to a static constexpr template bool HasStaticMember_NDIM which is true if T has a static member T::NDIM. More...
|
| |
| template<std::ptrdiff_t ISIZE, typename T > |
| LVARRAY_HOST_DEVICE constexpr std::enable_if_t< HasStaticMember_SIZE< T > > | LvArray::tensorOps::internal::checkSizes (T const &src) |
| | Verify at compile time that the size of a user-provided type is as expected. More...
|
| |
| template<std::ptrdiff_t PROVIDED_SIZE, typename T , std::ptrdiff_t INFERRED_SIZE> |
| LVARRAY_HOST_DEVICE constexpr void | LvArray::tensorOps::internal::checkSizes (T const (&src)[INFERRED_SIZE]) |
| | Verify at compile time that the size of the c-array is as expected. More...
|
| |
| template<std::ptrdiff_t PROVIDED_M, std::ptrdiff_t PROVIDED_N, typename T , std::ptrdiff_t INFERRED_M, std::ptrdiff_t INFERRED_N> |
| LVARRAY_HOST_DEVICE constexpr void | LvArray::tensorOps::internal::checkSizes (T const (&src)[INFERRED_M][INFERRED_N]) |
| | Verify at compile time that the size of the 2D c-array is as expected. More...
|
| |
| template<std::ptrdiff_t ISIZE, typename ARRAY > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK std::enable_if_t< HasStaticMember_NDIM< ARRAY > > | LvArray::tensorOps::internal::checkSizes (ARRAY const &array) |
| | Verify at compile time that. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename ARRAY > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK std::enable_if_t< HasStaticMember_NDIM< ARRAY > > | LvArray::tensorOps::internal::checkSizes (ARRAY const &array) |
| | Verify at compile time that. More...
|
| |
|
Functions that are overloaded to operate on both vectors and matrices.
- Note
- Not all of the functions have been overloaded to operate on both vectors and matrices.
|
| template<std::ptrdiff_t ISIZE, typename VECTOR > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK auto | LvArray::tensorOps::maxAbsoluteEntry (VECTOR &&vector) |
| |
| template<std::ptrdiff_t ISIZE, typename VECTOR > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::fill (VECTOR &&vector, std::remove_reference_t< decltype(vector[0]) > const value) |
| | Set the entries of vector to value. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename MATRIX > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::fill (MATRIX &&matrix, std::remove_reference_t< decltype(matrix[0][0]) > const value) |
| | Set the entries of matrix to value. More...
|
| |
| template<std::ptrdiff_t ISIZE, typename DST_VECTOR , typename SRC_VECTOR > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::copy (DST_VECTOR &&LVARRAY_RESTRICT_REF dstVector, SRC_VECTOR const &LVARRAY_RESTRICT_REF srcVector) |
| | Copy srcVector into dstVector. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename DST_MATRIX , typename SRC_MATRIX > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::copy (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, SRC_MATRIX const &LVARRAY_RESTRICT_REF srcMatrix) |
| | Copy srcMatrix into dstMatrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, typename VECTOR > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::scale (VECTOR &&vector, std::remove_reference_t< decltype(vector[0]) > const scale) |
| | Multiply the entries of vector by scale. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename MATRIX > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::scale (MATRIX &&matrix, std::remove_reference_t< decltype(matrix[0][0]) > const scale) |
| | Multiply the entries of matrix by scale. More...
|
| |
| template<std::ptrdiff_t ISIZE, typename DST_VECTOR , typename SRC_VECTOR > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::scaledCopy (DST_VECTOR &&LVARRAY_RESTRICT_REF dstVector, SRC_VECTOR const &LVARRAY_RESTRICT_REF srcVector, std::remove_reference_t< decltype(srcVector[0]) > const scale) |
| | Copy srcVector scaled by scale into dstVector. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename DST_MATRIX , typename SRC_MATRIX > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::scaledCopy (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, SRC_MATRIX const &LVARRAY_RESTRICT_REF srcMatrix, std::remove_reference_t< decltype(srcMatrix[0][0]) > const scale) |
| | Copy srcMatrix scaled by scale into dstMatrix. More...
|
| |
| template<std::ptrdiff_t M, typename DST_VECTOR > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::addScalar (DST_VECTOR &&LVARRAY_RESTRICT_REF dstVector, std::remove_reference_t< decltype(dstVector[0]) > const value) |
| | Add value to dstVector. More...
|
| |
| template<std::ptrdiff_t ISIZE, typename DST_VECTOR , typename SRC_VECTOR > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::add (DST_VECTOR &&LVARRAY_RESTRICT_REF dstVector, SRC_VECTOR const &LVARRAY_RESTRICT_REF srcVector) |
| | Add srcVector to dstVector. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename DST_MATRIX , typename SRC_MATRIX > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::add (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, SRC_MATRIX const &LVARRAY_RESTRICT_REF srcMatrix) |
| | Add srcMatrix to dstMatrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, typename DST_VECTOR , typename SRC_VECTOR > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::subtract (DST_VECTOR &&LVARRAY_RESTRICT_REF dstVector, SRC_VECTOR const &LVARRAY_RESTRICT_REF srcVector) |
| | Subtract srcVector from dstVector. More...
|
| |
| template<std::ptrdiff_t ISIZE, typename DST_VECTOR , typename SRC_VECTOR > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::scaledAdd (DST_VECTOR &&LVARRAY_RESTRICT_REF dstVector, SRC_VECTOR const &LVARRAY_RESTRICT_REF srcVector, std::remove_reference_t< decltype(srcVector[0]) > const scale) |
| | Add srcVector scaled by scale to dstVector. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename DST_MATRIX , typename SRC_MATRIX > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::scaledAdd (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, SRC_MATRIX const &LVARRAY_RESTRICT_REF srcMatrix, std::remove_reference_t< decltype(srcMatrix[0][0]) > const scale) |
| | Add srcMatrix scaled by scale to dstMatrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, typename DST_VECTOR , typename VECTOR_A , typename VECTOR_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::hadamardProduct (DST_VECTOR &&LVARRAY_RESTRICT_REF dstVector, VECTOR_A const &LVARRAY_RESTRICT_REF vectorA, VECTOR_B const &LVARRAY_RESTRICT_REF vectorB) |
| | Multiply the elements of vectorA and vectorB putting the result into dstVector. More...
|
| |
|
Functions that operate on vectors.
|
| template<std::ptrdiff_t ISIZE, typename VECTOR > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK auto | LvArray::tensorOps::l2NormSquared (VECTOR const &vector) |
| |
| template<std::ptrdiff_t ISIZE, typename VECTOR > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK auto | LvArray::tensorOps::l2Norm (VECTOR const &vector) |
| |
| template<std::ptrdiff_t ISIZE, typename VECTOR > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK auto | LvArray::tensorOps::normalize (VECTOR &&vector) |
| | Scale vector to a unit vector. More...
|
| |
| template<std::ptrdiff_t JSIZE, typename VECTOR_A , typename VECTOR_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK auto | LvArray::tensorOps::AiBi (VECTOR_A const &LVARRAY_RESTRICT_REF vectorA, VECTOR_B const &LVARRAY_RESTRICT_REF vectorB) |
| |
| template<typename DST_VECTOR , typename VECTOR_A , typename VECTOR_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::crossProduct (DST_VECTOR &&LVARRAY_RESTRICT_REF dstVector, VECTOR_A const &LVARRAY_RESTRICT_REF vectorA, VECTOR_B const &LVARRAY_RESTRICT_REF vectorB) |
| | Compute the cross product of vectorA and vectorB and put it in dstVector. More...
|
| |
|
Functions that operate on matrices and vectors.
|
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename DST_MATRIX , typename VECTOR_A , typename VECTOR_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::Rij_eq_AiBj (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, VECTOR_A const &LVARRAY_RESTRICT_REF vectorA, VECTOR_B const &LVARRAY_RESTRICT_REF vectorB) |
| | Perform the outer product of vectorA and vectorB writing the result to dstMatrix. More...
|
| |
| template<std::ptrdiff_t JSIZE, std::ptrdiff_t ISIZE, typename DST_MATRIX , typename VECTOR_A , typename VECTOR_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::Rij_add_AiBj (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, VECTOR_A const &LVARRAY_RESTRICT_REF vectorA, VECTOR_B const &LVARRAY_RESTRICT_REF vectorB) |
| | Perform the outer product of vectorA and vectorB adding the result to dstMatrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename DST_VECTOR , typename MATRIX_A , typename VECTOR_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::Ri_eq_AijBj (DST_VECTOR &&LVARRAY_RESTRICT_REF dstVector, MATRIX_A const &LVARRAY_RESTRICT_REF matrixA, VECTOR_B const &LVARRAY_RESTRICT_REF vectorB) |
| | Perform the matrix vector multiplication of matrixA and vectorB writing the result to dstVector. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename DST_VECTOR , typename MATRIX_A , typename VECTOR_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::Ri_add_AijBj (DST_VECTOR &&LVARRAY_RESTRICT_REF dstVector, MATRIX_A const &LVARRAY_RESTRICT_REF matrixA, VECTOR_B const &LVARRAY_RESTRICT_REF vectorB) |
| | Perform the matrix vector multiplication of matrixA and vectorB adding the result to dstVector. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename DST_VECTOR , typename MATRIX_A , typename VECTOR_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::Ri_eq_AjiBj (DST_VECTOR &&LVARRAY_RESTRICT_REF dstVector, MATRIX_A const &LVARRAY_RESTRICT_REF matrixA, VECTOR_B const &LVARRAY_RESTRICT_REF vectorB) |
| | Perform the matrix vector multiplication of the transpose of matrixA and vectorB writing the result to dstVector. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename DST_VECTOR , typename MATRIX_A , typename VECTOR_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::Ri_add_AjiBj (DST_VECTOR &&LVARRAY_RESTRICT_REF dstVector, MATRIX_A const &LVARRAY_RESTRICT_REF matrixA, VECTOR_B const &LVARRAY_RESTRICT_REF vectorB) |
| | Perform the matrix vector multiplication of the transpose of matrixA and vectorB adding the result to dstVector. More...
|
| |
|
Functions that operate matrices of any shape.
|
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename DST_MATRIX , typename SRC_MATRIX > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::transpose (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, SRC_MATRIX const &LVARRAY_RESTRICT_REF srcMatrix) |
| | Store the transpose of the NxM matrix srcMatrix in dstMatrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, std::ptrdiff_t KSIZE, typename DST_MATRIX , typename MATRIX_A , typename MATRIX_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::Rij_eq_AikBkj (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, MATRIX_A const &LVARRAY_RESTRICT_REF matrixA, MATRIX_B const &LVARRAY_RESTRICT_REF matrixB) |
| | Multiply matrixA with matrixB and put the result into dstMatrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, std::ptrdiff_t KSIZE, typename DST_MATRIX , typename MATRIX_A , typename MATRIX_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::Rij_add_AikBkj (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, MATRIX_A const &LVARRAY_RESTRICT_REF matrixA, MATRIX_B const &LVARRAY_RESTRICT_REF matrixB) |
| | Multiply matrixA with matrixB and add the result to dstMatrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, std::ptrdiff_t KSIZE, typename DST_MATRIX , typename MATRIX_A , typename MATRIX_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::Rij_eq_AikBjk (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, MATRIX_A const &LVARRAY_RESTRICT_REF matrixA, MATRIX_B const &LVARRAY_RESTRICT_REF matrixB) |
| | Multiply matrixA with the transpose of matrixB and put the result into dstMatrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, std::ptrdiff_t KSIZE, typename DST_MATRIX , typename MATRIX_A , typename MATRIX_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::Rij_add_AikBjk (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, MATRIX_A const &LVARRAY_RESTRICT_REF matrixA, MATRIX_B const &LVARRAY_RESTRICT_REF matrixB) |
| | Multiply matrixA with the transpose of matrixB and put the result into dstMatrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename DST_MATRIX , typename MATRIX_A > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::Rij_add_AikAjk (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, MATRIX_A const &LVARRAY_RESTRICT_REF matrixA) |
| | Multiply matrixA with the transpose of itself and put the result into dstMatrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, std::ptrdiff_t KSIZE, typename DST_MATRIX , typename MATRIX_A , typename MATRIX_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::Rij_eq_AkiBkj (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, MATRIX_A const &LVARRAY_RESTRICT_REF matrixA, MATRIX_B const &LVARRAY_RESTRICT_REF matrixB) |
| | Multiply the transpose of matrixA with matrixB and put the result into dstMatrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, typename DST_MATRIX , typename MATRIX_A > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::Rij_eq_AkiAkj (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, MATRIX_A const &LVARRAY_RESTRICT_REF matrixA) |
| | Multiply the transpose of matrixA with matrixA and put the result into dstMatrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, std::ptrdiff_t JSIZE, std::ptrdiff_t KSIZE, typename DST_MATRIX , typename MATRIX_A , typename MATRIX_B > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::Rij_add_AkiBkj (DST_MATRIX &&LVARRAY_RESTRICT_REF dstMatrix, MATRIX_A const &LVARRAY_RESTRICT_REF matrixA, MATRIX_B const &LVARRAY_RESTRICT_REF matrixB) |
| | Multiply the transpose of matrixA with matrixB and add the result into dstMatrix. More...
|
| |
|
Functions that operate on square matrices of any size.
|
| template<std::ptrdiff_t ISIZE, typename MATRIX > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::transpose (MATRIX &&LVARRAY_RESTRICT_REF matrix) |
| | Transpose the MxM matrix matrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, typename MATRIX > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::addIdentity (MATRIX &&matrix, std::remove_reference_t< decltype(matrix[0][0]) > const scale) |
| | Add scale times the identity matrix to matrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, typename MATRIX > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK auto | LvArray::tensorOps::trace (MATRIX const &matrix) |
| |
|
Functions that operate on symmetric matrices of any size.
|
| template<std::ptrdiff_t ISIZE, typename SYM_MATRIX > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK void | LvArray::tensorOps::symAddIdentity (SYM_MATRIX &&symMatrix, std::remove_reference_t< decltype(symMatrix[0]) > const scale) |
| | Add scale times the identity matrix to symMatrix. More...
|
| |
| template<std::ptrdiff_t ISIZE, typename SYM_MATRIX > |
| LVARRAY_HOST_DEVICE CONSTEXPR_WITHOUT_BOUNDS_CHECK auto | LvArray::tensorOps::symTrace (SYM_MATRIX const &symMatrix) |
| |