colorfull is hosted by Hepforge, IPPP Durham
ColorFull  1.1
ColorFull::Orthogonal_basis Class Reference

#include <Orthogonal_basis.h>

Inheritance diagram for ColorFull::Orthogonal_basis:
ColorFull::Col_basis

Public Member Functions

 Orthogonal_basis ()
 
void scalar_product_matrix ()
 
void diagonal_scalar_product_matrix (bool save_P_diagonal_spm, bool save_d_diagonal_spm, bool use_mem)
 
Poly_vec decompose (const Col_amp &Ca)
 
Polynomial scalar_product (const Col_amp &Ca1, const Col_amp &Ca2)
 
cnum scalar_product_num (const Col_amp &Ca1, const Col_amp &Ca2)
 
cnum scalar_product_num (const cvec &v1, const cvec &v2)
 
std::string diagonal_spm_file_name (const bool leading, const bool poly) const
 
void write_out_diagonal_d_spm (std::string filename) const
 
void write_out_diagonal_d_spm () const
 
void write_out_diagonal_P_spm (std::string filename) const
 
void write_out_diagonal_P_spm () const
 
void write_out_diagonal_spm (const dvec &dv, const bool leading) const
 
void write_out_diagonal_spm (const Poly_vec &pv, const bool leading) const
 
- Public Member Functions inherited from ColorFull::Col_basis
 Col_basis ()
 
virtual ~Col_basis ()
 
bool is_Trace_basis () const
 
bool is_Orthogonal_basis () const
 
bool is_Tree_level_gluon_basis () const
 
uint size () const
 
const Col_ampat (const int i) const
 
Col_ampat (const int i)
 
bool empty () const
 
void clear ()
 
void append (Col_amp Ca)
 
void append (col_basis cb_in)
 
void scalar_product_matrix ()
 
void scalar_product_matrix_num ()
 
virtual void scalar_product_matrix_no_mem ()
 
void scalar_product_matrix_num_no_mem ()
 
void leading_scalar_product_matrix ()
 
cnum scalar_product_num_diagonal (const cvec &v1, const cvec &v2)
 
std::string basis_file_name () const
 
std::string spm_file_name (const bool leading, const bool poly) const
 
virtual void read_in_Col_basis (std::string filename)
 
virtual void read_in_Col_basis ()
 
void read_in_d_spm (std::string filename)
 
void read_in_d_spm ()
 
void read_in_leading_d_spm (std::string filename)
 
void read_in_leading_d_spm ()
 
void read_in_P_spm (std::string filename)
 
void read_in_P_spm ()
 
void read_in_leading_P_spm (std::string filename)
 
void read_in_leading_P_spm ()
 
virtual void write_out_Col_basis (std::string filename) const
 
virtual void write_out_Col_basis () const
 
void write_out_d_spm (std::string filename) const
 
void write_out_d_spm () const
 
void write_out_P_spm (std::string filename) const
 
void write_out_P_spm () const
 
void write_out_leading_d_spm (std::string filename) const
 
void write_out_leading_d_spm () const
 
void write_out_leading_P_spm (std::string filename) const
 
void write_out_leading_P_spm () const
 
void simplify ()
 
Col_amp exchange_gluon (uint vec, int p1, int p2)
 
Poly_matr color_gamma (int p1, int p2)
 
int n_quark_check () const
 
int n_gluon_check () const
 
void rename_indices (Col_str &Cs1, Col_str &Cs2) const
 

Public Attributes

dvec diagonal_d_spm
 
Poly_vec diagonal_P_spm
 
- Public Attributes inherited from ColorFull::Col_basis
int nq
 
int ng
 
col_basis cb
 
Poly_matr P_spm
 
Poly_matr leading_P_spm
 
dmatr d_spm
 
dmatr leading_d_spm
 
Col_functions Col_fun
 

Additional Inherited Members

- Protected Member Functions inherited from ColorFull::Col_basis
virtual Polynomial ij_entry (const int i, const int j) const
 
bool check_diagonal (const dmatr &matr) const
 
bool check_symmetry (const dmatr &matr) const
 
void check_spm () const
 
void Col_basis_of_str (std::string str)
 
virtual std::ostream & write_out_Col_basis_to_stream (std::ostream &out) const
 
- Protected Attributes inherited from ColorFull::Col_basis
bool trace_basis
 
bool tree_level_gluon_basis
 
bool orthogonal_basis
 

Detailed Description

This class is for containing orthogonal bases, i.e. bases where the scalar product matrix is diagonal. ColorFull has (currently) no functionality for creating orthogonal bases, but orthogonal bases can be read in using read_in _Col_basis.

Constructor & Destructor Documentation

◆ Orthogonal_basis()

ColorFull::Orthogonal_basis::Orthogonal_basis ( )
inline

Default constructor, puts private variable orthogonal_basis=true and calls the constructor of Col_basis.

