Documentation of CSL
Public Member Functions | Friends
csl::IndexedSymmetry Class Reference
Inheritance diagram for csl::IndexedSymmetry:
Inheritance graph
[legend]

Public Member Functions

 IndexedSymmetry (const IndexStructure &init)
 
 IndexedSymmetry (const Index &i1, const Index &i2)
 
 IndexedSymmetry (const IndexStructure &init, const Symmetry &initialSym)
 
void addSymmetry (const Index &i1, const Index &i2)
 
void addSymmetry (const std::pair< Index, Index > &perm, int symmetry=1)
 
void addAntiSymmetry (const Index &i1, const Index &i2)
 
void addAntiSymmetry (const std::pair< Index, Index > &perm)
 
IndexedSymmetry operator+ (const IndexedSymmetry &other) const
 
IndexedSymmetryoperator+= (const IndexedSymmetry &other)
 
IndexedSymmetry operator* (const IndexedSymmetry &other) const
 
IndexedSymmetryoperator*= (const IndexedSymmetry &other)
 
csl::vector_expr applySymmetry (const Expr &expr) const
 
- Public Member Functions inherited from csl::Symmetry
 Symmetry ()
 Default constructor.
 
 Symmetry (int t_dim)
 Initializes the symmetry in a given dimension.
 
 Symmetry (const Symmetry &t_symmetry)=default
 Copy constructor. More...
 
 ~Symmetry ()
 Destructor.
 
int getDim () const
 The dimension of the symmetry is the number of indices on which it is applied, and then also the Permutation::size of the Permutation objects it encapsulates. More...
 
size_t getNPermutation () const
 
std::vector< PermutationgetPermutation () const
 
int getSymmetryOf (int i, int j) const
 
void addSymmetry (const Permutation &newPermutation, int sym=1)
 Adds a new symmetry in the form of a Permutation. The user must give the Permutation and the symmetry factor associated (1 if the Permutation is a symmetry, -1 if it is an anti-symmetry). More...
 
void addSymmetry (const std::vector< int > &newPermutation, int sym=1)
 Adds a new symmetry in the form of a Permutation. The user must give the Permutation and the symmetry factor associated (1 if the Permutation is a symmetry, -1 if it is an anti-symmetry). More...
 
void addSymmetry (const std::vector< std::vector< int >> &newPermutation, int sym=1)
 Adds a new symmetry in the form of a Permutation. The user must give the Permutation and the symmetry factor associated (1 if the Permutation is a symmetry, -1 if it is an anti-symmetry). More...
 
void adjustPermutationSize ()
 
void setMustGetSpan (bool t_must)
 
bool operator== (const Symmetry &symmetry) const
 operator==, compares two Symmetry objects. More...
 
bool operator!= (const Symmetry &symmetry) const
 operator!=, compares two Symmetry objects. More...
 
Symmetry operator* (const Symmetry &other) const
 

Friends

std::ostream & operator<< (std::ostream &fout, const IndexedSymmetry &sym)
 

Additional Inherited Members

- Protected Attributes inherited from csl::Symmetry
int dim
 Dimension of the symmetry, i.e. number of indices of the TensorElement.
 
bool mustGetSpan = true
 
std::vector< Permutationpermutation
 List of the permutations for which the TensorElement have a symmetry or an antisymmetry property.
 

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