+private:
+ unsigned char representation_label; /**< Representation label to distinguish independent spin lines */
+};
+
+
+/** This class represents the Clifford algebra unity element. */
+class diracone : public tensor
+{
+ GINAC_DECLARE_REGISTERED_CLASS(diracone, tensor)
+
+ // functions overriding virtual functions from bases classes
+public:
+ void print(const print_context & c, unsigned level = 0) const;
+};
+
+
+/** This class represents the Dirac gamma Lorentz vector. */
+class diracgamma : public tensor
+{
+ GINAC_DECLARE_REGISTERED_CLASS(diracgamma, tensor)
+
+ // functions overriding virtual functions from bases classes
+public:
+ void print(const print_context & c, unsigned level = 0) const;
+ bool contract_with(exvector::iterator self, exvector::iterator other, exvector & v) const;
+};
+
+
+/** This class represents the Dirac gamma5 object. */
+class diracgamma5 : public tensor
+{
+ GINAC_DECLARE_REGISTERED_CLASS(diracgamma5, tensor)
+
+ // functions overriding virtual functions from bases classes
+public:
+ void print(const print_context & c, unsigned level = 0) const;