Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Matrices/standard_complex_qr_decomposition.ads, Revision 1.1
1.1 ! maekawa 1: with Standard_Natural_Vectors;
! 2: with Standard_Complex_Vectors;
! 3: with Standard_Complex_Matrices;
! 4:
! 5: package Standard_Complex_QR_Decomposition is
! 6:
! 7: -- DESCRIPTION :
! 8: -- This package provides an implementation of QR-decomposition for
! 9: -- matrices of standard complex numbers.
! 10:
! 11: procedure QRD ( x : in out Standard_Complex_Matrices.Matrix;
! 12: qraux : in out Standard_Complex_Vectors.Vector;
! 13: jpvt : in out Standard_Natural_Vectors.Vector;
! 14: piv : in boolean );
! 15:
! 16: -- DESCRIPTION :
! 17: -- Uses Householder transformations to compute the QR decomposition of x.
! 18: -- Column pivoting based on 2-norms of reduced columns is optional.
! 19:
! 20: -- REQUIRED : jpvt'range = x'range(2) = qraux'range,
! 21: -- x'length(1) >= x'length(2)
! 22:
! 23: -- ON ENTRY :
! 24: -- x matrix whose decomposition is to be computed;
! 25: -- jpvt controls the selection of the pivot columns.
! 26: -- The k-th column x(k) of x is placed in one of three classes
! 27: -- according to the value of jpvt(k):
! 28: -- if jpvt(k) > 0, then x(k) is an initial column.
! 29: -- if jpvt(k) = 0, then x(k) is a free column.
! 30: -- if jpvt(k) < 0, then x(k) is a final column.
! 31: -- before the decomposition is computed, initial columns are
! 32: -- moved to the beginning of the array x and final columns to
! 33: -- the end. Both initial and final columns are frozen in place
! 34: -- during the computation and only free columns are moved.
! 35: -- At the k-th stage of the reduction, if x(k) is occupied by a
! 36: -- free column it is interchanged with the free column of
! 37: -- largest reduced norm. jpvt is not referenced if not piv.
! 38: -- piv column pivoting is performed if and only if piv is true.
! 39:
! 40: -- ON RETURN :
! 41: -- x x contains in its upper triangle the upper triangular matrix
! 42: -- R of the QR factorization. Below its diagonal x contains
! 43: -- information from which the orthogonal part of the
! 44: -- decomposition can be recovered. Note that if pivoting has
! 45: -- been requested, the decomposition is not that of the original
! 46: -- matrix x but that of x with its columns permuted as described
! 47: -- by jpvt.
! 48: -- qraux qraux contains further information required to recover
! 49: -- the orthogonal part of the decomposition.
! 50: -- jpvt jpvt(k) contains the index of the column of the original
! 51: -- matrix that has been interchanged into the k-th column,
! 52: -- if pivoting was requested.
! 53:
! 54: -- ACKNOWLEDGMENT :
! 55: -- This Ada Version is a translation of the LINPACK version, dated 08/14/78,
! 56: -- written by G.W. Stewart, University of Maryland, Argonne National Lab.
! 57:
! 58: procedure Basis ( qr : in out Standard_Complex_Matrices.Matrix;
! 59: x : in Standard_Complex_Matrices.Matrix );
! 60:
! 61: -- DESCRIPTION :
! 62: -- Retrieves the orthogonal part of the decomposition.
! 63: -- The columns of qr on output correspond to the column span of x.
! 64:
! 65: -- IMPORTANT :
! 66: -- Note that this does not work when pivoting was requested.
! 67:
! 68: -- REQUIRED : qr'range(1) = qr'range(2) = x'range(1).
! 69:
! 70: -- ON ENTRY :
! 71: -- qr contains output of the routine qrd;
! 72: -- x original matrix as part of the input of qrd.
! 73:
! 74: -- ON RETURN :
! 75: -- qr orthogonal part of the QR-decomposition.
! 76:
! 77: end Standard_Complex_QR_Decomposition;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>