colorfull is hosted by Hepforge, IPPP Durham
ColorFull  1.1
ColorFull Namespace Reference

Classes

class  Col_amp
 
class  Col_basis
 
class  Col_functions
 
class  Col_str
 
class  Monomial
 
class  Orthogonal_basis
 
class  Poly_matr
 
class  Poly_vec
 
class  Polynomial
 
class  Quark_line
 
class  Trace_basis
 
class  Trace_type_basis
 
class  Tree_level_gluon_basis
 

Typedefs

typedef std::vector< Col_strcol_amp
 
typedef std::vector< Col_ampcol_basis
 
typedef std::vector< Quark_linecol_str
 
typedef std::vector< Poly_vecpoly_matr
 
typedef std::vector< Polynomialpoly_vec
 
typedef std::vector< Monomialpolynomial
 
typedef std::vector< int > quark_line
 
typedef std::complex< double > cnum
 
typedef std::vector< cnumcvec
 
typedef std::vector< std::vector< cnum > > cmatr
 
typedef std::vector< double > dvec
 
typedef std::vector< std::vector< double > > dmatr
 
typedef unsigned int uint
 

Functions

std::ostream & operator<< (std::ostream &out, const col_amp &ca)
 
std::ostream & operator<< (std::ostream &out, const Col_amp &Ca)
 
bool operator== (const Col_amp &Ca1, const Col_amp &Ca2)
 
bool operator!= (const Col_amp &Ca1, const Col_amp &Ca2)
 
Col_amp operator+ (const Col_amp &Ca, const Col_str &Cs)
 
Col_amp operator+ (const Col_str &Cs, const Col_amp &Ca)
 
Col_amp operator+ (const Col_amp &Ca1, const Col_amp &Ca2)
 
Col_amp operator+= (Col_amp &Ca, const Col_str &Cs)
 
Col_amp operator+= (Col_amp &Ca1, const Col_amp &Ca2)
 
Col_amp operator- (const Col_amp &Ca1, const Col_amp &Ca2)
 
Col_amp operator- (const Col_amp &Ca, const Col_str &Cs)
 
Col_amp operator* (const Col_amp &Ca, const int i)
 
Col_amp operator* (const int i, const Col_amp &Ca)
 
Col_amp operator* (const Col_amp &Ca, const cnum c)
 
Col_amp operator* (const cnum c, const Col_amp &Ca)
 
Col_amp operator* (const Col_amp &Ca, const double d)
 
Col_amp operator* (const double d, const Col_amp &Ca)
 
Col_amp operator* (const Col_amp &Ca, const Monomial &Mon)
 
Col_amp operator* (const Monomial &Mon, const Col_amp &Ca)
 
Col_amp operator* (const Col_amp &Ca, const Polynomial &Poly)
 
Col_amp operator* (const Polynomial &Poly, const Col_amp &Ca)
 
Col_amp operator* (const Col_amp &Ca, const Quark_line &Ql)
 
Col_amp operator* (const Quark_line &Ql, const Col_amp &Ca)
 
Col_amp operator* (const Col_amp &Ca, const Col_str &Cs)
 
Col_amp operator* (const Col_str &Cs, const Col_amp &Ca)
 
Col_amp operator* (const Col_amp &Ca1, const Col_amp &Ca2)
 
Col_amp operator*= (Col_amp &Ca1, const Col_amp &Ca2)
 
std::ostream & operator<< (std::ostream &out, const col_basis &cb)
 
std::ostream & operator<< (std::ostream &out, const Col_basis &Cb)
 
std::list< int >::iterator operator+ (std::list< int >::iterator x, int n)
 
std::list< int >::iterator operator- (std::list< int >::iterator x, int n)
 
std::list< Quark_line >::iterator operator+ (std::list< Quark_line >::iterator x, int n)
 
col_str::iterator operator- (col_str::iterator x, int n)
 
std::ostream & operator<< (std::ostream &out, const std::vector< int > &vec)
 
std::ostream & operator<< (std::ostream &out, const cvec &cv)
 
std::ostream & operator<< (std::ostream &out, const dvec &dv)
 
std::ostream & operator<< (std::ostream &out, const cmatr &cm)
 
std::ostream & operator<< (std::ostream &out, const dmatr &matr)
 
std::ostream & operator<< (std::ostream &out, std::pair< int, int > pair)
 
bool operator== (const col_str &cs1, const col_str &cs2)
 
bool operator!= (const col_str &cs1, const col_str &cs2)
 
std::ostream & operator<< (std::ostream &out, const col_str &cs)
 