Member Function Documentation

◆ decompose()

Poly_vec ColorFull::Orthogonal_basis::decompose ( const Col_amp Ca)
virtual

The decomposition of a Col_amp in an orthogonal basis is done by calculating scalar products and dividing out the norm. The norm is evaluated numerically.

Reimplemented from ColorFull::Col_basis.

◆ diagonal_scalar_product_matrix()

void ColorFull::Orthogonal_basis::diagonal_scalar_product_matrix ( bool  save_P_diagonal_spm,
bool  save_d_diagonal_spm,
bool  use_mem 
)

Calculates the diagonal entries in the scalar product matrix, and (depending on arguments), saves them to the member variables diagonal_P_spm and diagonal_d_spm. This function is used by the Orthogonal_basis version of scalar_product_matrix.

◆ diagonal_spm_file_name()

std::string ColorFull::Orthogonal_basis::diagonal_spm_file_name ( const bool  leading,
const bool  poly 
) const

Creates a default filename for writing out diagonal scalar products. The boolean variable leading should be true if the name is for a leading Nc variable. The filename is then modified accordingly.

◆ scalar_product()

Polynomial ColorFull::Orthogonal_basis::scalar_product ( const Col_amp Ca1,
const Col_amp Ca2 
)
virtual

Function for calculating scalar products given the information about the basis and the scalar product matrix in the basis. The Col_amps are first decomposed using decompose, and then squared using the scalar product matrix P_spm. An orthogonal scalar product matrix is assumed.

Reimplemented from ColorFull::Col_basis.

◆ scalar_product_matrix()

void ColorFull::Orthogonal_basis::scalar_product_matrix ( )

Calculates the scalar product matrix assuming the basis to be orthogonal. Calculates both the double (d_spm) and the Polynomial (P_spm) matrices and saves to default file names.

◆ scalar_product_num() [1/2]

cnum ColorFull::Orthogonal_basis::scalar_product_num ( const Col_amp Ca1,
const Col_amp Ca2 
)
virtual

Function for calculating scalar products given the information about the basis and the scalar product matrix in numerical form. The Col_amps are first decomposed using decompose, and then squared using diagonal_d_spm. For Orthogonal_basis, an orthogonal scalar product matrix is assumed.

Reimplemented from ColorFull::Col_basis.

◆ scalar_product_num() [2/2]

cnum ColorFull::Orthogonal_basis::scalar_product_num ( const cvec v1,
const cvec v2 
)
virtual

Calculates the scalar product between decomposed amplitudes v1, V2 using the diagonal_d_spm diagonal numerical scalar product matrix. The vectors needs to be expressed in the basis contained in cb, i.e., the decomposition has to be known.

Reimplemented from ColorFull::Col_basis.

◆ write_out_diagonal_d_spm() [1/2]

void ColorFull::Orthogonal_basis::write_out_diagonal_d_spm ( std::string  filename) const

Writes out diagonal_d_spm to the file filename.

◆ write_out_diagonal_d_spm() [2/2]

void ColorFull::Orthogonal_basis::write_out_diagonal_d_spm ( ) const

Writes out diagonal_d_spm to the standard filename, see diagonal_spm_file_name.

◆ write_out_diagonal_P_spm() [1/2]

void ColorFull::Orthogonal_basis::write_out_diagonal_P_spm ( std::string  filename) const

Writes out diagonal_P_spm to the file filename.

◆ write_out_diagonal_P_spm() [2/2]

void ColorFull::Orthogonal_basis::write_out_diagonal_P_spm ( ) const

Writes out diagonal_P_spm to the standard filename, see diagonal_spm_file_name.

◆ write_out_diagonal_spm() [1/2]

void ColorFull::Orthogonal_basis::write_out_diagonal_spm ( const dvec dv,
const bool  leading 
) const

Function for writing out a dvec (the diagonal scalar products, diagonal_d_spm) to a file with standard filename given by diagonal_spm_file_name. The boolean variable leading should be true if dv only has leading Nc contributions. The filename is then modified accordingly.

◆ write_out_diagonal_spm() [2/2]

void ColorFull::Orthogonal_basis::write_out_diagonal_spm ( const Poly_vec pv,
const bool  leading 
) const

Function for writing out a Poly_vec (the diagonal scalar products, diagonal_d_spm) to a file with standard filename given by diagonal_spm_file_name. The boolean variable leading should be true if Poly_vec only has leading Nc contributions. The filename is then modified accordingly.

Member Data Documentation

◆ diagonal_d_spm

dvec ColorFull::Orthogonal_basis::diagonal_d_spm

To contain information about scalar products as a dvec, i.e., entry i is the square of vector i.

◆ diagonal_P_spm

Poly_vec ColorFull::Orthogonal_basis::diagonal_P_spm

To contain information about scalar products as a Poly_vec, i.e., entry i is the square of vector i.


The documentation for this class was generated from the following file: