mpqc::math::DecomposedTensor< T > Class Template Reference

Documentation

template<typename T>
class mpqc::math::DecomposedTensor< T >

Class to hold decomposition of a tensor. The class can hold an arbitrary number of decomposition, but the math functions in the helper headers will initially be written to only handle a two way decomposition.

Public Types

using numeric_type = T
 
using value_type = T
 
using range_type = typename TiledArray::Tensor< T >::range_type
 
using index1_type = typename TiledArray::Tensor< T >::index1_type
 
using ordinal_type = typename TiledArray::Tensor< T >::ordinal_type
 
using size_type = typename TiledArray::Tensor< T >::size_type
 
using pointer = typename TiledArray::Tensor< T >::pointer
 
using const_pointer = typename TiledArray::Tensor< T >::const_pointer
 
using reference = typename TiledArray::Tensor< T >::reference
 
using const_reference = typename TiledArray::Tensor< T >::const_reference
 
using iterator = typename TiledArray::Tensor< T >::iterator
 
using const_iterator = typename TiledArray::Tensor< T >::const_iterator
 

Public Member Functions

 DecomposedTensor ()
 
 DecomposedTensor (double c)
 
 DecomposedTensor (double c, std::vector< TiledArray::Tensor< T >> ts)
 
template<typename Range , typename = std::enable_if_t<std::is_same< TiledArray::Range, std::decay_t<Range>>::value>>
 DecomposedTensor (double c, Range &&r, std::vector< TiledArray::Tensor< T >> ts)
 
template<typename... Tensors>
 DecomposedTensor (double c, Tensors &&... ts)
 
template<typename Range , typename... Tensors, typename = std::enable_if_t< std::is_same<TiledArray::Range, std::decay_t<Range>>::value>>
 DecomposedTensor (double c, Range &&r, Tensors &&... ts)
 
 DecomposedTensor (TiledArray::Range const &r, T value)
 
double cut () const
 
std::size_t ndecomp () const
 
bool empty () const
 
std::size_t rank () const
 
std::vector< std::size_t > orders () const
 
std::vector< TiledArray::Tensor< T > > & tensors ()
 
std::vector< TiledArray::Tensor< T > > const & tensors () const
 
TiledArray::Tensor< T > & tensor (std::size_t i)
 
TiledArray::Tensor< T > const & tensor (std::size_t i) const
 
auto const & range () const
 
auto const & range (std::size_t i) const
 
auto const size () const
 
template<typename Archive >
std::enable_if< madness::archive::is_output_archive< Archive >::value >::type serialize (Archive &ar)
 
template<typename Archive >
std::enable_if< madness::archive::is_input_archive< Archive >::value >::type serialize (Archive &ar)
 

Member Typedef Documentation

◆ const_iterator

template<typename T >
using mpqc::math::DecomposedTensor< T >::const_iterator = typename TiledArray::Tensor<T>::const_iterator

◆ const_pointer

template<typename T >
using mpqc::math::DecomposedTensor< T >::const_pointer = typename TiledArray::Tensor<T>::const_pointer

◆ const_reference

template<typename T >
using mpqc::math::DecomposedTensor< T >::const_reference = typename TiledArray::Tensor<T>::const_reference

◆ index1_type

template<typename T >
using mpqc::math::DecomposedTensor< T >::index1_type = typename TiledArray::Tensor<T>::index1_type

◆ iterator

template<typename T >
using mpqc::math::DecomposedTensor< T >::iterator = typename TiledArray::Tensor<T>::iterator

◆ numeric_type

template<typename T >
using mpqc::math::DecomposedTensor< T >::numeric_type = T

◆ ordinal_type

template<typename T >
using mpqc::math::DecomposedTensor< T >::ordinal_type = typename TiledArray::Tensor<T>::ordinal_type

◆ pointer

template<typename T >
using mpqc::math::DecomposedTensor< T >::pointer = typename TiledArray::Tensor<T>::pointer

◆ range_type

template<typename T >
using mpqc::math::DecomposedTensor< T >::range_type = typename TiledArray::Tensor<T>::range_type

◆ reference

template<typename T >
using mpqc::math::DecomposedTensor< T >::reference = typename TiledArray::Tensor<T>::reference

