Maestro 0.3.11
Unified interface for quantum circuit simulation
Loading...
Searching...
No Matches
Utils::Tensor< T, Storage > Class Template Reference

#include <Tensor.h>

Collaboration diagram for Utils::Tensor< T, Storage >:

Public Member Functions

 Tensor ()
 Tensor (const std::vector< int > &dims, bool dummy=false)
 Tensor (const std::vector< size_t > &dims, bool dummy=false)
 Tensor (const Tensor< T, Storage > &other)
template<class indT = size_t>
 Tensor (std::initializer_list< indT > dims, bool dummy=false)
 Tensor (Tensor< T, Storage > &&other) noexcept
virtual ~Tensor ()=default
const T at (const std::vector< size_t > &indices) const
T atOffset (size_t offset)
void Clear ()
void ClearValues ()
void Conj ()
Tensor< T, Storage > Contract (const Tensor< T, Storage > &other, const std::vector< std::pair< size_t, size_t > > &indices, bool allowMultithreading=true) const
Tensor< T, Storage > Contract (const Tensor< T, Storage > &other, size_t ind1, size_t ind2, bool allowMultithreading=true) const
bool Empty () const
size_t GetDim (size_t index) const
const std::vector< size_t > & GetDims () const
size_t GetOffset (const std::vector< size_t > &indices) const
const size_t GetRank () const
size_t GetSize () const
Storage & GetValues ()
const Storage & GetValues () const
bool IncrementIndex (std::vector< size_t > &indices) const
bool IncrementIndexSkip (std::vector< size_t > &indices, const std::vector< int > &skipv) const
bool IncrementIndexSkip (std::vector< size_t > &indices, int skip) const
std::vector< size_t > IndexFromOffset (size_t offset) const
bool IsDummy () const
T & operator() (const std::vector< size_t > &indices)
const T & operator() (const std::vector< size_t > &indices) const
template<class indT = size_t>
T & operator() (std::initializer_list< indT > args)
template<class indT = size_t>
const T & operator() (std::initializer_list< indT > args) const
Tensor< T, Storage > operator* (const T &scalar) const
Tensor< T, Storage > operator* (const Tensor< T, Storage > &other) const
Tensor< T, Storage > & operator*= (const double scalar)
Tensor< T, Storage > & operator*= (const T &scalar)
Tensor< T, Storage > & operator*= (const Tensor< T, Storage > &other)
Tensor< T, Storage > operator+ (const T &scalar) const
Tensor< T, Storage > operator+ (const Tensor< T, Storage > &other) const
Tensor< T, Storage > & operator+= (const double scalar)
Tensor< T, Storage > & operator+= (const T &scalar)
Tensor< T, Storage > & operator+= (const Tensor< T, Storage > &other)
Tensor< T, Storage > operator- () const
Tensor< T, Storage > operator- (const T &scalar) const
Tensor< T, Storage > operator- (const Tensor< T, Storage > &other) const
Tensor< T, Storage > & operator-= (const double scalar)
Tensor< T, Storage > & operator-= (const T &scalar)
Tensor< T, Storage > & operator-= (const Tensor< T, Storage > &other)
Tensor< T, Storage > operator/ (const T &scalar) const
Tensor< T, Storage > operator/ (const Tensor< T, Storage > &other) const
Tensor< T, Storage > & operator/= (const double scalar)
Tensor< T, Storage > & operator/= (const T &scalar)
Tensor< T, Storage > & operator/= (const Tensor< T, Storage > &other)
Tensor< T, Storage > & operator= (const Tensor< T, Storage > &other)
Tensor< T, Storage > & operator= (Tensor< T, Storage > &&other) noexcept
T & operator[] (const std::vector< size_t > &indices)
const T & operator[] (const std::vector< size_t > &indices) const
T & operator[] (size_t offset)
const T & operator[] (size_t offset) const
template<class indT = size_t>
T & operator[] (std::initializer_list< indT > args)
template<class indT = size_t>
const T & operator[] (std::initializer_list< indT > args) const
Tensor< T, Storage > Reshape (const std::vector< size_t > &newdims) const
template<class indT = size_t>
Tensor< T, Storage > Reshape (std::initializer_list< indT > args) const
void Resize (const std::vector< size_t > &newdims)
template<class indT = size_t>
void Resize (std::initializer_list< indT > newdims)
template<class Archive>
void serialize (Archive &ar, const unsigned int)
Tensor< T, Storage > Shuffle (const std::vector< size_t > &indices) const
template<class indT = size_t>
Tensor< T, Storage > Shuffle (std::initializer_list< indT > args) const
void Swap (Tensor< T, Storage > &other)
Tensor< T, Storage > TensorProduct (const Tensor< T, Storage > &other) const
T Trace () const
Tensor< T, Storage > Trace (const std::vector< size_t > &tindices) const
Tensor< T, Storage > Trace (size_t ind1, size_t ind2) const
template<class indT = size_t>
Tensor< T, Storage > Trace (std::initializer_list< indT > args) const

