32 = csl::tderivative_s(
"d", &csl::Minkowski);
41 csl::vector_expr tensors;
42 std::vector<size_t> cutsBtwCycles;
47 std::vector<csl::Index> indices;
48 std::vector<size_t> cuts;
49 std::vector<std::pair<size_t, size_t>> fiertzFlipping;
63 bool isChiral()
const {
68 bool areChiralitySame()
const {
69 return i_chir == j_chir;
105 bool hasSpecialTraceProperty(
106 const csl::vector_expr& tensors)
const override;
108 csl::Expr calculateTrace(csl::vector_expr tensors)
const override;
116 friend void setDiracTensor4(
const DiracSpace*
self);
118 void initProperties();
125 std::vector<csl::Index>& tensors,
126 std::vector<size_t> & cuts,
129 void contract(std::vector<csl::Index>& tensors,
130 std::vector<size_t> & cuts,
133 void contract(std::vector<csl::Index>& tensors,
134 std::vector<size_t> & cuts,
139 std::vector<csl::Index>& tensors,
140 std::vector<size_t> & cuts,
144 std::vector<Chain> simplifyGammaProd(
145 std::vector<csl::Index>
const &indices,
146 std::vector<size_t>
const &cuts,
150 std::vector<Chain> simplifyGammaProd(
160 std::vector<FiertzContraction> getFiertzContractions(
164 std::vector<Chain> simplifyFiertzProd(
168 void applyUniqueChiralityStructure(
169 std::vector<csl::Index>& tensors,
170 std::vector<size_t>& cuts,
173 std::pair<csl::Index, csl::Index>
174 getBorderOfChain(std::vector<csl::Expr>::const_iterator first,
175 std::vector<csl::Expr>::const_iterator last)
const;
177 std::vector<std::pair<csl::Index, csl::Index>>
178 getBorderOfChains(std::vector<csl::Expr>
const& tensors,
179 std::vector<size_t> & cuts)
const;
181 csl::vector_expr applyChainIndices(
182 std::vector<csl::Index>
const& tensors,
183 std::vector<size_t>
const& cuts,
184 std::vector<std::pair<size_t, size_t>>
const& flipped,
185 std::vector<std::pair<csl::Index, csl::Index>>
const& indices)
188 csl::vector_expr simplifyChain(csl::vector_expr
const& tensors)
const;
190 std::vector<csl::Index> applyInvolution(
191 csl::vector_expr& tensors,
194 void applyChiralityProp(
195 std::vector<csl::Index>& tensors,
198 void simplifySquares(
199 std::vector<csl::Index>& tensors,
203 std::vector<csl::Index>& tensors,
207 std::vector<csl::Index>
const& tensors,
208 bool first =
true)
const;
211 std::vector<csl::Index>
const& tensors,
212 bool first =
true)
const;
214 csl::Expr compute(csl::vector_expr
const& tensors)
const;
217 size_t getSpinorDimension(
size_t spaceTimeDim);
219 size_t countGammaMult(csl::vector_expr
const& tensors)
const;
221 size_t countGammaMult(std::vector<csl::Index>
const& tensors)
const;
223 std::vector<csl::Index> exprToIndex(
224 std::vector<csl::Expr>
const& tensors,
225 std::vector<size_t>& cuts)
const;
231 bool isDelta(
csl::Expr const& tensor)
const;
233 bool isGammaTensor(
csl::Expr const& tensor)
const;
235 bool isGammaMu(
csl::Expr const& tensor)
const;
237 bool isSigma(
csl::Expr const& tensor)
const;
239 bool isGammaChir(
csl::Expr const& tensor)
const;
241 bool isP_L(
csl::Expr const& tensor)
const;
243 bool isP_R(
csl::Expr const& tensor)
const;
245 bool isProjector(
csl::Expr const& tensor)
const;
247 bool isCMatrix(
csl::Expr const &tensor)
const;
249 bool isSymmetric(
csl::Expr const& tensor)
const;
251 bool isDelta(csl::Expr_info tensor)
const;
253 bool isGammaTensor(csl::Expr_info tensor)
const;
255 bool isGammaMu(csl::Expr_info tensor)
const;
257 bool isSigma(csl::Expr_info tensor)
const;
259 bool isGammaChir(csl::Expr_info tensor)
const;
261 bool isP_L(csl::Expr_info tensor)
const;
263 bool isP_R(csl::Expr_info tensor)
const;
265 bool isProjector(csl::Expr_info tensor)
const;
267 bool isCMatrix(csl::Expr_info tensor)
const;
269 bool isSymmetric(csl::Expr_info tensor)
const;
273 bool isGammaMu(
csl::Index const& tensor)
const;
275 bool isGammaChir(
csl::Index const& tensor)
const;
281 bool isProjector(
csl::Index const& tensor)
const;
283 bool isCMatrix(
csl::Index const& tensor)
const;
300 :diracSpace(t_diracSpace)
303 bool hasContractionProperty(
321 bool commutationWithTensor(
326 bool commutationWithIntegral(
331 bool commutationWithProduct(
336 bool commutationWithSum(
Namespace of MARTY.
Definition: 2HDM.h:31
Chirality
Chirality for fermions. Either Left or Right for WeylFermion, or None for DiracFermion.
Definition: quantumField.h:40
Definition: diracology.h:36
Definition: diracology.h:54
Definition: diracology.h:45
Definition: diracology.h:295
Contains QuantumField and QuantumFieldParent, basic objects handling quantum fields as csl expression...
Definition: diracology.h:40