◆ size_type

template<typename T >
using mpqc::math::DecomposedTensor< T >::size_type = typename TiledArray::Tensor<T>::size_type

◆ value_type

template<typename T >
using mpqc::math::DecomposedTensor< T >::value_type = T

Constructor & Destructor Documentation

◆ DecomposedTensor() [1/7]

template<typename T >
template mpqc::math::DecomposedTensor< T >::DecomposedTensor ( )
inline

◆ DecomposedTensor() [2/7]

template<typename T >
mpqc::math::DecomposedTensor< T >::DecomposedTensor ( double  c)
inline

◆ DecomposedTensor() [3/7]

template<typename T >
mpqc::math::DecomposedTensor< T >::DecomposedTensor ( double  c,
std::vector< TiledArray::Tensor< T >>  ts 
)
inline

◆ DecomposedTensor() [4/7]

template<typename T >
template<typename Range , typename = std::enable_if_t<std::is_same< TiledArray::Range, std::decay_t<Range>>::value>>
mpqc::math::DecomposedTensor< T >::DecomposedTensor ( double  c,
Range &&  r,
std::vector< TiledArray::Tensor< T >>  ts 
)
inline

◆ DecomposedTensor() [5/7]

template<typename T >
template<typename... Tensors>
mpqc::math::DecomposedTensor< T >::DecomposedTensor ( double  c,
Tensors &&...  ts 
)
inline

◆ DecomposedTensor() [6/7]

template<typename T >
template<typename Range , typename... Tensors, typename = std::enable_if_t< std::is_same<TiledArray::Range, std::decay_t<Range>>::value>>
mpqc::math::DecomposedTensor< T >::DecomposedTensor ( double  c,
Range &&  r,
Tensors &&...  ts 
)
inline

◆ DecomposedTensor() [7/7]

template<typename T >
mpqc::math::DecomposedTensor< T >::DecomposedTensor ( TiledArray::Range const &  r,
value 
)
inline

Member Function Documentation

◆ cut()

template<typename T >
double mpqc::math::DecomposedTensor< T >::cut ( ) const
inline

◆ empty()

template<typename T >
bool mpqc::math::DecomposedTensor< T >::empty ( ) const
inline

◆ ndecomp()

template<typename T >
std::size_t mpqc::math::DecomposedTensor< T >::ndecomp ( ) const
inline

◆ orders()

template<typename T >
std::vector<std::size_t> mpqc::math::DecomposedTensor< T >::orders ( ) const
inline

◆ range() [1/2]

template<typename T >
auto const& mpqc::math::DecomposedTensor< T >::range ( ) const
inline

◆ range() [2/2]

template<typename T >
auto const& mpqc::math::DecomposedTensor< T >::range ( std::size_t  i) const
inline

◆ rank()

template<typename T >
std::size_t mpqc::math::DecomposedTensor< T >::rank ( ) const
inline

◆ serialize() [1/2]

template<typename T >
template<typename Archive >
std::enable_if< madness::archive::is_output_archive<Archive>::value>::type mpqc::math::DecomposedTensor< T >::serialize ( Archive &  ar)
inline

◆ serialize() [2/2]

template<typename T >
template<typename Archive >
std::enable_if< madness::archive::is_input_archive<Archive>::value>::type mpqc::math::DecomposedTensor< T >::serialize ( Archive &  ar)
inline

◆ size()

template<typename T >
auto const mpqc::math::DecomposedTensor< T >::size ( ) const
inline

◆ tensor() [1/2]

template<typename T >
TiledArray::Tensor<T>& mpqc::math::DecomposedTensor< T >::tensor ( std::size_t  i)
inline

◆ tensor() [2/2]

template<typename T >
TiledArray::Tensor<T> const& mpqc::math::DecomposedTensor< T >::tensor ( std::size_t  i) const
inline

◆ tensors() [1/2]

template<typename T >
std::vector<TiledArray::Tensor<T> >& mpqc::math::DecomposedTensor< T >::tensors ( )
inline

◆ tensors() [2/2]

template<typename T >
std::vector<TiledArray::Tensor<T> > const& mpqc::math::DecomposedTensor< T >::tensors ( ) const
inline

The documentation for this class was generated from the following file: