linalg_rz Module



Interfaces

public interface mult_rz

  • private pure function mult_rz_mtx(lside, trans, l, a, tau, c) result(cz)

    Multiplies a general matrix by the orthogonal matrix Z from an RZ factorization such that or

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: lside

    Set to true to compute ; else, set to false to compute .

    logical, intent(in) :: trans

    Set to true if ; else, set to false if .

    integer(kind=int32), intent(in) :: l

    The number of columns in matrix containing the meaningful part of the Householder vectors. If lside is true, ; else, if lside is false, .

    real(kind=real64), intent(in), dimension(:,:) :: a

    The -by- matrix , where if lside is true; else, if lside is false. The I-th row must contain the Householder vector in the last rows.

    real(kind=real64), intent(in), dimension(:) :: tau

    A -element array containing the scalar factors of the elementary reflectors, where if lside is true; else, if lside is false.

    real(kind=real64), intent(in), dimension(:,:) :: c

    The -by- matrix .

    Return Value real(kind=real64), allocatable, dimension(:,:)

    The -by- product of the orthgonal matrix and the original matrix .

  • private pure function mult_rz_mtx_cmplx(lside, trans, l, a, tau, c) result(cz)

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

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: lside

    Set to true to compute ; else, set to false to compute .

    logical, intent(in) :: trans

    Set to true if ; else, set to false if .

    integer(kind=int32), intent(in) :: l

    The number of columns in matrix containing the meaningful part of the Householder vectors. If lside is true, ; else, if lside is false, .

    complex(kind=real64), intent(in), dimension(:,:) :: a

    The -by- matrix , where if lside is true; else, if lside is false. The I-th row must contain the Householder vector in the last rows.

    complex(kind=real64), intent(in), dimension(:) :: tau

    A -element array containing the scalar factors of the elementary reflectors, where if lside is true; else, if lside is false.

    complex(kind=real64), intent(in), dimension(:,:) :: c

    The -by- matrix .

    Return Value complex(kind=real64), allocatable, dimension(:,:)

    The -by- product of the orthgonal matrix and the original matrix .

  • private pure function mult_rz_vec(trans, l, a, tau, c) result(cz)

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

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: trans

    Set to true if ; else, set to false if .

    integer(kind=int32), intent(in) :: l

    The number of columns in matrix containing the meaningful part of the Householder vectors.

    real(kind=real64), intent(in), dimension(:,:) :: a

    The -by- matrix . The I-th row must contain the Householder vector in the last rows.

    real(kind=real64), intent(in), dimension(:) :: tau

    An -element array containing the scalar factors of the elementary reflectors.

    real(kind=real64), intent(in), dimension(:) :: c

    The -element array .

    Return Value real(kind=real64), allocatable, dimension(:)

    The product of and .

  • private pure function mult_rz_vec_cmplx(trans, l, a, tau, c) result(cz)

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

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: trans

    Set to true if ; else, set to false if .

    integer(kind=int32), intent(in) :: l

    The number of columns in matrix containing the meaningful part of the Householder vectors.

    complex(kind=real64), intent(in), dimension(:,:) :: a

    The -by- matrix . The I-th row must contain the Householder vector in the last rows.

    complex(kind=real64), intent(in), dimension(:) :: tau

    An -element array containing the scalar factors of the elementary reflectors.

    complex(kind=real64), intent(in), dimension(:) :: c

    On input, the -element array . On output, the product of and .

    Return Value complex(kind=real64), allocatable, dimension(:)

    The product of and .

public interface rz_factor

  • private pure subroutine rz_factor_dbl(a, tau, rz)

    Factors an upper trapezoidal matrix by means of orthogonal transformations such that . is an orthogonal matrix of dimension N-by-N, and is an M-by-M upper triangular matrix.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in), dimension(:,:) :: a

    The M-by-N upper trapezoidal matrix to factor.

    real(kind=real64), intent(out), allocatable, dimension(:) :: tau

    An M-element array used to store the scalar factors of the elementary reflectors.

    real(kind=real64), intent(out), allocatable, dimension(:,:) :: rz

    The leading M-by-M upper triangular part of this matrix contains the upper triangular matrix , and elements N-L+1 to N of the first M rows, with the array tau, represent the orthogonal matrix as a product of M elementary reflectors.

  • private pure subroutine rz_factor_cmplx(a, tau, rz)

    Factors an upper trapezoidal matrix by means of orthogonal transformations such that . is an orthogonal matrix of dimension N-by-N, and is an M-by-M upper triangular matrix.

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=real64), intent(in), dimension(:,:) :: a

    On 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 , and elements N-L+1 to N of the first M rows of , with the array tau, represent the orthogonal matrix as a product of M elementary reflectors.

    complex(kind=real64), intent(out), allocatable, dimension(:) :: tau

    An M-element array used to store the scalar factors of the elementary reflectors.

    complex(kind=real64), intent(out), allocatable, dimension(:,:) :: rz

    The leading M-by-M upper triangular part of this matrix contains the upper triangular matrix , and elements N-L+1 to N of the first M rows, with the array tau, represent the orthogonal matrix as a product of M elementary reflectors.