Protected Attributes

std::vector< size_t > dims
size_t sz = 0
Storage values

Friends

class boost::serialization::access

Detailed Description

template<class T = std::complex<double>, class Storage = std::valarray<T>>
class Utils::Tensor< T, Storage >

Definition at line 42 of file Tensor.h.

Constructor & Destructor Documentation

◆ Tensor() [1/6]

◆ Tensor() [2/6]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Utils::Tensor< T, Storage >::Tensor ( const std::vector< size_t > & dims,
bool dummy = false )
inline

Definition at line 58 of file Tensor.h.

References dims, GetSize(), sz, and values.

◆ Tensor() [3/6]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Utils::Tensor< T, Storage >::Tensor ( const std::vector< int > & dims,
bool dummy = false )
inline

Definition at line 69 of file Tensor.h.

References dims, GetSize(), sz, and values.

◆ Tensor() [4/6]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
template<class indT = size_t>
Utils::Tensor< T, Storage >::Tensor ( std::initializer_list< indT > dims,
bool dummy = false )
inline

Definition at line 80 of file Tensor.h.

References dims, GetSize(), sz, and values.

◆ Tensor() [5/6]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Utils::Tensor< T, Storage >::Tensor ( const Tensor< T, Storage > & other)
inline

Definition at line 91 of file Tensor.h.

References Tensor(), dims, sz, and values.

◆ Tensor() [6/6]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Utils::Tensor< T, Storage >::Tensor ( Tensor< T, Storage > && other)
inlinenoexcept

Definition at line 95 of file Tensor.h.

References Tensor(), dims, sz, and values.

◆ ~Tensor()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
virtual Utils::Tensor< T, Storage >::~Tensor ( )
virtualdefault

Member Function Documentation

◆ at()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
const T Utils::Tensor< T, Storage >::at ( const std::vector< size_t > & indices) const
inline

Definition at line 293 of file Tensor.h.

References dims, GetOffset(), and values.

◆ atOffset()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
T Utils::Tensor< T, Storage >::atOffset ( size_t offset)
inline

Definition at line 312 of file Tensor.h.

References values.

◆ Clear()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
void Utils::Tensor< T, Storage >::Clear ( )
inline

Definition at line 258 of file Tensor.h.

References ClearValues(), and dims.

Referenced by Resize(), and Resize().

◆ ClearValues()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
void Utils::Tensor< T, Storage >::ClearValues ( )
inline

Definition at line 264 of file Tensor.h.

References sz, and values.

Referenced by Clear().

◆ Conj()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
void Utils::Tensor< T, Storage >::Conj ( )
inline

Definition at line 593 of file Tensor.h.

References GetSize(), and values.

