[BACK]Return to standard_complex_qr_decomposition.ads CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Math_Lib / Matrices

Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Matrices/standard_complex_qr_decomposition.ads, Revision 1.1.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>