Col_str operator* (const Col_str &Cs, const int i)
 
Col_str operator* (const int i, const Col_str &Cs)
 
Col_str operator* (const Col_str &Cs, const double d)
 
Col_str operator* (const double d, const Col_str &Cs)
 
Col_str operator* (const Col_str &Cs, const cnum c)
 
Col_str operator* (const cnum c, const Col_str &Cs)
 
Col_str operator* (const Col_str &Cs, const Monomial &Mon)
 
Col_str operator* (const Monomial &Mon, const Col_str &Cs)
 
Col_str operator* (const Col_str &Cs, const Polynomial &Poly)
 
Col_str operator* (const Polynomial &Poly, const Col_str &Cs)
 
Col_str operator* (const Col_str &Cs, const Quark_line &Ql)
 
Col_str operator* (const Quark_line &Ql, const Col_str &Cs)
 
Col_str operator* (const Col_str &Cs1, const Col_str &Cs2)
 
Col_str operator* (const Quark_line &Ql1, const Quark_line &Ql2)
 
std::ostream & operator<< (std::ostream &out, const Col_str &Cs)
 
bool operator== (const Col_str &Cs1, const Col_str &Cs2)
 
bool operator!= (const Col_str &Cs1, const Col_str &Cs2)
 
std::ostream & operator<< (std::ostream &out, const Monomial &Mon)
 
Monomial operator* (const Monomial &Mon, const int i)
 
Monomial operator* (const int i, const Monomial &Mon)
 
Monomial operator* (const Monomial &Mon, const cnum c)
 
Monomial operator* (const cnum c, const Monomial &Mon)
 
Monomial operator* (const Monomial &Mon, const double d)
 
Monomial operator* (const double d, const Monomial &Mon)
 
Monomial operator* (const Monomial &Mon1, const Monomial &Mon2)
 
Monomial operator*= (Monomial &Mon, const int i)
 
Monomial operator*= (Monomial &Mon, const cnum c)
 
Monomial operator*= (Monomial &Mon, const double d)
 
Monomial operator*= (Monomial &Mon1, const Monomial &Mon2)
 
bool operator== (const Monomial &Mon1, const Monomial &Mon2)
 
bool operator!= (const Monomial &Mon1, const Monomial &Mon2)
 
bool operator< (const Monomial &Mon1, const Monomial &Mon2)
 
std::ostream & operator<< (std::ostream &out, const poly_matr &pm)
 
std::ostream & operator<< (std::ostream &out, const Poly_matr &Pm)
 
bool operator== (const Poly_matr &Pm1, const Poly_matr &Pm2)
 
bool operator!= (const Poly_matr &Pm1, const Poly_matr &Pm2)
 
std::ostream & operator<< (std::ostream &out, const poly_vec &poly_v)
 
std::ostream & operator<< (std::ostream &out, const Poly_vec &Pv)
 
bool operator== (const Poly_vec &Pv1, const Poly_vec &Pv2)
 
bool operator!= (const Poly_vec &Pv1, const Poly_vec &Pv2)
 
std::ostream & operator<< (std::ostream &out, const Polynomial &Poly)
 
std::ostream & operator<< (std::ostream &out, const polynomial &poly)
 
bool operator== (const Polynomial &Poly1, const Polynomial &Poly2)
 
bool operator!= (const Polynomial &Poly1, const Polynomial &Poly2)
 
Polynomial operator+ (const Polynomial &Poly, const Monomial &Mon)
 
Polynomial operator+ (const Monomial &Mon, const Polynomial &Poly)
 
Polynomial operator+= (Polynomial &Poly, const Monomial &Mon)
 
Polynomial operator+= (Polynomial &Poly1, const Polynomial &Poly2)
 
Polynomial operator- (const Polynomial &Poly, const Monomial &Mon)
 
Polynomial operator- (const Monomial &Mon, const Polynomial &Poly)
 
Polynomial operator+ (const Polynomial &Poly1, const Polynomial &Poly2)
 
Polynomial operator- (const Polynomial &Poly1, const Polynomial &Poly2)
 
Polynomial operator* (const Polynomial &Poly, int i)
 
Polynomial operator* (int i, const Polynomial &Poly)
 
Polynomial operator* (const Polynomial &Poly, const cnum c)
 
Polynomial operator* (const cnum c, const Polynomial &Poly)
 
Polynomial operator* (const Polynomial &Poly, const double d)
 
Polynomial operator* (const double d, const Polynomial &Poly)
 
