MiniTensor Version of the Day
Loading...
Searching...
No Matches
Containers

Vectors, second- to fourth-order tensors, and general matrices, with static (compile-time) or dynamic storage. More...

Namespaces

namespace  minitensor
 

Classes

class  minitensor::Matrix< T, M, N >
 
struct  minitensor::dimension_const< N, C >
 Set to constant value if not dynamic. More...
 
struct  minitensor::dimension_const< DYNAMIC, C >
 
struct  minitensor::check_static< D >
 Validate dimension. More...
 
struct  minitensor::dimension_power< D, O >
 Integer power template restricted to orders defined below. More...
 
struct  minitensor::dimension_power< D, 1 >
 
struct  minitensor::dimension_power< D, 2 >
 
struct  minitensor::dimension_power< D, 3 >
 
struct  minitensor::dimension_power< D, 4 >
 
struct  minitensor::dimension_square< N >
 Integer square for manipulations between 2nd and 4rd-order tensors. More...
 
struct  minitensor::dimension_square< DYNAMIC >
 
struct  minitensor::dimension_square< 1 >
 
struct  minitensor::dimension_square< 2 >
 
struct  minitensor::dimension_square< 3 >
 
struct  minitensor::dimension_square< 4 >
 
struct  minitensor::dimension_sqrt< N >
 
struct  minitensor::dimension_sqrt< DYNAMIC >
 
struct  minitensor::dimension_sqrt< 1 >
 
struct  minitensor::dimension_sqrt< 4 >
 
struct  minitensor::dimension_sqrt< 9 >
 
struct  minitensor::dimension_sqrt< 16 >
 
struct  minitensor::dimension_add< N, P >
 Manipulation of static and dynamic dimensions. More...
 
struct  minitensor::dimension_add< DYNAMIC, P >
 
struct  minitensor::dimension_subtract< N, P >
 
struct  minitensor::dimension_subtract< DYNAMIC, P >
 
struct  minitensor::dimension_product< N, P >
 
struct  minitensor::dimension_product< N, DYNAMIC >
 
struct  minitensor::dimension_product< DYNAMIC, P >
 
struct  minitensor::dimension_product< DYNAMIC, DYNAMIC >
 
class  minitensor::Storage< T, N >
 
class  minitensor::Storage< T, DYNAMIC >
 
class  minitensor::Tensor< T, N >
 
class  minitensor::Tensor3< T, N >
 
class  minitensor::Tensor4< T, N >
 
class  minitensor::TensorBase< T, ST >
 
class  minitensor::Vector< T, N >
 The classes. More...
 

Typedefs

template<typename T , Index M, Index N>
using minitensor::matrix_store = Storage< T, dimension_product< M, N >::value >
 
using minitensor::Matrix< T, M, N >::Store = matrix_store< T, M, N >
 
using minitensor::Storage< T, N >::value_type = T
 
using minitensor::Storage< T, N >::pointer_type = T *
 
using minitensor::Storage< T, N >::reference_type = T &
 
using minitensor::Storage< T, N >::const_pointer_type = T const *
 
using minitensor::Storage< T, N >::const_reference_type = T const &
 
using minitensor::Storage< T, DYNAMIC >::value_type = T
 
using minitensor::Storage< T, DYNAMIC >::pointer_type = T *
 
using minitensor::Storage< T, DYNAMIC >::reference_type = T &
 
using minitensor::Storage< T, DYNAMIC >::const_pointer_type = T const *
 
using minitensor::Storage< T, DYNAMIC >::const_reference_type = T const &
 
template<typename T , Index N>
using minitensor::tensor_store = Storage< T, dimension_power< N, 2 >::value >
 
using minitensor::Tensor< T, N >::Store = tensor_store< T, N >
 
template<typename T , Index N>
using minitensor::tensor3_store = Storage< T, dimension_power< N, 3 >::value >
 
using minitensor::Tensor3< T, N >::Store = tensor3_store< T, N >
 
template<typename T , Index N>
using minitensor::tensor4_store = Storage< T, dimension_power< N, 4 >::value >
 
using minitensor::Tensor4< T, N >::Store = tensor4_store< T, N >
 
using minitensor::TensorBase< T, ST >::value_type = T
 
using minitensor::TensorBase< T, ST >::storage_type = ST
 
template<typename T , Index N>
using minitensor::vector_store = Storage< T, dimension_power< N, 1 >::value >
 
using minitensor::Vector< T, N >::Store = vector_store< T, N >
 

Enumerations

enum class  minitensor::Filler {
  minitensor::Filler::ZEROS , minitensor::Filler::ONES , minitensor::Filler::SEQUENCE , minitensor::Filler::RANDOM ,
  minitensor::Filler::RANDOM_UNIFORM , minitensor::Filler::RANDOM_NORMAL , minitensor::Filler::NANS
}
 
enum class  minitensor::ComponentOrder { minitensor::ComponentOrder::CANONICAL , minitensor::ComponentOrder::SIERRA_FULL , minitensor::ComponentOrder::SIERRA_SYMMETRIC }
 
enum class  minitensor::Source { minitensor::Source::ARRAY }
 

Functions

static KOKKOS_INLINE_FUNCTION constexpr Index minitensor::Matrix< T, M, N >::get_order ()
 
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ()
 
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Index const rows, Index const cols)
 
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Filler const value)
 
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Index const rows, Index cols, Filler const value)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Source const source, ArrayT &data, Index index1)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Source const source, ArrayT &data, Index index1, Index index2)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Source const source, ArrayT &data, Index index1, Index index2, Index index3)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Source const source, ArrayT &data, Index index1, Index index2, Index index3, Index index4)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Source const source, ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Source const source, ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5, Index index6)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Source const source, Index const rows, Index const cols, ArrayT &data, Index index1)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Source const source, Index const rows, Index const cols, ArrayT &data, Index index1, Index index2)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Source const source, Index const rows, Index const cols, ArrayT &data, Index index1, Index index2, Index index3)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Source const source, Index const rows, Index const cols, ArrayT &data, Index index1, Index index2, Index index3, Index index4)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Source const source, Index const rows, Index const cols, ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Source const source, Index const rows, Index const cols, ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5, Index index6)
 
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (T const *data_ptr)
 
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Index const rows, Index cols, T const *data_ptr)
 
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix (Matrix< T, M, N > const &A)
 
virtual KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::~Matrix ()
 
KOKKOS_INLINE_FUNCTION T const & minitensor::Matrix< T, M, N >::operator() (Index const i, Index const j) const
 
KOKKOS_INLINE_FUNCTION T & minitensor::Matrix< T, M, N >::operator() (Index const i, Index const j)
 
std::pair< Index, Indexminitensor::Matrix< T, M, N >::get_dimensions () const
 
KOKKOS_INLINE_FUNCTION Index minitensor::Matrix< T, M, N >::get_num_rows () const
 
KOKKOS_INLINE_FUNCTION Index minitensor::Matrix< T, M, N >::get_num_cols () const
 
KOKKOS_INLINE_FUNCTION void minitensor::Matrix< T, M, N >::set_dimensions (Index const rows, Index const cols)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::operator+ (Matrix< S, M, N > const &A, Matrix< T, M, N > const &B)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::operator- (Matrix< S, M, N > const &A, Matrix< T, M, N > const &B)
 
template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< T, M, N > minitensor::operator- (Matrix< T, M, N > const &A)
 
template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator== (Matrix< T, M, N > const &A, Matrix< T, M, N > const &B)
 
template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator!= (Matrix< T, M, N > const &A, Matrix< T, M, N > const &B)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, M > minitensor::operator* (Matrix< T, M, N > const &A, Vector< S, N > const &u)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::operator* (Vector< S, M > const &u, Matrix< T, M, N > const &A)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::operator* (Matrix< T, M, N > const &A, Tensor< S, N > const &B)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::operator* (Tensor< S, M > const &A, Matrix< T, M, N > const &B)
 
template<typename S , typename T , Index M, Index P, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::operator* (Matrix< S, M, P > const &A, Matrix< T, P, N > const &B)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_matrix< Promote< S, T >, M, N > >::type minitensor::operator* (S const &s, Matrix< T, M, N > const &A)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_matrix< Promote< S, T >, M, N > >::type minitensor::operator* (Matrix< T, M, N > const &A, S const &s)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::operator/ (Matrix< T, M, N > const &A, S const &s)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::operator/ (S const &s, Matrix< T, M, N > const &A)
 
template<typename T , Index M, Index N>
std::istream & minitensor::operator>> (std::istream &is, Matrix< T, M, N > &A)
 
template<typename T , Index M, Index N>
std::ostream & minitensor::operator<< (std::ostream &os, Matrix< T, M, N > const &A)
 
template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Vector< T, N > minitensor::row (Matrix< T, M, N > const &A, Index const i)
 
template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Vector< T, M > minitensor::col (Matrix< T, M, N > const &A, Index const j)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, M > minitensor::dot (Matrix< T, M, N > const &A, Vector< S, N > const &u)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::dot (Vector< S, M > const &u, Matrix< T, M, N > const &A)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::dot (Matrix< T, M, N > const &A, Tensor< S, N > const &B)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::dot (Tensor< S, M > const &A, Matrix< T, M, N > const &B)
 
template<typename S , typename T , Index M, Index P, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::dot (Matrix< S, M, P > const &A, Matrix< T, P, N > const &B)
 
template<typename S , typename T , Index M, Index P, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::t_dot (Matrix< S, P, M > const &A, Matrix< T, P, N > const &B)
 
template<typename S , typename T , Index M, Index P, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::dot_t (Matrix< S, M, P > const &A, Matrix< T, N, P > const &B)
 
template<typename S , typename T , Index M, Index P, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::t_dot_t (Matrix< S, P, M > const &A, Matrix< T, N, P > const &B)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Promote< S, T >::type minitensor::dotdot (Matrix< S, M, N > const &A, Matrix< T, M, N > const &B)
 
template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::matrix (Vector< S, M > const &u, Vector< T, N > const &v)
 
template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< T, M, N > minitensor::transpose (Matrix< T, N, M > const &A)
 
template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< T, M, N > minitensor::adjoint (Matrix< T, N, M > const &A)
 
template<typename Store >
void minitensor::check_dynamic (Index const dimension)
 
KOKKOS_INLINE_FUNCTION minitensor::Storage< T, N >::Storage ()
 
KOKKOS_INLINE_FUNCTION minitensor::Storage< T, N >::Storage (Index const number_entries)
 
 minitensor::Storage< T, N >::Storage (Storage< T, N > const &s)=delete
 
Storage< T, N > & minitensor::Storage< T, N >::operator= (Storage< T, N > const &s)=delete
 
KOKKOS_INLINE_FUNCTION minitensor::Storage< T, N >::~Storage ()
 
KOKKOS_INLINE_FUNCTION T const & minitensor::Storage< T, N >::operator[] (Index const i) const
 
KOKKOS_INLINE_FUNCTION T & minitensor::Storage< T, N >::operator[] (Index const i)
 
KOKKOS_INLINE_FUNCTION Index minitensor::Storage< T, N >::size () const
 
KOKKOS_INLINE_FUNCTION void minitensor::Storage< T, N >::resize (Index const number_entries)
 
KOKKOS_INLINE_FUNCTION void minitensor::Storage< T, N >::clear ()
 
KOKKOS_INLINE_FUNCTION pointer_type minitensor::Storage< T, N >::get_pointer ()
 
KOKKOS_INLINE_FUNCTION const_pointer_type minitensor::Storage< T, N >::get_const_pointer () const
 
static KOKKOS_INLINE_FUNCTION constexpr Index minitensor::Storage< T, N >::static_size ()
 
KOKKOS_INLINE_FUNCTION minitensor::Storage< T, DYNAMIC >::Storage ()
 
KOKKOS_INLINE_FUNCTION minitensor::Storage< T, DYNAMIC >::Storage (Index const number_entries)
 
 minitensor::Storage< T, DYNAMIC >::Storage (Storage< T, DYNAMIC > const &s)=delete
 
Storage< T, DYNAMIC > & minitensor::Storage< T, DYNAMIC >::operator= (Storage< T, DYNAMIC > const &s)=delete
 
KOKKOS_INLINE_FUNCTION minitensor::Storage< T, DYNAMIC >::~Storage ()
 
KOKKOS_INLINE_FUNCTION T const & minitensor::Storage< T, DYNAMIC >::operator[] (Index const i) const
 
KOKKOS_INLINE_FUNCTION T & minitensor::Storage< T, DYNAMIC >::operator[] (Index const i)
 
KOKKOS_INLINE_FUNCTION Index minitensor::Storage< T, DYNAMIC >::size () const
 
KOKKOS_INLINE_FUNCTION void minitensor::Storage< T, DYNAMIC >::resize (Index const number_entries)
 
KOKKOS_INLINE_FUNCTION void minitensor::Storage< T, DYNAMIC >::clear ()
 
KOKKOS_INLINE_FUNCTION pointer_type minitensor::Storage< T, DYNAMIC >::get_pointer ()
 
KOKKOS_INLINE_FUNCTION const_pointer_type minitensor::Storage< T, DYNAMIC >::get_const_pointer () const
 
static KOKKOS_INLINE_FUNCTION constexpr Index minitensor::Storage< T, DYNAMIC >::static_size ()
 
static KOKKOS_INLINE_FUNCTION constexpr Index minitensor::Tensor< T, N >::get_order ()
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ()
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Index const dimension)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Filler const value)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Index const dimension, Filler const value)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Source const source, ArrayT &data, Index index1)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Source const source, ArrayT &data, Index index1, Index index2)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Source const source, ArrayT &data, Index index1, Index index2, Index index3)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Source const source, ArrayT &data, Index index1, Index index2, Index index3, Index index4)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Source const source, ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Source const source, ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5, Index index6)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Source const source, Index const dimension, ArrayT &data, Index index1)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Source const source, Index const dimension, ArrayT &data, Index index1, Index index2)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Source const source, Index const dimension, ArrayT &data, Index index1, Index index2, Index index3)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Source const source, Index const dimension, ArrayT &data, Index index1, Index index2, Index index3, Index index4)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Source const source, Index const dimension, ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Source const source, Index const dimension, ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5, Index index6)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (T const *data_ptr)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Index const dimension, T const *data_ptr)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Tensor< T, N > const &A)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Tensor4< T, dimension_sqrt< N >::value > const &A)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (T const &s00, T const &s01, T const &s10, T const &s11)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (T const &s00, T const &s01, T const &s02, T const &s10, T const &s11, T const &s12, T const &s20, T const &s21, T const &s22)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (T const *data_ptr, ComponentOrder const component_order)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor (Index const dimension, T const *data_ptr, ComponentOrder const component_order)
 
virtual KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::~Tensor ()
 
KOKKOS_INLINE_FUNCTION T const & minitensor::Tensor< T, N >::operator() (Index const i, Index const j) const
 
KOKKOS_INLINE_FUNCTION T & minitensor::Tensor< T, N >::operator() (Index const i, Index const j)
 
KOKKOS_INLINE_FUNCTION Index minitensor::Tensor< T, N >::get_dimension () const
 
KOKKOS_INLINE_FUNCTION Index minitensor::Tensor< T, N >::get_num_rows () const
 
KOKKOS_INLINE_FUNCTION Index minitensor::Tensor< T, N >::get_num_cols () const
 
