grid_tools  1.5.0
 All Data Structures Files Functions Variables
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

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 1077 of file pmat4.f90.

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 1006 of file pmat4.f90.

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 1149 of file pmat4.f90.

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 1262 of file pmat4.f90.

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 1226 of file pmat4.f90.

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 1314 of file pmat4.f90.


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