Xped
Loading...
Searching...
No Matches
Xped::TensorInterface Struct Reference

#include <TensorInterface_Array_impl.hpp>

Inheritance diagram for Xped::TensorInterface:

Public Types

template<typename Scalar , std::size_t Rank>
using TType = nda::dense_array< Scalar, Rank >
 
template<typename Scalar , std::size_t Rank>
using cTType = const nda::dense_array< Scalar, Rank >
 
template<typename Scalar , std::size_t Rank>
using MapTType = nda::dense_array_ref< Scalar, Rank >
 
template<typename Scalar , std::size_t Rank>
using cMapTType = nda::const_dense_array_ref< Scalar, Rank >
 
using Indextype = nda::index_t
 
template<typename Scalar , std::size_t Rank>
using TType = CTF::Tensor< Scalar >
 
template<typename Scalar , std::size_t Rank>
using cTType = const CTF::Tensor< Scalar >
 
template<typename Scalar , std::size_t Rank>
using MapTType = CTF::Tensor< Scalar >
 
template<typename Scalar , std::size_t Rank>
using cMapTType = const CTF::Tensor< Scalar >
 
using Indextype = int
 
template<typename Scalar , std::size_t Rank>
using TType = Eigen::Tensor< Scalar, Rank >
 
template<typename Scalar , std::size_t Rank>
using cTType = const Eigen::Tensor< Scalar, Rank >
 
template<typename Scalar , std::size_t Rank>
using MapTType = Eigen::TensorMap< TType< Scalar, Rank > >
 
template<typename Scalar , std::size_t Rank>
using cMapTType = Eigen::TensorMap< cTType< Scalar, Rank > >
 
using Indextype = Eigen::Index
 

Static Public Member Functions

template<typename element_t , std::size_t N, size_t... Is>
static nda::internal::tuple_of_n< element_t, N > as_tuple (std::array< element_t, N > const &arr, std::index_sequence< Is... >)
 
template<typename element_t , std::size_t N>
static nda::internal::tuple_of_n< element_t, N > as_tuple (std::array< element_t, N > const &arr)
 
template<typename Scalar , std::size_t Rank>
static TType< Scalar, Rank > construct (const std::array< Indextype, Rank > &dims, mpi::XpedWorld &world=mpi::getUniverse())
 
template<typename Scalar , std::size_t Rank>
static TType< Scalar, Rank > construct (const MapTType< Scalar, Rank > &map)
 
template<typename Scalar , std::size_t Rank>
static cTType< Scalar, Rank > construct (const cMapTType< Scalar, Rank > &map)
 
template<typename Scalar , std::size_t Rank>
static cMapTType< Scalar, Rank > cMap (const Scalar *data, const std::array< Indextype, Rank > &dims)
 
template<typename Scalar , std::size_t Rank>
static MapTType< Scalar, Rank > Map (Scalar *data, const std::array< Indextype, Rank > &dims)
 
template<typename Scalar , std::size_t Rank>
static void setZero (TType< Scalar, Rank > &T)
 
template<typename Scalar , std::size_t Rank>
static void setRandom (TType< Scalar, Rank > &T)
 
template<typename Scalar , std::size_t Rank>
static void setConstant (TType< Scalar, Rank > &T, const Scalar &val)
 
template<typename Scalar , int Rank>
static void setVal (TType< Scalar, Rank > &T, const std::array< Indextype, Rank > &index, const Scalar &val)
 
template<typename Scalar , int Rank>
static Scalar getVal (const TType< Scalar, Rank > &T, const std::array< Indextype, Rank > &index)
 
template<typename Scalar , int Rank>
static const Scalar * get_raw_data (const TType< Scalar, Rank > &T)
 
template<typename Scalar , int Rank>
static Scalar * get_raw_data (TType< Scalar, Rank > &T)
 
template<typename Scalar , std::size_t Rank>
static std::array< Indextype, Rank > dimensions (const TType< Scalar, Rank > &T)
 
template<typename Scalar , std::size_t Rank>
static TType< Scalar, Rank > tensorProd (const TType< Scalar, Rank > &T1, const TType< Scalar, Rank > &T2)
 
template<typename Scalar , std::size_t Rank, Indextype... Is, typename Expr1 , typename Expr2 >
static void addScale_helper (const Expr1 &src, Expr2 &dst, const Scalar &scale, seq::iseq< Indextype, Is... > S)
 
template<typename Scalar , std::size_t Rank, typename Expr1 , typename Expr2 >
static void addScale (const Expr1 &src, Expr2 &dst, const Scalar &scale)
 
