// functions overriding virtual functions from base classes
protected:
+ bool match_same_type(const basic & other) const;
ex simplify_ncmul(const exvector & v) const;
ex thisexprseq(const exvector & v) const;
ex thisexprseq(exvector * vp) const;
{
GINAC_DECLARE_REGISTERED_CLASS(su3one, tensor)
- // functions overriding virtual functions from bases classes
+ // functions overriding virtual functions from base classes
public:
void print(const print_context & c, unsigned level = 0) const;
};
{
GINAC_DECLARE_REGISTERED_CLASS(su3t, tensor)
- // functions overriding virtual functions from bases classes
+ // functions overriding virtual functions from base classes
public:
void print(const print_context & c, unsigned level = 0) const;
bool contract_with(exvector::iterator self, exvector::iterator other, exvector & v) const;
{
GINAC_DECLARE_REGISTERED_CLASS(su3f, tensor)
- // functions overriding virtual functions from bases classes
+ // functions overriding virtual functions from base classes
public:
void print(const print_context & c, unsigned level = 0) const;
ex eval_indexed(const basic & i) const;
{
GINAC_DECLARE_REGISTERED_CLASS(su3d, tensor)
- // functions overriding virtual functions from bases classes
+ // functions overriding virtual functions from base classes
public:
void print(const print_context & c, unsigned level = 0) const;
ex eval_indexed(const basic & i) const;
// global functions
+
+/** Return the color object handled by an ex. Deprecated: use ex_to<color>().
+ * This is unsafe: you need to check the type first. */
inline const color &ex_to_color(const ex &e)
{
return static_cast<const color &>(*e.bp);
}
+/** Specialization of is_exactly_a<color>(obj) for color objects. */
+template<> inline bool is_exactly_a<color>(const basic & obj)
+{
+ return obj.tinfo()==TINFO_color;
+}
/** Create the su(3) unity element. This is an indexed object, although it
* has no indices.
/** Calculate the trace of an expression containing color objects with a
* specified representation label.
*
+ * @param e Expression to take the trace of
* @param rl Representation label */
ex color_trace(const ex & e, unsigned char rl = 0);