|
recursive subroutine, public | iterate_matrix::determinant (matrix, det, threshold) |
| Computes the determinant of a symmetric positive definite matrix using the trace of the matrix logarithm via Mercator series: det(A) = det(S)det(I+X)det(S), where S=diag(sqrt(Aii),..,sqrt(Ann)) det(I+X) = Exp(Trace(Ln(I+X))) Ln(I+X) = X - X^2/2 + X^3/3 - X^4/4 + .. The series converges only if the Frobenius norm of X is less than 1. If it is more than one we compute (recursevily) the determinant of the square root of (I+X).
|
|
subroutine, public | iterate_matrix::invert_taylor (matrix_inverse, matrix, threshold, use_inv_as_guess, norm_convergence, filter_eps, accelerator_order, max_iter_lanczos, eps_lanczos, silent) |
| invert a symmetric positive definite diagonally dominant matrix
|
|
subroutine, public | iterate_matrix::invert_hotelling (matrix_inverse, matrix, threshold, use_inv_as_guess, norm_convergence, filter_eps, accelerator_order, max_iter_lanczos, eps_lanczos, silent) |
| invert a symmetric positive definite matrix by Hotelling's method explicit symmetrization makes this code not suitable for other matrix types Currently a bit messy with the options, to to be cleaned soon
|
|
subroutine, public | iterate_matrix::matrix_sign_newton_schulz (matrix_sign, matrix, threshold, sign_order, iounit) |
| compute the sign a matrix using Newton-Schulz iterations
|
|
subroutine, public | iterate_matrix::matrix_sign_proot (matrix_sign, matrix, threshold, sign_order) |
| compute the sign a matrix using the general algorithm for the p-th root of Richters et al. Commun. Comput. Phys., 25 (2019), pp. 564-585.
|
|
subroutine, public | iterate_matrix::matrix_sign_submatrix (matrix_sign, matrix, threshold, sign_order, submatrix_sign_method) |
| Submatrix method.
|
|
subroutine, public | iterate_matrix::matrix_sign_submatrix_mu_adjust (matrix_sign, matrix, mu, nelectron, threshold, variant) |
| Submatrix method with internal adjustment of chemical potential.
|
|
subroutine, public | iterate_matrix::matrix_sqrt_newton_schulz (matrix_sqrt, matrix_sqrt_inv, matrix, threshold, order, eps_lanczos, max_iter_lanczos, symmetrize, converged, iounit) |
| compute the sqrt of a matrix via the sign function and the corresponding Newton-Schulz iterations the order of the algorithm should be 2..5, 3 or 5 is recommended
|
|
subroutine, public | iterate_matrix::matrix_sqrt_proot (matrix_sqrt, matrix_sqrt_inv, matrix, threshold, order, eps_lanczos, max_iter_lanczos, symmetrize, converged) |
| compute the sqrt of a matrix via the general algorithm for the p-th root of Richters et al. Commun. Comput. Phys., 25 (2019), pp. 564-585.
|
|
subroutine, public | iterate_matrix::matrix_exponential (matrix_exp, matrix, omega, alpha, threshold) |
| ...
|
|