template<typename Scalar , std::size_t Rank1, std::size_t Rank2, Indextype... Is1, Indextype... Is2, Indextype... Ist>
static auto contract_helper (const TType< Scalar, Rank1 > &T1, const TType< Scalar, Rank2 > &T2, seq::iseq< Indextype, Is1... > S1, seq::iseq< Indextype, Is2... > S2, seq::iseq< Indextype, Ist... > St)
 
template<typename Scalar , std::size_t Rank1, std::size_t Rank2, Indextype... Is>
static TType< Scalar, Rank1+Rank2 - sizeof...(Is)> contract (const TType< Scalar, Rank1 > &T1, const TType< Scalar, Rank2 > &T2)
 
template<typename Expr , Indextype... p>
static auto shuffle_view (const Expr &T)
 
template<typename Scalar , std::size_t Rank, Indextype... p>
static TType< Scalar, Rank > shuffle (const TType< Scalar, Rank > &T)
 
template<typename Scalar , std::size_t Rank, Indextype... p>
static TType< Scalar, Rank > shuffle (const cMapTType< Scalar, Rank > &T)
 
template<typename Scalar , std::size_t Rank, Indextype... p>
static TType< Scalar, Rank > shuffle (const TType< Scalar, Rank > &T, seq::iseq< Indextype, p... > s)
 
template<typename Scalar , std::size_t Rank, Indextype... p>
static auto shuffle_view (const cMapTType< Scalar, Rank > &T, seq::iseq< Indextype, p... > s)
 
template<typename Scalar , std::size_t Rank1, std::size_t Rank2>
static TType< Scalar, Rank2 > reshape (const TType< Scalar, Rank1 > &T, const std::array< Indextype, Rank2 > &dims)
 
template<typename Scalar , std::size_t Rank1, std::size_t Rank2>
static auto slice (TType< Scalar, Rank1 > &T, const std::array< Indextype, Rank2 > &offsets, const std::array< Indextype, Rank2 > &extents)
 
template<typename Scalar , std::size_t Rank1, std::size_t Rank2>
static void setSubTensor (TType< Scalar, Rank1 > &T, const std::array< Indextype, Rank2 > &offsets, const std::array< Indextype, Rank2 > &extents, const TType< Scalar, Rank1 > &S)
 
template<typename Scalar , std::size_t Rank1, std::size_t Rank2>
static auto reshape (TType< Scalar, Rank1 > &T, const std::array< Indextype, Rank2 > &dims)
 
template<typename Scalar , int Rank>
static std::string print (const TType< Scalar, Rank > &T)
 
static constexpr char idx (const Indextype &i)
 
template<std::size_t Rank>
static constexpr std::array< char, Rank > get_idx (std::size_t shift=0)
 
template<typename Scalar , std::size_t Rank>
static TType< Scalar, Rank > construct (const std::array< Indextype, Rank > &dims, CTF::World &world)
 
template<typename Scalar , int Rank>
static TType< Scalar, Rank > construct (const MapTType< Scalar, Rank > &map)
 
template<typename Scalar , int Rank>
static void setZero (TType< Scalar, Rank > &T)
 
template<typename Scalar , int Rank>
static void setRandom (TType< Scalar, Rank > &T)
 
template<typename Scalar , int Rank>
static void setConstant (TType< Scalar, Rank > &T, const Scalar &val)
 
template<typename Scalar , int Rank>
static void setVal (TType< Scalar, Rank > &T, const std::array< Indextype, Rank > &index, const Scalar &val)
 
template<typename Scalar , int Rank>
static Scalar getVal (const TType< Scalar, Rank > &T, const std::array< Indextype, Rank > &index)
 
template<typename Scalar , int Rank>
static Scalar * get_raw_data (const TType< Scalar, Rank > &T)
 
template<typename Scalar , int Rank>
static std::array< Indextype, Rank > dimensions (const TType< Scalar, Rank > &T)
 
template<typename Scalar , int Rank>
static TType< Scalar, Rank > tensorProd (TType< Scalar, Rank > &T1, TType< Scalar, Rank > &T2)
 
template<typename Scalar , std::size_t Rank, typename Expr1 , typename Expr2 >
static void addScale (const Expr1 &src, Expr2 &dst, const Scalar &scale)
 
template<typename Scalar , std::size_t Rank1, std::size_t Rank2, Indextype... Is1, Indextype... Is2, Indextype... Ist>
static TType< Scalar, sizeof...(Ist)> contract_helper (TType< Scalar, Rank1 > &T1, TType< Scalar, Rank2 > &T2, seq::iseq< Indextype, Is1... > S1, seq::iseq< Indextype, Is2... > S2, seq::iseq< Indextype, Ist... > St)
 
