(git:0de0cc2)
cp_cfm_basic_linalg.F File Reference

Go to the source code of this file.

Modules

module  cp_cfm_basic_linalg
 Basic linear algebra operations for complex full matrices.
 

Functions/Subroutines

subroutine, public cp_cfm_basic_linalg::cp_cfm_schur_product (matrix_a, matrix_b, matrix_c)
 Computes the element-wise (Schur) product of two matrices: C = A \circ B . More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_scale_and_add (alpha, matrix_a, beta, matrix_b)
 Scale and add two BLACS matrices (a = alpha*a + beta*b). More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_scale_and_add_fm (alpha, matrix_a, beta, matrix_b)
 Scale and add two BLACS matrices (a = alpha*a + beta*b). where b is a real matrix (adapted from cp_cfm_scale_and_add). More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_lu_decompose (matrix_a, determinant)
 Computes LU decomposition of a given matrix. More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_gemm (transa, transb, m, n, k, alpha, matrix_a, matrix_b, beta, matrix_c, a_first_col, a_first_row, b_first_col, b_first_row, c_first_col, c_first_row)
 Performs one of the matrix-matrix operations: matrix_c = alpha * op1( matrix_a ) * op2( matrix_b ) + beta*matrix_c. More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_column_scale (matrix_a, scaling)
 Scales columns of the full matrix by corresponding factors. More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_solve (matrix_a, general_a, determinant)
 Solve the system of linear equations A*b=A_general using LU decomposition. Pay attention that both matrices are overwritten on exit and that the result is stored into the matrix 'general_a'. More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_lu_invert (matrix, info_out)
 Inverts a matrix using LU decomposition. The input matrix will be overwritten. More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_cholesky_decompose (matrix, n, info_out)
 Used to replace a symmetric positive definite matrix M with its Cholesky decomposition U: M = U^T * U, with U upper triangular. More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_cholesky_invert (matrix, n, info_out)
 Used to replace Cholesky decomposition by the inverse. More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_trace (matrix_a, matrix_b, trace)
 Returns the trace of matrix_a^T matrix_b, i.e sum_{i,j}(matrix_a(i,j)*matrix_b(i,j)) . More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_triangular_multiply (triangular_matrix, matrix_b, side, transa_tr, invert_tr, uplo_tr, unit_diag_tr, n_rows, n_cols, alpha)
 Multiplies in place by a triangular matrix: matrix_b = alpha op(triangular_matrix) matrix_b or (if side='R') matrix_b = alpha matrix_b op(triangular_matrix) op(triangular_matrix) is: triangular_matrix (if transa="N" and invert_tr=.false.) triangular_matrix^T (if transa="T" and invert_tr=.false.) triangular_matrix^H (if transa="C" and invert_tr=.false.) triangular_matrix^(-1) (if transa="N" and invert_tr=.true.) triangular_matrix^(-T) (if transa="T" and invert_tr=.true.) triangular_matrix^(-H) (if transa="C" and invert_tr=.true.) More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_triangular_invert (matrix_a, uplo, info_out)
 Inverts a triangular matrix. More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_transpose (matrix, trans, matrixt)
 Transposes a BLACS distributed complex matrix. More...
 
real(kind=dp) function, public cp_cfm_basic_linalg::cp_cfm_norm (matrix, mode)
 Norm of matrix using (p)zlange. More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_rot_rows (matrix, irow, jrow, cs, sn)
 Applies a planar rotation defined by cs and sn to the i'th and j'th rows. More...
 
subroutine, public cp_cfm_basic_linalg::cp_cfm_rot_cols (matrix, icol, jcol, cs, sn)
 Applies a planar rotation defined by cs and sn to the i'th and j'th columnns. More...