linalg  1.4.3
A linear algebra library that provides a user-friendly interface to several BLAS and LAPACK routines.
linalg_factor::mult_rz Interface Reference

Multiplies a general matrix by the orthogonal matrix Z from an RZ factorization. More...

Private Member Functions

subroutine mult_rz_mtx (lside, trans, l, a, tau, c, work, olwork, err)
 Multiplies a general matrix by the orthogonal matrix Z from an RZ factorization such that: C = op(Z) * C, or C = C * op(Z). More...
 
subroutine mult_rz_vec (trans, l, a, tau, c, work, olwork, err)
 Multiplies a vector by the orthogonal matrix Z from an RZ factorization such that: C = op(Z) * C. More...
 

Detailed Description

Multiplies a general matrix by the orthogonal matrix Z from an RZ factorization.

Definition at line 329 of file linalg_factor.f90.

Member Function/Subroutine Documentation

◆ mult_rz_mtx()

subroutine linalg_factor::mult_rz::mult_rz_mtx ( logical, intent(in)  lside,
logical, intent(in)  trans,
integer(int32), intent(in)  l,
real(real64), dimension(:,:), intent(inout)  a,
real(real64), dimension(:), intent(in)  tau,
real(real64), dimension(:,:), intent(inout)  c,
real(real64), dimension(:), intent(out), optional, target  work,
integer(int32), intent(out), optional  olwork,
class(errors), intent(inout), optional, target  err 
)
private

Multiplies a general matrix by the orthogonal matrix Z from an RZ factorization such that: C = op(Z) * C, or C = C * op(Z).

Parameters
[in]lsideSet to true to apply Z or Z**T from the left; else, set to false to apply Z or Z**T from the right.
[in]transSet to true to apply Z**T; else, set to false.
[in]lThe number of columns in matrix a containing the meaningful part of the Householder vectors. If lside is true, M >= L >= 0; else, if lside is false, N >= L >= 0.
[in,out]aOn input the K-by-LTA matrix Z, where LTA = M if lside is true; else, LTA = N if lside is false. The I-th row must contain the Householder vector in the last k rows. Notice, the contents of this matrix are restored on exit.
[in]tauA K-element array containing the scalar factors of the elementary reflectors, where M >= K >= 0 if lside is true; else, N >= K >= 0 if lside is false.
[in,out]cOn input, the M-by-N matrix C. On output, the product of the orthogonal matrix Z and the original matrix C.
[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.
[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.
Notes
This routine utilizes the LAPACK routine DORMRZ.

Definition at line 2195 of file linalg_factor.f90.

◆ mult_rz_vec()

subroutine linalg_factor::mult_rz::mult_rz_vec ( logical, intent(in)  trans,
integer(int32), intent(in)  l,
real(real64), dimension(:,:), intent(inout)  a,
real(real64), dimension(:), intent(in)  tau,
real(real64), dimension(:), intent(inout)  c,
real(real64), dimension(:), intent(out), optional, target  work,
integer(int32), intent(out), optional  olwork,
class(errors), intent(inout), optional, target  err 
)
private

Multiplies a vector by the orthogonal matrix Z from an RZ factorization such that: C = op(Z) * C.

Parameters
[in]transSet to true to apply Z**T; else, set to false.
[in]lThe number of columns in matrix a containing the meaningful part of the Householder vectors. If lside is true, M >= L >= 0; else, if lside is false, N >= L >= 0.
[in,out]aOn input the K-by-LTA matrix Z, where LTA = M if lside is true; else, LTA = N if lside is false. The I-th row must contain the Householder vector in the last k rows. Notice, the contents of this matrix are restored on exit.
[in]tauA K-element array containing the scalar factors of the elementary reflectors, where M >= K >= 0 if lside is true; else, N >= K >= 0 if lside is false.
[in,out]cOn input, the M-element array C. On output, the product of the orthogonal matrix Z and the original array C.
[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.
[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.
Notes
This routine utilizes the LAPACK routine DORMRZ.

Definition at line 2337 of file linalg_factor.f90.


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