Polynomial operator* (const Polynomial &Poly, const Monomial &Mon)
 
Polynomial operator* (const Monomial &Mon, const Polynomial &Poly)
 
Polynomial operator* (const Polynomial &Poly1, const Polynomial &Poly2)
 
Polynomial operator*= (Polynomial &Poly, const int i)
 
Polynomial operator*= (Polynomial &Poly, const double d)
 
Polynomial operator*= (Polynomial &Poly, const cnum c)
 
Polynomial operator*= (Polynomial &Poly, const Monomial &Mon)
 
Polynomial operator*= (Polynomial &Poly1, const Polynomial &Poly2)
 
Quark_line operator* (const Quark_line &Ql, const int i)
 
Quark_line operator* (const int i, const Quark_line &Ql)
 
Quark_line operator* (const Quark_line &Ql, const cnum c)
 
Quark_line operator* (const cnum c, const Quark_line &Ql)
 
Quark_line operator* (const Quark_line &Ql, const double d)
 
Quark_line operator* (const double d, const Quark_line &Ql)
 
Quark_line operator* (const Quark_line &Ql, const Monomial &Mon)
 
Quark_line operator* (const Monomial &Mon, const Quark_line &Ql)
 
Quark_line operator* (const Quark_line &Ql, const Polynomial &Poly)
 
Quark_line operator* (const Polynomial &Poly, const Quark_line &Ql)
 
bool operator== (const Quark_line &Ql1, const Quark_line &Ql2)
 
bool operator!= (const Quark_line &Ql1, const Quark_line &Ql2)
 
std::ostream & operator<< (std::ostream &out, const Quark_line &Ql)
 

Variables

const double accuracy =0.0000000000001
 

Typedef Documentation

◆ cmatr

typedef std::vector< std::vector <cnum> > ColorFull::cmatr

A matrix of complex numbers.

◆ cnum

typedef std::complex< double > ColorFull::cnum

A complex number, needed as amplitudes in general are complex.

◆ col_amp

typedef std::vector<Col_str> ColorFull::col_amp

Define a type to contain a linear combination of color structures, a col_amp contains the actual color amplitude in a Col_amp.

◆ col_basis

typedef std::vector<Col_amp> ColorFull::col_basis

Define a type to store all basis vectors.

◆ col_str

typedef std::vector< Quark_line > ColorFull::col_str

For containing a vector (or list) of Quark_lines the color information part of a Col_str. The col_str is a product of Quark_lines, contained in a vector of quark-lines.

◆ cvec

typedef std::vector<cnum> ColorFull::cvec

A vector of complex numbers.

◆ dmatr

typedef std::vector< std::vector <double> > ColorFull::dmatr

A matrix of double numbers.

◆ dvec

typedef std::vector<double> ColorFull::dvec

A vector of double numbers.

◆ poly_matr

typedef std::vector< Poly_vec > ColorFull::poly_matr

To contain a matrix of Polynomials, a vector of Poly_vec.

◆ poly_vec

typedef std::vector< Polynomial> ColorFull::poly_vec

To contain a vector of Polynomials.

◆ polynomial

typedef std::vector< Monomial > ColorFull::polynomial

For containing the info (as opposed to the functions) of a Polynomial. The Polynomial is essentially a sum of Monomials, contained in a vector of Monomials. Note that a Monomial "is" TR^a Nc^b CF^c* int_part*cnum_part where int_part is an integer factor and cnum_part a complex numerical factor. An empty polynomial is defined as 1.

◆ quark_line

typedef std::vector<int> ColorFull::quark_line

Define a type to contain a quark-line with gluons attached, the actual color information about how quarks are ordered in a Quark_line.

◆ uint

typedef unsigned int ColorFull::uint

An unsigned int.

Function Documentation

◆ operator!=() [1/8]

bool ColorFull::operator!= ( const Poly_vec Pv1,
const Poly_vec Pv2 
)

Define the operator != for Poly_vec, each Polynomial has to be identical.

◆ operator!=() [2/8]

bool ColorFull::operator!= ( const Poly_matr Pm1,
const Poly_matr Pm2 
)

Define the operator == for Poly_matr, each Poly_vec has to be identical.

◆ operator!=() [3/8]

bool ColorFull::operator!= ( const Polynomial Poly1,
const Polynomial Poly2 
)

Operator != for Polynomial. Returns false if Poly1==Poly2, and true otherwise.

◆ operator!=() [4/8]

bool ColorFull::operator!= ( const Monomial Mon1,
const Monomial Mon2 
)

