|
| template<typename ResultVector = void, typename VectorLike > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::copy_vector (const VectorLike &v) -> std::conditional_t< std::is_void< ResultVector >::value, vector_semantic_type_t< VectorLike >, ResultVector > |
| |
| template<typename LeftVector , typename RightVector > |
| LIBMESH_DEVICE_INLINE void | libMesh::Kokkos::detail::assign_vector_components (LeftVector &left, const RightVector &right) |
| | Componentwise copy: left = right.
|
| |
| template<typename VectorLike , typename Scalar > |
| LIBMESH_DEVICE_INLINE void | libMesh::Kokkos::detail::fill_vector_components (VectorLike &v, const Scalar &value) |
| | Sets every component of v to value.
|
| |
| template<typename LeftVector , typename RightVector , typename Scalar > |
| LIBMESH_DEVICE_INLINE void | libMesh::Kokkos::detail::update_vector_components (LeftVector &left, const RightVector &right, const Scalar &factor) |
| | Componentwise axpy-style update: left += factor * right.
|
| |
| template<typename OutputVector , typename InputVector , typename TransformOp > |
| LIBMESH_DEVICE_INLINE void | libMesh::Kokkos::detail::transform_vector_components (OutputVector &out, const InputVector &in, const TransformOp &op) |
| | Componentwise transform: out(i) = op(in(i)).
|
| |
| template<typename ResultVector , typename VectorLike , typename TransformOp > |
| LIBMESH_DEVICE_INLINE ResultVector | libMesh::Kokkos::detail::transformed_vector (const VectorLike &v, const TransformOp &op) |
| |
| template<typename LeftVector , typename RightVector > |
| LIBMESH_DEVICE_INLINE bool | libMesh::Kokkos::detail::vector_equal_impl (const LeftVector &left, const RightVector &right) |
| |
| template<typename LeftVector , typename RightVector > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::vector_dot (const LeftVector &left, const RightVector &right) |
| |
| template<typename ResultVector = void, typename VectorLike > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::vector_unit (const VectorLike &v) -> std::conditional_t< std::is_void< ResultVector >::value, vector_semantic_type_t< VectorLike >, ResultVector > |
| |
| template<typename ResultVector = void, typename LeftVector , typename RightVector > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::vector_cross (const LeftVector &left, const RightVector &right) -> std::conditional_t< std::is_void< ResultVector >::value, vector_semantic_type_t< LeftVector >, ResultVector > |
| |
| template<typename LeftVector , typename MiddleVector , typename RightVector > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::vector_triple_product (const LeftVector &left, const MiddleVector &middle, const RightVector &right) |
| |
| template<typename LeftVector , typename RightVector > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::vector_cross_norm_sq (const LeftVector &left, const RightVector &right) |
| |
| template<typename VectorA , typename VectorB , typename VectorC > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::vector_solid_angle (const VectorA &v01, const VectorB &v02, const VectorC &v03) |
| |
| template<typename LeftVector , typename RightVector , typename std::enable_if< is_vector_like_v< LeftVector > &&is_vector_like_v< RightVector >, int >::type = 0> |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::contract (const LeftVector &left, const RightVector &right) |
| |
| template<typename LeftVector , typename RightVector > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::operator+= (LeftVector &left, const RightVector &right) -> std::enable_if_t< is_vector_like_v< LeftVector > &&is_vector_like_v< RightVector > &&(is_vector_ref_v< LeftVector >||is_vector_ref_v< RightVector >), LeftVector & > |
| | Adds right to left in place; when left is a ref, the update writes through to the underlying storage.
|
| |
| template<typename LeftVector , typename RightVector > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::operator-= (LeftVector &left, const RightVector &right) -> std::enable_if_t< is_vector_like_v< LeftVector > &&is_vector_like_v< RightVector > &&(is_vector_ref_v< LeftVector >||is_vector_ref_v< RightVector >), LeftVector & > |
| | Subtracts right from left in place.
|
| |
| template<typename VectorLike > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::operator- (const VectorLike &v) -> std::enable_if_t< is_vector_like_v< VectorLike > &&is_vector_ref_v< VectorLike >, vector_semantic_type_t< VectorLike > > |
| |
| template<typename LeftVector , typename RightVector > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::operator+ (const LeftVector &left, const RightVector &right) -> std::enable_if_t< is_vector_like_v< LeftVector > &&is_vector_like_v< RightVector > &&(is_vector_ref_v< LeftVector >||is_vector_ref_v< RightVector >), vector_semantic_type_t< LeftVector > > |
| |
| template<typename LeftVector , typename RightVector > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::operator- (const LeftVector &left, const RightVector &right) -> std::enable_if_t< is_vector_like_v< LeftVector > &&is_vector_like_v< RightVector > &&(is_vector_ref_v< LeftVector >||is_vector_ref_v< RightVector >), vector_semantic_type_t< LeftVector > > |
| |
| template<typename LeftVector , typename RightVector , typename std::enable_if< is_vector_like_v< LeftVector > &&is_vector_like_v< RightVector > &&(is_vector_ref_v< LeftVector >||is_vector_ref_v< RightVector >), int >::type = 0> |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::operator* (const LeftVector &left, const RightVector &right) |
| |
| template<typename Scalar , typename VectorLike , typename std::enable_if<!is_vector_like_v< Scalar > &&!is_tensor_like_v< Scalar > &&is_vector_like_v< VectorLike > &&is_vector_ref_v< VectorLike >, int >::type = 0> |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::operator* (const Scalar &alpha, const VectorLike &v) |
| |
| template<typename VectorLike , typename Scalar , typename std::enable_if< is_vector_like_v< VectorLike > &&is_vector_ref_v< VectorLike > &&!is_vector_like_v< Scalar > &&!is_tensor_like_v< Scalar >, int >::type = 0> |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::operator* (const VectorLike &v, const Scalar &alpha) |
| |
| template<typename VectorLike , typename Scalar , typename std::enable_if< is_vector_like_v< VectorLike > &&is_vector_ref_v< VectorLike > &&!is_vector_like_v< Scalar > &&!is_tensor_like_v< Scalar >, int >::type = 0> |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::operator/ (const VectorLike &v, const Scalar &alpha) |
| |
| template<typename LeftVector , typename RightVector > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::operator== (const LeftVector &left, const RightVector &right) -> std::enable_if_t< is_vector_like_v< LeftVector > &&is_vector_like_v< RightVector > &&(is_vector_ref_v< LeftVector >||is_vector_ref_v< RightVector >), bool > |
| |
| template<typename LeftVector , typename RightVector > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::operator!= (const LeftVector &left, const RightVector &right) -> std::enable_if_t< is_vector_like_v< LeftVector > &&is_vector_like_v< RightVector > &&(is_vector_ref_v< LeftVector >||is_vector_ref_v< RightVector >), bool > |
| |
| template<typename LeftVector , typename Scalar > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::operator*= (LeftVector &left, const Scalar &alpha) -> std::enable_if_t< is_vector_like_v< LeftVector > &&is_vector_ref_v< LeftVector > &&!is_vector_like_v< Scalar > &&!is_tensor_like_v< Scalar >, LeftVector & > |
| | Scales left by alpha in place.
|
| |
| template<typename LeftVector , typename Scalar > |
| LIBMESH_DEVICE_INLINE auto | libMesh::Kokkos::operator/= (LeftVector &left, const Scalar &alpha) -> std::enable_if_t< is_vector_like_v< LeftVector > &&is_vector_ref_v< LeftVector > &&!is_vector_like_v< Scalar > &&!is_tensor_like_v< Scalar >, LeftVector & > |
| | Divides left by alpha in place.
|
| |