+
+/** This class represents the su(3) unity element. */
+class su3one : public tensor
+{
+ GINAC_DECLARE_REGISTERED_CLASS(su3one, tensor)
+
+ // functions overriding virtual functions from bases classes
+public:
+ void print(const print_context & c, unsigned level = 0) const;
+};
+
+/** This class represents an su(3) generator. */
+class su3t : public tensor
+{
+ GINAC_DECLARE_REGISTERED_CLASS(su3t, 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 tensor of antisymmetric su(3) structure
+ * constants. */
+class su3f : public tensor
+{
+ GINAC_DECLARE_REGISTERED_CLASS(su3f, tensor)
+
+ // functions overriding virtual functions from bases classes
+public:
+ 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;
+};
+
+/** This class represents the tensor of symmetric su(3) structure constants. */
+class su3d : public tensor
+{
+ GINAC_DECLARE_REGISTERED_CLASS(su3d, tensor)
+
+ // functions overriding virtual functions from bases classes
+public:
+ 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;
+};
+
+