template<typename Scalar , std::size_t Rank1, std::size_t Rank2, Indextype... Is>
static TType< Scalar, Rank1+Rank2 - sizeof...(Is)> contract (TType< Scalar, Rank1 > &T1, TType< Scalar, Rank2 > &T2)
 
template<typename Scalar , std::size_t Rank, Indextype... p>
static TType< Scalar, Rank > shuffle (TType< Scalar, Rank > &T)
 
template<typename Scalar , std::size_t Rank, Indextype... p>
static TType< Scalar, Rank > shuffle (TType< Scalar, Rank > &T, seq::iseq< Indextype, p... > s)
 
template<typename Expr , Indextype... p>
static Expr shuffle_view (const Expr &T)
 
template<typename Scalar , int Rank1, std::size_t Rank2>
static TType< Scalar, Rank2 > reshape (const TType< Scalar, Rank1 > &T, const std::array< Indextype, Rank2 > &dims)
 
template<typename Scalar , std::size_t Rank1, std::size_t Rank2>
static void setSubTensor (TType< Scalar, Rank1 > &T, const std::array< Indextype, Rank2 > &offsets, const std::array< Indextype, Rank2 > &extents, const TType< Scalar, Rank1 > &S)
 
template<typename Scalar , int Rank1, std::size_t Rank2>
static TType< Scalar, Rank1 > slice (TType< Scalar, Rank1 > &T, const std::array< Indextype, Rank2 > &offsets, const std::array< Indextype, Rank2 > &extents)
 
template<typename Scalar , std::size_t Rank>
static std::string print (const TType< Scalar, Rank > &T)
 
template<typename Scalar , std::size_t Rank>
static TType< Scalar, Rank > construct (const std::array< Indextype, Rank > &dims, const mpi::XpedWorld &=mpi::getUniverse())
 
template<typename Scalar , int Rank>
static TType< Scalar, Rank > construct (const MapTType< Scalar, Rank > &map)
 
template<typename Scalar , int Rank>
static cTType< Scalar, Rank > construct (const cMapTType< Scalar, Rank > &map)
 
template<typename Scalar , std::size_t Rank>
static cMapTType< Scalar, Rank > cMap (const Scalar *data, const std::array< Indextype, Rank > &dims)
 
template<typename Scalar , std::size_t Rank>
static MapTType< Scalar, Rank > Map (Scalar *data, const std::array< Indextype, Rank > &dims)
 
template<typename Scalar , int Rank>
static void setZero (TType< Scalar, Rank > &T)
 
template<typename Scalar , int Rank>
static void setRandom (TType< Scalar, Rank > &T)
 
template<typename Scalar , int Rank>
static void setConstant (TType< Scalar, Rank > &T, const Scalar &val)
 
template<typename Scalar , int Rank>
static void setVal (TType< Scalar, Rank > &T, const std::array< Indextype, Rank > &index, const Scalar &val)
 
template<typename Scalar , int Rank>
static Scalar getVal (const TType< Scalar, Rank > &T, const std::array< Indextype, Rank > &index)
 
template<typename Scalar , int Rank>
static const Scalar * get_raw_data (const TType< Scalar, Rank > &T)
 
template<typename Scalar , int Rank>
static Scalar * get_raw_data (TType< Scalar, Rank > &T)
 
template<typename Scalar , int Rank>
static std::array< Indextype, Rank > dimensions (const TType< Scalar, Rank > &T)
 
template<typename Scalar , int Rank>
static TType< Scalar, Rank > tensorProd (const TType< Scalar, Rank > &T1, const TType< Scalar, Rank > &T2)
 
template<typename Scalar , std::size_t Rank, typename Expr1 , typename Expr2 >
static void addScale (const Expr1 &src, Expr2 &dst, const Scalar &scale)
 
template<typename Scalar , std::size_t Rank1, std::size_t Rank2, Indextype... Is>
static TType< Scalar, Rank1+Rank2 - sizeof...(Is)> contract (const TType< Scalar, Rank1 > &T1, const TType< Scalar, Rank2 > &T2)
 
template<typename Scalar , std::size_t Rank, Indextype... p>
static TType< Scalar, Rank > shuffle (const TType< Scalar, Rank > &T)
 
template<typename Scalar , std::size_t Rank, Indextype... p>
static TType< Scalar, Rank > shuffle (const TType< Scalar, Rank > &T, seq::iseq< Indextype, p... > s)
 
template<typename Expr , Indextype... p>
static const Eigen::TensorShufflingOp< const std::array< Indextype, Eigen::internal::traits< Expr >::NumDimensions >, const Expr > shuffle_view (const Expr &T)
 
template<typename Scalar , int Rank1, std::size_t Rank2>
static TType< Scalar, Rank2 > reshape (const TType< Scalar, Rank1 > &T, const std::array< Indextype, Rank2 > &dims)
 
