grid_tools  1.13.0
pmat4::gram Interface Reference

Private Member Functions

subroutine gram_d (as, b, nrank, det)
 Apply a form of Gram-Schmidt orthogonalization process to return as many normalized orthogonal basis column vectors in matrix B as possible in the space spanned by the columns of matrix A. More...
 
subroutine gram_s (as, b, nrank, det)
 Apply a form of Gram-Schmidt orthogonalization process to return as many normalized orthogonal basis column vectors in matrix B as possible in the space spanned by the columns of matrix A. More...
 
subroutine graml_d (as, b, nrank, detsign, ldet)
 A version of gram_d where the determinant information is returned in logarithmic form (to avoid overflows for large matrices). More...
 
subroutine plaingram_d (b, nrank)
 A "plain" (unpivoted) version of Gram-Schmidt, for square matrices only. More...
 
subroutine plaingram_s (b, nrank)
 A "plain" (unpivoted) version of Gram-Schmidt, for square matrices only. More...
 
subroutine rowgram (m, n, a, ipiv, tt, b, rank)
 Without changing (tall) rectangular input matrix a, perform pivoted gram- Schmidt operations to orthogonalize the rows, until rows that remain become negligible. More...
 

Detailed Description

Definition at line 87 of file pmat4.f90.

Member Function/Subroutine Documentation

◆ gram_d()

subroutine pmat4::gram::gram_d ( real(dp), dimension(:,:), intent(in)  as,
real(dp), dimension(:,:), intent(out)  b,
integer(spi), intent(out)  nrank,
real(dp), intent(out)  det 
)
private

Apply a form of Gram-Schmidt orthogonalization process to return as many normalized orthogonal basis column vectors in matrix B as possible in the space spanned by the columns of matrix A.

The number of columns returned is the rank, nrank, of A, and the determinant of the projection of A into the subspace of B is returned as det.

Parameters
[in]asgiven matrix A
[out]bmatrix B containing nrank orthonormal column vectors
[out]nrankrank of A
[out]detdeterminant of projection of A into subspace of B
Author
R. J. Purser

Definition at line 1078 of file pmat4.f90.

◆ gram_s()

subroutine pmat4::gram::gram_s ( real(sp), dimension(:,:), intent(in)  as,
real(sp), dimension(:,:), intent(out)  b,
integer(spi), intent(out)  nrank,
real(sp), intent(out)  det 
)
private

Apply a form of Gram-Schmidt orthogonalization process to return as many normalized orthogonal basis column vectors in matrix B as possible in the space spanned by the columns of matrix A.

The number of columns returned is the rank, nrank, of A, and the determinant of the projection of A into the subspace of B is returned as det.

Parameters
[in]asgiven matrix A
[out]bmatrix B containing nrank orthonormal column vectors
[out]nrankrank of A
[out]detdeterminant of projection of A into subspace of B
Author
R. J. Purser

Definition at line 1007 of file pmat4.f90.

◆ graml_d()

subroutine pmat4::gram::graml_d ( real(dp), dimension(:,:), intent(in)  as,
real(dp), dimension(:,:), intent(out)  b,
integer(spi), intent(out)  nrank,
integer(spi), intent(out)  detsign,
real(dp), intent(out)  ldet 
)
private

A version of gram_d where the determinant information is returned in logarithmic form (to avoid overflows for large matrices).

When the matrix is singular, the "sign" of the determinant, detsign, is returned as zero (instead of either +1 or -1) and ldet is then just the log of the nonzero factors found by the process.

Parameters
[in]asgiven matrix A
[out]bmatrix B of orthonormal columns
[out]nrankrank of A
[out]detsignsign of determinant
[out]ldetlogarithm of absolute value of determinant
Author
R. J. Purser

Definition at line 1150 of file pmat4.f90.

◆ plaingram_d()

subroutine pmat4::gram::plaingram_d ( real(dp), dimension(:,:), intent(inout)  b,
integer(spi), intent(out)  nrank 
)
private

A "plain" (unpivoted) version of Gram-Schmidt, for square matrices only.

Double precision version.

Parameters
[in,out]binput as given matrix, output as orthogonalized vectors
[out]nrankeffective rank of given matrix
Author
R. J. Purser

Definition at line 1263 of file pmat4.f90.

◆ plaingram_s()

subroutine pmat4::gram::plaingram_s ( real(sp), dimension(:,:), intent(inout)  b,
integer(spi), intent(out)  nrank 
)
private

A "plain" (unpivoted) version of Gram-Schmidt, for square matrices only.

Single precision version.

Parameters
[in,out]binput as given matrix, output as orthogonalized vectors
[out]nrankeffective rank of given matrix
Author
R. J. Purser

Definition at line 1227 of file pmat4.f90.

◆ rowgram()

subroutine pmat4::gram::rowgram ( integer(spi), intent(in)  m,
integer(spi), intent(in)  n,
real(dp), dimension(m,n), intent(in)  a,
integer(spi), dimension(n), intent(out)  ipiv,
real(dp), dimension(m,n), intent(out)  tt,
real(dp), dimension(n,n), intent(out)  b,
integer(spi), intent(out)  rank 
)
private

Without changing (tall) rectangular input matrix a, perform pivoted gram- Schmidt operations to orthogonalize the rows, until rows that remain become negligible.

Record the pivoting sequence in ipiv, and the row-normalization in tt(j,j) and the row-orthogonalization in tt(i,j), for i>j. Note that tt(i,j)=0 for i<j (tt is truncated lower triangular). The orthonormalized rows are returned in square array b, which is complete even when the effective rank < n. The recorded row operations can be repeated on independent column vectors through the use of subroutine ROWOPS (in this module). It is recommended to rescale the original matrix A via a call to CORRAL (in this module) because the negligibility criterion depends upon an "epsilon" value that is fixed (10**(-13)) and assumes elements of a are never too different in magnitude from unity, unless they are actually zero.

Parameters
[in]mnumber of rows of A
[in]nnumber of columns of A
[in]arectangular input matrix A
[out]ipivpivoting sequence
[out]ttrow-normalization
[out]borthonormalized rows
[in]rankeffective rank of A
Author
R. J. Purser

Definition at line 1315 of file pmat4.f90.


The documentation for this interface was generated from the following file: