solve_lq Interface

public interface solve_lq

Module Procedures

private subroutine solve_lq_mtx(a, tau, b, work, olwork, err)

Solves a system of LQ factored equations of the form .

Arguments

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

On input, the M-by-N LQ factored matrix as returned by lq_factor.
On output, the contents of this matrix are restored. Notice, N must be greater than or equal to M.

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

A MIN(M, N)-element array containing the scalar factors of the elementary reflectors as returned by lq_factor.

real(kind=real64), intent(inout), dimension(:,:) :: b

On input, an N-by-NRHS matrix where the first M rows contain the right-hand-side matrix . On output, the N-by-NRHS solution matrix .

real(kind=real64), intent(out), optional, target, dimension(:) :: work

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

integer(kind=int32), intent(out), optional :: olwork

An optional output used to determine workspace size. If supplied, the routine determines the optimal size for work, and returns without performing any actual calculations.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private module subroutine solve_lq_mtx_cmplx(a, tau, b, work, olwork, err)

Solves a system of LQ factored equations of the form .

Arguments

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

On input, the M-by-N LQ factored matrix as returned by lq_factor.
On output, the contents of this matrix are restored. Notice, N must be greater than or equal to M.

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

A MIN(M, N)-element array containing the scalar factors of the elementary reflectors as returned by lq_factor.

complex(kind=real64), intent(inout), dimension(:,:) :: b

On input, an N-by-NRHS matrix where the first M rows contain the right-hand-side matrix . On output, the N-by-NRHS solution matrix .

complex(kind=real64), intent(out), optional, target, dimension(:) :: work

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

integer(kind=int32), intent(out), optional :: olwork

An optional output used to determine workspace size. If supplied, the routine determines the optimal size for work, and returns without performing any actual calculations.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private subroutine solve_lq_vec(a, tau, b, work, olwork, err)

Solves a system of LQ factored equations of the form .

Arguments

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

!! On input, the M-by-N LQ factored matrix as returned by lq_factor.
On output, the contents of this matrix are restored. Notice, N must be greater than or equal to M.

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

A MIN(M, N)-element array containing the scalar factors of the elementary reflectors as returned by lq_factor.

real(kind=real64), intent(inout), dimension(:) :: b

On input, an N-element vector where the first M rows contain the right-hand-side vector . On output, the N-element vector .

real(kind=real64), intent(out), optional, target, dimension(:) :: work

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

integer(kind=int32), intent(out), optional :: olwork

An optional output used to determine workspace size. If supplied, the routine determines the optimal size for work, and returns without performing any actual calculations.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private subroutine solve_lq_vec_cmplx(a, tau, b, work, olwork, err)

Solves a system of LQ factored equations of the form .

Arguments

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

!! On input, the M-by-N LQ factored matrix as returned by lq_factor.
On output, the contents of this matrix are restored. Notice, N must be greater than or equal to M.

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

A MIN(M, N)-element array containing the scalar factors of the elementary reflectors as returned by lq_factor.

complex(kind=real64), intent(inout), dimension(:) :: b

On input, an N-element vector where the first M rows contain the right-hand-side vector . On output, the N-element vector .

complex(kind=real64), intent(out), optional, target, dimension(:) :: work

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

integer(kind=int32), intent(out), optional :: olwork

An optional output used to determine workspace size. If supplied, the routine determines the optimal size for work, and returns without performing any actual calculations.

class(errors), intent(inout), optional, target :: err

The error object to be updated.