Processing math: 100%
fortran-lapack
All Classes Namespaces Files Functions Variables Pages
la_schur::schur_space Interface Reference

Compute the required workspace size for Schur decomposition. More...

Public Member Functions

subroutine get_schur_s_workspace (a, lwork, err)
 
subroutine get_schur_d_workspace (a, lwork, err)
 Input matrix a[m,m].
 
subroutine get_schur_q_workspace (a, lwork, err)
 Input matrix a[m,m].
 
subroutine get_schur_c_workspace (a, lwork, err)
 Input matrix a[m,m].
 
subroutine get_schur_z_workspace (a, lwork, err)
 Input matrix a[m,m].
 
subroutine get_schur_w_workspace (a, lwork, err)
 

Detailed Description

Compute the required workspace size for Schur decomposition.

This subroutine determines the minimum workspace size required for the Schur decomposition of a matrix. The required size depends on the matrix dimensions and type (real or complex).

Parameters
[in]AThe input matrix of size [m, m] .
[out]lworkThe minimum workspace size required for the decomposition.
[out]err(Optional) State return flag. If provided, it will return an error status in case of failure.
Note
This routine is useful for pre-allocating workspace when performing multiple decompositions on matrices of the same size, minimizing dynamic memory allocation overhead.

Member Function/Subroutine Documentation

◆ get_schur_c_workspace()

subroutine la_schur::schur_space::get_schur_c_workspace ( complex(sp), dimension(:,:), intent(in), target a,
integer(ilp), intent(out) lwork,
type(la_state), intent(out), optional err )

Input matrix a[m,m].

Schur form of A: upper-triangular or quasi-upper-triangular matrix T Unitary/orthonormal transformation matrix Z Output eigenvalues that appear on the diagonal of T [optional] Provide pre-allocated workspace, size to be checked with schur_space [optional] Can A data be overwritten and destroyed? [optional] State return flag. On error if not requested, the code will stop Compute Schur decomposition with complex eigenvalues

Parameters
[in]aInput matrix a[m,m]
[out]lworkMinimum workspace size for the decomposition operation
[out]errState return flag. Returns an error if the query failed

◆ get_schur_d_workspace()

subroutine la_schur::schur_space::get_schur_d_workspace ( real(dp), dimension(:,:), intent(in), target a,
integer(ilp), intent(out) lwork,
type(la_state), intent(out), optional err )

Input matrix a[m,m].

Schur form of A: upper-triangular or quasi-upper-triangular matrix T Unitary/orthonormal transformation matrix Z Output eigenvalues that appear on the diagonal of T [optional] Provide pre-allocated workspace, size to be checked with schur_space [optional] Can A data be overwritten and destroyed? [optional] State return flag. On error if not requested, the code will stop Compute Schur decomposition with complex eigenvalues

Parameters
[in]aInput matrix a[m,m]
[out]lworkMinimum workspace size for the decomposition operation
[out]errState return flag. Returns an error if the query failed

◆ get_schur_q_workspace()

subroutine la_schur::schur_space::get_schur_q_workspace ( real(qp), dimension(:,:), intent(in), target a,
integer(ilp), intent(out) lwork,
type(la_state), intent(out), optional err )

Input matrix a[m,m].

Schur form of A: upper-triangular or quasi-upper-triangular matrix T Unitary/orthonormal transformation matrix Z Output eigenvalues that appear on the diagonal of T [optional] Provide pre-allocated workspace, size to be checked with schur_space [optional] Can A data be overwritten and destroyed? [optional] State return flag. On error if not requested, the code will stop Compute Schur decomposition with complex eigenvalues

Parameters
[in]aInput matrix a[m,m]
[out]lworkMinimum workspace size for the decomposition operation
[out]errState return flag. Returns an error if the query failed

◆ get_schur_s_workspace()

subroutine la_schur::schur_space::get_schur_s_workspace ( real(sp), dimension(:,:), intent(in), target a,
integer(ilp), intent(out) lwork,
type(la_state), intent(out), optional err )
Parameters
[in]aInput matrix a[m,m]
[out]lworkMinimum workspace size for the decomposition operation
[out]errState return flag. Returns an error if the query failed

◆ get_schur_w_workspace()

subroutine la_schur::schur_space::get_schur_w_workspace ( complex(qp), dimension(:,:), intent(in), target a,
integer(ilp), intent(out) lwork,
type(la_state), intent(out), optional err )
Parameters
[in]aInput matrix a[m,m]
[out]lworkMinimum workspace size for the decomposition operation
[out]errState return flag. Returns an error if the query failed

◆ get_schur_z_workspace()

subroutine la_schur::schur_space::get_schur_z_workspace ( complex(dp), dimension(:,:), intent(in), target a,
integer(ilp), intent(out) lwork,
type(la_state), intent(out), optional err )

Input matrix a[m,m].

Schur form of A: upper-triangular or quasi-upper-triangular matrix T Unitary/orthonormal transformation matrix Z Output eigenvalues that appear on the diagonal of T [optional] Provide pre-allocated workspace, size to be checked with schur_space [optional] Can A data be overwritten and destroyed? [optional] State return flag. On error if not requested, the code will stop Compute Schur decomposition with complex eigenvalues

Parameters
[in]aInput matrix a[m,m]
[out]lworkMinimum workspace size for the decomposition operation
[out]errState return flag. Returns an error if the query failed

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