pRC
multi-purpose Tensor Train library for C++
Loading...
Searching...
No Matches
Enumerations | Functions
pRC::Operator Namespace Reference

Enumerations

enum class  Hint {
  None , Symmetric , SelfAdjoint , Diagonal ,
  LowerTriangular , StrictlyLowerTriangular , UnitLowerTriangular , UpperTriangular ,
  StrictlyUpperTriangular , UnitUpperTriangular , OffDiagonal
}
 This enum's elements denote a hint regarding an operator. More...
 
enum class  Restrict {
  None , Diagonal , LowerTriangular , StrictlyLowerTriangular ,
  UpperTriangular , StrictlyUpperTriangular , OffDiagonal
}
 This enum's elements denote a restriction of an operator. More...
 
enum class  Transform { None , Transpose , Adjoint }
 This enum's elements denote a transformation done to an operator. More...
 

Functions

template<class S >
static auto print (Hint const dir, S &&stream)
 Prints a Operator::Hint to a stream object.
 
template<class S >
static auto print (Operator::Restrict const dir, S &&stream)
 Prints a Operator::Restrict to a stream object.
 
template<class S >
static auto print (Transform const dir, S &&stream)
 Prints a Operator::Transform to a stream object.
 

Enumeration Type Documentation

◆ Hint

This enum's elements denote a hint regarding an operator.

Possible hints are:

Many functions that take an operator as an argument take a Hint object as a template parameter. The hint might be used to speed up the calculation of the the function. Note that providing a wrong hint can lead to incorrect results!

Enumerator
None 
Symmetric 
SelfAdjoint 
Diagonal 
LowerTriangular 
StrictlyLowerTriangular 
UnitLowerTriangular 
UpperTriangular 
StrictlyUpperTriangular 
UnitUpperTriangular 
OffDiagonal 

◆ Restrict

This enum's elements denote a restriction of an operator.

Possible restrictions are:

Many functions that take an operator as an argument take a Restrict object as a template parameter. The restriction is then applied to the operator before the function is performed.

Enumerator
None 
Diagonal 
LowerTriangular 
StrictlyLowerTriangular 
UpperTriangular 
StrictlyUpperTriangular 
OffDiagonal 

◆ Transform

This enum's elements denote a transformation done to an operator.

Possible transformations are:

Many functions that take an operator as an argument take a Transform object as a template parameter. The transformation is then applied to the operator before the function is performed.

Enumerator
None 
Transpose 
Adjoint 

Function Documentation

◆ print() [1/3]

template<class S >
static auto pRC::Operator::print ( Hint const  dir,
S &&  stream 
)
inlinestatic

Prints a Operator::Hint to a stream object.

Template Parameters
Sstream class
Parameters
direnumerator from Operator::Hint, directive to print
streamobject of class S, stream to print to

◆ print() [2/3]

template<class S >
static auto pRC::Operator::print ( Operator::Restrict const  dir,
S &&  stream 
)
inlinestatic

Prints a Operator::Restrict to a stream object.

Template Parameters
Sstream class
Parameters
direnumerator from Operator::Restrict, directive to print
streamobject of class S, stream to print to

◆ print() [3/3]

template<class S >
static auto pRC::Operator::print ( Transform const  dir,
S &&  stream 
)
inlinestatic

Prints a Operator::Transform to a stream object.

Template Parameters
Sstream class
Parameters
direnumerator from Operator::Transform, directive to print
streamobject of class S, stream to print to