-// 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
+ // internal constructors
+ color(unsigned char rl, const exvector & v);
+ color(unsigned char rl, exvector && v);
+ void archive(archive_node& n) const override;
+ void read_archive(const archive_node& n, lst& sym_lst) override;
+
+ // functions overriding virtual functions from base classes
+protected:
+ ex eval_ncmul(const exvector & v) const override;
+ bool match_same_type(const basic & other) const override;
+ ex thiscontainer(const exvector & v) const override;
+ ex thiscontainer(exvector && v) const override;
+ unsigned return_type() const override { return return_types::noncommutative; }
+ return_type_t return_type_tinfo() const override;