|
subroutine, public | cp_cfm_basic_linalg::cp_cfm_det (matrix_a, det_a) |
| Computes the determinant (with a correct sign even in parallel environment!) of a complex square matrix.
|
|
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 .
|
|
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).
|
|
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).
|
|
subroutine, public | cp_cfm_basic_linalg::cp_cfm_lu_decompose (matrix_a, determinant) |
| Computes LU decomposition of a given matrix.
|
|
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.
|
|
subroutine, public | cp_cfm_basic_linalg::cp_cfm_column_scale (matrix_a, scaling) |
| Scales columns of the full matrix by corresponding factors.
|
|
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'.
|
|
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.
|
|
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)) .
|
|
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.)
|
|
subroutine, public | cp_cfm_basic_linalg::cp_cfm_triangular_invert (matrix_a, uplo, info_out) |
| Inverts a triangular matrix.
|
|
subroutine, public | cp_cfm_basic_linalg::cp_cfm_transpose (matrix, trans, matrixt) |
| Transposes a BLACS distributed complex matrix.
|
|
real(kind=dp) function, public | cp_cfm_basic_linalg::cp_cfm_norm (matrix, mode) |
| Norm of matrix using (p)zlange.
|
|
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.
|
|
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.
|
|
subroutine, public | cp_cfm_basic_linalg::cp_cfm_uplo_to_full (matrix, workspace, uplo) |
| ...
|
|