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

Static Protected Member Functions

static int GetNumberOfThreads ()
 

Protected Attributes

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

Static Protected Attributes

static constexpr size_t OmpLimit = 1024
 
static constexpr int divSchedule = 2
 

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 40 of file Tensor.h.

Constructor & Destructor Documentation

◆ Tensor() [1/6]

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

Definition at line 56 of file Tensor.h.

◆ 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 60 of file Tensor.h.

◆ 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 70 of file Tensor.h.

◆ 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 81 of file Tensor.h.

◆ 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.

◆ 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 94 of file Tensor.h.

◆ ~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 247 of file Tensor.h.

◆ 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 263 of file Tensor.h.

◆ Clear()

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

Definition at line 218 of file Tensor.h.

◆ ClearValues()

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

Definition at line 223 of file Tensor.h.

◆ Conj()

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

Definition at line 497 of file Tensor.h.

◆ 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 612 of file Tensor.h.

◆ 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 519 of file Tensor.h.

◆ Empty()

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

Definition at line 228 of file Tensor.h.

◆ 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 140 of file Tensor.h.

◆ 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 146 of file Tensor.h.

◆ GetNumberOfThreads()

template<class T = std::complex<double>, class Storage = std::valarray<T>>
static int Utils::Tensor< T, Storage >::GetNumberOfThreads ( )
inlinestaticprotected

Definition at line 49 of file Tensor.h.

◆ 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

Definition at line 924 of file Tensor.h.

◆ 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 148 of file Tensor.h.

◆ GetSize()

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

Definition at line 132 of file Tensor.h.

◆ GetValues() [1/2]

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

Definition at line 325 of file Tensor.h.

◆ 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 323 of file Tensor.h.

◆ 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 152 of file Tensor.h.

◆ 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 185 of file Tensor.h.

◆ 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 168 of file Tensor.h.

◆ 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 928 of file Tensor.h.

◆ IsDummy()

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

Definition at line 150 of file Tensor.h.

◆ 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 295 of file Tensor.h.

◆ 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 301 of file Tensor.h.

◆ 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 306 of file Tensor.h.

◆ 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 315 of file Tensor.h.

◆ 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 389 of file Tensor.h.

◆ 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 349 of file Tensor.h.

◆ 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 477 of file Tensor.h.

◆ 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 451 of file Tensor.h.

◆ 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 423 of file Tensor.h.

◆ 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 371 of file Tensor.h.

◆ 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 327 of file Tensor.h.

◆ 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 465 of file Tensor.h.

◆ 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 439 of file Tensor.h.

◆ 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 407 of file Tensor.h.

◆ 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 489 of file Tensor.h.

◆ 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 380 of file Tensor.h.

◆ 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 338 of file Tensor.h.

◆ 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 471 of file Tensor.h.

◆ 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 445 of file Tensor.h.

◆ 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 415 of file Tensor.h.

◆ 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 398 of file Tensor.h.

◆ 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 360 of file Tensor.h.

◆ 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 483 of file Tensor.h.

◆ 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 457 of file Tensor.h.

◆ 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 431 of file Tensor.h.

◆ 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 109 of file Tensor.h.

◆ 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 116 of file Tensor.h.

◆ 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 253 of file Tensor.h.

◆ 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 259 of file Tensor.h.

◆ 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 269 of file Tensor.h.

◆ 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 275 of file Tensor.h.

◆ 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 278 of file Tensor.h.

◆ 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 287 of file Tensor.h.

◆ 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 902 of file Tensor.h.

◆ 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 915 of file Tensor.h.

◆ 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 230 of file Tensor.h.

◆ 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 239 of file Tensor.h.

◆ 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 103 of file Tensor.h.

◆ 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 872 of file Tensor.h.

◆ 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 896 of file Tensor.h.

◆ 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 126 of file Tensor.h.

◆ 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 501 of file Tensor.h.

◆ 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 739 of file Tensor.h.

◆ 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 804 of file Tensor.h.

◆ 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 759 of file Tensor.h.

◆ 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 866 of file Tensor.h.

Friends And Related Symbol Documentation

◆ boost::serialization::access

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

Definition at line 54 of file Tensor.h.

Member Data Documentation

◆ dims

template<class T = std::complex<double>, class Storage = std::valarray<T>>
std::vector<size_t> Utils::Tensor< T, Storage >::dims
protected

Definition at line 43 of file Tensor.h.

◆ divSchedule

template<class T = std::complex<double>, class Storage = std::valarray<T>>
constexpr int Utils::Tensor< T, Storage >::divSchedule = 2
staticconstexprprotected

Definition at line 47 of file Tensor.h.

◆ OmpLimit

template<class T = std::complex<double>, class Storage = std::valarray<T>>
constexpr size_t Utils::Tensor< T, Storage >::OmpLimit = 1024
staticconstexprprotected

Definition at line 46 of file Tensor.h.

◆ sz

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

Definition at line 44 of file Tensor.h.

◆ values

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

Definition at line 42 of file Tensor.h.


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