Documentation of MARTY
A Modern ARtificial Theoretical phYsicist
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends
sgl::IndexChain Class Reference
Inheritance diagram for sgl::IndexChain:
[legend]

Public Member Functions

 IndexChain (IndexChain const &)=default
 
 IndexChain (Field const &psi)
 
 IndexChain (csl::Index const &t_a, csl::Index const &t_b)
 
 IndexChain (GExpr const &mu, csl::Index const &t_a, csl::Index const &t_b)
 
 IndexChain (std::vector< GExpr > const &mu, csl::Index const &t_a, csl::Index const &t_b)
 
 IndexChain (Field const &t_a, csl::Index const &t_b)
 
 IndexChain (GExpr const &mu, Field const &t_a, csl::Index const &t_b)
 
 IndexChain (std::vector< GExpr > const &mu, Field const &t_a, csl::Index const &t_b)
 
 IndexChain (csl::Index const &t_a, Field const &t_b)
 
 IndexChain (GExpr const &mu, csl::Index const &t_a, Field const &t_b)
 
 IndexChain (std::vector< GExpr > const &mu, csl::Index const &t_a, Field const &t_b)
 
 IndexChain (Field const &t_a, Field const &t_b)
 
 IndexChain (GExpr const &mu, Field const &t_a, Field const &t_b)
 
 IndexChain (std::vector< GExpr > const &mu, Field const &t_a, Field const &t_b)
 
bool isZero () const override
 
csl::Expr getFactor () const override
 
GExpr getTerm () const override
 
std::shared_ptr< FieldgetPsiL () const
 
std::shared_ptr< FieldgetPsiR () const
 
std::pair< csl::Index, csl::IndexgetBorderIndices () const
 
bool isHappy () const
 
bool isReversed () const
 
bool isFierzFixed () const
 
void setFixFierz (bool value)
 
bool hasCommonIndex (IndexChain const &other) const
 
GExpr mergeChain (IndexChain const &other) const
 
GExpr mergeConjugateChain (IndexChain const &other) const
 
bool hasPropertyWith (GExpr const &other) const override
 
GExpr propertyWith (GExpr const &other) const override
 
bool contains (csl::Index const &) const override
 
void replace (csl::Index const &, csl::Index const &) override
 
GExpr copy () const override
 
GExpr refresh () const override
 
csl::Expr toCSL (TensorSet const &tensors) const override
 
std::pair< GExpr, IndexChaincut (size_t pos, size_t len=1) const
 
void erase (size_t pos, size_t len)
 
GExpr applyEOM (MomentumIndex const &p) const
 
GExpr simplify () override
 
GExpr calculateTrace () const
 
GExpr calculateStandardTrace () const
 
GExpr calculateChiralTrace () const
 
std::optional< GExprreduceStep () const
 
std::optional< GExprreduceMomenta (MomentumIndex const &p1, MomentumIndex const &p2) const
 
GExpr applyGeneralFierz (IndexChain const &other, bool chiral=true) const
 
GExpr applyGeneralFierzTwice (IndexChain const &other, bool chiral=true) const
 
void print (std::ostream &out) const override
 
bool isTrace () const
 
std::optional< GExprcheckGammaAndConjugation () const
 
GExpr identityFactor (GammaIndex const &other) const
 
GExpr factor (GammaIndex const &A, GammaIndex const &B) const
 
GExpr getContributionTo (IndexChain const &other) const
 
std::pair< int, IndexChainconjugated () const
 
GExpr moveIndex (size_t init, size_t target) const
 
- Public Member Functions inherited from sgl::AbstractMultiFunction
 AbstractMultiFunction (GExpr const &arg)
 
 AbstractMultiFunction (std::vector< GExpr > const &arg)
 
bool contains (csl::Index const &index) const override
 
size_t size () const override
 
GExpr const & argument (size_t i) const override
 
GExprargument (size_t i) override
 
iterator begin () override
 
const_iterator begin () const override
 
iterator end () override
 
const_iterator end () const override
 
void printArgs (std::ostream &out, char sep) const
 
- Public Member Functions inherited from sgl::AbstractGammaSym
GExpr self ()
 
virtual std::vector< csl::Index > const & indices () const
 
virtual std::vector< csl::Index > & indices ()
 
virtual csl::Expr const & expr () const
 
virtual csl::Exprexpr ()
 
void errorPrint () const
 

Static Public Member Functions

static GExpr trace (IndexChain A, IndexChain C, IndexChain B, IndexChain D)
 
static csl::Index easyIndex (int i)
 
static bool isDelta (GExpr const &gamma)
 
static bool isGammaMu (GExpr const &gamma)
 
static bool isSigma (GExpr const &gamma)
 
static bool isChiral (GExpr const &gamma)
 
static bool isGamma5 (GExpr const &gamma)
 
static bool isProjector (GExpr const &gamma)
 
static bool isP_L (GExpr const &gamma)
 
static bool isP_R (GExpr const &gamma)
 
static bool isC (GExpr const &gamma)
 
static GExpr CMatrix ()
 
static GExpr Id ()
 
static GExpr gamma5 ()
 
static GExpr P_L ()
 
static GExpr P_R ()
 

Private Member Functions

bool hasContraction (size_t i, size_t j) const
 
std::optional< std::pair< size_t, size_t > > firstMove () const
 
std::optional< std::pair< size_t, size_t > > lastMove () const
 
GExpr contraction (size_t i) const
 

Private Attributes

csl::Index a
 
csl::Index b
 
std::shared_ptr< FieldpsiL { nullptr }
 
std::shared_ptr< FieldpsiR { nullptr }
 
bool fierzFixed = false
 

Friends

GExpr momentumGammaContraction (sgl::IndexChain const &, csl::Tensor, csl::Index const &, csl::Index const &, size_t, size_t)
 

Additional Inherited Members

- Public Types inherited from sgl::AbstractGammaSym
using iterator = std::vector< GExpr >::iterator
 
using const_iterator = std::vector< GExpr >::const_iterator
 
- Protected Attributes inherited from sgl::AbstractMultiFunction
std::vector< GExprm_argument
 

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