src/kinematic/matrice_s [ Modules ]
NAME
Module matrice_s
USAGE
use matrice_s
DESCRIPTION
This module is used : to reserve some memory in order to pass the S matrix, its shape, the set of propagator labels; to compute the inverse of S matrix and the related quantities : the b's and sumb, also for all possible reduced matrices. The S matrix is allocated here and also its dimension and it returns the result through the three functions inv_s, b and sumb.
OUTPUT
This module exports five variables: * dim_s -- an integer, the shape of the initial S matrix * set_ref -- an integer array, the set of initial propagators * s_mat_c -- a complex (type ki) array of rank 2, the S matrix. * s_mat_p -- a derived type, including the S matrix for either real or complex masses and integer-bits encoding the positions of masses with non-vanishing Im-part, and vanishing masses. * s_mat -- A pointer associated with s_mat_c. The user can fill s_mat or s_mat_c with complex or real values. and also eleven functions: * initgolem95 -- calls allocation_s, initializes the cache, associates s_mat. * allocation_s -- to allocate the required memory * deallocation_s -- to deallocate the used memory * preparesmatrix -- fill s_mat_r with the real part of s_mat_c, sets the bit integers in s_mat_p calls init_invs. * init_invs -- to fill all the array for the inverse of the S matrix and the inverse of the reduce S matrix * inv_s -- it contains the inverse of the S matrix * hj -- it contains H matrix (pseudo-inverse of G) * b -- it contains the b coefficients * sumb -- it contains the B coeficient * norma_sumb -- it contains the normalised B coefficient * exitgolem95 -- deallocates memory, clear the cache. Only dim_s and set_ref take a value in this module, not the other variables
USES
* precision (src/module/precision_golem.f90) * sortie_erreur (src/module/sortie_erreur.f90) * cache (src/module/cache.f90) * inverse_matrice (src/kinematic/inverse_matrice.f90) * tri_croissant (src/module/tri_croissant.f90) * array (src/module/array.f90) * parametre (src/module/parametre.f90) * s_matrix_type (src/module/s_matrix_type.f90)
src/kinematic/inversion/b [ Functions ]
NAME
Function b
USAGE
complex = b(i,set)
DESCRIPTION
This function gives the b coefficients whatever the S matrix dimension (<=6)
INPUTS
* i -- an integer, label of the b coefficients * set -- an integer array of rank 1, the set of pinch propagators
SIDE EFFECTS
No side effect
RETURN VALUE
Warning: Now a complex (type ki) is returned! [TK Sep10]
EXAMPLE
src/kinematic/inversion/hj [ Functions ]
NAME
Function hj
USAGE
complex = hj(i,j,set)
DESCRIPTION
This function gives the H matrix (pseudo-inverse of G) (dim=6)
INPUTS
* i -- an integer, line number * j -- an integer, row number * set -- an integer array of rank 1, the set of pinch propagators
SIDE EFFECTS
No side effect
RETURN VALUE
Warning: Now a complex (type ki) is returned! [TK Sep10]
EXAMPLE
src/kinematic/inversion/init_invs [ Functions ]
NAME
Subroutine init_invs
USAGE
call init_invs()
DESCRIPTION
This function comes in two copies for real masses and complex masses. The respective arrays are filled. This routine fills the arrays: invs_n, hjj, b_n, sumb_n, norma_sumb_n One can print a typical error due to the numerical inversion
INPUTS
No input
SIDE EFFECTS
This routine modifies the values of the real or complex arrays invs_n, hjj, b_n, sumb_n, norma_sumb_n
RETURN VALUE
No return value
EXAMPLE
src/kinematic/inversion/inv_s [ Functions ]
NAME
Function inv_s
USAGE
complex = inv_s(i,j,set)
DESCRIPTION
This function gives the generic inverse of the S matrix whatever its dimension (<=6)
INPUTS
* i -- an integer, line number * j -- an integer, row number * set -- an integer array of rank 1, the set of pinch propagators
SIDE EFFECTS
No side effect
RETURN VALUE
Warning: Now a complex (type ki) is returned! [TK Sep10]
EXAMPLE
src/kinematic/inversion/norma_sumb [ Functions ]
NAME
Function norma_sumb
USAGE
complex = norma_sumb(set)
DESCRIPTION
This function gives the B coefficient whatever the S matrix dimension (<=6) divided by the greatest (in absolute value) element of the S matrix
INPUTS
* set -- an integer array of rank 1, the set of pinch propagators
SIDE EFFECTS
No side effect
RETURN VALUE
Warning: Now a complex (type ki) is returned! [TK Sep10]
EXAMPLE
src/kinematic/inversion/sumb [ Functions ]
NAME
Function sumb
USAGE
complex = sumb(set)
DESCRIPTION
This function gives the B coefficient whatever the S matrix dimension (<=6)
INPUTS
* set -- an integer array of rank 1, the set of pinch propagators
SIDE EFFECTS
No side effect
RETURN VALUE
Warning: Now a complex (type ki) is returned! [TK Sep10]
EXAMPLE
src/kinematic/matrice_s/allocation_s [ Functions ]
NAME
Subroutine allocation_s
USAGE
call allocation_s(dim)
DESCRIPTION
This subroutine reserves the memory for several internal objects. In case of rmass_or_cmass_par==cmass, there complex copies of each preceding array are also allocated. After memory allocation, s_mat_p is then assigned the matrix s_mat_c or s_mat_r, respectively. The corresponding pointers in s_mat_p are associated or nullified. In case a complex matrix is assigned, there will be also a pointer associated with a real matrix, which has entries according to the real part of the complex matrix.
INPUTS
* dim -- an integer, the maximal number of external legs
SIDE EFFECTS
This routine modify the value of the variable dim_s It initialises invs_n, hjj, b_n, sumb_n, norma_sumb_n to zero It associates the global objects s_mat_p with s_mat_r or s_mat_c.
RETURN VALUE
No return value
EXAMPLE
src/kinematic/matrice_s/deallocation_s [ Functions ]
NAME
Subroutine deallocation_s
USAGE
call deallocation_s()
DESCRIPTION
This subroutine deallocates the memory reserved by the preceeding subroutine. The pointers in s_mat_p are nullified.
INPUTS
No input
SIDE EFFECTS
This routine destroys all the variables initialised in the preceeding subroutine as well as any associations in s_mat_p.
RETURN VALUE
No return value
EXAMPLE
src/kinematic/matrice_s/exitgolem95 [ Functions ]
NAME
Subroutine exitgolem95
USAGE
call exitgolem95()
DESCRIPTION
This subroutine should be called at the end of the form factor calculation. It frees all memory previously allocated, it clears the cache and nullifies pointers.
INPUTS
SIDE EFFECTS
RETURN VALUE
No return value
EXAMPLE
src/kinematic/matrice_s/initgolem95 [ Functions ]
NAME
Subroutine initgolem95
USAGE
call initgolem95(dim, opt_set)
DESCRIPTION
This subroutine is the first of three macro functions which needs to be called by the user. It allocates memory for all internal matrices needed in subsequent calculations. The caching system is initialized. A pointer s_mat is associated with a complex matrix s_mat_c. This is the s matrix which has to be filled after initgolem95() is called. The argument 'dim' sets the maximal number of external legs. An optional array for the numbering of propagators can be given. The default is set to (/ 1, ... , dim /)
INPUTS
* dim -- an integer, the maximal number of external legs * opt_set -- an optional integer array for the numbering of propagators
SIDE EFFECTS
A call to allocation_s is made, implying all side effects given there. The caching system is initialized. A pointer 's_mat' is associated with the global matrix s_mat_c. The internal parameter rmass_or_cmass_par is set to cmass. If a purely real s matrix is given by the user it will be set to rmass in the call of preparesmatrix.
RETURN VALUE
No return value
EXAMPLE
src/kinematic/matrice_s/preparesmatrix [ Functions ]
NAME
Subroutine preparesmatrix
USAGE
call preparesmatrix() call prepare_s_matrix_local(s_mat_p_loc,set_ref_loc)
DESCRIPTION
This subroutine prepares the global or local s_mat_p object, consisting of pointers to s_mat_c and s_mat_r and integer bits b_cmplx and b_zero. A call to init_invs is made to fill the inverse matrices needed in the form factor calculations. If the user has defined a purely real s matrix, the internal parameter rmass_or_cmass_par is set to rmass and only the real branch of the library is used. In the complex case, form factors which are not affected by complex masses will be called with a sub matrix of s_mat_r, the real part of s_mat_c. The routine also sets the bits for complex mass and zero mass- entries. The subroutine prepare_s_matrix_local is used internally to prepare local type s_matrix_poly objects. This subroutine does not interact with the inverse matrices and the caching system.
INPUTS
For prepare_s_matrix_local, s_mat_p and set_ref need to be given.
RETURN VALUE
No return value
EXAMPLE