Define the operator != Monomial. Returns false if Mon1==Mon2, and true otherwise.

◆ operator!=() [5/8]

bool ColorFull::operator!= ( const col_str cs1,
const col_str cs2 
)

Define the operator != for two col_str's. Returns false if cs1==cs2 and false otherwise.

◆ operator!=() [6/8]

bool ColorFull::operator!= ( const Quark_line Ql1,
const Quark_line Ql2 
)

The negation of the Quark_line operator ==.

◆ operator!=() [7/8]

bool ColorFull::operator!= ( const Col_amp Ca1,
const Col_amp Ca2 
)

Define the operator != for two Col_amps.

◆ operator!=() [8/8]

bool ColorFull::operator!= ( const Col_str Cs1,
const Col_str Cs2 
)

Define the operator != for two Col_str's, the negation of ==. Function does NOT first normal order Col_strs.

◆ operator*() [1/55]

Monomial ColorFull::operator* ( const Monomial Mon,
const int  i 
)

Operator * for Monomial and int. The int_part member is multiplied by i, whereas other members are kept constant.

◆ operator*() [2/55]

Monomial ColorFull::operator* ( const int  i,
const Monomial Mon 
)

Operator * for int and Monomial. Returns Mon*i.

◆ operator*() [3/55]

Monomial ColorFull::operator* ( const Monomial Mon,
const cnum  c 
)

Operator * for Monomial and cnum. The member Mon.cnum_part is multiplied by c, whereas other members are kept the same.

◆ operator*() [4/55]

Monomial ColorFull::operator* ( const cnum  c,
const Monomial Mon 
)

Operator * for cnum and Monomial, returns Mon*c.

◆ operator*() [5/55]

Monomial ColorFull::operator* ( const Monomial Mon,
const double  d 
)

Operator * for Monomial and double. The member Mon.cnum_part is multiplied by c, whereas other members are kept the same.

◆ operator*() [6/55]

Monomial ColorFull::operator* ( const double  d,
const Monomial Mon 
)

Operator * for double and Monomial, returns Mon*d.

◆ operator*() [7/55]

Monomial ColorFull::operator* ( const Monomial Mon1,
const Monomial Mon2 
)

Operator * for Monomials. The powers, pow_TR, pow_Nc and pow_CF are added, and the numbers int_part and mon are multiplied.

◆ operator*() [8/55]

Polynomial ColorFull::operator* ( const Polynomial Poly,
int  i 
)

Operator * for Polynomial and int, loops over Monomials and multiplies int_part with i. If Poly is empty=1, a default Monomial=1 is first appended to Poly.

◆ operator*() [9/55]

Polynomial ColorFull::operator* ( int  i,
const Polynomial Poly 
)

Operator * for int and Polynomial. Returns Poly*i.

◆ operator*() [10/55]

Quark_line ColorFull::operator* ( const Quark_line Ql,
const int  i 
)

Define the operator * for Quark_line and int. The Polynomial of the Quark_line is multiplied with i.

◆ operator*() [11/55]

Polynomial ColorFull::operator* ( const Polynomial Poly,
const cnum  c 
)

Operator * for Polynomial and cnum, loops over Monomials and multiplies cnum_partwith c. If Poly is empty=1, a default Monomial=1 is first appended to poly.

◆ operator*() [12/55]

Quark_line ColorFull::operator* ( const int  i,
const Quark_line Ql 
)

Define the operator * for Quark_line and int, returns Ql*i.

◆ operator*() [13/55]

Polynomial ColorFull::operator* ( const cnum  c,
const Polynomial Poly 
)

Operator * for cnum and Polynomial, returns Poly*c.

◆ operator*() [14/55]

Quark_line ColorFull::operator* ( const Quark_line Ql,
const cnum  c 
)

Define the operator * for Quark_line and cnum. The Polynomial of the Quark_line is multiplied with c.

◆ operator*() [15/55]

Quark_line ColorFull::operator* ( const cnum  c,
const Quark_line Ql 
)

Define the operator * for Quark_line and cnum, returns Ql*c.

◆ operator*() [16/55]

Polynomial ColorFull::operator* ( const Polynomial Poly,
const double  d 
)

Operator * for Polynomial and double, loops over Monomials and multiplies cnum_partwith d. If Poly is empty=1, a default Monomial=1 is first appended to poly.

◆ operator*() [17/55]

Polynomial ColorFull::operator* ( const double  d,
const Polynomial Poly 
)

Operator * for Polynomial and double, returns Poly*d.

◆ operator*() [18/55]

Quark_line ColorFull::operator* ( const Quark_line Ql,
const double  d 
)

Define the operator * for Quark_line and double. The Polynomial of the Quark_line is multiplied with d.

◆ operator*() [19/55]

Polynomial ColorFull::operator* ( const Polynomial Poly,
const Monomial Mon 
)

Operator * for Polynomial and Monomial, loops over Monomials in Poly, and multiplies each with Mon. If Poly is empty=1, a Polynomial with one Monomial=Mon is returned.

◆ operator*() [20/55]

Quark_line ColorFull::operator* ( const double  d,
const Quark_line Ql 
)

Define the operator * for Quark_line and double,.

returns Ql*d.

◆ operator*() [21/55]

Polynomial ColorFull::operator* ( const Monomial Mon,
const Polynomial Poly 
)

Operator * for Monomial and Polynomial, returns Poly*Mon.

◆ operator*() [22/55]

Quark_line ColorFull::operator* ( const Quark_line Ql,
const Monomial Mon 
)

Define the operator * for Quark_line and Monomial. The polynomial of the Quark_line is multipled with Mon.

◆ operator*() [23/55]

Polynomial ColorFull::operator* ( const Polynomial Poly1,
const Polynomial Poly2 
)

Operator * for Polynomials. (For details, see code.)

◆ operator*() [24/55]

Quark_line ColorFull::operator* ( const Monomial Mon,
const Quark_line Ql 
)

Define the operator * for Quark_line and Monomial. returns Ql*Mon.

◆ operator*() [25/55]

Quark_line ColorFull::operator* ( const Quark_line Ql,
const Polynomial Poly 
)

Define the operator * for Quark_line and Polynomial. The Polynomial of the Quark_line is multiplied with Poly.

◆ operator*() [26/55]

Quark_line ColorFull::operator* ( const Polynomial Poly,
const Quark_line Ql 
)

Define the operator * for Quark_line and Polynomial returns Ql*Poly.

◆ operator*() [27/55]

Col_str ColorFull::operator* ( const Col_str Cs,
const int  i 
)

Define the operator * for Col_str and int.

◆ operator*() [28/55]

Col_str ColorFull::operator* ( const int  i,
const Col_str Cs 
)

Define the operator * for int and Col_str.

◆ operator*() [29/55]

Col_str ColorFull::operator* ( const Col_str Cs,
const double  d 
)

Define the operator * for Col_str and double.

◆ operator*() [30/55]

Col_str ColorFull::operator* ( const double  d,
const Col_str Cs 
)

Define the operator * for double and Col_str.

◆ operator*() [31/55]

Col_str ColorFull::operator* ( const Col_str Cs,
const cnum  c 
)

Define the operator * for Col_str and cnum.

◆ operator*() [32/55]

Col_str ColorFull::operator* ( const cnum  c,
const Col_str Cs 
)

Define the operator * for cnum and Col_str.

◆ operator*() [33/55]

Col_str ColorFull::operator* ( const Col_str Cs,
const Monomial Mon 
)

Define the operator * for Col_str and Monomial.

◆ operator*() [34/55]

Col_str ColorFull::operator* ( const Monomial Mon,
const Col_str Cs 
)

Define the operator * for Monomial and Col_str.

◆ operator*() [35/55]

Col_str ColorFull::operator* ( const Col_str Cs,
const Polynomial Poly 
)

Define the operator * for Col_str and Polynomial.

◆ operator*() [36/55]

Col_str ColorFull::operator* ( const Polynomial Poly,
const Col_str Cs 
)

Define the operator * for Polynomial and Col_str.

◆ operator*() [37/55]

Col_str ColorFull::operator* ( const Col_str Cs,
const Quark_line Ql 
)

Define the operator * for a Col_str and a Quark_line, adding Ql and multiplying Polynomial info.

◆ operator*() [38/55]

Col_str ColorFull::operator* ( const Quark_line Ql,
const Col_str Cs 
)

Define the operator * for a Quark_line and a Col_str, adding Ql and multiplying Polynomial info.

◆ operator*() [39/55]

Col_str ColorFull::operator* ( const Col_str Cs1,
const Col_str Cs2 
)

Define the operator * for two Col_str's, adding Ql and multiplying Polynomial info.

◆ operator*() [40/55]

Col_str ColorFull::operator* ( const Quark_line Ql1,
const Quark_line Ql2 
)

Define the operator * for two Quark_lines. Clearly the result cannot be contained in a Quark_line, but needs (at least) a Col_str.

◆ operator*() [41/55]

