linalg 1.8.2
A linear algebra library that provides a user-friendly interface to several BLAS and LAPACK routines.
Loading...
Searching...
No Matches
linalg Module Reference

Provides a set of common linear algebra routines. More...

Data Types

interface  band_diag_mtx_mult
 Multiplies a banded matrix, A, with a diagonal matrix, B, such that A = alpha * A * B, or A = alpha * B * A. More...
 
interface  band_mtx_mult
 Multiplies a banded matrix, A, by a vector x such that alpha * op(A) * x + beta * y = y. More...
 
interface  band_mtx_to_full_mtx
 Converts a banded matrix stored in dense form to a full matrix. More...
 
interface  banded_to_dense
 Converts a banded matrix to a dense matrix. More...
 
interface  cholesky_factor
 Computes the Cholesky factorization of a symmetric, positive definite matrix. More...
 
interface  cholesky_rank1_downdate
 Computes the rank 1 downdate to a Cholesky factored matrix (upper triangular). More...
 
interface  cholesky_rank1_update
 Computes the rank 1 update to a Cholesky factored matrix (upper triangular). More...
 
type  csr_matrix
 A sparse matrix stored in compressed sparse row (CSR) format. More...
 
interface  dense_to_banded
 Converts a dense matrix to a banded matrix. More...
 
interface  det
 Computes the determinant of a square matrix. More...
 
interface  diag_mtx_mult
 Multiplies a diagonal matrix with another matrix or array. More...
 
interface  eigen
 Computes the eigenvalues, and optionally the eigenvectors, of a matrix. More...
 
interface  extract_diagonal
 Extracts the diagonal of a matrix. More...
 
interface  form_lq
 Forms the orthogonal matrix Q from the elementary reflectors returned by the LQ factorization algorithm. More...
 
interface  form_lu
 Extracts the L and U matrices from the condensed [L\U] storage format used by the lu_factor. More...
 
interface  form_qr
 Forms the full M-by-M orthogonal matrix Q from the elementary reflectors returned by the base QR factorization algorithm. More...
 
interface  lq_factor
 Computes the LQ factorization of an M-by-N matrix. More...
 
interface  lu_factor
 Computes the LU factorization of an M-by-N matrix. More...
 
interface  matmul
 Performs sparse matrix multiplication C = A * B. More...
 
type  msr_matrix
 A sparse matrix stored in modified sparse row format. This format is convenient for situations where the diagonal is fully populated. More...
 
interface  mtx_inverse
 Computes the inverse of a square matrix. More...
 
interface  mtx_mult
 Performs the matrix operation: \( C = \alpha op(A) op(B) + \beta C \). More...
 
interface  mtx_pinverse
 Computes the Moore-Penrose pseudo-inverse of a M-by-N matrix using the singular value decomposition of the matrix. More...
 
interface  mtx_rank
 Computes the rank of a matrix. More...
 
interface  mult_lq
 Multiplies a general matrix by the orthogonal matrix Q from a LQ factorization. More...
 
interface  mult_qr
 Multiplies a general matrix by the orthogonal matrix Q from a QR factorization. More...
 
interface  mult_rz
 Multiplies a general matrix by the orthogonal matrix Z from an RZ factorization. More...
 
interface  nonzero_count
 Determines the number of nonzero entries in a sparse matrix. More...
 
interface  operator(*)
 Multiplies a sparse matrix and a scalar. More...
 
interface  operator(+)
 Adds two sparse matrices. More...
 
interface  operator(-)
 Subtracts two sparse matrices. More...
 
interface  operator(/)
 Multiplies a sparse matrix by a scalar. More...
 
interface  pgmres_solver
 A preconditioned GMRES solver. More...
 
interface  qr_factor
 Computes the QR factorization of an M-by-N matrix. More...
 
interface  qr_rank1_update
 Computes the rank 1 update to an M-by-N QR factored matrix A (M >= N) where \( A = Q R \), and \( A1 = A + U V^T \) such that \( A1 = Q1 R1 \). In the event \( V \) is complex-valued, \( V^H \) is computed instead of \( V^T \). More...
 
interface  rank1_update
 Performs the rank-1 update to matrix A such that: \( A = \alpha X Y^T + A \), where \( A \) is an M-by-N matrix, \( \alpha \)is a scalar, \( X \) is an M-element array, and \( Y \) is an N-element array. In the event that \( Y \) is complex, \( Y^H \) is used instead of \( Y^T \). More...
 
interface  recip_mult_array
 Multiplies a vector by the reciprocal of a real scalar. More...
 
interface  rz_factor
 Factors an upper trapezoidal matrix by means of orthogonal transformations such that \( A = R Z = (R 0) Z \). Z is an orthogonal matrix of dimension N-by-N, and R is an M-by-M upper triangular matrix. More...
 
interface  size
 Determines the size of the requested dimension of the supplied sparse matrix. More...
 
interface  solve_cholesky
 Solves a system of Cholesky factored equations. More...
 
