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::rz_factor Interface Reference

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...

Public Member Functions

 rz_factor_dbl
 
 rz_factor_cmplx
 

Detailed Description

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.

Syntax
subroutine rz_factor(real(real64) a(:,:), real(real64) tau(:), optional real(real64) work(:), optional integer(int32) olwork, optional class(errors) err)
subroutine rz_factor(complex(real64) a(:,:), complex(real64) tau(:), optional complex(real64) work(:), optional integer(int32) olwork, optional class(errors) err)
Parameters
[in,out]aOn input, the M-by-N upper trapezoidal matrix to factor. On output, the leading M-by-M upper triangular part of the matrix contains the upper triangular matrix R, and elements N-L+1 to N of the first M rows of A, with the array tau, represent the orthogonal matrix Z as a product of M elementary reflectors.
[out]tauAn M-element array used to store the scalar factors of the elementary reflectors.
[out]workAn optional input, that if provided, prevents any local memory allocation. If not provided, the memory required is allocated within. If provided, the length of the array must be at least olwork.
[out]olworkAn optional output used to determine workspace size. If supplied, the routine determines the optimal size for work, and returns without performing any actual calculations.
[in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
  • LA_ARRAY_SIZE_ERROR: Occurs if any of the input arrays are not sized appropriately.
  • LA_OUT_OF_MEMORY_ERROR: Occurs if local memory must be allocated, and there is insufficient memory available.
Further Details
The factorization is obtained by Householder's method. The kth transformation matrix, Z( k ), which is used to introduce zeros into the ( m - k + 1 )th row of A, is given in the form
     Z( k ) = ( I     0   ),
              ( 0  T( k ) )
where
     T( k ) = I - tau*u( k )*u( k )**T,   u( k ) = (   1    ),
                                                   (   0    )
                                                   ( z( k ) )
tau is a scalar and z( k ) is an l element vector. tau and z( k ) are chosen to annihilate the elements of the kth row of A2.

The scalar tau is returned in the kth element of TAU and the vector u( k ) in the kth row of A2, such that the elements of z( k ) are in a( k, l + 1 ), ..., a( k, n ). The elements of R are returned in the upper triangular part of A1.

Z is given by

     Z =  Z( 1 ) * Z( 2 ) * ... * Z( m ).
Notes
This routine is based upon the LAPACK routine DTZRZF.
See Also

Definition at line 1966 of file linalg.f90.


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