KOKKOS_INLINE_FUNCTION void minitensor::Tensor< T, N >::set_dimension (Index const dimension)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::operator+ (Tensor< S, N > const &A, Tensor< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::operator- (Tensor< S, N > const &A, Tensor< T, N > const &B)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > minitensor::operator- (Tensor< T, N > const &A)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator== (Tensor< T, N > const &A, Tensor< T, N > const &B)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator!= (Tensor< T, N > const &A, Tensor< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::operator* (Tensor< T, N > const &A, Vector< S, N > const &u)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::operator* (Vector< S, N > const &u, Tensor< T, N > const &A)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::operator* (Tensor< S, N > const &A, Tensor< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_tensor< Promote< S, T >, N > >::type minitensor::operator* (S const &s, Tensor< T, N > const &A)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_tensor< Promote< S, T >, N > >::type minitensor::operator* (Tensor< T, N > const &A, S const &s)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::operator/ (Tensor< T, N > const &A, S const &s)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::operator/ (S const &s, Tensor< T, N > const &A)
 
template<typename T , Index N>
std::istream & minitensor::operator>> (std::istream &is, Tensor< T, N > &A)
 
template<typename T , Index N>
std::ostream & minitensor::operator<< (std::ostream &os, Tensor< T, N > const &A)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< T, N > minitensor::row (Tensor< T, N > const &A, Index const i)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< T, N > minitensor::col (Tensor< T, N > const &A, Index const j)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::dot (Tensor< T, N > const &A, Vector< S, N > const &u)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::dot (Vector< S, N > const &u, Tensor< T, N > const &A)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dot (Tensor< S, N > const &A, Tensor< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::t_dot (Tensor< S, N > const &A, Tensor< T, N > const &B)
 
template<typename S , typename T , Index N, Index P>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, N, P > minitensor::t_dot (Tensor< S, N > const &A, Matrix< T, N, P > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::t_dot (Tensor< S, N > const &A, Vector< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dot_t (Tensor< S, N > const &A, Tensor< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::t_dot_t (Tensor< S, N > const &A, Tensor< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Promote< S, T >::type minitensor::dotdot (Tensor< S, N > const &A, Tensor< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dyad (Vector< S, N > const &u, Vector< T, N > const &v)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::bun (Vector< S, N > const &u, Vector< T, N > const &v)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::tensor (Vector< S, N > const &u, Vector< T, N > const &v)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > minitensor::diag (Vector< T, N > const &v)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< T, N > minitensor::diag (Tensor< T, N > const &A)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::zero ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor< T, DYNAMIC > const minitensor::zero (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::zero (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::identity ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor< T, DYNAMIC > const minitensor::identity (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::identity (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::eye ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor< T, DYNAMIC > const minitensor::eye (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::eye (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::levi_civita_2 ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor< T, DYNAMIC > const minitensor::levi_civita_2 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::levi_civita_2 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::permutation_2 ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor< T, DYNAMIC > const minitensor::permutation_2 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::permutation_2 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::alternator_2 ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor< T, DYNAMIC > const minitensor::alternator_2 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::alternator_2 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > minitensor::transpose (Tensor< T, N > const &A)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > minitensor::adjoint (Tensor< T, N > const &A)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > minitensor::sym (Tensor< T, N > const &A)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > minitensor::skew (Tensor< T, N > const &A)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > minitensor::skew (Vector< T, N > const &u)
 
static KOKKOS_INLINE_FUNCTION constexpr Index minitensor::Tensor3< T, N >::get_order ()
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::Tensor3 ()
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::Tensor3 (Index const dimension)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::Tensor3 (Filler const value)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::Tensor3 (Index const dimension, Filler const value)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::Tensor3 (T const *data_ptr)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::Tensor3 (Index const dimension, T const *data_ptr)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::Tensor3 (Tensor3< T, N > const &A)
 
virtual KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::~Tensor3 ()
 
KOKKOS_INLINE_FUNCTION T const & minitensor::Tensor3< T, N >::operator() (Index const i, Index const j, Index const k) const
 
KOKKOS_INLINE_FUNCTION T & minitensor::Tensor3< T, N >::operator() (Index const i, Index const j, Index const k)
 
KOKKOS_INLINE_FUNCTION Index minitensor::Tensor3< T, N >::get_dimension () const
 
KOKKOS_INLINE_FUNCTION void minitensor::Tensor3< T, N >::set_dimension (Index const dimension)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::operator+ (Tensor3< S, N > const &A, Tensor3< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::operator- (Tensor3< S, N > const &A, Tensor3< T, N > const &B)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< T, N > minitensor::operator- (Tensor3< T, N > const &A)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator== (Tensor3< T, N > const &A, Tensor3< T, N > const &B)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator!= (Tensor3< T, N > const &A, Tensor3< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_tensor3< Promote< S, T >, N > >::type minitensor::operator* (S const &s, Tensor3< T, N > const &A)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_tensor3< Promote< S, T >, N > >::type minitensor::operator* (Tensor3< T, N > const &A, S const &s)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::operator/ (Tensor3< T, N > const &A, S const &s)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::operator/ (S const &s, Tensor3< T, N > const &A)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::dotdot (Tensor3< T, N > const &A, Tensor< S, N > const &u)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dot (Tensor3< T, N > const &A, Vector< S, N > const &u)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dot (Vector< S, N > const &u, Tensor3< T, N > const &A)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dot2 (Tensor3< T, N > const &A, Vector< S > const &u)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dot2 (Vector< S, N > const &u, Tensor3< T, N > const &A)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot (Tensor3< T, N > const &A, Tensor< S, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot (Tensor< S, N > const &A, Tensor3< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot2 (Tensor3< T, N > const &A, Tensor< S, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot2 (Tensor< S, N > const &A, Tensor3< T, N > const &B)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< T, N > const minitensor::levi_civita_3 ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor3< T, DYNAMIC > const minitensor::levi_civita_3 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< T, N > const minitensor::levi_civita_3 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< T, N > const minitensor::permutation_3 ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor3< T, DYNAMIC > const minitensor::permutation_3 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< T, N > const minitensor::permutation_3 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< T, N > const minitensor::alternator_3 ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor3< T, DYNAMIC > const minitensor::alternator_3 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< T, N > const minitensor::alternator_3 (Index const dimension)
 
template<typename T , Index N>
std::istream & minitensor::operator>> (std::istream &is, Tensor3< T, N > &A)
 
template<typename T , Index N>
std::ostream & minitensor::operator<< (std::ostream &os, Tensor3< T, N > const &A)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dot2 (Tensor3< T, N > const &A, Vector< S, N > const &u)
 
static KOKKOS_INLINE_FUNCTION constexpr Index minitensor::Tensor4< T, N >::get_order ()
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 ()
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 (Index const dimension)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 (Filler const value)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 (Index const dimension, Filler const value)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 (T const *data_ptr)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 (Index const dimension, T const *data_ptr)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 (Tensor4< T, N > const &A)
 
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 (Tensor< T, dimension_square< N >::value > const &A)
 
virtual KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::~Tensor4 ()
 
KOKKOS_INLINE_FUNCTION T const & minitensor::Tensor4< T, N >::operator() (Index const i, Index const j, Index const k, Index const l) const
 
KOKKOS_INLINE_FUNCTION T & minitensor::Tensor4< T, N >::operator() (Index const i, Index const j, Index const k, Index const l)
 
KOKKOS_INLINE_FUNCTION Index minitensor::Tensor4< T, N >::get_dimension () const
 
KOKKOS_INLINE_FUNCTION void minitensor::Tensor4< T, N >::set_dimension (Index const dimension)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::operator+ (Tensor4< S, N > const &A, Tensor4< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::operator- (Tensor4< S, N > const &A, Tensor4< T, N > const &B)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > minitensor::operator- (Tensor4< T, N > const &A)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator== (Tensor4< T, N > const &A, Tensor4< T, N > const &B)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator!= (Tensor4< T, N > const &A, Tensor4< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_tensor4< Promote< S, T >, N > >::type minitensor::operator* (S const &s, Tensor4< T, N > const &A)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_tensor4< Promote< S, T >, N > >::type minitensor::operator* (Tensor4< T, N > const &A, S const &s)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::operator/ (Tensor4< T, N > const &A, S const &s)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::operator/ (S const &s, Tensor4< T, N > const &A)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > minitensor::transpose (Tensor4< T, N > const &A)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::identity_1 ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor4< T, DYNAMIC > const minitensor::identity_1 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::identity_1 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::identity_2 ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor4< T, DYNAMIC > const minitensor::identity_2 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::identity_2 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::identity_3 ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor4< T, DYNAMIC > const minitensor::identity_3 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::identity_3 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::levi_civita_4 ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor4< T, DYNAMIC > const minitensor::levi_civita_4 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::levi_civita_4 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::permutation_4 ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor4< T, DYNAMIC > const minitensor::permutation_4 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::permutation_4 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::alternator_4 ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION Tensor4< T, DYNAMIC > const minitensor::alternator_4 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::alternator_4 (Index const dimension)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > minitensor::inverse (Tensor4< T, N > const &A)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot (Tensor4< T, N > const &A, Vector< S, N > const &u)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot (Vector< S, N > const &u, Tensor4< T, N > const &A)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot2 (Tensor4< T, N > const &A, Vector< S, N > const &u)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot2 (Vector< S, N > const &u, Tensor4< T, N > const &A)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dotdot (Tensor4< T, N > const &A, Tensor< S, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dotdot (Tensor< S, N > const &B, Tensor4< T, N > const &A)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dotdot (Tensor4< S, N > const &A, Tensor4< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::tensor (Tensor< S, N > const &A, Tensor< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::tensor2 (Tensor< S, N > const &A, Tensor< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::tensor3 (Tensor< S, N > const &A, Tensor< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dot (Tensor4< T, N > const &A, Tensor< S, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dot_t (Tensor4< T, N > const &A, Tensor< S, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dot (Tensor< S > const &A, Tensor4< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::t_dot (Tensor< S, N > const &A, Tensor4< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dot2 (Tensor4< T, N > const &A, Tensor< S, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dot2_t (Tensor4< T, N > const &A, Tensor< S, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dot2 (Tensor< S, N > const &A, Tensor4< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::t_dot2 (Tensor< S, N > const &A, Tensor4< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::odot (Tensor< S, N > const &A, Tensor< T, N > const &B)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::kronecker (Tensor< S, N > const &A, Tensor4< T, N > const &B)
 
template<typename T , Index N>
std::istream & minitensor::operator>> (std::istream &is, Tensor4< T, N > &A)
 
template<typename T , Index N>
std::ostream & minitensor::operator<< (std::ostream &os, Tensor4< T, N > const &A)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dot (Tensor< S, N > const &A, Tensor4< T, N > const &B)
 
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase ()
 
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase (Index const dimension, Index const order)
 
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase (Index const dimension, Index const order, Filler const value)
 
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase (Index const dimension, Index const order, T const &s)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase (Index const dimension, Index const order, ArrayT &data, Index index1)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase (Index const dimension, Index const order, ArrayT &data, Index index1, Index index2)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase (Index const dimension, Index const order, ArrayT &data, Index index1, Index index2, Index index3)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase (Index const dimension, Index const order, ArrayT &data, Index index1, Index index2, Index index3, Index index4)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase (Index const dimension, Index const order, ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase (Index const dimension, Index const order, ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5, Index index6)
 
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase (Index const dimension, Index const order, T const *data_ptr)
 
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase (TensorBase< T, ST > const &X)
 
KOKKOS_INLINE_FUNCTION TensorBase< T, ST > & minitensor::TensorBase< T, ST >::operator= (TensorBase< T, ST > const &X)
 
KOKKOS_INLINE_FUNCTION T const & minitensor::TensorBase< T, ST >::operator[] (Index const i) const
 
KOKKOS_INLINE_FUNCTION T & minitensor::TensorBase< T, ST >::operator[] (Index const i)
 
KOKKOS_INLINE_FUNCTION Index minitensor::TensorBase< T, ST >::get_number_components () const
 
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill (Filler const value)
 
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill (T const &s)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill (ArrayT &data, Index index1)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill (ArrayT &data, Index index1, Index index2)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill (ArrayT &data, Index index1, Index index2, Index index3)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill (ArrayT &data, Index index1, Index index2, Index index3, Index index4)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill (ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill (ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5, Index index6)
 
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill (T const *data_ptr)
 
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill (T const *data_ptr, ComponentOrder const component_order)
 
template<typename S , typename SS >
KOKKOS_INLINE_FUNCTION TensorBase< T, ST > & minitensor::TensorBase< T, ST >::operator+= (TensorBase< S, SS > const &X)
 
template<typename S , typename SS >
KOKKOS_INLINE_FUNCTION TensorBase< T, ST > & minitensor::TensorBase< T, ST >::operator-= (TensorBase< S, SS > const &X)
 
template<typename S >
KOKKOS_INLINE_FUNCTION TensorBase< T, ST > & minitensor::TensorBase< T, ST >::operator*= (S const &X)
 
template<typename S >
KOKKOS_INLINE_FUNCTION TensorBase< T, ST > & minitensor::TensorBase< T, ST >::operator/= (S const &X)
 
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::clear ()
 
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::set_number_components (Index const number_components)
 
KOKKOS_INLINE_FUNCTION Index minitensor::TensorBase< T, ST >::get_dimension (Index const order) const
 
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::set_dimension (Index const dimension, Index const order)
 
template<typename T , typename ST >
KOKKOS_INLINE_FUNCTIONminitensor::norm_f (TensorBase< T, ST > const &X)
 
template<typename T , typename ST >
KOKKOS_INLINE_FUNCTIONminitensor::norm_f_square (TensorBase< T, ST > const &X)
 
template<typename R , typename S , typename T , typename SR , typename SS , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::add (TensorBase< R, SR > const &A, TensorBase< S, SS > const &B, TensorBase< T, ST > &C)
 
template<typename R , typename S , typename T , typename SR , typename SS , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::subtract (TensorBase< R, SR > const &A, TensorBase< S, SS > const &B, TensorBase< T, ST > &C)
 
template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::minus (TensorBase< T, ST > const &A, TensorBase< T, ST > &B)
 
template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION bool minitensor::equal (TensorBase< T, ST > const &A, TensorBase< T, ST > const &B)
 
template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION bool minitensor::not_equal (TensorBase< T, ST > const &A, TensorBase< T, ST > const &B)
 
template<typename R , typename S , typename T , typename SR , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::scale (TensorBase< R, SR > const &A, S const &s, TensorBase< T, ST > &B)
 
template<typename R , typename S , typename T , typename SR , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::divide (TensorBase< R, SR > const &A, S const &s, TensorBase< T, ST > &B)
 
template<typename R , typename S , typename T , typename SR , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::split (TensorBase< R, SR > const &A, S const &s, TensorBase< T, ST > &B)
 
static KOKKOS_INLINE_FUNCTION constexpr Index minitensor::Vector< T, N >::get_order ()
 
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ()
 
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Index const dimension)
 
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Filler const value)
 
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Index const dimension, Filler const value)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Source const source, ArrayT &data, Index index1)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Source const source, ArrayT &data, Index index1, Index index2)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Source const source, ArrayT &data, Index index1, Index index2, Index index3)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Source const source, ArrayT &data, Index index1, Index index2, Index index3, Index index4)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Source const source, ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Source const source, ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5, Index index6)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Source const source, Index const dimension, ArrayT &data, Index index1)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Source const source, Index const dimension, ArrayT &data, Index index1, Index index2)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Source const source, Index const dimension, ArrayT &data, Index index1, Index index2, Index index3)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Source const source, Index const dimension, ArrayT &data, Index index1, Index index2, Index index3, Index index4)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Source const source, Index const dimension, ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5)
 
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Source const source, Index const dimension, ArrayT &data, Index index1, Index index2, Index index3, Index index4, Index index5, Index index6)
 
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (T const *data_ptr)
 
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Index const dimension, T const *data_ptr)
 
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (Vector< T, N > const &v)
 
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (T const &s0, T const &s1)
 
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector (T const &s0, T const &s1, T const &s2)
 
virtual KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::~Vector ()
 
KOKKOS_INLINE_FUNCTION T const & minitensor::Vector< T, N >::operator() (Index const i) const
 
KOKKOS_INLINE_FUNCTION T & minitensor::Vector< T, N >::operator() (Index const i)
 
KOKKOS_INLINE_FUNCTION T const & minitensor::Vector< T, N >::operator() (Index const i, Index const) const
 
KOKKOS_INLINE_FUNCTION T & minitensor::Vector< T, N >::operator() (Index const i, Index const)
 
KOKKOS_INLINE_FUNCTION Index minitensor::Vector< T, N >::get_dimension () const
 
KOKKOS_INLINE_FUNCTION Index minitensor::Vector< T, N >::get_num_rows () const
 
KOKKOS_INLINE_FUNCTION Index minitensor::Vector< T, N >::get_num_cols () const
 
KOKKOS_INLINE_FUNCTION void minitensor::Vector< T, N >::set_dimension (Index const dimension)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::operator+ (Vector< S, N > const &u, Vector< T, N > const &v)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::operator- (Vector< S, N > const &u, Vector< T, N > const &v)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< T, N > minitensor::operator- (Vector< T, N > const &u)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Promote< S, T >::type minitensor::operator* (Vector< S, N > const &u, Vector< T, N > const &v)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator== (Vector< T, N > const &u, Vector< T, N > const &v)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator!= (Vector< T, N > const &u, Vector< T, N > const &v)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_vector< Promote< S, T >, N > >::type minitensor::operator* (S const &s, Vector< T, N > const &u)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_vector< Promote< S, T >, N > >::type minitensor::operator* (Vector< T, N > const &u, S const &s)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::operator/ (Vector< T, N > const &u, S const &s)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::operator/ (S const &s, Vector< T, N > const &u)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Promote< S, T >::type minitensor::dot (Vector< S, N > const &u, Vector< T, N > const &v)
 
template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::cross (Vector< S, N > const &u, Vector< T, N > const &v)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTIONminitensor::norm (Vector< T, N > const &u)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTIONminitensor::norm_square (Vector< T, N > const &u)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTIONminitensor::norm_1 (Vector< T, N > const &u)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTIONminitensor::norm_infinity (Vector< T, N > const &u)
 
template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< T, N > minitensor::unit (Vector< T, N > const &u)
 
template<typename T , Index N>
std::pair< Vector< T, N >, T > minitensor::house (Vector< T, N > const &x)
 
template<typename T , Index N>
std::istream & minitensor::operator>> (std::istream &is, Vector< T, N > &u)
 
template<typename T , Index N>
std::ostream & minitensor::operator<< (std::ostream &os, Vector< T, N > const &u)
 

Variables

static constexpr Index minitensor::Matrix< T, M, N >::ORDER = 1
 
static constexpr bool minitensor::Matrix< T, M, N >::IS_DYNAMIC = (M == DYNAMIC || N == DYNAMIC)
 
Index minitensor::Matrix< T, M, N >::rows_ {M}
 
Index minitensor::Matrix< T, M, N >::cols_ {N}
 
static constexpr Index minitensor::dimension_const< N, C >::value = C
 
static constexpr Index minitensor::dimension_const< DYNAMIC, C >::value = DYNAMIC
 
static constexpr Index minitensor::check_static< D >::maximum_dimension
 
static constexpr Index minitensor::check_static< D >::value = D
 
static constexpr Index minitensor::dimension_power< D, O >::value = 0
 
static constexpr Index minitensor::dimension_power< D, 1 >::value = D
 
static constexpr Index minitensor::dimension_power< D, 2 >::value = D * D
 
static constexpr Index minitensor::dimension_power< D, 3 >::value = D * D * D
 
static constexpr Index minitensor::dimension_power< D, 4 >::value = D * D * D * D
 
static constexpr Index minitensor::dimension_square< N >::value = 0
 
static constexpr Index minitensor::dimension_square< DYNAMIC >::value = DYNAMIC
 
static constexpr Index minitensor::dimension_square< 1 >::value = 1
 
static constexpr Index minitensor::dimension_square< 2 >::value = 4
 
static constexpr Index minitensor::dimension_square< 3 >::value = 9
 
static constexpr Index minitensor::dimension_square< 4 >::value = 16
 
static constexpr Index minitensor::dimension_sqrt< N >::value = 0
 
static constexpr Index minitensor::dimension_sqrt< DYNAMIC >::value = DYNAMIC
 
static constexpr Index minitensor::dimension_sqrt< 1 >::value = 1
 
static constexpr Index minitensor::dimension_sqrt< 4 >::value = 2
 
static constexpr Index minitensor::dimension_sqrt< 9 >::value = 3
 
static constexpr Index minitensor::dimension_sqrt< 16 >::value = 4
 
static constexpr Index minitensor::dimension_add< N, P >::value = N + P
 
static constexpr Index minitensor::dimension_add< DYNAMIC, P >::value = DYNAMIC
 
static constexpr Index minitensor::dimension_subtract< N, P >::value = N - P
 
static constexpr Index minitensor::dimension_subtract< DYNAMIC, P >::value = DYNAMIC
 
static constexpr Index minitensor::dimension_product< N, P >::value = N * P
 
static constexpr Index minitensor::dimension_product< N, DYNAMIC >::value = DYNAMIC
 
static constexpr Index minitensor::dimension_product< DYNAMIC, P >::value = DYNAMIC
 
static constexpr Index minitensor::dimension_product< DYNAMIC, DYNAMIC >::value = DYNAMIC
 
static constexpr bool minitensor::Storage< T, N >::IS_STATIC = true
 
static constexpr bool minitensor::Storage< T, N >::IS_DYNAMIC = false
 
minitensor::Storage< T, N >::storage_ [N]
 
Index minitensor::Storage< T, N >::size_ {N}
 
static constexpr bool minitensor::Storage< T, DYNAMIC >::IS_DYNAMIC = true
 
static constexpr bool minitensor::Storage< T, DYNAMIC >::IS_STATIC = false
 
T * minitensor::Storage< T, DYNAMIC >::storage_ {nullptr}
 
Index minitensor::Storage< T, DYNAMIC >::size_ {0}
 
static constexpr Index minitensor::Tensor< T, N >::ORDER = 2
 
static constexpr bool minitensor::Tensor< T, N >::IS_DYNAMIC = N == DYNAMIC
 
static constexpr Index minitensor::Tensor3< T, N >::ORDER = 3
 
static constexpr bool minitensor::Tensor3< T, N >::IS_DYNAMIC = N == DYNAMIC
 
static constexpr Index minitensor::Tensor4< T, N >::ORDER = 4
 
static constexpr bool minitensor::Tensor4< T, N >::IS_DYNAMIC = N == DYNAMIC
 
ST minitensor::TensorBase< T, ST >::components_
 
Index minitensor::TensorBase< T, ST >::dimension_ {0}
 
static constexpr Index minitensor::Vector< T, N >::ORDER = 1
 
static constexpr bool minitensor::Vector< T, N >::IS_DYNAMIC = N == DYNAMIC
 

Detailed Description

Vectors, second- to fourth-order tensors, and general matrices, with static (compile-time) or dynamic storage.

Typedef Documentation

◆ matrix_store

template<typename T , Index M, Index N>
using minitensor::matrix_store = typedef Storage<T, dimension_product<M, N>::value>

Storage type alias for Matrix.

Definition at line 31 of file MiniTensor_Matrix.h.

◆ Store [1/5]

template<typename T , Index M = DYNAMIC, Index N = DYNAMIC>
using minitensor::Matrix< T, M, N >::Store = matrix_store<T, M, N>

Storage type

Definition at line 58 of file MiniTensor_Matrix.h.

◆ value_type [1/3]

template<typename T , Index N>
using minitensor::Storage< T, N >::value_type = T

Type of the stored entries.

Definition at line 327 of file MiniTensor_Storage.h.

◆ pointer_type [1/2]

template<typename T , Index N>
using minitensor::Storage< T, N >::pointer_type = T *

Pointer to an entry.

Definition at line 331 of file MiniTensor_Storage.h.

◆ reference_type [1/2]

template<typename T , Index N>
using minitensor::Storage< T, N >::reference_type = T &

Reference to an entry.

Definition at line 335 of file MiniTensor_Storage.h.

◆ const_pointer_type [1/2]

template<typename T , Index N>
using minitensor::Storage< T, N >::const_pointer_type = T const *

Pointer to a constant entry.

Definition at line 339 of file MiniTensor_Storage.h.

◆ const_reference_type [1/2]

template<typename T , Index N>
using minitensor::Storage< T, N >::const_reference_type = T const &

Reference to a constant entry.

Definition at line 343 of file MiniTensor_Storage.h.

◆ value_type [2/3]

template<typename T >
using minitensor::Storage< T, DYNAMIC >::value_type = T

Type of the stored entries.

Definition at line 492 of file MiniTensor_Storage.h.

◆ pointer_type [2/2]

template<typename T >
using minitensor::Storage< T, DYNAMIC >::pointer_type = T *

Pointer to an entry.

Definition at line 496 of file MiniTensor_Storage.h.

◆ reference_type [2/2]

template<typename T >
using minitensor::Storage< T, DYNAMIC >::reference_type = T &

Reference to an entry.

Definition at line 500 of file MiniTensor_Storage.h.

◆ const_pointer_type [2/2]

template<typename T >
using minitensor::Storage< T, DYNAMIC >::const_pointer_type = T const *

Pointer to a constant entry.

Definition at line 504 of file MiniTensor_Storage.h.

◆ const_reference_type [2/2]

template<typename T >
using minitensor::Storage< T, DYNAMIC >::const_reference_type = T const &

Reference to a constant entry.

Definition at line 508 of file MiniTensor_Storage.h.

◆ tensor_store

template<typename T , Index N>
using minitensor::tensor_store = typedef Storage<T, dimension_power<N, 2>::value>

Storage type alias for Tensor.

Definition at line 31 of file MiniTensor_Tensor.h.

◆ Store [2/5]

template<typename T , Index N = DYNAMIC>
using minitensor::Tensor< T, N >::Store = tensor_store<T, N>

Storage type

Definition at line 58 of file MiniTensor_Tensor.h.

◆ tensor3_store

template<typename T , Index N>
using minitensor::tensor3_store = typedef Storage<T, dimension_power<N, 3>::value>

Storage type alias for Tensor3.

Definition at line 26 of file MiniTensor_Tensor3.h.

◆ Store [3/5]

template<typename T , Index N = DYNAMIC>
using minitensor::Tensor3< T, N >::Store = tensor3_store<T, N>

Storage type

Definition at line 53 of file MiniTensor_Tensor3.h.

◆ tensor4_store

template<typename T , Index N>
using minitensor::tensor4_store = typedef Storage<T, dimension_power<N, 4>::value>

Storage type alias for Tensor4.

Definition at line 26 of file MiniTensor_Tensor4.h.

◆ Store [4/5]

template<typename T , Index N = DYNAMIC>
using minitensor::Tensor4< T, N >::Store = tensor4_store<T, N>

Storage type

Definition at line 53 of file MiniTensor_Tensor4.h.

◆ value_type [3/3]

template<typename T , typename ST >
using minitensor::TensorBase< T, ST >::value_type = T

Component type

Definition at line 68 of file MiniTensor_TensorBase.h.

◆ storage_type

template<typename T , typename ST >
using minitensor::TensorBase< T, ST >::storage_type = ST

Storage type

Definition at line 73 of file MiniTensor_TensorBase.h.

◆ vector_store

template<typename T , Index N>
using minitensor::vector_store = typedef Storage<T, dimension_power<N, 1>::value>

Storage type alias for Vector.

Definition at line 30 of file MiniTensor_Vector.h.

◆ Store [5/5]

template<typename T , Index N = DYNAMIC>
using minitensor::Vector< T, N >::Store = vector_store<T, N>

Storage type

Definition at line 57 of file MiniTensor_Vector.h.

Enumeration Type Documentation

◆ Filler

enum class minitensor::Filler
strong

Type for setting components all at once

Enumerator
ZEROS 
ONES 
SEQUENCE 
RANDOM 
RANDOM_UNIFORM 
RANDOM_NORMAL 
NANS 

Definition at line 29 of file MiniTensor_TensorBase.h.

◆ ComponentOrder

enum class minitensor::ComponentOrder
strong

Component ordering convention

Enumerator
CANONICAL 
SIERRA_FULL 
SIERRA_SYMMETRIC 

Definition at line 42 of file MiniTensor_TensorBase.h.

◆ Source

enum class minitensor::Source
strong

Initialization sources

Enumerator
ARRAY 

Definition at line 51 of file MiniTensor_TensorBase.h.

Function Documentation

◆ get_order() [1/5]

template<typename T , Index M = DYNAMIC, Index N = DYNAMIC>
static KOKKOS_INLINE_FUNCTION constexpr Index minitensor::Matrix< T, M, N >::get_order ( )
inlinestaticconstexpr

Matrix order

Definition at line 66 of file MiniTensor_Matrix.h.

◆ Matrix() [1/19]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( )
explicit

Constructor that initializes to NaNs

Definition at line 759 of file MiniTensor_Matrix.h.

◆ Matrix() [2/19]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Index const  rows,
Index const  cols 
)
explicit

Constructor that initializes to NaNs.

Parameters
rowsNumber of rows
colsNumber of columns

Definition at line 768 of file MiniTensor_Matrix.h.

◆ Matrix() [3/19]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Filler const  value)
explicit

Create tensor from a specified value

Parameters
valueall components are set equal to this

Definition at line 780 of file MiniTensor_Matrix.h.

◆ Matrix() [4/19]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Index const  rows,
Index  cols,
Filler const  value 
)
explicit

Create matrix from a specified value.

Parameters
rowsNumber of rows
colsNumber of columns
valueall components are set equal to this

Definition at line 788 of file MiniTensor_Matrix.h.

◆ Matrix() [5/19]

template<typename T , Index M, Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Source const  source,
ArrayT &  data,
Index  index1 
)

Create tensor from array

Parameters
sourcekind of data source (Source::ARRAY)
dataarray with source components
index1first index into the array

Definition at line 805 of file MiniTensor_Matrix.h.

◆ Matrix() [6/19]

template<typename T , Index M, Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2 
)

Create matrix from array.

Parameters
sourcekind of data source (Source::ARRAY)
dataarray with source components
index1first index into the array
index2second index into the array

Definition at line 817 of file MiniTensor_Matrix.h.

◆ Matrix() [7/19]

template<typename T , Index M, Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3 
)

Create matrix from array.

Parameters
sourcekind of data source (Source::ARRAY)
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array

Definition at line 830 of file MiniTensor_Matrix.h.

◆ Matrix() [8/19]

template<typename T , Index M, Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4 
)

Create matrix from array.

Parameters
sourcekind of data source (Source::ARRAY)
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array
index4fourth index into the array

Definition at line 844 of file MiniTensor_Matrix.h.

◆ Matrix() [9/19]

template<typename T , Index M, Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5 
)

Create matrix from array.

Parameters
sourcekind of data source (Source::ARRAY)
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array
index4fourth index into the array
index5fifth index into the array

Definition at line 866 of file MiniTensor_Matrix.h.

◆ Matrix() [10/19]

template<typename T , Index M, Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5,
Index  index6 
)

Create matrix from array.

Parameters
sourcekind of data source (Source::ARRAY)
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array
index4fourth index into the array
index5fifth index into the array
index6sixth index into the array

Definition at line 890 of file MiniTensor_Matrix.h.

◆ Matrix() [11/19]

template<typename T , Index M, Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Source const  source,
Index const  rows,
Index const  cols,
ArrayT &  data,
Index  index1 
)

Create matrix from array.

Parameters
sourcekind of data source (Source::ARRAY)
rowsNumber of rows
colsNumber of columns
dataarray with source components
index1first index into the array

Definition at line 916 of file MiniTensor_Matrix.h.

◆ Matrix() [12/19]

template<typename T , Index M, Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Source const  source,
Index const  rows,
Index const  cols,
ArrayT &  data,
Index  index1,
Index  index2 
)

Create matrix from array.

Parameters
sourcekind of data source (Source::ARRAY)
rowsNumber of rows
colsNumber of columns
dataarray with source components
index1first index into the array
index2second index into the array

Definition at line 931 of file MiniTensor_Matrix.h.

◆ Matrix() [13/19]

template<typename T , Index M, Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Source const  source,
Index const  rows,
Index const  cols,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3 
)

Create matrix from array.

Parameters
sourcekind of data source (Source::ARRAY)
rowsNumber of rows
colsNumber of columns
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array

Definition at line 947 of file MiniTensor_Matrix.h.

◆ Matrix() [14/19]

template<typename T , Index M, Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Source const  source,
Index const  rows,
Index const  cols,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4 
)

Create matrix from array.

Parameters
sourcekind of data source (Source::ARRAY)
rowsNumber of rows
colsNumber of columns
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array
index4fourth index into the array

Definition at line 970 of file MiniTensor_Matrix.h.

◆ Matrix() [15/19]

template<typename T , Index M, Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Source const  source,
Index const  rows,
Index const  cols,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5 
)

Create matrix from array.

Parameters
sourcekind of data source (Source::ARRAY)
rowsNumber of rows
colsNumber of columns
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array
index4fourth index into the array
index5fifth index into the array

Definition at line 995 of file MiniTensor_Matrix.h.

◆ Matrix() [16/19]

template<typename T , Index M, Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Source const  source,
Index const  rows,
Index const  cols,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5,
Index  index6 
)

Create matrix from array.

Parameters
sourcekind of data source (Source::ARRAY)
rowsNumber of rows
colsNumber of columns
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array
index4fourth index into the array
index5fifth index into the array
index6sixth index into the array

Definition at line 1022 of file MiniTensor_Matrix.h.

◆ Matrix() [17/19]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( T const *  data_ptr)
explicit

Create matrix from array defined by pointer.

Parameters
data_ptrpointer into the array

Definition at line 1050 of file MiniTensor_Matrix.h.

◆ Matrix() [18/19]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Index const  rows,
Index  cols,
T const *  data_ptr 
)
explicit

Create matrix from array defined by pointer.

Parameters
rowsNumber of rows
colsNumber of columns
data_ptrpointer into the array

Definition at line 1058 of file MiniTensor_Matrix.h.

◆ Matrix() [19/19]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::Matrix ( Matrix< T, M, N > const &  A)

Copy constructor

Definition at line 1073 of file MiniTensor_Matrix.h.

◆ ~Matrix()

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION minitensor::Matrix< T, M, N >::~Matrix ( )
virtual

Simple destructor

Definition at line 1085 of file MiniTensor_Matrix.h.

◆ operator()() [1/12]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION T const & minitensor::Matrix< T, M, N >::operator() ( Index const  i,
Index const  j 
) const

Indexing for constant tensor

Parameters
iindex
jindex

Definition at line 1144 of file MiniTensor_Matrix.h.

◆ operator()() [2/12]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION T & minitensor::Matrix< T, M, N >::operator() ( Index const  i,
Index const  j 
)

Matrix indexing

Parameters
iindex
jindex

Definition at line 1161 of file MiniTensor_Matrix.h.

◆ get_dimensions()

template<typename T , Index M, Index N>
std::pair< Index, Index > minitensor::Matrix< T, M, N >::get_dimensions ( ) const
inline
Returns
dimensions

Definition at line 1096 of file MiniTensor_Matrix.h.

◆ get_num_rows() [1/3]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Index minitensor::Matrix< T, M, N >::get_num_rows ( ) const
Returns
number rows

Definition at line 1107 of file MiniTensor_Matrix.h.

◆ get_num_cols() [1/3]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Index minitensor::Matrix< T, M, N >::get_num_cols ( ) const
Returns
number rows

Definition at line 1118 of file MiniTensor_Matrix.h.

◆ set_dimensions()

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION void minitensor::Matrix< T, M, N >::set_dimensions ( Index const  rows,
Index const  cols 
)
Parameters
rowsNumber of rows
colsNumber of columns

Definition at line 1129 of file MiniTensor_Matrix.h.

◆ operator+() [1/5]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::operator+ ( Matrix< S, M, N > const &  A,
Matrix< T, M, N > const &  B 
)

Matrix addition

Returns
\( A + B \)

Definition at line 1250 of file MiniTensor_Matrix.h.

◆ operator-() [1/10]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::operator- ( Matrix< S, M, N > const &  A,
Matrix< T, M, N > const &  B 
)

Matrix subtraction

Returns
\( A - B \)

Definition at line 1266 of file MiniTensor_Matrix.h.

◆ operator-() [2/10]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< T, M, N > minitensor::operator- ( Matrix< T, M, N > const &  A)

Matrix minus

Returns
\( -A \)

Definition at line 1282 of file MiniTensor_Matrix.h.

◆ operator==() [1/5]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator== ( Matrix< T, M, N > const &  A,
Matrix< T, M, N > const &  B 
)

Matrix equality Tested by components

Returns
\( A \equiv B \)

Definition at line 1298 of file MiniTensor_Matrix.h.

◆ operator!=() [1/5]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator!= ( Matrix< T, M, N > const &  A,
Matrix< T, M, N > const &  B 
)

Matrix inequality Tested by components

Returns
\( A \neq B \)

Definition at line 1309 of file MiniTensor_Matrix.h.

◆ operator*() [1/19]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, M > minitensor::operator* ( Matrix< T, M, N > const &  A,
Vector< S, N > const &  u 
)

Matrix vector product v = A u

Parameters
Amatrix
uvector
Returns
\( A u \)

Definition at line 1386 of file MiniTensor_Matrix.h.

◆ operator*() [2/19]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::operator* ( Vector< S, M > const &  u,
Matrix< T, M, N > const &  A 
)

Vector matrix product v = u A

Parameters
Amatrix
uvector
Returns
\( u A = A^T u \)

Definition at line 1397 of file MiniTensor_Matrix.h.

◆ operator*() [3/19]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::operator* ( Matrix< T, M, N > const &  A,
Tensor< S, N > const &  B 
)

Matrix tensor product C = A B

Parameters
Amatrix
Btensor
Returns
\( A B \)

Definition at line 1408 of file MiniTensor_Matrix.h.

◆ operator*() [4/19]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::operator* ( Tensor< S, M > const &  A,
Matrix< T, M, N > const &  B 
)

Tensor matrix product C = A B

Parameters
Atensor
Bmatrix
Returns
\( A B = \)

Definition at line 1419 of file MiniTensor_Matrix.h.

◆ operator*() [5/19]

template<typename S , typename T , Index M, Index P, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::operator* ( Matrix< S, M, P > const &  A,
Matrix< T, P, N > const &  B 
)

Matrix dot product C = A B

Returns
\( A \cdot B \)

Definition at line 1430 of file MiniTensor_Matrix.h.

◆ operator*() [6/19]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_matrix< Promote< S, T >, M, N > >::type minitensor::operator* ( S const &  s,
Matrix< T, M, N > const &  A 
)

Scalar matrix product

Parameters
sscalar
Amatrix
Returns
\( s A \)

Definition at line 1321 of file MiniTensor_Matrix.h.

◆ operator*() [7/19]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_matrix< Promote< S, T >, M, N > >::type minitensor::operator* ( Matrix< T, M, N > const &  A,
S const &  s 
)

Matrix scalar product

Parameters
Amatrix
sscalar
Returns
\( s A \)

Definition at line 1338 of file MiniTensor_Matrix.h.

◆ operator/() [1/10]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::operator/ ( Matrix< T, M, N > const &  A,
S const &  s 
)

Matrix scalar division

Parameters
Amatrix
sscalar
Returns
\( A / s \)

Definition at line 1354 of file MiniTensor_Matrix.h.

◆ operator/() [2/10]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::operator/ ( S const &  s,
Matrix< T, M, N > const &  A 
)

Scalar matrix division

Parameters
sscalar
Amatrix that divides scalar with each component
Returns
\( s / A \)

Definition at line 1370 of file MiniTensor_Matrix.h.

◆ operator>>() [1/5]

template<typename T , Index M, Index N>
std::istream & minitensor::operator>> ( std::istream &  is,
Matrix< T, M, N > &  A 
)

Matrix input

Parameters
Amatrix
isinput stream
Returns
is input stream

Definition at line 1819 of file MiniTensor_Matrix.h.

◆ operator<<() [1/5]

template<typename T , Index M, Index N>
std::ostream & minitensor::operator<< ( std::ostream &  os,
Matrix< T, M, N > const &  A 
)

Matrix output

Parameters
Amatrix
osoutput stream
Returns
os output stream

Definition at line 1840 of file MiniTensor_Matrix.h.

◆ row() [1/2]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Vector< T, N > minitensor::row ( Matrix< T, M, N > const &  A,
Index const  i 
)

Extract a row as a vector

Parameters
Amatrix
iindex of row
Returns
\( v = A(i,:) \)

Definition at line 1178 of file MiniTensor_Matrix.h.

◆ col() [1/2]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Vector< T, M > minitensor::col ( Matrix< T, M, N > const &  A,
Index const  j 
)

Extract a column as a vector

Parameters
Amatrix
jindex of column
Returns
\( v = A(:,j) \)

Definition at line 1214 of file MiniTensor_Matrix.h.

◆ dot() [1/18]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, M > minitensor::dot ( Matrix< T, M, N > const &  A,
Vector< S, N > const &  u 
)

Matrix vector product v = A u

Parameters
Amatrix
uvector
Returns
\( A u \)

Definition at line 1441 of file MiniTensor_Matrix.h.

◆ dot() [2/18]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::dot ( Vector< S, M > const &  u,
Matrix< T, M, N > const &  A 
)

Vector matrix product v = u A

Parameters
Amatrix
uvector
Returns
\( u A = A^T u \)

Definition at line 1474 of file MiniTensor_Matrix.h.

◆ dot() [3/18]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::dot ( Matrix< T, M, N > const &  A,
Tensor< S, N > const &  B 
)

Matrix tensor product C = A B

Parameters
Amatrix
Btensor
Returns
\( A B \)

Definition at line 1507 of file MiniTensor_Matrix.h.

◆ dot() [4/18]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::dot ( Tensor< S, M > const &  A,
Matrix< T, M, N > const &  B 
)

Tensor matrix product C = A B

Parameters
Atensor
Bmatrix
Returns
\( A B = \)

Definition at line 1542 of file MiniTensor_Matrix.h.

◆ dot() [5/18]

template<typename S , typename T , Index M, Index P, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::dot ( Matrix< S, M, P > const &  A,
Matrix< T, P, N > const &  B 
)

Matrix matrix product C = A B

Parameters
Amatrix
Bmatrix
Returns
a matrix \( A \cdot B \)

Definition at line 1577 of file MiniTensor_Matrix.h.

◆ t_dot() [1/5]

template<typename S , typename T , Index M, Index P, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::t_dot ( Matrix< S, P, M > const &  A,
Matrix< T, P, N > const &  B 
)

Matrix matrix product C = A^T B

Parameters
Amatrix
Bmatrix
Returns
a matrix \( A^T \cdot B \)

Definition at line 1615 of file MiniTensor_Matrix.h.

◆ dot_t() [1/3]

template<typename S , typename T , Index M, Index P, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::dot_t ( Matrix< S, M, P > const &  A,
Matrix< T, N, P > const &  B 
)

Matrix matrix product C = A B^T

Parameters
Amatrix
Bmatrix
Returns
a matrix \( A \cdot B^T \)

Definition at line 1653 of file MiniTensor_Matrix.h.

◆ t_dot_t() [1/2]

template<typename S , typename T , Index M, Index P, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::t_dot_t ( Matrix< S, P, M > const &  A,
Matrix< T, N, P > const &  B 
)

Matrix matrix product C = A^T B^T

Parameters
Amatrix
Bmatrix
Returns
a tensor \( A^T \cdot B^T \)

Definition at line 1694 of file MiniTensor_Matrix.h.

◆ dotdot() [1/6]

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Promote< S, T >::type minitensor::dotdot ( Matrix< S, M, N > const &  A,
Matrix< T, M, N > const &  B 
)

Matrix matrix double dot product (contraction)

Parameters
Amatrix
Bmatrix
Returns
a scalar \( A : B \)

Definition at line 1732 of file MiniTensor_Matrix.h.

◆ matrix()

template<typename S , typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, M, N > minitensor::matrix ( Vector< S, M > const &  u,
Vector< T, N > const &  v 
)

exterior matrix product

Parameters
uvector
vvector
Returns
\( u \otimes v \)

Definition at line 1761 of file MiniTensor_Matrix.h.

◆ transpose() [1/3]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< T, M, N > minitensor::transpose ( Matrix< T, N, M > const &  A)

matrix transpose

Definition at line 1791 of file MiniTensor_Matrix.h.

◆ adjoint() [1/2]

template<typename T , Index M, Index N>
KOKKOS_INLINE_FUNCTION Matrix< T, M, N > minitensor::adjoint ( Matrix< T, N, M > const &  A)

matrix adjoint

◆ check_dynamic()

template<typename Store >
void minitensor::check_dynamic ( Index const  dimension)
inline

Validate a run-time dimension for dynamic storage.

Definition at line 69 of file MiniTensor_Storage.h.

◆ Storage() [1/6]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Storage< T, N >::Storage ( )
inline

Definition at line 360 of file MiniTensor_Storage.h.

◆ Storage() [2/6]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Storage< T, N >::Storage ( Index const  number_entries)
inlineexplicit

Create storage with the given number of entries (at most N).

Definition at line 367 of file MiniTensor_Storage.h.

◆ Storage() [3/6]

template<typename T , Index N>
minitensor::Storage< T, N >::Storage ( Storage< T, N > const &  s)
delete

◆ operator=() [1/3]

template<typename T , Index N>
Storage< T, N > & minitensor::Storage< T, N >::operator= ( Storage< T, N > const &  s)
delete

◆ ~Storage() [1/2]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Storage< T, N >::~Storage ( )
inline

Definition at line 377 of file MiniTensor_Storage.h.

◆ operator[]() [1/6]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T const & minitensor::Storage< T, N >::operator[] ( Index const  i) const
inline

Constant read access to entry i.

Definition at line 386 of file MiniTensor_Storage.h.

◆ operator[]() [2/6]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T & minitensor::Storage< T, N >::operator[] ( Index const  i)
inline

Read-write access to entry i.

Definition at line 400 of file MiniTensor_Storage.h.

◆ size() [1/2]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Index minitensor::Storage< T, N >::size ( ) const
inline

Number of entries currently in use.

Definition at line 414 of file MiniTensor_Storage.h.

◆ resize() [1/2]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION void minitensor::Storage< T, N >::resize ( Index const  number_entries)
inline

Set the number of entries in use; must not exceed N.

Definition at line 424 of file MiniTensor_Storage.h.

◆ clear() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION void minitensor::Storage< T, N >::clear ( )
inline

No-op: static storage cannot be deallocated.

Definition at line 435 of file MiniTensor_Storage.h.

◆ get_pointer() [1/2]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION pointer_type minitensor::Storage< T, N >::get_pointer ( )
inline

Raw pointer to the underlying array.

Definition at line 444 of file MiniTensor_Storage.h.

◆ get_const_pointer() [1/2]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION const_pointer_type minitensor::Storage< T, N >::get_const_pointer ( ) const
inline

Raw pointer to the constant underlying array.

Definition at line 454 of file MiniTensor_Storage.h.

◆ static_size() [1/2]

template<typename T , Index N>
static KOKKOS_INLINE_FUNCTION constexpr Index minitensor::Storage< T, N >::static_size ( )
inlinestaticconstexpr

Compile-time capacity N of the storage.

Definition at line 462 of file MiniTensor_Storage.h.

◆ Storage() [4/6]

template<typename T >
KOKKOS_INLINE_FUNCTION minitensor::Storage< T, DYNAMIC >::Storage ( )
inline

Definition at line 525 of file MiniTensor_Storage.h.

◆ Storage() [5/6]

template<typename T >
KOKKOS_INLINE_FUNCTION minitensor::Storage< T, DYNAMIC >::Storage ( Index const  number_entries)
inlineexplicit

Create heap-allocated storage with the given number of entries.

Definition at line 532 of file MiniTensor_Storage.h.

◆ Storage() [6/6]

template<typename T >
minitensor::Storage< T, DYNAMIC >::Storage ( Storage< T, DYNAMIC > const &  s)
delete

◆ operator=() [2/3]

template<typename T >
Storage< T, DYNAMIC > & minitensor::Storage< T, DYNAMIC >::operator= ( Storage< T, DYNAMIC > const &  s)
delete

◆ ~Storage() [2/2]

template<typename T >
KOKKOS_INLINE_FUNCTION minitensor::Storage< T, DYNAMIC >::~Storage ( )
inline

Definition at line 542 of file MiniTensor_Storage.h.

◆ operator[]() [3/6]

template<typename T >
KOKKOS_INLINE_FUNCTION T const & minitensor::Storage< T, DYNAMIC >::operator[] ( Index const  i) const
inline

Constant read access to entry i.

Definition at line 552 of file MiniTensor_Storage.h.

◆ operator[]() [4/6]

template<typename T >
KOKKOS_INLINE_FUNCTION T & minitensor::Storage< T, DYNAMIC >::operator[] ( Index const  i)
inline

Read-write access to entry i.

Definition at line 563 of file MiniTensor_Storage.h.

◆ size() [2/2]

template<typename T >
KOKKOS_INLINE_FUNCTION Index minitensor::Storage< T, DYNAMIC >::size ( ) const
inline

Number of entries currently allocated.

Definition at line 574 of file MiniTensor_Storage.h.

◆ resize() [2/2]

template<typename T >
KOKKOS_INLINE_FUNCTION void minitensor::Storage< T, DYNAMIC >::resize ( Index const  number_entries)
inline

Reallocate to hold number_entries entries; prior data are lost.

Definition at line 584 of file MiniTensor_Storage.h.

◆ clear() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION void minitensor::Storage< T, DYNAMIC >::clear ( )
inline

Free the heap storage and reset the size to zero.

Definition at line 598 of file MiniTensor_Storage.h.

◆ get_pointer() [2/2]

template<typename T >
KOKKOS_INLINE_FUNCTION pointer_type minitensor::Storage< T, DYNAMIC >::get_pointer ( )
inline

Raw pointer to the underlying array.

Definition at line 612 of file MiniTensor_Storage.h.

◆ get_const_pointer() [2/2]

template<typename T >
KOKKOS_INLINE_FUNCTION const_pointer_type minitensor::Storage< T, DYNAMIC >::get_const_pointer ( ) const
inline

Raw pointer to the constant underlying array.

Definition at line 622 of file MiniTensor_Storage.h.

◆ static_size() [2/2]

template<typename T >
static KOKKOS_INLINE_FUNCTION constexpr Index minitensor::Storage< T, DYNAMIC >::static_size ( )
inlinestaticconstexpr

Compile-time size: 0, since the size is set at run time.

Definition at line 630 of file MiniTensor_Storage.h.

◆ get_order() [2/5]

template<typename T , Index N = DYNAMIC>
static KOKKOS_INLINE_FUNCTION constexpr Index minitensor::Tensor< T, N >::get_order ( )
inlinestaticconstexpr

Tensor order

Definition at line 66 of file MiniTensor_Tensor.h.

◆ Tensor() [1/24]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( )
explicit

Constructor that initializes to NaNs

Definition at line 958 of file MiniTensor_Tensor.h.

◆ Tensor() [2/24]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Index const  dimension)
explicit

Constructor that initializes to NaNs

Parameters
dimensionthe space dimension

Definition at line 967 of file MiniTensor_Tensor.h.

◆ Tensor() [3/24]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Filler const  value)
explicit

Create tensor from a specified value

Parameters
valueall components are set equal to this

Definition at line 978 of file MiniTensor_Tensor.h.

◆ Tensor() [4/24]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Index const  dimension,
Filler const  value 
)
explicit

Create tensor from a specified value

Parameters
dimensionthe space dimension
valueall components are set equal to this

Definition at line 986 of file MiniTensor_Tensor.h.

◆ Tensor() [5/24]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Source const  source,
ArrayT &  data,
Index  index1 
)
explicit

Create tensor from array

Parameters
sourcethe array source (Source::ARRAY)
dataarray to copy components from
index1first fixed index into the array

Definition at line 999 of file MiniTensor_Tensor.h.

◆ Tensor() [6/24]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2 
)
explicit

Create tensor from array

Parameters
sourcethe array source (Source::ARRAY)
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array

Definition at line 1011 of file MiniTensor_Tensor.h.

◆ Tensor() [7/24]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3 
)
explicit