interface  solve_least_squares
 Solves the overdetermined or underdetermined system \( A X = B \) of M equations of N unknowns. Notice, it is assumed that matrix A has full rank. More...
 
interface  solve_least_squares_full
 Solves the overdetermined or underdetermined system \( A X = B \) of M equations of N unknowns, but uses a full orthogonal factorization of the system. More...
 
interface  solve_least_squares_svd
 Solves the overdetermined or underdetermined system \( A X = B \) of M equations of N unknowns using a singular value decomposition of matrix A. More...
 
interface  solve_lq
 Solves a system of M LQ-factored equations of N unknowns. N must be greater than or equal to M. More...
 
interface  solve_lu
 Solves a system of LU-factored equations. More...
 
interface  solve_qr
 Solves a system of M QR-factored equations of N unknowns. More...
 
interface  solve_triangular_system
 Solves a triangular system of equations. More...
 
interface  sort
 Sorts an array. More...
 
interface  sparse_direct_solve
 Provides a direct solution to a square, sparse system. More...
 
interface  svd
 Computes the singular value decomposition of a matrix A. The SVD is defined as: \( A = U S V^T \), where \( U \) is an M-by-M orthogonal matrix, \( S \) is an M-by-N diagonal matrix, and \( V \) is an N-by-N orthogonal matrix. In the event that \( V \) is complex valued, \( V^H \) is computed instead of \( V^T \). More...
 
interface  swap
 Swaps the contents of two arrays. More...
 
interface  trace
 Computes the trace of a matrix (the sum of the main diagonal elements). More...
 
interface  transpose
 Provides the transpose of a sparse matrix. More...
 
interface  tri_mtx_mult
 Computes the triangular matrix operation: \( B = \alpha A^T A + \beta B \), or \( B = \alpha A A^T + \beta B \), where A is a triangular matrix. More...
 

Variables

integer(int32), parameter, public la_no_operation = 0
 Defines no operation should be performed on the matrix.
 
integer(int32), parameter, public la_transpose = 1
 Defines a transpose operation.
 
integer(int32), parameter, public la_hermitian_transpose = 2
 Defines a Hermitian transpose operation for a complex-valued matrix.
 
integer(int32), parameter, public la_no_error = 0
 A flag denoting no error condition.
 
integer(int32), parameter, public la_invalid_input_error = 101
 An error flag denoting an invalid input.
 
integer(int32), parameter, public la_array_size_error = 102
 An error flag denoting an improperly sized array.
 
integer(int32), parameter, public la_singular_matrix_error = 103
 An error flag denoting a singular matrix.
 
integer(int32), parameter, public la_matrix_format_error = 104
 An error flag denoting an issue with the matrix format.
 
integer(int32), parameter, public la_out_of_memory_error = 105
 An error flag denoting that there is insufficient memory available.
 
integer(int32), parameter, public la_convergence_error = 106
 An error flag denoting a convergence failure.
 
integer(int32), parameter, public la_invalid_operation_error = 107
 An error resulting from an invalid operation.
 

Detailed Description

Provides a set of common linear algebra routines.

Variable Documentation

◆ la_array_size_error

integer(int32), parameter, public linalg::la_array_size_error = 102

An error flag denoting an improperly sized array.

Definition at line 285 of file linalg.f90.

◆ la_convergence_error

integer(int32), parameter, public linalg::la_convergence_error = 106

An error flag denoting a convergence failure.

Definition at line 293 of file linalg.f90.

◆ la_hermitian_transpose

integer(int32), parameter, public linalg::la_hermitian_transpose = 2

Defines a Hermitian transpose operation for a complex-valued matrix.

Definition at line 275 of file linalg.f90.

◆ la_invalid_input_error

integer(int32), parameter, public linalg::la_invalid_input_error = 101

An error flag denoting an invalid input.

Definition at line 283 of file linalg.f90.

◆ la_invalid_operation_error

integer(int32), parameter, public linalg::la_invalid_operation_error = 107

An error resulting from an invalid operation.

Definition at line 295 of file linalg.f90.

◆ la_matrix_format_error

integer(int32), parameter, public linalg::la_matrix_format_error = 104

An error flag denoting an issue with the matrix format.

Definition at line 289 of file linalg.f90.

◆ la_no_error

integer(int32), parameter, public linalg::la_no_error = 0

A flag denoting no error condition.

Definition at line 281 of file linalg.f90.

◆ la_no_operation

integer(int32), parameter, public linalg::la_no_operation = 0

Defines no operation should be performed on the matrix.

Definition at line 271 of file linalg.f90.

◆ la_out_of_memory_error

integer(int32), parameter, public linalg::la_out_of_memory_error = 105

An error flag denoting that there is insufficient memory available.

Definition at line 291 of file linalg.f90.

◆ la_singular_matrix_error

integer(int32), parameter, public linalg::la_singular_matrix_error = 103

An error flag denoting a singular matrix.

Definition at line 287 of file linalg.f90.

◆ la_transpose

integer(int32), parameter, public linalg::la_transpose = 1

Defines a transpose operation.

Definition at line 273 of file linalg.f90.