template<typename Scalar , std::size_t Rank1, std::size_t Rank2>
static void setSubTensor (TType< Scalar, Rank1 > &T, const std::array< Indextype, Rank2 > &offsets, const std::array< Indextype, Rank2 > &extents, const TType< Scalar, Rank1 > &S)
 
template<typename Scalar , int Rank1, std::size_t Rank2>
static const Eigen::TensorSlicingOp< const std::array< Indextype, Rank2 >, const std::array< Indextype, Rank2 >, const TType< Scalar, Rank1 > > slice (TType< Scalar, Rank1 > &T, const std::array< Indextype, Rank2 > &offsets, const std::array< Indextype, Rank2 > &extents)
 
template<typename Scalar , int Rank1, std::size_t Rank2>
static const Eigen::TensorReshapingOp< const std::array< Indextype, Rank2 >, const TType< Scalar, Rank1 > > reshape (TType< Scalar, Rank1 > &T, const std::array< Indextype, Rank2 > &dims)
 
template<typename Scalar , int Rank>
static std::string print (const TType< Scalar, Rank > &T)
 

Member Typedef Documentation

◆ cMapTType [1/3]

template<typename Scalar , std::size_t Rank>
using Xped::TensorInterface::cMapTType = nda::const_dense_array_ref<Scalar, Rank>

◆ cMapTType [2/3]

template<typename Scalar , std::size_t Rank>
using Xped::TensorInterface::cMapTType = const CTF::Tensor<Scalar>

◆ cMapTType [3/3]

template<typename Scalar , std::size_t Rank>
using Xped::TensorInterface::cMapTType = Eigen::TensorMap<cTType<Scalar, Rank> >

◆ cTType [1/3]

template<typename Scalar , std::size_t Rank>
using Xped::TensorInterface::cTType = const nda::dense_array<Scalar, Rank>

◆ cTType [2/3]

template<typename Scalar , std::size_t Rank>
using Xped::TensorInterface::cTType = const CTF::Tensor<Scalar>

◆ cTType [3/3]

template<typename Scalar , std::size_t Rank>
using Xped::TensorInterface::cTType = const Eigen::Tensor<Scalar, Rank>

◆ Indextype [1/3]

using Xped::TensorInterface::Indextype = nda::index_t

◆ Indextype [2/3]

◆ Indextype [3/3]

using Xped::TensorInterface::Indextype = Eigen::Index

◆ MapTType [1/3]

template<typename Scalar , std::size_t Rank>
using Xped::TensorInterface::MapTType = nda::dense_array_ref<Scalar, Rank>

◆ MapTType [2/3]

template<typename Scalar , std::size_t Rank>
using Xped::TensorInterface::MapTType = CTF::Tensor<Scalar>

◆ MapTType [3/3]

template<typename Scalar , std::size_t Rank>
using Xped::TensorInterface::MapTType = Eigen::TensorMap<TType<Scalar, Rank> >

◆ TType [1/3]

template<typename Scalar , std::size_t Rank>
using Xped::TensorInterface::TType = nda::dense_array<Scalar, Rank>

◆ TType [2/3]

template<typename Scalar , std::size_t Rank>
using Xped::TensorInterface::TType = CTF::Tensor<Scalar>

◆ TType [3/3]

template<typename Scalar , std::size_t Rank>
using Xped::TensorInterface::TType = Eigen::Tensor<Scalar, Rank>

Member Function Documentation

◆ addScale() [1/3]

template<typename Scalar , std::size_t Rank, typename Expr1 , typename Expr2 >
void Xped::TensorInterface::addScale ( const Expr1 &  src,
Expr2 &  dst,
const Scalar &  scale 
)
inlinestatic

◆ addScale() [2/3]

template<typename Scalar , std::size_t Rank, typename Expr1 , typename Expr2 >
static void Xped::TensorInterface::addScale ( const Expr1 &  src,
Expr2 &  dst,
const Scalar &  scale 
)
static

◆ addScale() [3/3]

template<typename Scalar , std::size_t Rank, typename Expr1 , typename Expr2 >
static void Xped::TensorInterface::addScale ( const Expr1 &  src,
Expr2 &  dst,
const Scalar &  scale 
)
static

◆ addScale_helper()

template<typename Scalar , std::size_t Rank, Indextype... Is, typename Expr1 , typename Expr2 >
static void Xped::TensorInterface::addScale_helper ( const Expr1 &  src,
Expr2 &  dst,
const Scalar &  scale,
seq::iseq< Indextype, Is... >  S 
)
inlinestatic

◆ as_tuple() [1/2]