◆ Contract() [1/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::Contract ( const Tensor< T, Storage > & other,
const std::vector< std::pair< size_t, size_t > > & indices,
bool allowMultithreading = true ) const
inline

Definition at line 625 of file Tensor.h.

References Tensor().

◆ Contract() [2/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::Contract ( const Tensor< T, Storage > & other,
size_t ind1,
size_t ind2,
bool allowMultithreading = true ) const
inline

Definition at line 619 of file Tensor.h.

References Tensor().

◆ Empty()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
bool Utils::Tensor< T, Storage >::Empty ( ) const
inline

Definition at line 270 of file Tensor.h.

References dims.

◆ GetDim()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
size_t Utils::Tensor< T, Storage >::GetDim ( size_t index) const
inline

Definition at line 152 of file Tensor.h.

References dims.

◆ GetDims()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
const std::vector< size_t > & Utils::Tensor< T, Storage >::GetDims ( ) const
inline

Definition at line 159 of file Tensor.h.

References dims.

◆ GetOffset()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
size_t Utils::Tensor< T, Storage >::GetOffset ( const std::vector< size_t > & indices) const
inline

◆ GetRank()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
const size_t Utils::Tensor< T, Storage >::GetRank ( ) const
inline

Definition at line 164 of file Tensor.h.

References dims.

◆ GetSize()

◆ GetValues() [1/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Storage & Utils::Tensor< T, Storage >::GetValues ( )
inline

Definition at line 384 of file Tensor.h.

References values.

◆ GetValues() [2/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
const Storage & Utils::Tensor< T, Storage >::GetValues ( ) const
inline

Definition at line 379 of file Tensor.h.

References values.

◆ IncrementIndex()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
bool Utils::Tensor< T, Storage >::IncrementIndex ( std::vector< size_t > & indices) const
inline

Definition at line 174 of file Tensor.h.

References dims.

◆ IncrementIndexSkip() [1/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
bool Utils::Tensor< T, Storage >::IncrementIndexSkip ( std::vector< size_t > & indices,
const std::vector< int > & skipv ) const
inline

Definition at line 218 of file Tensor.h.

References dims.

◆ IncrementIndexSkip() [2/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
bool Utils::Tensor< T, Storage >::IncrementIndexSkip ( std::vector< size_t > & indices,
int skip ) const
inline

Definition at line 195 of file Tensor.h.

References dims.

◆ IndexFromOffset()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
std::vector< size_t > Utils::Tensor< T, Storage >::IndexFromOffset ( size_t offset) const
inline

Definition at line 870 of file Tensor.h.

Referenced by Shuffle(), Trace(), and Trace().

◆ IsDummy()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
bool Utils::Tensor< T, Storage >::IsDummy ( ) const
inline

Definition at line 169 of file Tensor.h.

References values.

Referenced by TensorProduct().

◆ operator()() [1/4]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
T & Utils::Tensor< T, Storage >::operator() ( const std::vector< size_t > & indices)
inline

Definition at line 349 of file Tensor.h.

References dims, GetOffset(), and values.

◆ operator()() [2/4]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
const T & Utils::Tensor< T, Storage >::operator() ( const std::vector< size_t > & indices) const
inline

Definition at line 356 of file Tensor.h.

References GetOffset(), and values.

◆ operator()() [3/4]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
template<class indT = size_t>
T & Utils::Tensor< T, Storage >::operator() ( std::initializer_list< indT > args)
inline

Definition at line 361 of file Tensor.h.

References dims, GetOffset(), and values.

◆ operator()() [4/4]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
template<class indT = size_t>
const T & Utils::Tensor< T, Storage >::operator() ( std::initializer_list< indT > args) const
inline

Definition at line 370 of file Tensor.h.

References dims, GetOffset(), and values.

◆ operator*() [1/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::operator* ( const T & scalar) const
inline

Definition at line 457 of file Tensor.h.

References Tensor(), dims, GetSize(), and values.

◆ operator*() [2/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::operator* ( const Tensor< T, Storage > & other) const
inline

Definition at line 413 of file Tensor.h.

References Tensor(), dims, GetSize(), and values.

◆ operator*=() [1/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > & Utils::Tensor< T, Storage >::operator*= ( const double scalar)
inline

Definition at line 567 of file Tensor.h.

References Tensor(), GetSize(), and values.

◆ operator*=() [2/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > & Utils::Tensor< T, Storage >::operator*= ( const T & scalar)
inline

Definition at line 533 of file Tensor.h.

References Tensor(), GetSize(), and values.

◆ operator*=() [3/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > & Utils::Tensor< T, Storage >::operator*= ( const Tensor< T, Storage > & other)
inline

Definition at line 497 of file Tensor.h.

References Tensor(), dims, GetSize(), and values.

◆ operator+() [1/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::operator+ ( const T & scalar) const
inline

Definition at line 437 of file Tensor.h.

References Tensor(), dims, GetSize(), and values.

◆ operator+() [2/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::operator+ ( const Tensor< T, Storage > & other) const
inline

Definition at line 389 of file Tensor.h.

References Tensor(), dims, GetSize(), and values.

◆ operator+=() [1/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > & Utils::Tensor< T, Storage >::operator+= ( const double scalar)
inline

Definition at line 551 of file Tensor.h.

References Tensor(), GetSize(), and values.

◆ operator+=() [2/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > & Utils::Tensor< T, Storage >::operator+= ( const T & scalar)
inline

Definition at line 517 of file Tensor.h.

References Tensor(), GetSize(), and values.

◆ operator+=() [3/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > & Utils::Tensor< T, Storage >::operator+= ( const Tensor< T, Storage > & other)
inline

Definition at line 477 of file Tensor.h.

References Tensor(), dims, GetSize(), and values.

◆ operator-() [1/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::operator- ( ) const
inline

Definition at line 583 of file Tensor.h.

References Tensor(), dims, GetSize(), and values.

◆ operator-() [2/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::operator- ( const T & scalar) const
inline

Definition at line 447 of file Tensor.h.

References Tensor(), dims, GetSize(), and values.

◆ operator-() [3/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::operator- ( const Tensor< T, Storage > & other) const
inline

Definition at line 401 of file Tensor.h.

References Tensor(), dims, GetSize(), and values.

◆ operator-=() [1/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > & Utils::Tensor< T, Storage >::operator-= ( const double scalar)
inline

Definition at line 559 of file Tensor.h.

References Tensor(), GetSize(), and values.

◆ operator-=() [2/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > & Utils::Tensor< T, Storage >::operator-= ( const T & scalar)
inline

Definition at line 525 of file Tensor.h.

References Tensor(), GetSize(), and values.

◆ operator-=() [3/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > & Utils::Tensor< T, Storage >::operator-= ( const Tensor< T, Storage > & other)
inline

Definition at line 487 of file Tensor.h.

References Tensor(), dims, GetSize(), and values.

◆ operator/() [1/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::operator/ ( const T & scalar) const
inline

Definition at line 467 of file Tensor.h.

References Tensor(), dims, GetSize(), and values.

◆ operator/() [2/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::operator/ ( const Tensor< T, Storage > & other) const
inline

Definition at line 425 of file Tensor.h.

References Tensor(), dims, GetSize(), and values.

◆ operator/=() [1/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > & Utils::Tensor< T, Storage >::operator/= ( const double scalar)
inline

Definition at line 575 of file Tensor.h.

References Tensor(), GetSize(), and values.

◆ operator/=() [2/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > & Utils::Tensor< T, Storage >::operator/= ( const T & scalar)
inline

Definition at line 541 of file Tensor.h.

References Tensor(), GetSize(), and values.

◆ operator/=() [3/3]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > & Utils::Tensor< T, Storage >::operator/= ( const Tensor< T, Storage > & other)
inline

Definition at line 507 of file Tensor.h.

References Tensor(), dims, GetSize(), and values.

◆ operator=() [1/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > & Utils::Tensor< T, Storage >::operator= ( const Tensor< T, Storage > & other)
inline

Definition at line 112 of file Tensor.h.

References Tensor().

◆ operator=() [2/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > & Utils::Tensor< T, Storage >::operator= ( Tensor< T, Storage > && other)
inlinenoexcept

Definition at line 120 of file Tensor.h.

References Tensor(), dims, sz, and values.

◆ operator[]() [1/6]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
T & Utils::Tensor< T, Storage >::operator[] ( const std::vector< size_t > & indices)
inline

Definition at line 300 of file Tensor.h.

References dims, GetOffset(), and values.

◆ operator[]() [2/6]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
const T & Utils::Tensor< T, Storage >::operator[] ( const std::vector< size_t > & indices) const
inline

Definition at line 307 of file Tensor.h.

References GetOffset(), and values.

◆ operator[]() [3/6]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
T & Utils::Tensor< T, Storage >::operator[] ( size_t offset)
inline

Definition at line 319 of file Tensor.h.

References values.

◆ operator[]() [4/6]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
const T & Utils::Tensor< T, Storage >::operator[] ( size_t offset) const
inline

Definition at line 326 of file Tensor.h.

References values.

◆ operator[]() [5/6]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
template<class indT = size_t>
T & Utils::Tensor< T, Storage >::operator[] ( std::initializer_list< indT > args)
inline

Definition at line 331 of file Tensor.h.

References dims, GetOffset(), and values.

◆ operator[]() [6/6]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
template<class indT = size_t>
const T & Utils::Tensor< T, Storage >::operator[] ( std::initializer_list< indT > args) const
inline

Definition at line 340 of file Tensor.h.

References dims, GetOffset(), and values.

◆ Reshape() [1/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::Reshape ( const std::vector< size_t > & newdims) const
inline

Definition at line 842 of file Tensor.h.

References Tensor(), GetSize(), and values.

Referenced by Reshape().

◆ Reshape() [2/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
template<class indT = size_t>
Tensor< T, Storage > Utils::Tensor< T, Storage >::Reshape ( std::initializer_list< indT > args) const
inline

Definition at line 855 of file Tensor.h.

References Tensor(), and Reshape().

◆ Resize() [1/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
void Utils::Tensor< T, Storage >::Resize ( const std::vector< size_t > & newdims)
inline

Definition at line 275 of file Tensor.h.

References Clear(), dims, GetSize(), sz, and values.

◆ Resize() [2/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
template<class indT = size_t>
void Utils::Tensor< T, Storage >::Resize ( std::initializer_list< indT > newdims)
inline

Definition at line 284 of file Tensor.h.

References Clear(), dims, GetSize(), sz, and values.

◆ serialize()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
template<class Archive>
void Utils::Tensor< T, Storage >::serialize ( Archive & ar,
const unsigned int  )
inline

Definition at line 104 of file Tensor.h.

References dims, sz, and values.

◆ Shuffle() [1/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::Shuffle ( const std::vector< size_t > & indices) const
inline

Definition at line 808 of file Tensor.h.

References Tensor(), dims, GetSize(), IndexFromOffset(), and values.

Referenced by Shuffle().

◆ Shuffle() [2/2]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
template<class indT = size_t>
Tensor< T, Storage > Utils::Tensor< T, Storage >::Shuffle ( std::initializer_list< indT > args) const
inline

Definition at line 835 of file Tensor.h.

References Tensor(), and Shuffle().

◆ Swap()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
void Utils::Tensor< T, Storage >::Swap ( Tensor< T, Storage > & other)
inline

Definition at line 132 of file Tensor.h.

References Tensor(), dims, sz, and values.

◆ TensorProduct()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::TensorProduct ( const Tensor< T, Storage > & other) const
inline

Definition at line 599 of file Tensor.h.

References Tensor(), dims, GetSize(), IsDummy(), and values.

◆ Trace() [1/4]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
T Utils::Tensor< T, Storage >::Trace ( ) const
inline

Definition at line 649 of file Tensor.h.

References dims, GetOffset(), and values.

Referenced by Trace().

◆ Trace() [2/4]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::Trace ( const std::vector< size_t > & tindices) const
inline

Definition at line 727 of file Tensor.h.

References Tensor(), dims, GetOffset(), GetSize(), IndexFromOffset(), and values.

◆ Trace() [3/4]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
Tensor< T, Storage > Utils::Tensor< T, Storage >::Trace ( size_t ind1,
size_t ind2 ) const
inline

Definition at line 673 of file Tensor.h.

References Tensor(), dims, GetOffset(), GetSize(), IndexFromOffset(), and values.

◆ Trace() [4/4]

template<class T = std::complex<double>, class Storage = std::valarray<T>>
template<class indT = size_t>
Tensor< T, Storage > Utils::Tensor< T, Storage >::Trace ( std::initializer_list< indT > args) const
inline

Definition at line 801 of file Tensor.h.

References Tensor(), and Trace().

◆ boost::serialization::access

template<class T = std::complex<double>, class Storage = std::valarray<T>>
friend class boost::serialization::access
friend

Definition at line 50 of file Tensor.h.

References boost::serialization::access.

Referenced by boost::serialization::access.

Member Data Documentation

◆ dims

◆ sz

template<class T = std::complex<double>, class Storage = std::valarray<T>>
size_t Utils::Tensor< T, Storage >::sz = 0
mutableprotected

◆ values


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