Col_amp ColorFull::operator* ( const Col_amp Ca,
const int  i 
)

Define the operator * for Col_amps and integers.

◆ operator*() [42/55]

Col_amp ColorFull::operator* ( const int  i,
const Col_amp Ca 
)

Define the operator * for integers number and Col_amp.

◆ operator*() [43/55]

Col_amp ColorFull::operator* ( const Col_amp Ca,
const cnum  c 
)

Define the operator * for Col_amps and complex number.

◆ operator*() [44/55]

Col_amp ColorFull::operator* ( const cnum  c,
const Col_amp Ca 
)

Define the operator * for complex number and Col_amp.

◆ operator*() [45/55]

Col_amp ColorFull::operator* ( const Col_amp Ca,
const double  d 
)

Define the operator * for Col_amp and double.

◆ operator*() [46/55]

Col_amp ColorFull::operator* ( const double  d,
const Col_amp Ca 
)

Define the operator * for double and Col_amp.

◆ operator*() [47/55]

Col_amp ColorFull::operator* ( const Col_amp Ca,
const Monomial Mon 
)

Define the operator * for Col_amp and Monomial.

◆ operator*() [48/55]

Col_amp ColorFull::operator* ( const Monomial Mon,
const Col_amp Ca 
)

Define the operator * for Monomial and Col_amp.

◆ operator*() [49/55]

Col_amp ColorFull::operator* ( const Col_amp Ca,
const Polynomial Poly 
)

Define the operator * for Col_amp and Polynomial.

◆ operator*() [50/55]

Col_amp ColorFull::operator* ( const Polynomial Poly,
const Col_amp Ca 
)

Define the operator * for Monomial and Col_amp.

◆ operator*() [51/55]

Col_amp ColorFull::operator* ( const Col_amp Ca,
const Quark_line Ql 
)

Define the operator * for Col_amp and Quark_line.

◆ operator*() [52/55]

Col_amp ColorFull::operator* ( const Quark_line Ql,
const Col_amp Ca 
)

Define the operator * for Quark_line and Col_amp.

◆ operator*() [53/55]

Col_amp ColorFull::operator* ( const Col_amp Ca,
const Col_str Cs 
)

Define the operator * for Col_amp and Col_str.

◆ operator*() [54/55]

Col_amp ColorFull::operator* ( const Col_str Cs,
const Col_amp Ca 
)

Define the operator * for Col_str and Col_amp.

◆ operator*() [55/55]

Col_amp ColorFull::operator* ( const Col_amp Ca1,
const Col_amp Ca2 
)

Define the operator * for Col_amps.

◆ operator*=() [1/10]

Monomial ColorFull::operator*= ( Monomial Mon,
const int  i 
)

Operator *= for Monomial and int. The int_part member is multiplied by i, whereas other members are kept constant.

◆ operator*=() [2/10]

Monomial ColorFull::operator*= ( Monomial Mon,
const cnum  c 
)

Operator *= for Monomial and cnum. The cnum_part member is multiplied by c, whereas other members are kept constant.

◆ operator*=() [3/10]

Monomial ColorFull::operator*= ( Monomial Mon,
const double  d 
)

Operator *= for Monomial and double. The cnum_part member is multiplied by d, whereas other members are kept constant.

◆ operator*=() [4/10]

Monomial ColorFull::operator*= ( Monomial Mon1,
const Monomial Mon2 
)

Operator *= for Monomials. Mon1 is changed by being multipled with Mon2.

◆ operator*=() [5/10]

Polynomial ColorFull::operator*= ( Polynomial Poly,
const int  i 
)

Operator *= for Polynomial and int. Multiplies Poly with i.

◆ operator*=() [6/10]

Polynomial ColorFull::operator*= ( Polynomial Poly,
const double  d 
)

Operator *= for Polynomial and double. Multiplies Poly with d.

◆ operator*=() [7/10]

Polynomial ColorFull::operator*= ( Polynomial Poly,
const cnum  c 
)

Operator *= for Polynomial and cnum. Multiplies Poly with c.

◆ operator*=() [8/10]

Polynomial ColorFull::operator*= ( Polynomial Poly,
const Monomial Mon 
)

Operator *= for Polynomial and Monomial. Multiplies Poly with Mon.

◆ operator*=() [9/10]

Polynomial ColorFull::operator*= ( Polynomial Poly1,
const Polynomial Poly2 
)

Operator *= for Polynomial and Polynomial. Multiplies Poly1 with Poly2.

◆ operator*=() [10/10]

Col_amp ColorFull::operator*= ( Col_amp Ca1,
const Col_amp Ca2 
)