template<typename element_t , std::size_t N>
static nda::internal::tuple_of_n< element_t, N > Xped::TensorInterface::as_tuple ( std::array< element_t, N > const &  arr)
inlinestatic
Here is the call graph for this function:

◆ as_tuple() [2/2]

template<typename element_t , std::size_t N, size_t... Is>
static nda::internal::tuple_of_n< element_t, N > Xped::TensorInterface::as_tuple ( std::array< element_t, N > const &  arr,
std::index_sequence< Is... >   
)
inlinestatic
Here is the caller graph for this function:

◆ cMap() [1/2]

template<typename Scalar , std::size_t Rank>
cMapTType< Scalar, Rank > Xped::TensorInterface::cMap ( const Scalar *  data,
const std::array< Indextype, Rank > &  dims 
)
inlinestatic
Here is the call graph for this function:

◆ cMap() [2/2]

template<typename Scalar , std::size_t Rank>
static cMapTType< Scalar, Rank > Xped::TensorInterface::cMap ( const Scalar *  data,
const std::array< Indextype, Rank > &  dims 
)
static

◆ construct() [1/8]

template<typename Scalar , int Rank>
cTType< Scalar, Rank > Xped::TensorInterface::construct ( const cMapTType< Scalar, Rank > &  map)
inlinestatic

◆ construct() [2/8]

template<typename Scalar , int Rank>
static cTType< Scalar, Rank > Xped::TensorInterface::construct ( const cMapTType< Scalar, Rank > &  map)
static

◆ construct() [3/8]

template<typename Scalar , int Rank>
TType< Scalar, Rank > Xped::TensorInterface::construct ( const MapTType< Scalar, Rank > &  map)
inlinestatic

◆ construct() [4/8]

template<typename Scalar , int Rank>
static TType< Scalar, Rank > Xped::TensorInterface::construct ( const MapTType< Scalar, Rank > &  map)
static

◆ construct() [5/8]

template<typename Scalar , int Rank>
static TType< Scalar, Rank > Xped::TensorInterface::construct ( const MapTType< Scalar, Rank > &  map)
static

◆ construct() [6/8]

template<typename Scalar , std::size_t Rank>
TType< Scalar, Rank > Xped::TensorInterface::construct ( const std::array< Indextype, Rank > &  dims,
const mpi::XpedWorld = mpi::getUniverse() 
)
static

◆ construct() [7/8]

template<typename Scalar , std::size_t Rank>
TType< Scalar, Rank > Xped::TensorInterface::construct ( const std::array< Indextype, Rank > &  dims,
CTF::World &  world 
)
static

◆ construct() [8/8]

template<typename Scalar , std::size_t Rank>
static TType< Scalar, Rank > Xped::TensorInterface::construct ( const std::array< Indextype, Rank > &  dims,
mpi::XpedWorld world = mpi::getUniverse() 
)
inlinestatic
Here is the call graph for this function:

◆ contract() [1/3]

template<typename Scalar , std::size_t Rank1, std::size_t Rank2, Indextype... Is>
TType< Scalar, Rank1+Rank2 - sizeof...(Is)> Xped::TensorInterface::contract ( const TType< Scalar, Rank1 > &  T1,
const TType< Scalar, Rank2 > &  T2 
)
inlinestatic

◆ contract() [2/3]

template<typename Scalar , std::size_t Rank1, std::size_t Rank2, Indextype... Is>
static TType< Scalar, Rank1+Rank2 - sizeof...(Is)> Xped::TensorInterface::contract ( const TType< Scalar, Rank1 > &  T1,
const TType< Scalar, Rank2 > &  T2 
)
static

◆ contract() [3/3]

template<typename Scalar , std::size_t Rank1, std::size_t Rank2, Indextype... Is>
TType< Scalar, Rank1+Rank2 - sizeof...(Is)> Xped::TensorInterface::contract ( TType< Scalar, Rank1 > &  T1,
TType< Scalar, Rank2 > &  T2 
)
static

◆ contract_helper() [1/2]

template<typename Scalar , std::size_t Rank1, std::size_t Rank2, Indextype... Is1, Indextype... Is2, Indextype... Ist>
static auto Xped::TensorInterface::contract_helper ( const TType< Scalar, Rank1 > &  T1,
const TType< Scalar, Rank2 > &  T2,
seq::iseq< Indextype, Is1... >  S1,
seq::iseq< Indextype, Is2... >  S2,
seq::iseq< Indextype, Ist... >  St 
)
inlinestatic

◆ contract_helper() [2/2]

