-// friends
-
- friend color color_ONE(unsigned rl);
- friend color color_T(const ex & a, unsigned rl);
- friend color color_f(const ex & a, const ex & b, const ex & c);
- friend color color_d(const ex & a, const ex & b, const ex & c);
- friend ex color_h(const ex & a, const ex & b, const ex & c);
- friend color color_delta8(const ex & a, const ex & b);
- friend unsigned subs_index_in_exvector(exvector & v, const ex & is, const ex & ir);
- friend void split_color_string_in_parts(const exvector & v, exvector & delta8vec,
- exvector & fvec, exvector & dvec,
- exvectorvector & Tvecs,
- exvectorvector & ONEvecs,
- exvector & unknownvec);
- friend exvector recombine_color_string(exvector & delta8vec, exvector & fvec,
- exvector & dvec, exvectorvector & Tvecs,
- exvectorvector & ONEvecs, exvector & unknownvec);
- friend ex color_trace_of_one_representation_label(const exvector & v);
- friend ex color_trace(const exvector & v, unsigned rl);
- friend ex simplify_pure_color_string(const ex & e);
- friend ex simplify_color(const ex & e);
-
-// types
+ // functions overriding virtual functions from base classes
+protected:
+ ex eval_ncmul(const exvector & v) const;
+ bool match_same_type(const basic & other) const;
+ ex thiscontainer(const exvector & v) const;
+ ex thiscontainer(std::auto_ptr<exvector> vp) const;
+ unsigned return_type() const { return return_types::noncommutative; }
+ return_type_t return_type_tinfo() const;