Define the operator *= for two Col_amps.

◆ operator+() [1/8]

Polynomial ColorFull::operator+ ( const Polynomial Poly,
const Monomial Mon 
)

Operator + for Polynomial and a single Monomial.

◆ operator+() [2/8]

Polynomial ColorFull::operator+ ( const Monomial Mon,
const Polynomial Poly 
)

Operator + for a single Monomial and a Polynomial, returns Poly+Mon.

◆ operator+() [3/8]

Polynomial ColorFull::operator+ ( const Polynomial Poly1,
const Polynomial Poly2 
)

Operator + for Polynomials, appends Momomails from Poly2 to Poly1. If one of the Polynomials is empty=1, this is compensated for by first appending a Monomial=1 to the empty Polynomial.

◆ operator+() [4/8]

Col_amp ColorFull::operator+ ( const Col_amp Ca,
const Col_str Cs 
)

Define the operator + for Col_amp and Col_str, adds Col_str Cs to ca.

◆ operator+() [5/8]

Col_amp ColorFull::operator+ ( const Col_str Cs,
const Col_amp Ca 
)

Define the operator + for Col_str and Col_amp, adds Col_str Cs to ca.

◆ operator+() [6/8]

Col_amp ColorFull::operator+ ( const Col_amp Ca1,
const Col_amp Ca2 
)

Define the operator + for two Col_amps. Adds Scalars, and adds Col_strs.

◆ operator+() [7/8]

std::list<int>::iterator ColorFull::operator+ ( std::list< int >::iterator  x,
int  n 
)

Defining + operator to be able to erase elements at place.

◆ operator+() [8/8]

std::list< Quark_line >::iterator ColorFull::operator+ ( std::list< Quark_line >::iterator  x,
int  n 
)

Defining + operator to be able to erase elements at place.

◆ operator+=() [1/4]

Polynomial ColorFull::operator+= ( Polynomial Poly,
const Monomial Mon 
)

Define the operator += for Polynomials. The Monomial is appended unless Mon.int_part=0.

◆ operator+=() [2/4]

Polynomial ColorFull::operator+= ( Polynomial Poly1,
const Polynomial Poly2 
)

Define the operator += for Polynomials. This operator appends the Monomials of Poly2 to Poly1.

◆ operator+=() [3/4]

Col_amp ColorFull::operator+= ( Col_amp Ca,
const Col_str Cs 
)

Define the operator += for two Col_amp+=Col_str.

◆ operator+=() [4/4]

Col_amp ColorFull::operator+= ( Col_amp Ca1,
const Col_amp Ca2 
)

Define the operator += for two Col_amps.

◆ operator-() [1/7]

Polynomial ColorFull::operator- ( const Polynomial Poly,
const Monomial Mon 
)

Operator - for Polynomial and a single Monomial. Changes sign of Monomial by changing int_part and returns Poly+(-Mon).

◆ operator-() [2/7]

Polynomial ColorFull::operator- ( const Monomial Mon,
const Polynomial Poly 
)

Operator - for Polynomial and a single Monomial changes the sign of Poly by changing int_part, and then adds Mon to (-Poly).

◆ operator-() [3/7]

Polynomial ColorFull::operator- ( const Polynomial Poly1,
const Polynomial Poly2 
)

Operator - for Polynomials, changes sign of Poly2, and then returns Poly1 + (-Poly2).

◆ operator-() [4/7]

Col_amp ColorFull::operator- ( const Col_amp Ca1,
const Col_amp Ca2 
)

Define the operator - for two Col_amps. Subtract Scalar of Ca2 from Ca1, and subtracts (=appends with minus sign) Col_strs.

◆ operator-() [5/7]

Col_amp ColorFull::operator- ( const Col_amp Ca,
const Col_str Cs 
)

Define the operator - for Col_amp-Col_str.

Define the operator - for Col_str-Col_amp.

◆ operator-() [6/7]

std::list<int>::iterator ColorFull::operator- ( std::list< int >::iterator  x,
int  n 
)

◆ operator-() [7/7]

col_str::iterator ColorFull::operator- ( col_str::iterator  x,
int  n 
)

◆ operator<()

bool ColorFull::operator< ( const Monomial Mon1,
const Monomial Mon2 
)

Operator to find the "smallest" of two Monomials. The Monomials are ordered first according to pow_Nc+pow_CF, then according to pow_Nc (for same pow_Nc+pow_CF) then according to int_part*abs(cnum_part), then according to int_part, and finally according to pow_TR. NOTE: this ordering does not agree with ordering according to numerical value. NOTE: If the Monomials are equal, Mon1 is not smaller so false will be returned.

◆ operator<<() [1/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const poly_vec poly_v 
)

Operator << for poly_vec.

◆ operator<<() [2/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const Poly_vec Pv 
)

Operator << for Poly_vec.

◆ operator<<() [3/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const poly_matr pm 
)

Operator << for poly_matr.

◆ operator<<() [4/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const Poly_matr Pm 
)

Operator << for poly_vec.

◆ operator<<() [5/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const Polynomial Poly 
)

Define the operator << for Polynomial.

◆ operator<<() [6/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const Monomial Mon 
)

Define the operator << for Monomial.

◆ operator<<() [7/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const polynomial poly 
)

Define the operator << for polynomial.

◆ operator<<() [8/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const col_str cs 
)

Define the operator << for col_str.

◆ operator<<() [9/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const Quark_line Ql 
)

Define the operator << for Quark_line.

◆ operator<<() [10/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const col_amp ca 
)

Define the operator << for col_amp.

◆ operator<<() [11/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const Col_amp Ca 
)

Define the operator << for Col_amp.

◆ operator<<() [12/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const Col_str Cs 
)

Define the operator << for Col_str.

◆ operator<<() [13/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const std::vector< int > &  vec 
)

Define the operator << for vector of int.

◆ operator<<() [14/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const cvec cv 
)

Define the operator << for cvec.

◆ operator<<() [15/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const dvec dv 
)

Define the operator << for dvec.

◆ operator<<() [16/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const cmatr cm 
)

Define the operator << for cmatr.

◆ operator<<() [17/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const dmatr matr 
)

Define the operator << for dmatr.

◆ operator<<() [18/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
std::pair< int, int >  pair 
)

Define the operator << for std::pair<int, int>.

◆ operator<<() [19/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const col_basis cb 
)

Define the operator << for col_basis.

◆ operator<<() [20/20]

std::ostream& ColorFull::operator<< ( std::ostream &  out,
const Col_basis Cb 
)

Define the operator << for Col_basis.

The operator << for Col_basis operator must be able to access the write_out_Col_basis_to_stream operator.

◆ operator==() [1/8]

bool ColorFull::operator== ( const Poly_vec Pv1,
const Poly_vec Pv2 
)

Define the operator == for Poly_vec, each Polynomial has to be identical.

◆ operator==() [2/8]

bool ColorFull::operator== ( const Poly_matr Pm1,
const Poly_matr Pm2 
)

Define the operator == for Poly_matr, each Poly_vec has to be identical.

◆ operator==() [3/8]

bool ColorFull::operator== ( const Polynomial Poly1,
const Polynomial Poly2 
)

Define the operator == for Polynomial By definition, each Monomial has to be identical, as order matters 1+2 is not 2+1.

◆ operator==() [4/8]

bool ColorFull::operator== ( const Monomial Mon1,
const Monomial Mon2 
)

Operator == for Monomials, all parts must be equal. For the numerical part, an accuracy is used for the ratio.

◆ operator==() [5/8]

bool ColorFull::operator== ( const col_str cs1,
const col_str cs2 
)

Define the operator == for two col_str's. The col_str's must have equal length and all Quark_lines must be the same (i.e. have same Polynomial and same parton ordering). The quark_lines are NOT normal ordered before comparison.

◆ operator==() [6/8]

bool ColorFull::operator== ( const Quark_line Ql1,
const Quark_line Ql2 
)

Define the operator == for two Quark_lines the quark_lines must be equal, the member variable open and the Polynomials must be equal. Note that for Polynomials cf+Nc!=Nc+cf.

◆ operator==() [7/8]

bool ColorFull::operator== ( const Col_amp Ca1,
const Col_amp Ca2 
)

Define the operator == for two Col_amps.

◆ operator==() [8/8]

bool ColorFull::operator== ( const Col_str Cs1,
const Col_str Cs2 
)

Define the operator == for two Col_str's the col_strs must be equal, and the Polynomials must be equal. Note that for Polynomials cf+Nc!=Nc+cf. Function does NOT first normal order Col_strs.

Variable Documentation

◆ accuracy

const double ColorFull::accuracy =0.0000000000001

This sets the accuracy for numerical comparisons. It is used for numerical comparison for example when the symmetry of a matrix is checked, when it's checked if a matrix is diagonal when realness is checked and when turning complex numbers into real numbers. It is also used by << for dmatr and the Polynomial member function simplify .