template<typename Scalar , std::size_t Rank1, std::size_t Rank2, Indextype... Is1, Indextype... Is2, Indextype... Ist>
TType< Scalar, sizeof...(Ist)> Xped::TensorInterface::contract_helper ( TType< Scalar, Rank1 > &  T1,
TType< Scalar, Rank2 > &  T2,
seq::iseq< Indextype, Is1... >  S1,
seq::iseq< Indextype, Is2... >  S2,
seq::iseq< Indextype, Ist... >  St 
)
static

◆ dimensions() [1/3]

template<typename Scalar , int Rank>
std::array< Indextype, Rank > Xped::TensorInterface::dimensions ( const TType< Scalar, Rank > &  T)
inlinestatic

◆ dimensions() [2/3]

template<typename Scalar , int Rank>
static std::array< Indextype, Rank > Xped::TensorInterface::dimensions ( const TType< Scalar, Rank > &  T)
static

◆ dimensions() [3/3]

template<typename Scalar , int Rank>
static std::array< Indextype, Rank > Xped::TensorInterface::dimensions ( const TType< Scalar, Rank > &  T)
static

◆ get_idx()

template<std::size_t Rank>
static constexpr std::array< char, Rank > Xped::TensorInterface::get_idx ( std::size_t  shift = 0)
inlinestaticconstexpr
Here is the call graph for this function:

◆ get_raw_data() [1/5]

template<typename Scalar , int Rank>
const Scalar * Xped::TensorInterface::get_raw_data ( const TType< Scalar, Rank > &  T)
inlinestatic

◆ get_raw_data() [2/5]

template<typename Scalar , int Rank>
Scalar * Xped::TensorInterface::get_raw_data ( const TType< Scalar, Rank > &  T)
static

◆ get_raw_data() [3/5]

template<typename Scalar , int Rank>
static const Scalar * Xped::TensorInterface::get_raw_data ( const TType< Scalar, Rank > &  T)
static

◆ get_raw_data() [4/5]

template<typename Scalar , int Rank>
Scalar * Xped::TensorInterface::get_raw_data ( TType< Scalar, Rank > &  T)
inlinestatic

◆ get_raw_data() [5/5]

template<typename Scalar , int Rank>
static Scalar * Xped::TensorInterface::get_raw_data ( TType< Scalar, Rank > &  T)
static

◆ getVal() [1/3]

template<typename Scalar , int Rank>
Scalar Xped::TensorInterface::getVal ( const TType< Scalar, Rank > &  T,
const std::array< Indextype, Rank > &  index 
)
inlinestatic
Here is the call graph for this function:

◆ getVal() [2/3]

template<typename Scalar , int Rank>
static Scalar Xped::TensorInterface::getVal ( const TType< Scalar, Rank > &  T,
const std::array< Indextype, Rank > &  index 
)
static

◆ getVal() [3/3]

template<typename Scalar , int Rank>
static Scalar Xped::TensorInterface::getVal ( const TType< Scalar, Rank > &  T,
const std::array< Indextype, Rank > &  index 
)
static

◆ idx()

static constexpr char Xped::TensorInterface::idx ( const Indextype i)
inlinestaticconstexpr
Here is the caller graph for this function:

◆ Map() [1/2]

template<typename Scalar , std::size_t Rank>
MapTType< Scalar, Rank > Xped::TensorInterface::Map ( Scalar *  data,
const std::array< Indextype, Rank > &  dims 
)
inlinestatic
Here is the call graph for this function:

◆ Map() [2/2]

template<typename Scalar , std::size_t Rank>
static MapTType< Scalar, Rank > Xped::TensorInterface::Map ( Scalar *  data,
const std::array< Indextype, Rank > &  dims 
)
static

◆ print() [1/3]

template<typename Scalar , int Rank>
std::string Xped::TensorInterface::print ( const TType< Scalar, Rank > &  T)
inlinestatic

◆ print() [2/3]

template<typename Scalar , std::size_t Rank>
static std::string Xped::TensorInterface::print ( const TType< Scalar, Rank > &  T)
static

◆ print() [3/3]

template<typename Scalar , int Rank>
static std::string Xped::TensorInterface::print ( const TType< Scalar, Rank > &  T)
static

◆ reshape() [1/5]

template<typename Scalar , int Rank1, std::size_t Rank2>
TType< Scalar, Rank2 > Xped::TensorInterface::reshape ( const TType< Scalar, Rank1 > &  T,
const std::array< Indextype, Rank2 > &  dims 
)
inlinestatic
Here is the call graph for this function:

◆ reshape() [2/5]

template<typename Scalar , int Rank1, std::size_t Rank2>
static TType< Scalar, Rank2 > Xped::TensorInterface::reshape ( const TType< Scalar, Rank1 > &  T,
const std::array< Indextype, Rank2 > &  dims 
)
static

◆ reshape() [3/5]