Create tensor from array

Parameters
sourcethe array source (Source::ARRAY)
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array

Definition at line 1024 of file MiniTensor_Tensor.h.

◆ Tensor() [8/24]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4 
)
explicit

Create tensor from array

Parameters
sourcethe array source (Source::ARRAY)
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array
index4fourth fixed index into the array

Definition at line 1038 of file MiniTensor_Tensor.h.

◆ Tensor() [9/24]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5 
)
explicit

Create tensor from array

Parameters
sourcethe array source (Source::ARRAY)
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array
index4fourth fixed index into the array
index5fifth fixed index into the array

Definition at line 1060 of file MiniTensor_Tensor.h.

◆ Tensor() [10/24]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5,
Index  index6 
)
explicit

Create tensor from array

Parameters
sourcethe array source (Source::ARRAY)
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array
index4fourth fixed index into the array
index5fifth fixed index into the array
index6sixth fixed index into the array

Definition at line 1084 of file MiniTensor_Tensor.h.

◆ Tensor() [11/24]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Source const  source,
Index const  dimension,
ArrayT &  data,
Index  index1 
)
explicit

Create tensor from array

Parameters
sourcethe array source (Source::ARRAY)
dimensionthe space dimension
dataarray to copy components from
index1first fixed index into the array

Definition at line 1110 of file MiniTensor_Tensor.h.

◆ Tensor() [12/24]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Source const  source,
Index const  dimension,
ArrayT &  data,
Index  index1,
Index  index2 
)
explicit

Create tensor from array

Parameters
sourcethe array source (Source::ARRAY)
dimensionthe space dimension
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array

Definition at line 1123 of file MiniTensor_Tensor.h.

◆ Tensor() [13/24]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Source const  source,
Index const  dimension,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3 
)
explicit

Create tensor from array

Parameters
sourcethe array source (Source::ARRAY)
dimensionthe space dimension
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array

Definition at line 1137 of file MiniTensor_Tensor.h.

◆ Tensor() [14/24]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Source const  source,
Index const  dimension,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4 
)
explicit

Create tensor from array

Parameters
sourcethe array source (Source::ARRAY)
dimensionthe space dimension
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array
index4fourth fixed index into the array

Definition at line 1158 of file MiniTensor_Tensor.h.

◆ Tensor() [15/24]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Source const  source,
Index const  dimension,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5 
)
explicit

Create tensor from array

Parameters
sourcethe array source (Source::ARRAY)
dimensionthe space dimension
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array
index4fourth fixed index into the array
index5fifth fixed index into the array

Definition at line 1181 of file MiniTensor_Tensor.h.

◆ Tensor() [16/24]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Source const  source,
Index const  dimension,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5,
Index  index6 
)
explicit

Create tensor from array

Parameters
sourcethe array source (Source::ARRAY)
dimensionthe space dimension
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array
index4fourth fixed index into the array
index5fifth fixed index into the array
index6sixth fixed index into the array

Definition at line 1206 of file MiniTensor_Tensor.h.

◆ Tensor() [17/24]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( T const *  data_ptr)
explicit

Create tensor from array

Parameters
data_ptrpointer into the array

Definition at line 1232 of file MiniTensor_Tensor.h.

◆ Tensor() [18/24]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Index const  dimension,
T const *  data_ptr 
)
explicit

Create tensor from array

Parameters
dimensionthe space dimension
data_ptrpointer into the array

Definition at line 1240 of file MiniTensor_Tensor.h.

◆ Tensor() [19/24]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Tensor< T, N > const &  A)

Copy constructor

Definition at line 1250 of file MiniTensor_Tensor.h.

◆ Tensor() [20/24]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Tensor4< T, dimension_sqrt< N >::value > const &  A)

2nd-order tensor from 4th-order tensor

Definition at line 1351 of file MiniTensor_Tensor.h.

◆ Tensor() [21/24]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( T const &  s00,
T const &  s01,
T const &  s10,
T const &  s11 
)
explicit

Create tensor specifying components

Parameters
s00s01 ... components in the R^2 canonical basis
s01component in the R^2 canonical basis
s10component in the R^2 canonical basis
s11component in the R^2 canonical basis

Definition at line 1262 of file MiniTensor_Tensor.h.

◆ Tensor() [22/24]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( T const &  s00,
T const &  s01,
T const &  s02,
T const &  s10,
T const &  s11,
T const &  s12,
T const &  s20,
T const &  s21,
T const &  s22 
)
explicit

Create tensor specifying components

Parameters
s00s01 ... components in the R^3 canonical basis
s01component in the R^3 canonical basis
s02component in the R^3 canonical basis
s10component in the R^3 canonical basis
s11component in the R^3 canonical basis
s12component in the R^3 canonical basis
s20component in the R^3 canonical basis
s21component in the R^3 canonical basis
s22component in the R^3 canonical basis

Definition at line 1286 of file MiniTensor_Tensor.h.

◆ Tensor() [23/24]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( T const *  data_ptr,
ComponentOrder const  component_order 
)
explicit

Create tensor from array

Parameters
data_ptrpointer into the array
component_ordercomponent convention (3D only)

Definition at line 1316 of file MiniTensor_Tensor.h.

◆ Tensor() [24/24]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::Tensor ( Index const  dimension,
T const *  data_ptr,
ComponentOrder const  component_order 
)
explicit

Create tensor from array

Parameters
dimensionthe space dimension
data_ptrpointer into the array
component_ordercomponent convention (3D only)

Definition at line 1329 of file MiniTensor_Tensor.h.

◆ ~Tensor()

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor< T, N >::~Tensor ( )
virtual

Simple destructor

Definition at line 1379 of file MiniTensor_Tensor.h.

◆ operator()() [3/12]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T const & minitensor::Tensor< T, N >::operator() ( Index const  i,
Index const  j 
) const

Indexing for constant tensor

Parameters
iindex
jindex

Definition at line 1435 of file MiniTensor_Tensor.h.

◆ operator()() [4/12]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T & minitensor::Tensor< T, N >::operator() ( Index const  i,
Index const  j 
)

Tensor indexing

Parameters
iindex
jindex

Definition at line 1452 of file MiniTensor_Tensor.h.

◆ get_dimension() [1/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Index minitensor::Tensor< T, N >::get_dimension ( ) const
Returns
dimension

Definition at line 1390 of file MiniTensor_Tensor.h.

◆ get_num_rows() [2/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Index minitensor::Tensor< T, N >::get_num_rows ( ) const
Returns
number rows

Definition at line 1401 of file MiniTensor_Tensor.h.

◆ get_num_cols() [2/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Index minitensor::Tensor< T, N >::get_num_cols ( ) const
Returns
number rows

Definition at line 1412 of file MiniTensor_Tensor.h.

◆ set_dimension() [1/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION void minitensor::Tensor< T, N >::set_dimension ( Index const  dimension)
Parameters
dimensionof vector

Definition at line 1423 of file MiniTensor_Tensor.h.

◆ operator+() [2/5]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::operator+ ( Tensor< S, N > const &  A,
Tensor< T, N > const &  B 
)

Tensor addition

Returns
\( A + B \)

Definition at line 1553 of file MiniTensor_Tensor.h.

◆ operator-() [3/10]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::operator- ( Tensor< S, N > const &  A,
Tensor< T, N > const &  B 
)

Tensor subtraction

Returns
\( A - B \)

Definition at line 1569 of file MiniTensor_Tensor.h.

◆ operator-() [4/10]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > minitensor::operator- ( Tensor< T, N > const &  A)

Tensor minus

Returns
\( -A \)

Definition at line 1585 of file MiniTensor_Tensor.h.

◆ operator==() [2/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator== ( Tensor< T, N > const &  A,
Tensor< T, N > const &  B 
)

Tensor equality Tested by components

Returns
\( A \equiv B \)

Definition at line 1601 of file MiniTensor_Tensor.h.

◆ operator!=() [2/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator!= ( Tensor< T, N > const &  A,
Tensor< T, N > const &  B 
)

Tensor inequality Tested by components

Returns
\( A \neq B \)

Definition at line 1612 of file MiniTensor_Tensor.h.

◆ operator*() [8/19]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::operator* ( Tensor< T, N > const &  A,
Vector< S, N > const &  u 
)

Tensor vector product v = A u

Parameters
Atensor
uvector
Returns
\( A u \)

Definition at line 1689 of file MiniTensor_Tensor.h.

◆ operator*() [9/19]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::operator* ( Vector< S, N > const &  u,
Tensor< T, N > const &  A 
)

Vector tensor product v = u A

Parameters
Atensor
uvector
Returns
\( u A = A^T u \)

Definition at line 1700 of file MiniTensor_Tensor.h.

◆ operator*() [10/19]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::operator* ( Tensor< S, N > const &  A,
Tensor< T, N > const &  B 
)

Tensor dot product C = A B

Returns
\( A \cdot B \)

Definition at line 1711 of file MiniTensor_Tensor.h.

◆ operator*() [11/19]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_tensor< Promote< S, T >, N > >::type minitensor::operator* ( S const &  s,
Tensor< T, N > const &  A 
)

Scalar tensor product

Parameters
sscalar
Atensor
Returns
\( s A \)

Definition at line 1624 of file MiniTensor_Tensor.h.

◆ operator*() [12/19]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_tensor< Promote< S, T >, N > >::type minitensor::operator* ( Tensor< T, N > const &  A,
S const &  s 
)

Tensor scalar product

Parameters
Atensor
sscalar
Returns
\( s A \)

Definition at line 1641 of file MiniTensor_Tensor.h.

◆ operator/() [3/10]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::operator/ ( Tensor< T, N > const &  A,
S const &  s 
)

Tensor scalar division

Parameters
Atensor
sscalar
Returns
\( A / s \)

Definition at line 1657 of file MiniTensor_Tensor.h.

◆ operator/() [4/10]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::operator/ ( S const &  s,
Tensor< T, N > const &  A 
)

Scalar tensor division

Parameters
sscalar
Atensor that divides scalar with each component
Returns
\( s / A \)

Definition at line 1673 of file MiniTensor_Tensor.h.

◆ operator>>() [2/5]

template<typename T , Index N>
std::istream & minitensor::operator>> ( std::istream &  is,
Tensor< T, N > &  A 
)

Tensor input

Parameters
Atensor
isinput stream
Returns
is input stream

Definition at line 2785 of file MiniTensor_Tensor.h.

◆ operator<<() [2/5]

template<typename T , Index N>
std::ostream & minitensor::operator<< ( std::ostream &  os,
Tensor< T, N > const &  A 
)

Tensor output

Parameters
Atensor
osoutput stream
Returns
os output stream

Definition at line 2804 of file MiniTensor_Tensor.h.

◆ row() [2/2]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< T, N > minitensor::row ( Tensor< T, N > const &  A,
Index const  i 
)

Extract a row as a vector

Parameters
Atensor
iindex of row
Returns
\( v = A(i,:) \)

Definition at line 1481 of file MiniTensor_Tensor.h.

◆ col() [2/2]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< T, N > minitensor::col ( Tensor< T, N > const &  A,
Index const  j 
)

Extract a column as a vector

Parameters
Atensor
jindex of column
Returns
\( v = A(:,j) \)

Definition at line 1517 of file MiniTensor_Tensor.h.

◆ dot() [6/18]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::dot ( Tensor< T, N > const &  A,
Vector< S, N > const &  u 
)

Tensor vector product v = A u

Parameters
Atensor
uvector
Returns
\( A u \)

Definition at line 1722 of file MiniTensor_Tensor.h.

◆ dot() [7/18]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::dot ( Vector< S, N > const &  u,
Tensor< T, N > const &  A 
)

Vector tensor product v = u A

Parameters
Atensor
uvector
Returns
\( u A = A^T u \)

Definition at line 1769 of file MiniTensor_Tensor.h.

◆ dot() [8/18]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dot ( Tensor< S, N > const &  A,
Tensor< T, N > const &  B 
)

Tensor tensor product C = A B

Parameters
Atensor
Btensor
Returns
a tensor \( A \cdot B \)

Definition at line 1816 of file MiniTensor_Tensor.h.

◆ t_dot() [2/5]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::t_dot ( Tensor< S, N > const &  A,
Tensor< T, N > const &  B 
)

Tensor tensor product C = A^T B

Parameters
Atensor
Btensor
Returns
a tensor \( A^T \cdot B \)

Definition at line 1876 of file MiniTensor_Tensor.h.

◆ t_dot() [3/5]

template<typename S , typename T , Index N, Index P>
KOKKOS_INLINE_FUNCTION Matrix< typename Promote< S, T >::type, N, P > minitensor::t_dot ( Tensor< S, N > const &  A,
Matrix< T, N, P > const &  B 
)

Tensor matrix product C = A^T B

Parameters
Atensor
Bmatrix
Returns
a matrix \( A^T \cdot B \)

Definition at line 1936 of file MiniTensor_Tensor.h.

◆ t_dot() [4/5]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::t_dot ( Tensor< S, N > const &  A,
Vector< T, N > const &  B 
)

Tensor vector product C = A^T B

Parameters
Atensor
Bvector
Returns
a vector \( A^T \cdot B \)

Definition at line 1971 of file MiniTensor_Tensor.h.

◆ dot_t() [2/3]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dot_t ( Tensor< S, N > const &  A,
Tensor< T, N > const &  B 
)

Tensor tensor product C = A B^T

Parameters
Atensor
Btensor
Returns
a tensor \( A \cdot B^T \)

Definition at line 1982 of file MiniTensor_Tensor.h.

◆ t_dot_t() [2/2]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::t_dot_t ( Tensor< S, N > const &  A,
Tensor< T, N > const &  B 
)

Tensor tensor product C = A^T B^T

Parameters
Atensor
Btensor
Returns
a tensor \( A^T \cdot B^T \)

Definition at line 2042 of file MiniTensor_Tensor.h.

◆ dotdot() [2/6]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Promote< S, T >::type minitensor::dotdot ( Tensor< S, N > const &  A,
Tensor< T, N > const &  B 
)

Tensor tensor double dot product (contraction)

Parameters
Atensor
Btensor
Returns
a scalar \( A : B \)

Definition at line 2102 of file MiniTensor_Tensor.h.

◆ dyad()

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dyad ( Vector< S, N > const &  u,
Vector< T, N > const &  v 
)

Dyad

Parameters
uvector
vvector
Returns
\( u \otimes v \)

Definition at line 2144 of file MiniTensor_Tensor.h.

◆ bun()

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::bun ( Vector< S, N > const &  u,
Vector< T, N > const &  v 
)

Bun operator, just for Jay, and now Reese too.

Parameters
uvector
vvector
Returns
\( u \otimes v \)

Definition at line 2201 of file MiniTensor_Tensor.h.

◆ tensor() [1/2]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::tensor ( Vector< S, N > const &  u,
Vector< T, N > const &  v 
)

Tensor product

Parameters
uvector
vvector
Returns
\( u \otimes v \)

Definition at line 2212 of file MiniTensor_Tensor.h.

◆ diag() [1/2]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > minitensor::diag ( Vector< T, N > const &  v)

Diagonal tensor from vector

Parameters
vvector
Returns
A = diag(v)

Definition at line 2223 of file MiniTensor_Tensor.h.

◆ diag() [2/2]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< T, N > minitensor::diag ( Tensor< T, N > const &  A)

Diagonal of tensor in a vector

Parameters
Atensor
Returns
v = diag(A)

Definition at line 2261 of file MiniTensor_Tensor.h.

◆ zero() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::zero ( )

Zero 2nd-order tensor All components are zero

Definition at line 2300 of file MiniTensor_Tensor.h.

◆ zero() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor< T, DYNAMIC > const minitensor::zero ( Index const  dimension)

Zero 2nd-order tensor.

Definition at line 2311 of file MiniTensor_Tensor.h.

◆ zero() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::zero ( Index const  dimension)

Zero 2nd-order tensor.

Definition at line 2322 of file MiniTensor_Tensor.h.

◆ identity() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::identity ( )

2nd-order identity tensor

Definition at line 2385 of file MiniTensor_Tensor.h.

◆ identity() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor< T, DYNAMIC > const minitensor::identity ( Index const  dimension)

Identity 2nd-order tensor.

Definition at line 2401 of file MiniTensor_Tensor.h.

◆ identity() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::identity ( Index const  dimension)

Identity 2nd-order tensor.

Definition at line 2417 of file MiniTensor_Tensor.h.

◆ eye() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::eye ( )

2nd-order identity tensor, à la Matlab

Definition at line 2434 of file MiniTensor_Tensor.h.

◆ eye() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor< T, DYNAMIC > const minitensor::eye ( Index const  dimension)

Identity 2nd-order tensor; alias of identity.

Definition at line 2445 of file MiniTensor_Tensor.h.

◆ eye() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::eye ( Index const  dimension)

Identity 2nd-order tensor; alias of identity.

Definition at line 2456 of file MiniTensor_Tensor.h.

◆ levi_civita_2() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::levi_civita_2 ( )

Levi-Civita symbol

Definition at line 2467 of file MiniTensor_Tensor.h.

◆ levi_civita_2() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor< T, DYNAMIC > const minitensor::levi_civita_2 ( Index const  dimension)

Levi-Civita symbol as a 2nd-order tensor.

Definition at line 2483 of file MiniTensor_Tensor.h.

◆ levi_civita_2() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::levi_civita_2 ( Index const  dimension)

Levi-Civita symbol as a 2nd-order tensor.

Definition at line 2499 of file MiniTensor_Tensor.h.

◆ permutation_2() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::permutation_2 ( )

Permutation symbol

Definition at line 2516 of file MiniTensor_Tensor.h.

◆ permutation_2() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor< T, DYNAMIC > const minitensor::permutation_2 ( Index const  dimension)

Permutation symbol as a 2nd-order tensor; alias of levi_civita_2.

Definition at line 2527 of file MiniTensor_Tensor.h.

◆ permutation_2() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::permutation_2 ( Index const  dimension)

Permutation symbol as a 2nd-order tensor; alias of levi_civita_2.

Definition at line 2539 of file MiniTensor_Tensor.h.

◆ alternator_2() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::alternator_2 ( )

Alternating symbol

Definition at line 2550 of file MiniTensor_Tensor.h.

◆ alternator_2() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor< T, DYNAMIC > const minitensor::alternator_2 ( Index const  dimension)

Alternator as a 2nd-order tensor; alias of levi_civita_2.

Definition at line 2561 of file MiniTensor_Tensor.h.

◆ alternator_2() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > const minitensor::alternator_2 ( Index const  dimension)

Alternator as a 2nd-order tensor; alias of levi_civita_2.

Definition at line 2572 of file MiniTensor_Tensor.h.

◆ transpose() [2/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > minitensor::transpose ( Tensor< T, N > const &  A)

2nd-order tensor transpose

Definition at line 2583 of file MiniTensor_Tensor.h.

◆ adjoint() [2/2]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > minitensor::adjoint ( Tensor< T, N > const &  A)

C^N 2nd-order tensor adjoint

◆ sym()

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > minitensor::sym ( Tensor< T, N > const &  A)

Symmetric part of 2nd-order tensor

Returns
\( \frac{1}{2}(A + A^T) \)

Definition at line 2621 of file MiniTensor_Tensor.h.

◆ skew() [1/2]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > minitensor::skew ( Tensor< T, N > const &  A)

Skew symmetric part of 2nd-order tensor

Returns
\( \frac{1}{2}(A - A^T) \)

Definition at line 2686 of file MiniTensor_Tensor.h.

◆ skew() [2/2]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< T, N > minitensor::skew ( Vector< T, N > const &  u)

Skew symmetric 2nd-order tensor from vector valid for R^3 only. R^N with N != 3 will produce an error

Parameters
uvector
Returns
\( {{0, -u_2, u_1}, {u_2, 0, -u_0}, {-u_1, u+0, 0}} \)

Definition at line 2745 of file MiniTensor_Tensor.h.

◆ get_order() [3/5]

template<typename T , Index N = DYNAMIC>
static KOKKOS_INLINE_FUNCTION constexpr Index minitensor::Tensor3< T, N >::get_order ( )
inlinestaticconstexpr

Tensor order

Definition at line 61 of file MiniTensor_Tensor3.h.

◆ Tensor3() [1/7]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::Tensor3 ( )
explicit

3rd-order tensor constructor with NaNs

Definition at line 440 of file MiniTensor_Tensor3.h.

◆ Tensor3() [2/7]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::Tensor3 ( Index const  dimension)
explicit

3rd-order tensor constructor with NaNs

Parameters
dimensionthe space dimension

Definition at line 449 of file MiniTensor_Tensor3.h.

◆ Tensor3() [3/7]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::Tensor3 ( Filler const  value)
explicit

Create 3rd-order tensor from a specified value

Parameters
valueall components are set equal to this

Definition at line 460 of file MiniTensor_Tensor3.h.

◆ Tensor3() [4/7]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::Tensor3 ( Index const  dimension,
Filler const  value 
)
explicit

Create 3rd-order tensor from a specified value

Parameters
dimensionthe space dimension
valueall components are set equal to this

Definition at line 468 of file MiniTensor_Tensor3.h.

◆ Tensor3() [5/7]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::Tensor3 ( T const *  data_ptr)
explicit

Create 3rd-order tensor from array

Parameters
data_ptrpointer into the array

Definition at line 479 of file MiniTensor_Tensor3.h.

◆ Tensor3() [6/7]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::Tensor3 ( Index const  dimension,
T const *  data_ptr 
)
explicit

Create 3rd-order tensor from array

Parameters
dimensionthe space dimension
data_ptrpointer into the array

Definition at line 487 of file MiniTensor_Tensor3.h.

◆ Tensor3() [7/7]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::Tensor3 ( Tensor3< T, N > const &  A)

Copy constructor 3rd-order tensor constructor from 3rd-order tensor

Definition at line 498 of file MiniTensor_Tensor3.h.

◆ ~Tensor3()

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor3< T, N >::~Tensor3 ( )
virtual

3rd-order tensor simple destructor

Definition at line 509 of file MiniTensor_Tensor3.h.

◆ operator()() [5/12]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T const & minitensor::Tensor3< T, N >::operator() ( Index const  i,
Index const  j,
Index const  k 
) const

Indexing for constant 3rd-order tensor

Parameters
iindex
jindex
kindex

Definition at line 677 of file MiniTensor_Tensor3.h.

◆ operator()() [6/12]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T & minitensor::Tensor3< T, N >::operator() ( Index const  i,
Index const  j,
Index const  k 
)

3rd-order tensor indexing

Parameters
iindex
jindex
kindex

Definition at line 694 of file MiniTensor_Tensor3.h.

◆ get_dimension() [2/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Index minitensor::Tensor3< T, N >::get_dimension ( ) const
Returns
dimension

Definition at line 520 of file MiniTensor_Tensor3.h.

◆ set_dimension() [2/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION void minitensor::Tensor3< T, N >::set_dimension ( Index const  dimension)
Parameters
dimensionof vector

Definition at line 531 of file MiniTensor_Tensor3.h.

◆ operator+() [3/5]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::operator+ ( Tensor3< S, N > const &  A,
Tensor3< T, N > const &  B 
)

3rd-order tensor addition

Parameters
A3rd-order tensor
B3rd-order tensor
Returns
\( A + B \)

Definition at line 543 of file MiniTensor_Tensor3.h.

◆ operator-() [5/10]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::operator- ( Tensor3< S, N > const &  A,
Tensor3< T, N > const &  B 
)

3rd-order tensor substraction

Parameters
A3rd-order tensor
B3rd-order tensor
Returns
\( A - B \)

Definition at line 559 of file MiniTensor_Tensor3.h.

◆ operator-() [6/10]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< T, N > minitensor::operator- ( Tensor3< T, N > const &  A)

3rd-order tensor minus

Returns
\( -A \)

Definition at line 575 of file MiniTensor_Tensor3.h.

◆ operator==() [3/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator== ( Tensor3< T, N > const &  A,
Tensor3< T, N > const &  B 
)

3rd-order tensor equality Tested by components

Definition at line 591 of file MiniTensor_Tensor3.h.

◆ operator!=() [3/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator!= ( Tensor3< T, N > const &  A,
Tensor3< T, N > const &  B 
)

3rd-order tensor inequality Tested by components

Definition at line 602 of file MiniTensor_Tensor3.h.

◆ operator*() [13/19]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_tensor3< Promote< S, T >, N > >::type minitensor::operator* ( S const &  s,
Tensor3< T, N > const &  A 
)

Scalar 3rd-order tensor product

Parameters
sscalar
A3rd-order tensor
Returns
\( s A \)

Definition at line 613 of file MiniTensor_Tensor3.h.

◆ operator*() [14/19]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_tensor3< Promote< S, T >, N > >::type minitensor::operator* ( Tensor3< T, N > const &  A,
S const &  s 
)

3rd-order tensor scalar product

Parameters
A3rd-order tensor
sscalar
Returns
\( s A \)

Definition at line 629 of file MiniTensor_Tensor3.h.

◆ operator/() [5/10]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::operator/ ( Tensor3< T, N > const &  A,
S const &  s 
)

3rd-order tensor scalar division

Parameters
A3rd-order tensor
sscalar
Returns
\( A / s \)

Definition at line 645 of file MiniTensor_Tensor3.h.

◆ operator/() [6/10]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::operator/ ( S const &  s,
Tensor3< T, N > const &  A 
)

3rd-order scalar tensor division

Parameters
sscalar
A3rd-order tensor
Returns
\( s / A \)

Definition at line 661 of file MiniTensor_Tensor3.h.

◆ dotdot() [3/6]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::dotdot ( Tensor3< T, N > const &  A,
Tensor< S, N > const &  u 
)

3rd-order tensor 2nd-order tensor double dot product

Parameters
A3rd-order tensor
u2nd-order tensor
Returns
\( B = A : u := B_i = A_{ijk} u_{jk} \)

Definition at line 882 of file MiniTensor_Tensor3.h.

◆ dot() [9/18]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dot ( Tensor3< T, N > const &  A,
Vector< S, N > const &  u 
)

3rd-order tensor vector product

Parameters
A3rd-order tensor
uvector
Returns
\( B = A \cdot u := B_{ij} = A_{ijp} u_p \)

Definition at line 914 of file MiniTensor_Tensor3.h.

◆ dot() [10/18]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dot ( Vector< S, N > const &  u,
Tensor3< T, N > const &  A 
)

vector 3rd-order tensor product

Parameters
A3rd-order tensor
uvector
Returns
\( B = u \cdot A := B_{ij} = u_p A{pij} \)

Definition at line 946 of file MiniTensor_Tensor3.h.

◆ dot2() [1/9]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dot2 ( Tensor3< T, N > const &  A,
Vector< S > const &  u 
)

3rd-order tensor vector product

Parameters
A3rd-order tensor
uvector
Returns
\( B = A \cdot u := B_{ij} = A_{ipj} u_p \)

◆ dot2() [2/9]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dot2 ( Vector< S, N > const &  u,
Tensor3< T, N > const &  A 
)

vector 3rd-order tensor product

Parameters
uvector
A3rd-order tensor
Returns
\( B = u \cdot A := B_{ij} = u_p A_{ipj} \)

Definition at line 1015 of file MiniTensor_Tensor3.h.

◆ dot() [11/18]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot ( Tensor3< T, N > const &  A,
Tensor< S, N > const &  B 
)

3rd-order tensor 2nd-order tensor product

Parameters
A3rd-order tensor
B2nd-order tensor
Returns
\( C = A \cdot B := C_{ijk} = A_{ijp} B_{pk} \)

Definition at line 1026 of file MiniTensor_Tensor3.h.

◆ dot() [12/18]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot ( Tensor< S, N > const &  A,
Tensor3< T, N > const &  B 
)

2nd-order tensor 3rd-order tensor product

Parameters
A2nd-order tensor
B3rd-order tensor
Returns
\( C = A \cdot B := C_{ijk} = A_{ip} B_{pjk} \)

Definition at line 1060 of file MiniTensor_Tensor3.h.

◆ dot2() [3/9]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot2 ( Tensor3< T, N > const &  A,
Tensor< S, N > const &  B 
)

3rd-order tensor 2nd-order tensor product

Parameters
A3rd-order tensor
B2nd-order tensor
Returns
\( C = A \cdot B := C_{ijk} = A_{ipj} B_{pk} \)

Definition at line 1094 of file MiniTensor_Tensor3.h.

◆ dot2() [4/9]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot2 ( Tensor< S, N > const &  A,
Tensor3< T, N > const &  B 
)

2nd-order tensor 3rd-order tensor product

Parameters
A2nd-order tensor
B3rd-order tensor
Returns
\( C = A \cdot B := C_{ijk} = A_{ip} B_{jpk} \)

Definition at line 1129 of file MiniTensor_Tensor3.h.

◆ levi_civita_3() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< T, N > const minitensor::levi_civita_3 ( )

Levi-Civita symbol

Definition at line 765 of file MiniTensor_Tensor3.h.

◆ levi_civita_3() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor3< T, DYNAMIC > const minitensor::levi_civita_3 ( Index const  dimension)

Levi-Civita symbol as a 3rd-order tensor.

Definition at line 781 of file MiniTensor_Tensor3.h.

◆ levi_civita_3() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< T, N > const minitensor::levi_civita_3 ( Index const  dimension)

Levi-Civita symbol as a 3rd-order tensor.

Definition at line 797 of file MiniTensor_Tensor3.h.

◆ permutation_3() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< T, N > const minitensor::permutation_3 ( )

Permutation symbol

Definition at line 813 of file MiniTensor_Tensor3.h.

◆ permutation_3() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor3< T, DYNAMIC > const minitensor::permutation_3 ( Index const  dimension)

Permutation symbol as a 3rd-order tensor; alias of levi_civita_3.

Definition at line 824 of file MiniTensor_Tensor3.h.

◆ permutation_3() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< T, N > const minitensor::permutation_3 ( Index const  dimension)

Permutation symbol as a 3rd-order tensor; alias of levi_civita_3.

Definition at line 835 of file MiniTensor_Tensor3.h.

◆ alternator_3() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< T, N > const minitensor::alternator_3 ( )

Alternating symbol

Definition at line 846 of file MiniTensor_Tensor3.h.

◆ alternator_3() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor3< T, DYNAMIC > const minitensor::alternator_3 ( Index const  dimension)

Alternator as a 3rd-order tensor; alias of levi_civita_3.

Definition at line 857 of file MiniTensor_Tensor3.h.

◆ alternator_3() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< T, N > const minitensor::alternator_3 ( Index const  dimension)

Alternator as a 3rd-order tensor; alias of levi_civita_3.

Definition at line 868 of file MiniTensor_Tensor3.h.

◆ operator>>() [3/5]

template<typename T , Index N>
std::istream & minitensor::operator>> ( std::istream &  is,
Tensor3< T, N > &  A 
)

3rd-order tensor input

Parameters
A3rd-order tensor
isinput stream
Returns
is input stream

Definition at line 1166 of file MiniTensor_Tensor3.h.

◆ operator<<() [3/5]

template<typename T , Index N>
std::ostream & minitensor::operator<< ( std::ostream &  os,
Tensor3< T, N > const &  A 
)

3rd-order tensor output

Parameters
A3rd-order tensor
osoutput stream
Returns
os output stream

Definition at line 1189 of file MiniTensor_Tensor3.h.

◆ dot2() [5/9]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dot2 ( Tensor3< T, N > const &  A,
Vector< S, N > const &  u 
)

Contraction of a vector with the middle index of a 3rd-order tensor.

Returns
\( B_{ij} = A_{ipj} u_p \)

Definition at line 983 of file MiniTensor_Tensor3.h.

◆ get_order() [4/5]

template<typename T , Index N = DYNAMIC>
static KOKKOS_INLINE_FUNCTION constexpr Index minitensor::Tensor4< T, N >::get_order ( )
inlinestaticconstexpr

Tensor order

Definition at line 61 of file MiniTensor_Tensor4.h.

◆ Tensor4() [1/8]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 ( )
explicit

4th-order tensor constructor with NaNs

Definition at line 663 of file MiniTensor_Tensor4.h.

◆ Tensor4() [2/8]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 ( Index const  dimension)
explicit

4th-order tensor constructor with NaNs

Parameters
dimensionthe space dimension

Definition at line 672 of file MiniTensor_Tensor4.h.

◆ Tensor4() [3/8]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 ( Filler const  value)
explicit

Create 4th-order tensor from a specified value

Parameters
valueall components are set equal to this

Definition at line 683 of file MiniTensor_Tensor4.h.

◆ Tensor4() [4/8]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 ( Index const  dimension,
Filler const  value 
)
explicit

Create 4th-order tensor from a specified value

Parameters
dimensionthe space dimension
valueall components are set equal to this

Definition at line 691 of file MiniTensor_Tensor4.h.

◆ Tensor4() [5/8]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 ( T const *  data_ptr)
explicit

Create 4th-order tensor from array

Parameters
data_ptrpointer into the array

Definition at line 702 of file MiniTensor_Tensor4.h.

◆ Tensor4() [6/8]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 ( Index const  dimension,
T const *  data_ptr 
)
explicit

Create 4th-order tensor from array

Parameters
dimensionthe space dimension
data_ptrpointer into the array

Definition at line 710 of file MiniTensor_Tensor4.h.

◆ Tensor4() [7/8]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 ( Tensor4< T, N > const &  A)

Copy constructor 4th-order tensor constructor with 4th-order tensor

Definition at line 721 of file MiniTensor_Tensor4.h.

◆ Tensor4() [8/8]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::Tensor4 ( Tensor< T, dimension_square< N >::value > const &  A)

4th-order tensor from 2nd-order tensor

Definition at line 771 of file MiniTensor_Tensor4.h.

◆ ~Tensor4()

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Tensor4< T, N >::~Tensor4 ( )
virtual

4th-order tensor simple destructor

Definition at line 798 of file MiniTensor_Tensor4.h.

◆ operator()() [7/12]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T const & minitensor::Tensor4< T, N >::operator() ( Index const  i,
Index const  j,
Index const  k,
Index const  l 
) const

Indexing for constant 4th-order tensor

Parameters
iindex
jindex
kindex
lindex

Definition at line 970 of file MiniTensor_Tensor4.h.

◆ operator()() [8/12]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T & minitensor::Tensor4< T, N >::operator() ( Index const  i,
Index const  j,
Index const  k,
Index const  l 
)

4th-order tensor indexing

Parameters
iindex
jindex
kindex
lindex

Definition at line 992 of file MiniTensor_Tensor4.h.

◆ get_dimension() [3/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Index minitensor::Tensor4< T, N >::get_dimension ( ) const
Returns
dimension

Definition at line 809 of file MiniTensor_Tensor4.h.

◆ set_dimension() [3/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION void minitensor::Tensor4< T, N >::set_dimension ( Index const  dimension)
Parameters
dimensionof vector

Definition at line 820 of file MiniTensor_Tensor4.h.

◆ operator+() [4/5]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::operator+ ( Tensor4< S, N > const &  A,
Tensor4< T, N > const &  B 
)

4th-order tensor addition

Parameters
A4th-order tensor
B4th-order tensor
Returns
\( A + B \)

Definition at line 832 of file MiniTensor_Tensor4.h.

◆ operator-() [7/10]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::operator- ( Tensor4< S, N > const &  A,
Tensor4< T, N > const &  B 
)

4th-order tensor substraction

Parameters
A4th-order tensor
B4th-order tensor
Returns
\( A - B \)

Definition at line 848 of file MiniTensor_Tensor4.h.

◆ operator-() [8/10]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > minitensor::operator- ( Tensor4< T, N > const &  A)

4th-order tensor minus

Returns
\( -A \)

Definition at line 864 of file MiniTensor_Tensor4.h.

◆ operator==() [4/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator== ( Tensor4< T, N > const &  A,
Tensor4< T, N > const &  B 
)

4th-order equality Tested by components

Definition at line 880 of file MiniTensor_Tensor4.h.

◆ operator!=() [4/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator!= ( Tensor4< T, N > const &  A,
Tensor4< T, N > const &  B 
)

4th-order inequality Tested by components

Definition at line 891 of file MiniTensor_Tensor4.h.

◆ operator*() [15/19]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_tensor4< Promote< S, T >, N > >::type minitensor::operator* ( S const &  s,
Tensor4< T, N > const &  A 
)

Scalar 4th-order tensor product

Parameters
sscalar
A4th-order tensor
Returns
\( s A \)

Definition at line 902 of file MiniTensor_Tensor4.h.

◆ operator*() [16/19]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_tensor4< Promote< S, T >, N > >::type minitensor::operator* ( Tensor4< T, N > const &  A,
S const &  s 
)

4th-order tensor scalar product

Parameters
A4th-order tensor
sscalar
Returns
\( s A \)

Definition at line 918 of file MiniTensor_Tensor4.h.

◆ operator/() [7/10]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::operator/ ( Tensor4< T, N > const &  A,
S const &  s 
)

4th-order tensor scalar division

Parameters
A4th-order tensor
sscalar
Returns
\( A / s \)

Definition at line 934 of file MiniTensor_Tensor4.h.

◆ operator/() [8/10]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::operator/ ( S const &  s,
Tensor4< T, N > const &  A 
)

4th-order scalar tensor division

Parameters
sscalar
A4th-order tensor
Returns
\( s / A \)

Definition at line 950 of file MiniTensor_Tensor4.h.

◆ transpose() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > minitensor::transpose ( Tensor4< T, N > const &  A)

4th-order tensor transpose

Definition at line 1350 of file MiniTensor_Tensor4.h.

◆ identity_1() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::identity_1 ( )

4th-order identity I1

Returns
\( \delta_{ik} \delta_{jl} \) such that \( A = I_1 A \)

Definition at line 1118 of file MiniTensor_Tensor4.h.

◆ identity_1() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor4< T, DYNAMIC > const minitensor::identity_1 ( Index const  dimension)

4th-order identity I1: \( \delta_{ik} \delta_{jl} \) such that \( A = I_1 A \).

Definition at line 1128 of file MiniTensor_Tensor4.h.

◆ identity_1() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::identity_1 ( Index const  dimension)

4th-order identity I1: \( \delta_{ik} \delta_{jl} \) such that \( A = I_1 A \).

Definition at line 1141 of file MiniTensor_Tensor4.h.

◆ identity_2() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::identity_2 ( )

4th-order identity I2

Returns
\( \delta_{il} \delta_{jk} \) such that \( A^T = I_2 A \)

Definition at line 1157 of file MiniTensor_Tensor4.h.

◆ identity_2() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor4< T, DYNAMIC > const minitensor::identity_2 ( Index const  dimension)

4th-order identity I2: \( \delta_{il} \delta_{jk} \) such that \( A^T = I_2 A \).

Definition at line 1167 of file MiniTensor_Tensor4.h.

◆ identity_2() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::identity_2 ( Index const  dimension)

4th-order identity I2: \( \delta_{il} \delta_{jk} \) such that \( A^T = I_2 A \).

Definition at line 1180 of file MiniTensor_Tensor4.h.

◆ identity_3() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::identity_3 ( )

4th-order identity I3

Returns
\( \delta_{ij} \delta_{kl} \) such that \( I_A I = I_3 A \)

Definition at line 1196 of file MiniTensor_Tensor4.h.

◆ identity_3() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor4< T, DYNAMIC > const minitensor::identity_3 ( Index const  dimension)

4th-order identity I3: \( \delta_{ij} \delta_{kl} \) such that \( I_A I = I_3 A \).

Definition at line 1206 of file MiniTensor_Tensor4.h.

◆ identity_3() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::identity_3 ( Index const  dimension)

4th-order identity I3: \( \delta_{ij} \delta_{kl} \) such that \( I_A I = I_3 A \).

Definition at line 1219 of file MiniTensor_Tensor4.h.

◆ levi_civita_4() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::levi_civita_4 ( )

Levi-Civita symbol

Definition at line 1232 of file MiniTensor_Tensor4.h.

◆ levi_civita_4() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor4< T, DYNAMIC > const minitensor::levi_civita_4 ( Index const  dimension)

Levi-Civita symbol as a 4th-order tensor.

Definition at line 1248 of file MiniTensor_Tensor4.h.

◆ levi_civita_4() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::levi_civita_4 ( Index const  dimension)

Levi-Civita symbol as a 4th-order tensor.

Definition at line 1264 of file MiniTensor_Tensor4.h.

◆ permutation_4() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::permutation_4 ( )

Permutation symbol

Definition at line 1282 of file MiniTensor_Tensor4.h.

◆ permutation_4() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor4< T, DYNAMIC > const minitensor::permutation_4 ( Index const  dimension)

Permutation symbol as a 4th-order tensor; alias of levi_civita_4.

Definition at line 1293 of file MiniTensor_Tensor4.h.

◆ permutation_4() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::permutation_4 ( Index const  dimension)

Permutation symbol as a 4th-order tensor; alias of levi_civita_4.

Definition at line 1304 of file MiniTensor_Tensor4.h.

◆ alternator_4() [1/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::alternator_4 ( )

Alternating symbol

Definition at line 1315 of file MiniTensor_Tensor4.h.

◆ alternator_4() [2/3]

template<typename T >
KOKKOS_INLINE_FUNCTION Tensor4< T, DYNAMIC > const minitensor::alternator_4 ( Index const  dimension)

Alternator as a 4th-order tensor; alias of levi_civita_4.

Definition at line 1326 of file MiniTensor_Tensor4.h.

◆ alternator_4() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > const minitensor::alternator_4 ( Index const  dimension)

Alternator as a 4th-order tensor; alias of levi_civita_4.

Definition at line 1338 of file MiniTensor_Tensor4.h.

◆ inverse()

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< T, N > minitensor::inverse ( Tensor4< T, N > const &  A)

4th-order inverse

Returns
\( B such that B : A = A : B = I_1 \)

Definition at line 1010 of file MiniTensor_Tensor4.h.

◆ dot() [13/18]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot ( Tensor4< T, N > const &  A,
Vector< S, N > const &  u 
)

4th-order tensor vector dot product

Parameters
A4th-order tensor
uvector
Returns
3rd-order tensor \( B = A \cdot u := B_{ijk}=A_{ijkp} u_{p} \)

Definition at line 1380 of file MiniTensor_Tensor4.h.

◆ dot() [14/18]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot ( Vector< S, N > const &  u,
Tensor4< T, N > const &  A 
)

vector 4th-order tensor dot product

Parameters
A4th-order tensor
uvector
Returns
3rd-order tensor \( u dot A \) as \( B_{ijk}=u_{p} A_{pijk} \)

Definition at line 1417 of file MiniTensor_Tensor4.h.

◆ dot2() [6/9]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot2 ( Tensor4< T, N > const &  A,
Vector< S, N > const &  u 
)

4th-order tensor vector dot2 product

Parameters
A4th-order tensor
uvector
Returns
3rd-order tensor \( B = A \cdot u := B_{ijk} = A_{ijpk} u_{p} \)

Definition at line 1454 of file MiniTensor_Tensor4.h.

◆ dot2() [7/9]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor3< typename Promote< S, T >::type, N > minitensor::dot2 ( Vector< S, N > const &  u,
Tensor4< T, N > const &  A 
)

vector 4th-order tensor dot2 product

Parameters
A4th-order tensor
uvector
Returns
3rd-order tensor \( u dot2 A \) as \( B_{ijk}=u_{p} A_{ipjk} \)

Definition at line 1491 of file MiniTensor_Tensor4.h.

◆ dotdot() [4/6]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dotdot ( Tensor4< T, N > const &  A,
Tensor< S, N > const &  B 
)

4th-order tensor 2nd-order tensor double dot product

Parameters
A4th-order tensor
B2nd-order tensor
Returns
2nd-order tensor \( C = A : B := C_{ij} = A_{ijpq} B_{pq} \)

Definition at line 1525 of file MiniTensor_Tensor4.h.

◆ dotdot() [5/6]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor< typename Promote< S, T >::type, N > minitensor::dotdot ( Tensor< S, N > const &  B,
Tensor4< T, N > const &  A 
)

2nd-order tensor 4th-order tensor double dot product

Parameters
B2nd-order tensor
A4th-order tensor
Returns
2nd-order tensor \( C = B : A := C_{ij} = B_{pq} A_{pqij} \)

Definition at line 1559 of file MiniTensor_Tensor4.h.

◆ dotdot() [6/6]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dotdot ( Tensor4< S, N > const &  A,
Tensor4< T, N > const &  B 
)

4th-order tensor 4th-order tensor double dot product

Parameters
A4th-order tensor
B4th-order tensor
Returns
2nd-order tensor \( C = A : B := C_{ij} = A_{ijpq} B_{pq} \)

Definition at line 1593 of file MiniTensor_Tensor4.h.

◆ tensor() [2/2]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::tensor ( Tensor< S, N > const &  A,
Tensor< T, N > const &  B 
)

2nd-order tensor 2nd-order tensor tensor product

Parameters
A2nd-order tensor
B2nd-order tensor
Returns
\( C = A \otimes B := C_{ijkl} = A_{ij} B_{kl} \)

Definition at line 1631 of file MiniTensor_Tensor4.h.

◆ tensor2()

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::tensor2 ( Tensor< S, N > const &  A,
Tensor< T, N > const &  B 
)

2nd-order tensor 2nd-order tensor tensor product

Parameters
A2nd-order tensor
B2nd-order tensor
Returns
\( C_{ijkl} = A_{ik} B_{jl} \)

Definition at line 1660 of file MiniTensor_Tensor4.h.

◆ tensor3()

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::tensor3 ( Tensor< S, N > const &  A,
Tensor< T, N > const &  B 
)

2nd-order tensor 2nd-order tensor tensor product

Parameters
A2nd-order tensor
B2nd-order tensor
Returns
\( C_{ijkl} = A_{il} B_{kj} \)

Definition at line 1689 of file MiniTensor_Tensor4.h.

◆ dot() [15/18]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dot ( Tensor4< T, N > const &  A,
Tensor< S, N > const &  B 
)

4th-order tensor 2nd-order tensor dot product

Parameters
A4th-order tensor
B2nd-order tensor
Returns
\( C = A \cdot B := C_{ijkl} = A_{ijkp} B_{pl} \)

Definition at line 1718 of file MiniTensor_Tensor4.h.

◆ dot_t() [3/3]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dot_t ( Tensor4< T, N > const &  A,
Tensor< S, N > const &  B 
)

4th-order tensor 2nd-order tensor transpose dot product

Parameters
A4th-order tensor
B2nd-order tensor
Returns
\( C = A \cdot B^T := C_{ijkl} = A_{ijkp} B_{lp} \)

Definition at line 1754 of file MiniTensor_Tensor4.h.

◆ dot() [16/18]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dot ( Tensor< S > const &  A,
Tensor4< T, N > const &  B 
)

2nd-order tensor 4th-order tensor dot product

Parameters
A2nd-order tensor
B4th-order tensor
Returns
\( C = A \cdot B := C_{ijkl} = A_{ip} B_{pjkl} \)

◆ t_dot() [5/5]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::t_dot ( Tensor< S, N > const &  A,
Tensor4< T, N > const &  B 
)

2nd-order tensor transpose 4th-order tensor dot product

Parameters
A2nd-order tensor
B4th-order tensor
Returns
\( C = A^T \cdot B := C_{ijkl} = A_{pi} B_{pjkl} \)

Definition at line 1830 of file MiniTensor_Tensor4.h.

◆ dot2() [8/9]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dot2 ( Tensor4< T, N > const &  A,
Tensor< S, N > const &  B 
)

4th-order tensor 2nd-order tensor dot product

Parameters
A4th-order tensor
B2nd-order tensor
Returns
\( C = A \cdot B := C_{ijkl} = A_{ijpl} B_{pk} \)

Definition at line 1866 of file MiniTensor_Tensor4.h.

◆ dot2_t()

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dot2_t ( Tensor4< T, N > const &  A,
Tensor< S, N > const &  B 
)

4th-order tensor 2nd-order tensor transpose dot product

Parameters
A4th-order tensor
B2nd-order tensor
Returns
\( C = A \cdot B^T := C_{ijkl} = A_{ijpl} B_{kp} \)

Definition at line 1902 of file MiniTensor_Tensor4.h.

◆ dot2() [9/9]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dot2 ( Tensor< S, N > const &  A,
Tensor4< T, N > const &  B 
)

2nd-order tensor 4th-order tensor dot product

Parameters
A2nd-order tensor
B4th-order tensor
Returns
\( C = A \cdot B := C_{ijkl} = A_{jp} B_{ipkl} \)

Definition at line 1938 of file MiniTensor_Tensor4.h.

◆ t_dot2()

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::t_dot2 ( Tensor< S, N > const &  A,
Tensor4< T, N > const &  B 
)

2nd-order tensor transpose 4th-order tensor dot product

Parameters
A2nd-order tensor
B4th-order tensor
Returns
\( C = A^T \cdot B := C_{ijkl} = A_{pj} B_{ipkl} \)

Definition at line 1974 of file MiniTensor_Tensor4.h.

◆ odot()

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::odot ( Tensor< S, N > const &  A,
Tensor< T, N > const &  B 
)

odot operator useful for \( \frac{\partial A^{-1}}{\partial A} \) see Holzapfel eqn 6.165

Parameters
A2nd-order tensor
B2nd-order tensor
Returns
\( A \odot B \) which is \( C_{ijkl} = \frac{1}{2}(A_{ik} B_{jl} + A_{il} B_{jk}) \)

Definition at line 2015 of file MiniTensor_Tensor4.h.

◆ kronecker()

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::kronecker ( Tensor< S, N > const &  A,
Tensor4< T, N > const &  B 
)

4th-order input

Parameters
A4th-order tensor
B2nd-order tensor
Returns
\( C'_{i'j'k'l'} = A_{i'i} A_{j'j} A_{k'k} A_{l'l} B_{ijkl} \)

Definition at line 2044 of file MiniTensor_Tensor4.h.

◆ operator>>() [4/5]

template<typename T , Index N>
std::istream & minitensor::operator>> ( std::istream &  is,
Tensor4< T, N > &  A 
)

4th-order input

Parameters
A4th-order tensor
isinput stream
Returns
is input stream

Definition at line 2091 of file MiniTensor_Tensor4.h.

◆ operator<<() [4/5]

template<typename T , Index N>
std::ostream & minitensor::operator<< ( std::ostream &  os,
Tensor4< T, N > const &  A 
)

4th-order output

Parameters
A4th-order tensor
osoutput stream
Returns
os output stream

Definition at line 2116 of file MiniTensor_Tensor4.h.

◆ dot() [17/18]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Tensor4< typename Promote< S, T >::type, N > minitensor::dot ( Tensor< S, N > const &  A,
Tensor4< T, N > const &  B 
)

2nd-order by 4th-order dot product.

Returns
\( C_{ijkl} = A_{ip} B_{pjkl} \)

Definition at line 1794 of file MiniTensor_Tensor4.h.

◆ TensorBase() [1/12]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase ( )

Default constructor

Definition at line 589 of file MiniTensor_TensorBase.h.

◆ TensorBase() [2/12]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase ( Index const  dimension,
Index const  order 
)
explicit

Constructor that initializes to NaNs

Parameters
dimensionthe space dimension
orderthe tensor order

Definition at line 605 of file MiniTensor_TensorBase.h.

◆ TensorBase() [3/12]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase ( Index const  dimension,
Index const  order,
Filler const  value 
)

Create with specified value

Parameters
dimensionthe space dimension
orderthe tensor order
valueall components are set equal to this

Definition at line 617 of file MiniTensor_TensorBase.h.

◆ TensorBase() [4/12]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase ( Index const  dimension,
Index const  order,
T const &  s 
)

Create from a scalar

Parameters
dimensionthe space dimension
orderthe tensor order
sall components are set equal to this value

Definition at line 632 of file MiniTensor_TensorBase.h.

◆ TensorBase() [5/12]

template<typename T , typename ST >
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase ( Index const  dimension,
Index const  order,
ArrayT &  data,
Index  index1 
)

Create from array

Parameters
dimensionthe space dimension
orderthe tensor order
dataarray to copy components from
index1first fixed index into the array

Definition at line 648 of file MiniTensor_TensorBase.h.

◆ TensorBase() [6/12]

template<typename T , typename ST >
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase ( Index const  dimension,
Index const  order,
ArrayT &  data,
Index  index1,
Index  index2 
)

Create from array

Parameters
dimensionthe space dimension
orderthe tensor order
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array

Definition at line 662 of file MiniTensor_TensorBase.h.

◆ TensorBase() [7/12]

template<typename T , typename ST >
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase ( Index const  dimension,
Index const  order,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3 
)

Create from array

Parameters
dimensionthe space dimension
orderthe tensor order
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array

Definition at line 677 of file MiniTensor_TensorBase.h.

◆ TensorBase() [8/12]

template<typename T , typename ST >
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase ( Index const  dimension,
Index const  order,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4 
)

Create from array

Parameters
dimensionthe space dimension
orderthe tensor order
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array
index4fourth fixed index into the array

Definition at line 693 of file MiniTensor_TensorBase.h.

◆ TensorBase() [9/12]

template<typename T , typename ST >
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase ( Index const  dimension,
Index const  order,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5 
)

Create from array

Parameters
dimensionthe space dimension
orderthe tensor order
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array
index4fourth fixed index into the array
index5fifth fixed index into the array

Definition at line 710 of file MiniTensor_TensorBase.h.

◆ TensorBase() [10/12]

template<typename T , typename ST >
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase ( Index const  dimension,
Index const  order,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5,
Index  index6 
)

Create from array

Parameters
dimensionthe space dimension
orderthe tensor order
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array
index4fourth fixed index into the array
index5fifth fixed index into the array
index6sixth fixed index into the array

Definition at line 728 of file MiniTensor_TensorBase.h.

◆ TensorBase() [11/12]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase ( Index const  dimension,
Index const  order,
T const *  data_ptr 
)

Create from array defined by pointer.

Parameters
dimensionthe space dimension
orderthe tensor order
data_ptrpointer into the array

Definition at line 746 of file MiniTensor_TensorBase.h.

◆ TensorBase() [12/12]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION minitensor::TensorBase< T, ST >::TensorBase ( TensorBase< T, ST > const &  X)

Copy constructor

Parameters
Xthe values of its components are copied to the new tensor

Definition at line 761 of file MiniTensor_TensorBase.h.

◆ operator=() [3/3]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION TensorBase< T, ST > & minitensor::TensorBase< T, ST >::operator= ( TensorBase< T, ST > const &  X)

Copy assignment

Parameters
Xthe values of its components are copied to this tensor

Definition at line 782 of file MiniTensor_TensorBase.h.

◆ operator[]() [5/6]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION T const & minitensor::TensorBase< T, ST >::operator[] ( Index const  i) const

Linear access to components

Parameters
ithe index

Definition at line 835 of file MiniTensor_TensorBase.h.

◆ operator[]() [6/6]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION T & minitensor::TensorBase< T, ST >::operator[] ( Index const  i)

Linear access to components

Parameters
ithe index

Definition at line 846 of file MiniTensor_TensorBase.h.

◆ get_number_components()

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION Index minitensor::TensorBase< T, ST >::get_number_components ( ) const
Returns
total number of components

Definition at line 857 of file MiniTensor_TensorBase.h.

◆ fill() [1/10]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill ( Filler const  value)

Fill components with value

Parameters
valueall components are set equal to this specification

Definition at line 905 of file MiniTensor_TensorBase.h.

◆ fill() [2/10]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill ( T const &  s)

Fill components with value

Parameters
sall components are set equal to this value

Definition at line 1000 of file MiniTensor_TensorBase.h.

◆ fill() [3/10]

template<typename T , typename ST >
template<class ArrayT >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill ( ArrayT &  data,
Index  index1 
)

Fill components from array defined by pointer.

Parameters
dataarray to copy components from
index1first fixed index into the array

Definition at line 1023 of file MiniTensor_TensorBase.h.

◆ fill() [4/10]

template<typename T , typename ST >
template<class ArrayT >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill ( ArrayT &  data,
Index  index1,
Index  index2 
)

Fill components from array.

Parameters
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array

Definition at line 1055 of file MiniTensor_TensorBase.h.

◆ fill() [5/10]

template<typename T , typename ST >
template<class ArrayT >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill ( ArrayT &  data,
Index  index1,
Index  index2,
Index  index3 
)

Fill components from array.

Parameters
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array

Definition at line 1111 of file MiniTensor_TensorBase.h.

◆ fill() [6/10]

template<typename T , typename ST >
template<class ArrayT >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill ( ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4 
)

Fill components from array.

Parameters
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array
index4fourth fixed index into the array

Definition at line 1178 of file MiniTensor_TensorBase.h.

◆ fill() [7/10]

template<typename T , typename ST >
template<class ArrayT >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill ( ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5 
)

Fill components from array.

Parameters
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array
index4fourth fixed index into the array
index5fifth fixed index into the array

Definition at line 1259 of file MiniTensor_TensorBase.h.

◆ fill() [8/10]

template<typename T , typename ST >
template<class ArrayT >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill ( ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5,
Index  index6 
)

Fill components from array.

Parameters
dataarray to copy components from
index1first fixed index into the array
index2second fixed index into the array
index3third fixed index into the array
index4fourth fixed index into the array
index5fifth fixed index into the array
index6sixth fixed index into the array

Definition at line 1356 of file MiniTensor_TensorBase.h.

◆ fill() [9/10]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill ( T const *  data_ptr)

Fill components from array defined by pointer.

Parameters
data_ptrpointer into array for filling components

Definition at line 1470 of file MiniTensor_TensorBase.h.

◆ fill() [10/10]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::fill ( T const *  data_ptr,
ComponentOrder const  component_order 
)

Fill components from array defined by pointer.

Parameters
data_ptrpointer into array for filling components
component_ordercomponent convention (3D only)

Definition at line 1490 of file MiniTensor_TensorBase.h.

◆ operator+=()

template<typename T , typename ST >
template<typename S , typename SS >
KOKKOS_INLINE_FUNCTION TensorBase< T, ST > & minitensor::TensorBase< T, ST >::operator+= ( TensorBase< S, SS > const &  X)

Component increment

Parameters
Xcomponents are added to current components

Definition at line 1566 of file MiniTensor_TensorBase.h.

◆ operator-=()

template<typename T , typename ST >
template<typename S , typename SS >
KOKKOS_INLINE_FUNCTION TensorBase< T, ST > & minitensor::TensorBase< T, ST >::operator-= ( TensorBase< S, SS > const &  X)

Component decrement

Parameters
Xcomponents are subtracted to current components

Definition at line 1587 of file MiniTensor_TensorBase.h.

◆ operator*=()

template<typename T , typename ST >
template<typename S >
KOKKOS_INLINE_FUNCTION TensorBase< T, ST > & minitensor::TensorBase< T, ST >::operator*= ( S const &  X)

Component scale

Parameters
Xcomponents are scaled by the parameter

Definition at line 1608 of file MiniTensor_TensorBase.h.

◆ operator/=()

template<typename T , typename ST >
template<typename S >
KOKKOS_INLINE_FUNCTION TensorBase< T, ST > & minitensor::TensorBase< T, ST >::operator/= ( S const &  X)

Component divide

Parameters
Xcomponents are divided by the parameter

Definition at line 1626 of file MiniTensor_TensorBase.h.

◆ clear() [3/3]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::clear ( )

Fill with zeros

Definition at line 1643 of file MiniTensor_TensorBase.h.

◆ set_number_components()

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::set_number_components ( Index const  number_components)
protected
Parameters
number_componentsset storage for this number of components

Definition at line 868 of file MiniTensor_TensorBase.h.

◆ get_dimension() [4/5]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION Index minitensor::TensorBase< T, ST >::get_dimension ( Index const  order) const
protected
Returns
dimension

Definition at line 806 of file MiniTensor_TensorBase.h.

◆ set_dimension() [4/5]

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::TensorBase< T, ST >::set_dimension ( Index const  dimension,
Index const  order 
)
protected
Parameters
dimension
order

Definition at line 817 of file MiniTensor_TensorBase.h.

◆ norm_f()

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION T minitensor::norm_f ( TensorBase< T, ST > const &  X)

Frobenius norm

Definition at line 1673 of file MiniTensor_TensorBase.h.

◆ norm_f_square()

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION T minitensor::norm_f_square ( TensorBase< T, ST > const &  X)

Square of Frobenius norm

Definition at line 1655 of file MiniTensor_TensorBase.h.

◆ add()

template<typename R , typename S , typename T , typename SR , typename SS , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::add ( TensorBase< R, SR > const &  A,
TensorBase< S, SS > const &  B,
TensorBase< T, ST > &  C 
)

Base addition

Definition at line 1690 of file MiniTensor_TensorBase.h.

◆ subtract()

template<typename R , typename S , typename T , typename SR , typename SS , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::subtract ( TensorBase< R, SR > const &  A,
TensorBase< S, SS > const &  B,
TensorBase< T, ST > &  C 
)

Base subtraction

Definition at line 1716 of file MiniTensor_TensorBase.h.

◆ minus()

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::minus ( TensorBase< T, ST > const &  A,
TensorBase< T, ST > &  B 
)

Base minus

Definition at line 1740 of file MiniTensor_TensorBase.h.

◆ equal()

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION bool minitensor::equal ( TensorBase< T, ST > const &  A,
TensorBase< T, ST > const &  B 
)

Base equality

Definition at line 1760 of file MiniTensor_TensorBase.h.

◆ not_equal()

template<typename T , typename ST >
KOKKOS_INLINE_FUNCTION bool minitensor::not_equal ( TensorBase< T, ST > const &  A,
TensorBase< T, ST > const &  B 
)

Base not equality

Definition at line 1780 of file MiniTensor_TensorBase.h.

◆ scale()

template<typename R , typename S , typename T , typename SR , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::scale ( TensorBase< R, SR > const &  A,
S const &  s,
TensorBase< T, ST > &  B 
)

Base scaling

Definition at line 1791 of file MiniTensor_TensorBase.h.

◆ divide()

template<typename R , typename S , typename T , typename SR , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::divide ( TensorBase< R, SR > const &  A,
S const &  s,
TensorBase< T, ST > &  B 
)

Base division

Definition at line 1811 of file MiniTensor_TensorBase.h.

◆ split()

template<typename R , typename S , typename T , typename SR , typename ST >
KOKKOS_INLINE_FUNCTION void minitensor::split ( TensorBase< R, SR > const &  A,
S const &  s,
TensorBase< T, ST > &  B 
)

Base split (scalar divided by tensor)

Definition at line 1831 of file MiniTensor_TensorBase.h.

◆ get_order() [5/5]

template<typename T , Index N = DYNAMIC>
static KOKKOS_INLINE_FUNCTION constexpr Index minitensor::Vector< T, N >::get_order ( )
inlinestaticconstexpr

Vector order

Definition at line 65 of file MiniTensor_Vector.h.

◆ Vector() [1/21]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( )
explicit

Construction that initializes to NaNs

Definition at line 640 of file MiniTensor_Vector.h.

◆ Vector() [2/21]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Index const  dimension)
explicit

Construction that initializes to NaNs.

Parameters
dimensionthe space dimension

Definition at line 652 of file MiniTensor_Vector.h.

◆ Vector() [3/21]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Filler const  value)
explicit

Create vector from a specified value

Parameters
valueall components are set equal to this

Definition at line 671 of file MiniTensor_Vector.h.

◆ Vector() [4/21]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Index const  dimension,
Filler const  value 
)
explicit

Create vector from a specified value.

Parameters
dimensionthe space dimension
valueall components are set equal to this

Definition at line 663 of file MiniTensor_Vector.h.

◆ Vector() [5/21]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Source const  source,
ArrayT &  data,
Index  index1 
)

Create vector from array.

Parameters
sourcekind of data source (Source::ARRAY)
dataarray with source components
index1first index into the array

Definition at line 683 of file MiniTensor_Vector.h.

◆ Vector() [6/21]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2 
)

Create vector from array.

Parameters
sourcekind of data source (Source::ARRAY)
dataarray with source components
index1first index into the array
index2second index into the array

Definition at line 695 of file MiniTensor_Vector.h.

◆ Vector() [7/21]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3 
)

Create vector from array.

Parameters
sourcekind of data source (Source::ARRAY)
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array

Definition at line 708 of file MiniTensor_Vector.h.

◆ Vector() [8/21]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4 
)

Create vector from array.

Parameters
sourcekind of data source (Source::ARRAY)
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array
index4fourth index into the array

Definition at line 722 of file MiniTensor_Vector.h.

◆ Vector() [9/21]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5 
)

Create vector from array.

Parameters
sourcekind of data source (Source::ARRAY)
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array
index4fourth index into the array
index5fifth index into the array

Definition at line 744 of file MiniTensor_Vector.h.

◆ Vector() [10/21]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Source const  source,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5,
Index  index6 
)

Create vector from array.

Parameters
sourcekind of data source (Source::ARRAY)
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array
index4fourth index into the array
index5fifth index into the array
index6sixth index into the array

Definition at line 768 of file MiniTensor_Vector.h.

◆ Vector() [11/21]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Source const  source,
Index const  dimension,
ArrayT &  data,
Index  index1 
)

Create vector from array.

Parameters
sourcekind of data source (Source::ARRAY)
dimensionthe space dimension
dataarray with source components
index1first index into the array

Definition at line 794 of file MiniTensor_Vector.h.

◆ Vector() [12/21]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Source const  source,
Index const  dimension,
ArrayT &  data,
Index  index1,
Index  index2 
)

Create vector from array.

Parameters
sourcekind of data source (Source::ARRAY)
dimensionthe space dimension
dataarray with source components
index1first index into the array
index2second index into the array

Definition at line 807 of file MiniTensor_Vector.h.

◆ Vector() [13/21]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Source const  source,
Index const  dimension,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3 
)

Create vector from array.

Parameters
sourcekind of data source (Source::ARRAY)
dimensionthe space dimension
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array

Definition at line 821 of file MiniTensor_Vector.h.

◆ Vector() [14/21]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Source const  source,
Index const  dimension,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4 
)

Create vector from array.

Parameters
sourcekind of data source (Source::ARRAY)
dimensionthe space dimension
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array
index4fourth index into the array

Definition at line 842 of file MiniTensor_Vector.h.

◆ Vector() [15/21]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Source const  source,
Index const  dimension,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5 
)

Create vector from array.

Parameters
sourcekind of data source (Source::ARRAY)
dimensionthe space dimension
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array
index4fourth index into the array
index5fifth index into the array

Definition at line 865 of file MiniTensor_Vector.h.

◆ Vector() [16/21]

template<typename T , Index N>
template<class ArrayT >
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Source const  source,
Index const  dimension,
ArrayT &  data,
Index  index1,
Index  index2,
Index  index3,
Index  index4,
Index  index5,
Index  index6 
)

Create vector from array.

Parameters
sourcekind of data source (Source::ARRAY)
dimensionthe space dimension
dataarray with source components
index1first index into the array
index2second index into the array
index3third index into the array
index4fourth index into the array
index5fifth index into the array
index6sixth index into the array

Definition at line 890 of file MiniTensor_Vector.h.

◆ Vector() [17/21]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( T const *  data_ptr)

Create vector from array defined by pointer.

Parameters
data_ptrpointer into the array

Definition at line 925 of file MiniTensor_Vector.h.

◆ Vector() [18/21]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Index const  dimension,
T const *  data_ptr 
)

Create vector from array defined by pointer.

Parameters
dimensionthe space dimension
data_ptrpointer into the array

Definition at line 917 of file MiniTensor_Vector.h.

◆ Vector() [19/21]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( Vector< T, N > const &  v)

Copy constructor

Definition at line 936 of file MiniTensor_Vector.h.

◆ Vector() [20/21]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( T const &  s0,
T const &  s1 
)

Create vector specifying components

Parameters
s0s1 are the vector components in the R^2 canonical basis
s1second vector component in the R^2 canonical basis

Definition at line 947 of file MiniTensor_Vector.h.

◆ Vector() [21/21]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::Vector ( T const &  s0,
T const &  s1,
T const &  s2 
)

Create vector specifying components the vector components in the R^3 canonical basis

Parameters
s0s1 s2 are the vector components in the R^3 canonical basis
s1second vector component in the R^3 canonical basis
s2third vector component in the R^3 canonical basis

Definition at line 965 of file MiniTensor_Vector.h.

◆ ~Vector()

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION minitensor::Vector< T, N >::~Vector ( )
virtual

Simple destructor

Definition at line 984 of file MiniTensor_Vector.h.

◆ operator()() [9/12]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T const & minitensor::Vector< T, N >::operator() ( Index const  i) const

Indexing for constant vector

Parameters
ithe index

Definition at line 1040 of file MiniTensor_Vector.h.

◆ operator()() [10/12]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T & minitensor::Vector< T, N >::operator() ( Index const  i)

Vector indexing

Parameters
ithe index

Definition at line 1051 of file MiniTensor_Vector.h.

◆ operator()() [11/12]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T const & minitensor::Vector< T, N >::operator() ( Index const  i,
Index const   
) const

const Vector indexing convenience operator for some algorithms

Parameters
ithe index

Definition at line 1062 of file MiniTensor_Vector.h.

◆ operator()() [12/12]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T & minitensor::Vector< T, N >::operator() ( Index const  i,
Index const   
)

Vector indexing convenience operator for some algorithms

Parameters
ithe index

Definition at line 1073 of file MiniTensor_Vector.h.

◆ get_dimension() [5/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Index minitensor::Vector< T, N >::get_dimension ( ) const
Returns
dimension

Definition at line 995 of file MiniTensor_Vector.h.

◆ get_num_rows() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Index minitensor::Vector< T, N >::get_num_rows ( ) const
Returns
number rows

Definition at line 1006 of file MiniTensor_Vector.h.

◆ get_num_cols() [3/3]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Index minitensor::Vector< T, N >::get_num_cols ( ) const
Returns
number rows

Definition at line 1017 of file MiniTensor_Vector.h.

◆ set_dimension() [5/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION void minitensor::Vector< T, N >::set_dimension ( Index const  dimension)
Parameters
dimensionof vector

Definition at line 1028 of file MiniTensor_Vector.h.

◆ operator+() [5/5]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::operator+ ( Vector< S, N > const &  u,
Vector< T, N > const &  v 
)

Vector addition

Returns
\( u + v \)

Definition at line 1084 of file MiniTensor_Vector.h.

◆ operator-() [9/10]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::operator- ( Vector< S, N > const &  u,
Vector< T, N > const &  v 
)

Vector substraction

Returns
\( u - v \)

Definition at line 1100 of file MiniTensor_Vector.h.

◆ operator-() [10/10]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< T, N > minitensor::operator- ( Vector< T, N > const &  u)

Vector minus

Returns
\( -u \)

Definition at line 1116 of file MiniTensor_Vector.h.

◆ operator*() [17/19]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Promote< S, T >::type minitensor::operator* ( Vector< S, N > const &  u,
Vector< T, N > const &  v 
)

Vector dot product

Returns
\( u \cdot v \)

Definition at line 1132 of file MiniTensor_Vector.h.

◆ operator==() [5/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator== ( Vector< T, N > const &  u,
Vector< T, N > const &  v 
)

Vector equality tested by components

Returns
\( u \equiv v \)

Definition at line 1144 of file MiniTensor_Vector.h.

◆ operator!=() [5/5]

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION bool minitensor::operator!= ( Vector< T, N > const &  u,
Vector< T, N > const &  v 
)

Vector inequality tested by components

Returns
\( u \neq v \)

Definition at line 1156 of file MiniTensor_Vector.h.

◆ operator*() [18/19]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_vector< Promote< S, T >, N > >::type minitensor::operator* ( S const &  s,
Vector< T, N > const &  u 
)

Scalar vector product

Parameters
sscalar factor
uvector factor
Returns
\( s u \)

Definition at line 1168 of file MiniTensor_Vector.h.

◆ operator*() [19/19]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION lazy_disable_if< order_1234< S >, apply_vector< Promote< S, T >, N > >::type minitensor::operator* ( Vector< T, N > const &  u,
S const &  s 
)

Vector scalar product

Parameters
uvector factor
sscalar factor
Returns
\( s u \)

Definition at line 1185 of file MiniTensor_Vector.h.

◆ operator/() [9/10]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::operator/ ( Vector< T, N > const &  u,
S const &  s 
)

Vector scalar division

Parameters
uvector
sscalar that divides each component of vector
Returns
\( u / s \)

Definition at line 1201 of file MiniTensor_Vector.h.

◆ operator/() [10/10]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::operator/ ( S const &  s,
Vector< T, N > const &  u 
)

Scalar vector division

Parameters
sscalar
uvector that divides scalar with each component
Returns
\( s / u \)

Definition at line 1217 of file MiniTensor_Vector.h.

◆ dot() [18/18]

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Promote< S, T >::type minitensor::dot ( Vector< S, N > const &  u,
Vector< T, N > const &  v 
)

Vector dot product

Returns
\( u \cdot v \)

Definition at line 1233 of file MiniTensor_Vector.h.

◆ cross()

template<typename S , typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< typename Promote< S, T >::type, N > minitensor::cross ( Vector< S, N > const &  u,
Vector< T, N > const &  v 
)

Cross product only valid for R^3. R^N with N != 3 will produce an error.

Returns
\( u \times v \)

Definition at line 1270 of file MiniTensor_Vector.h.

◆ norm()

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T minitensor::norm ( Vector< T, N > const &  u)

Vector 2-norm

Returns
\( \sqrt{u \cdot u} \)

Definition at line 1304 of file MiniTensor_Vector.h.

◆ norm_square()

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T minitensor::norm_square ( Vector< T, N > const &  u)

Vector 2-norm square. Used for fast distance calculation.

Returns
\( u \cdot u \)

Definition at line 1321 of file MiniTensor_Vector.h.

◆ norm_1()

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T minitensor::norm_1 ( Vector< T, N > const &  u)

Vector 1-norm

Returns
\( |u_0|+|u_1|+|u_2| \)

Definition at line 1355 of file MiniTensor_Vector.h.

◆ norm_infinity()

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION T minitensor::norm_infinity ( Vector< T, N > const &  u)

Vector infinity-norm

Returns
\( \max(|u_0|,|u_1|,|u_2|) \)

Definition at line 1390 of file MiniTensor_Vector.h.

◆ unit()

template<typename T , Index N>
KOKKOS_INLINE_FUNCTION Vector< T, N > minitensor::unit ( Vector< T, N > const &  u)
Returns
u / |u|, fails for |u| = 0

Definition at line 1424 of file MiniTensor_Vector.h.

◆ house()

template<typename T , Index N>
std::pair< Vector< T, N >, T > minitensor::house ( Vector< T, N > const &  x)

Compute Householder vector See algorithm 5.1.1, Matrix Computations 3rd ed, Golub - Van Loan \( Px = |X|e_1, P := I - \beta v v^T\)

Returns
v, beta

Definition at line 1433 of file MiniTensor_Vector.h.

◆ operator>>() [5/5]

template<typename T , Index N>
std::istream & minitensor::operator>> ( std::istream &  is,
Vector< T, N > &  u 
)

Vector input

Parameters
uvector
isinput stream
Returns
is input stream

Definition at line 1474 of file MiniTensor_Vector.h.

◆ operator<<() [5/5]

template<typename T , Index N>
std::ostream & minitensor::operator<< ( std::ostream &  os,
Vector< T, N > const &  u 
)

Vector output

Parameters
uvector
osoutput stream
Returns
os output stream

Definition at line 1493 of file MiniTensor_Vector.h.

Variable Documentation

◆ ORDER [1/5]

template<typename T , Index M = DYNAMIC, Index N = DYNAMIC>
constexpr Index minitensor::Matrix< T, M, N >::ORDER = 1
staticconstexpr

Order

Definition at line 46 of file MiniTensor_Matrix.h.

◆ IS_DYNAMIC [1/7]

template<typename T , Index M = DYNAMIC, Index N = DYNAMIC>
constexpr bool minitensor::Matrix< T, M, N >::IS_DYNAMIC = (M == DYNAMIC || N == DYNAMIC)
staticconstexpr

Static or dynamic

Definition at line 53 of file MiniTensor_Matrix.h.

◆ rows_

template<typename T , Index M = DYNAMIC, Index N = DYNAMIC>
Index minitensor::Matrix< T, M, N >::rows_ {M}
private

Number of rows.

Definition at line 428 of file MiniTensor_Matrix.h.

◆ cols_

template<typename T , Index M = DYNAMIC, Index N = DYNAMIC>
Index minitensor::Matrix< T, M, N >::cols_ {N}
private

Number of columns.

Definition at line 434 of file MiniTensor_Matrix.h.

◆ value [1/28]

template<Index N, Index C>
constexpr Index minitensor::dimension_const< N, C >::value = C
staticconstexpr

Resulting dimension: the constant C.

Definition at line 27 of file MiniTensor_Storage.h.

◆ value [2/28]

template<Index C>
constexpr Index minitensor::dimension_const< DYNAMIC, C >::value = DYNAMIC
staticconstexpr

Resulting dimension: DYNAMIC.

Definition at line 38 of file MiniTensor_Storage.h.

◆ maximum_dimension

template<Index D>
constexpr Index minitensor::check_static< D >::maximum_dimension
staticconstexpr
Initial value:
=
static_cast<Index>(std::numeric_limits<Index>::digits)
uint32_t Index
Indexing type.

Largest dimension allowed for static storage.

Definition at line 51 of file MiniTensor_Storage.h.

◆ value [3/28]

template<Index D>
constexpr Index minitensor::check_static< D >::value = D
staticconstexpr

The validated dimension D.

Definition at line 60 of file MiniTensor_Storage.h.

◆ value [4/28]

template<Index D, Index O>
constexpr Index minitensor::dimension_power< D, O >::value = 0
staticconstexpr

Result: 0 for orders without a specialization below.

Definition at line 87 of file MiniTensor_Storage.h.

◆ value [5/28]

template<Index D>
constexpr Index minitensor::dimension_power< D, 1 >::value = D
staticconstexpr

Result: D.

Definition at line 98 of file MiniTensor_Storage.h.

◆ value [6/28]

template<Index D>
constexpr Index minitensor::dimension_power< D, 2 >::value = D * D
staticconstexpr

Result: D * D.

Definition at line 109 of file MiniTensor_Storage.h.

◆ value [7/28]

template<Index D>
constexpr Index minitensor::dimension_power< D, 3 >::value = D * D * D
staticconstexpr

Result: D * D * D.

Definition at line 120 of file MiniTensor_Storage.h.

◆ value [8/28]

template<Index D>
constexpr Index minitensor::dimension_power< D, 4 >::value = D * D * D * D
staticconstexpr

Result: D * D * D * D.

Definition at line 131 of file MiniTensor_Storage.h.

◆ value [9/28]

template<Index N>
constexpr Index minitensor::dimension_square< N >::value = 0
staticconstexpr

Result: 0 for dimensions without a specialization below.

Definition at line 140 of file MiniTensor_Storage.h.

◆ value [10/28]

constexpr Index minitensor::dimension_square< DYNAMIC >::value = DYNAMIC
staticconstexpr

Result: DYNAMIC.

Definition at line 151 of file MiniTensor_Storage.h.

◆ value [11/28]

minitensor::dimension_square< 1 >::value = 1
staticconstexpr

Result: 1.

Definition at line 157 of file MiniTensor_Storage.h.

◆ value [12/28]

minitensor::dimension_square< 2 >::value = 4
staticconstexpr

Result: 4.

Definition at line 164 of file MiniTensor_Storage.h.

◆ value [13/28]

minitensor::dimension_square< 3 >::value = 9
staticconstexpr

Result: 9.

Definition at line 171 of file MiniTensor_Storage.h.

◆ value [14/28]

minitensor::dimension_square< 4 >::value = 16
staticconstexpr

Result: 16.

Definition at line 178 of file MiniTensor_Storage.h.

◆ value [15/28]

template<Index N>
minitensor::dimension_sqrt< N >::value = 0
staticconstexpr

Result: 0 for dimensions without a specialization below.

Definition at line 185 of file MiniTensor_Storage.h.

◆ value [16/28]

constexpr Index minitensor::dimension_sqrt< DYNAMIC >::value = DYNAMIC
staticconstexpr

Result: DYNAMIC.

Definition at line 197 of file MiniTensor_Storage.h.

◆ value [17/28]

minitensor::dimension_sqrt< 1 >::value = 1
staticconstexpr

Result: 1.

Definition at line 203 of file MiniTensor_Storage.h.

◆ value [18/28]

minitensor::dimension_sqrt< 4 >::value = 2
staticconstexpr

Result: 2.

Definition at line 210 of file MiniTensor_Storage.h.

◆ value [19/28]

minitensor::dimension_sqrt< 9 >::value = 3
staticconstexpr

Result: 3.

Definition at line 217 of file MiniTensor_Storage.h.

◆ value [20/28]

minitensor::dimension_sqrt< 16 >::value = 4
staticconstexpr

Result: 4.

Definition at line 224 of file MiniTensor_Storage.h.

◆ value [21/28]

template<Index N, Index P>
constexpr Index minitensor::dimension_add< N, P >::value = N + P
staticconstexpr

Result: N + P.

Definition at line 234 of file MiniTensor_Storage.h.

◆ value [22/28]

template<Index P>
constexpr Index minitensor::dimension_add< DYNAMIC, P >::value = DYNAMIC
staticconstexpr

Result: DYNAMIC.

Definition at line 245 of file MiniTensor_Storage.h.

◆ value [23/28]

template<Index N, Index P>
constexpr Index minitensor::dimension_subtract< N, P >::value = N - P
staticconstexpr

Result: N - P.

Definition at line 256 of file MiniTensor_Storage.h.

◆ value [24/28]

template<Index P>
constexpr Index minitensor::dimension_subtract< DYNAMIC, P >::value = DYNAMIC
staticconstexpr

Result: DYNAMIC.

Definition at line 267 of file MiniTensor_Storage.h.

◆ value [25/28]

template<Index N, Index P>
constexpr Index minitensor::dimension_product< N, P >::value = N * P
staticconstexpr

Result: N * P.

Definition at line 278 of file MiniTensor_Storage.h.

◆ value [26/28]

template<Index N>
constexpr Index minitensor::dimension_product< N, DYNAMIC >::value = DYNAMIC
staticconstexpr

Result: DYNAMIC.

Definition at line 289 of file MiniTensor_Storage.h.

◆ value [27/28]

template<Index P>
constexpr Index minitensor::dimension_product< DYNAMIC, P >::value = DYNAMIC
staticconstexpr

Result: DYNAMIC.

Definition at line 300 of file MiniTensor_Storage.h.

◆ value [28/28]

constexpr Index minitensor::dimension_product< DYNAMIC, DYNAMIC >::value = DYNAMIC
staticconstexpr

Result: DYNAMIC.

Definition at line 311 of file MiniTensor_Storage.h.

◆ IS_STATIC [1/2]

template<typename T , Index N>
constexpr bool minitensor::Storage< T, N >::IS_STATIC = true
staticconstexpr

Storage policy flag: this is static storage.

Definition at line 350 of file MiniTensor_Storage.h.

◆ IS_DYNAMIC [2/7]

template<typename T , Index N>
constexpr bool minitensor::Storage< T, N >::IS_DYNAMIC = false
staticconstexpr

Storage policy flag: this is not dynamic storage.

Definition at line 357 of file MiniTensor_Storage.h.

◆ storage_ [1/2]

template<typename T , Index N>
T minitensor::Storage< T, N >::storage_[N]
private

Fixed-size array that holds the entries.

Definition at line 470 of file MiniTensor_Storage.h.

◆ size_ [1/2]

template<typename T , Index N>
Index minitensor::Storage< T, N >::size_ {N}
private

Number of entries in use; defaults to the capacity N.

Definition at line 476 of file MiniTensor_Storage.h.

◆ IS_DYNAMIC [3/7]

template<typename T >
constexpr bool minitensor::Storage< T, DYNAMIC >::IS_DYNAMIC = true
staticconstexpr

Storage policy flag: this is dynamic storage.

Definition at line 515 of file MiniTensor_Storage.h.

◆ IS_STATIC [2/2]

template<typename T >
constexpr bool minitensor::Storage< T, DYNAMIC >::IS_STATIC = false
staticconstexpr

Storage policy flag: this is not static storage.

Definition at line 522 of file MiniTensor_Storage.h.

◆ storage_ [2/2]

template<typename T >
T* minitensor::Storage< T, DYNAMIC >::storage_ {nullptr}
private

Pointer to the heap-allocated entries.

Definition at line 638 of file MiniTensor_Storage.h.

◆ size_ [2/2]

template<typename T >
Index minitensor::Storage< T, DYNAMIC >::size_ {0}
private

Number of entries currently allocated.

Definition at line 644 of file MiniTensor_Storage.h.

◆ ORDER [2/5]

template<typename T , Index N = DYNAMIC>
constexpr Index minitensor::Tensor< T, N >::ORDER = 2
staticconstexpr

Order

Definition at line 46 of file MiniTensor_Tensor.h.

◆ IS_DYNAMIC [4/7]

template<typename T , Index N = DYNAMIC>
constexpr bool minitensor::Tensor< T, N >::IS_DYNAMIC = N == DYNAMIC
staticconstexpr

Static or dynamic

Definition at line 53 of file MiniTensor_Tensor.h.

◆ ORDER [3/5]

template<typename T , Index N = DYNAMIC>
constexpr Index minitensor::Tensor3< T, N >::ORDER = 3
staticconstexpr

Order

Definition at line 41 of file MiniTensor_Tensor3.h.

◆ IS_DYNAMIC [5/7]

template<typename T , Index N = DYNAMIC>
constexpr bool minitensor::Tensor3< T, N >::IS_DYNAMIC = N == DYNAMIC
staticconstexpr

Static or dynamic

Definition at line 48 of file MiniTensor_Tensor3.h.

◆ ORDER [4/5]

template<typename T , Index N = DYNAMIC>
constexpr Index minitensor::Tensor4< T, N >::ORDER = 4
staticconstexpr

Order

Definition at line 41 of file MiniTensor_Tensor4.h.

◆ IS_DYNAMIC [6/7]

template<typename T , Index N = DYNAMIC>
constexpr bool minitensor::Tensor4< T, N >::IS_DYNAMIC = N == DYNAMIC
staticconstexpr

Static or dynamic

Definition at line 48 of file MiniTensor_Tensor4.h.

◆ components_

template<typename T , typename ST >
ST minitensor::TensorBase< T, ST >::components_
protected

TensorBase components

Definition at line 482 of file MiniTensor_TensorBase.h.

◆ dimension_

template<typename T , typename ST >
Index minitensor::TensorBase< T, ST >::dimension_ {0}
protected

dimension

Definition at line 488 of file MiniTensor_TensorBase.h.

◆ ORDER [5/5]

template<typename T , Index N = DYNAMIC>
constexpr Index minitensor::Vector< T, N >::ORDER = 1
staticconstexpr

Order

Definition at line 45 of file MiniTensor_Vector.h.

◆ IS_DYNAMIC [7/7]

template<typename T , Index N = DYNAMIC>
constexpr bool minitensor::Vector< T, N >::IS_DYNAMIC = N == DYNAMIC
staticconstexpr

Static or dynamic

Definition at line 52 of file MiniTensor_Vector.h.