tensor(unsigned ti);
// functions overriding virtual functions from bases classes
-public:
- ex subs(const lst & ls, const lst & lr) const;
protected:
unsigned return_type(void) const { return return_types::noncommutative_composite; }
};
// functions overriding virtual functions from bases classes
public:
- void print(std::ostream & os, unsigned upper_precedence=0) const;
+ void print(const print_context & c, unsigned level = 0) const;
ex eval_indexed(const basic & i) const;
bool contract_with(exvector::iterator self, exvector::iterator other, exvector & v) const;
};
// functions overriding virtual functions from bases classes
public:
- void print(std::ostream & os, unsigned upper_precedence=0) const;
+ void print(const print_context & c, unsigned level = 0) const;
ex eval_indexed(const basic & i) const;
bool contract_with(exvector::iterator self, exvector::iterator other, exvector & v) const;
};
// functions overriding virtual functions from bases classes
public:
- void print(std::ostream & os, unsigned upper_precedence=0) const;
+ void print(const print_context & c, unsigned level = 0) const;
ex eval_indexed(const basic & i) const;
// member variables
// functions overriding virtual functions from bases classes
public:
- void print(std::ostream & os, unsigned upper_precedence=0) const;
+ void print(const print_context & c, unsigned level = 0) const;
ex eval_indexed(const basic & i) const;
// member variables
* @return newly constructed epsilon tensor */
ex lorentz_eps(const ex & i1, const ex & i2, const ex & i3, const ex & i4, bool pos_sig = false);
+/** Create an epsilon tensor in a 4-dimensional projection of a D-dimensional
+ * Minkowski space. It vanishes whenever one of the indices is not in the
+ * set {0, 1, 2, 3}.
+ *
+ * @param i1 First index
+ * @param i2 Second index
+ * @param i3 Third index
+ * @param i4 Fourth index
+ * @param pos_sig Whether the signature of the metric is positive
+ * @return newly constructed epsilon tensor */
+ex eps0123(const ex & i1, const ex & i2, const ex & i3, const ex & i4, bool pos_sig = false);
+
} // namespace GiNaC
#endif // ndef __GINAC_TENSOR_H__