template<typename Scalar , int Rank1, std::size_t Rank2>
static TType< Scalar, Rank2 > Xped::TensorInterface::reshape ( const TType< Scalar, Rank1 > &  T,
const std::array< Indextype, Rank2 > &  dims 
)
static

◆ reshape() [4/5]

template<typename Scalar , std::size_t Rank1, std::size_t Rank2>
static auto Xped::TensorInterface::reshape ( TType< Scalar, Rank1 > &  T,
const std::array< Indextype, Rank2 > &  dims 
)
inlinestatic
Here is the call graph for this function:

◆ reshape() [5/5]

template<typename Scalar , int Rank1, std::size_t Rank2>
const Eigen::TensorReshapingOp< const std::array< Indextype, Rank2 >, const TType< Scalar, Rank1 > > Xped::TensorInterface::reshape ( TType< Scalar, Rank1 > &  T,
const std::array< Indextype, Rank2 > &  dims 
)
static

◆ setConstant() [1/3]

template<typename Scalar , int Rank>
void Xped::TensorInterface::setConstant ( TType< Scalar, Rank > &  T,
const Scalar &  val 
)
inlinestatic

◆ setConstant() [2/3]

template<typename Scalar , int Rank>
static void Xped::TensorInterface::setConstant ( TType< Scalar, Rank > &  T,
const Scalar &  val 
)
static

◆ setConstant() [3/3]

template<typename Scalar , int Rank>
static void Xped::TensorInterface::setConstant ( TType< Scalar, Rank > &  T,
const Scalar &  val 
)
static

◆ setRandom() [1/3]

template<typename Scalar , int Rank>
void Xped::TensorInterface::setRandom ( TType< Scalar, Rank > &  T)
inlinestatic

◆ setRandom() [2/3]

template<typename Scalar , int Rank>
static void Xped::TensorInterface::setRandom ( TType< Scalar, Rank > &  T)
static

◆ setRandom() [3/3]

template<typename Scalar , int Rank>
static void Xped::TensorInterface::setRandom ( TType< Scalar, Rank > &  T)
static

◆ setSubTensor() [1/3]

template<typename Scalar , std::size_t Rank1, std::size_t Rank2>
void Xped::TensorInterface::setSubTensor ( TType< Scalar, Rank1 > &  T,
const std::array< Indextype, Rank2 > &  offsets,
const std::array< Indextype, Rank2 > &  extents,
const TType< Scalar, Rank1 > &  S 
)
inlinestatic
Here is the call graph for this function:

◆ setSubTensor() [2/3]

template<typename Scalar , std::size_t Rank1, std::size_t Rank2>
static void Xped::TensorInterface::setSubTensor ( TType< Scalar, Rank1 > &  T,
const std::array< Indextype, Rank2 > &  offsets,
const std::array< Indextype, Rank2 > &  extents,
const TType< Scalar, Rank1 > &  S 
)
static

◆ setSubTensor() [3/3]

template<typename Scalar , std::size_t Rank1, std::size_t Rank2>
static void Xped::TensorInterface::setSubTensor ( TType< Scalar, Rank1 > &  T,
const std::array< Indextype, Rank2 > &  offsets,
const std::array< Indextype, Rank2 > &  extents,
const TType< Scalar, Rank1 > &  S 
)
static

◆ setVal() [1/3]

template<typename Scalar , int Rank>
void Xped::TensorInterface::setVal ( TType< Scalar, Rank > &  T,
const std::array< Indextype, Rank > &  index,
const Scalar &  val 
)
inlinestatic
Here is the call graph for this function:

◆ setVal() [2/3]

template<typename Scalar , int Rank>
static void Xped::TensorInterface::setVal ( TType< Scalar, Rank > &  T,
const std::array< Indextype, Rank > &  index,
const Scalar &  val 
)
static

◆ setVal() [3/3]

template<typename Scalar , int Rank>
static void Xped::TensorInterface::setVal ( TType< Scalar, Rank > &  T,
const std::array< Indextype, Rank > &  index,
const Scalar &  val 
)
static

◆ setZero() [1/3]

template<typename Scalar , int Rank>
void Xped::TensorInterface::setZero ( TType< Scalar, Rank > &  T)
inlinestatic

◆ setZero() [2/3]

template<typename Scalar , int Rank>
static void Xped::TensorInterface::setZero ( TType< Scalar, Rank > &  T)
static

◆ setZero() [3/3]

template<typename Scalar , int Rank>
static void Xped::TensorInterface::setZero ( TType< Scalar, Rank > &  T)
static

◆ shuffle() [1/7]

template<typename Scalar , std::size_t Rank, Indextype... p>
static TType< Scalar, Rank > Xped::TensorInterface::shuffle ( const cMapTType< Scalar, Rank > &  T)
inlinestatic
Here is the call graph for this function:

◆ shuffle() [2/7]

template<typename Scalar , std::size_t Rank, Indextype... p>
TType< Scalar, Rank > Xped::TensorInterface::shuffle ( const TType< Scalar, Rank > &  T)
inlinestatic
Here is the call graph for this function:

◆ shuffle() [3/7]

template<typename Scalar , std::size_t Rank, Indextype... p>
static TType< Scalar, Rank > Xped::TensorInterface::shuffle ( const TType< Scalar, Rank > &  T)
static

◆ shuffle() [4/7]

template<typename Scalar , std::size_t Rank, Indextype... p>
TType< Scalar, Rank > Xped::TensorInterface::shuffle ( const TType< Scalar, Rank > &  T,
seq::iseq< Indextype, p... >  s 
)
inlinestatic
Here is the call graph for this function:

◆ shuffle() [5/7]

template<typename Scalar , std::size_t Rank, Indextype... p>
static TType< Scalar, Rank > Xped::TensorInterface::shuffle ( const TType< Scalar, Rank > &  T,
seq::iseq< Indextype, p... >  s 
)
static

◆ shuffle() [6/7]

template<typename Scalar , std::size_t Rank, Indextype... p>
TType< Scalar, Rank > Xped::TensorInterface::shuffle ( TType< Scalar, Rank > &  T)
static
Here is the call graph for this function:

◆ shuffle() [7/7]

template<typename Scalar , std::size_t Rank, Indextype... p>
TType< Scalar, Rank > Xped::TensorInterface::shuffle ( TType< Scalar, Rank > &  T,
seq::iseq< Indextype, p... >  s 
)
static
Here is the call graph for this function:

◆ shuffle_view() [1/4]

template<typename Scalar , std::size_t Rank, Indextype... p>
static auto Xped::TensorInterface::shuffle_view ( const cMapTType< Scalar, Rank > &  T,
seq::iseq< Indextype, p... >  s 
)
inlinestatic

◆ shuffle_view() [2/4]

template<typename Expr , Indextype... p>
static auto Xped::TensorInterface::shuffle_view ( const Expr &  T)
inlinestatic

◆ shuffle_view() [3/4]

template<typename Expr , Indextype... p>
Expr Xped::TensorInterface::shuffle_view ( const Expr &  T)
static

◆ shuffle_view() [4/4]

template<typename Expr , Indextype... p>
const Eigen::TensorShufflingOp< const std::array< Indextype, Eigen::internal::traits< Expr >::NumDimensions >, const Expr > Xped::TensorInterface::shuffle_view ( const Expr &  T)
static

◆ slice() [1/3]

template<typename Scalar , std::size_t Rank1, std::size_t Rank2>
static auto Xped::TensorInterface::slice ( TType< Scalar, Rank1 > &  T,
const std::array< Indextype, Rank2 > &  offsets,
const std::array< Indextype, Rank2 > &  extents 
)
inlinestatic
Here is the call graph for this function:

◆ slice() [2/3]

template<typename Scalar , int Rank1, std::size_t Rank2>
TType< Scalar, Rank1 > Xped::TensorInterface::slice ( TType< Scalar, Rank1 > &  T,
const std::array< Indextype, Rank2 > &  offsets,
const std::array< Indextype, Rank2 > &  extents 
)
static

◆ slice() [3/3]

template<typename Scalar , int Rank1, std::size_t Rank2>
const Eigen::TensorSlicingOp< const std::array< Indextype, Rank2 >, const std::array< Indextype, Rank2 >, const TType< Scalar, Rank1 > > Xped::TensorInterface::slice ( TType< Scalar, Rank1 > &  T,
const std::array< Indextype, Rank2 > &  offsets,
const std::array< Indextype, Rank2 > &  extents 
)
static

◆ tensorProd() [1/3]

template<typename Scalar , int Rank>
TType< Scalar, Rank > Xped::TensorInterface::tensorProd ( const TType< Scalar, Rank > &  T1,
const TType< Scalar, Rank > &  T2 
)
inlinestatic
Here is the call graph for this function:

◆ tensorProd() [2/3]

template<typename Scalar , int Rank>
static TType< Scalar, Rank > Xped::TensorInterface::tensorProd ( const TType< Scalar, Rank > &  T1,
const TType< Scalar, Rank > &  T2 
)
static

◆ tensorProd() [3/3]

template<typename Scalar , int Rank>
TType< Scalar, Rank > Xped::TensorInterface::tensorProd ( TType< Scalar, Rank > &  T1,
TType< Scalar, Rank > &  T2 
)
static

The documentation for this struct was generated from the following files: