eigvalsh 接口

public interface eigvalsh

返回特征值, , 对于实对称或复厄米特方阵。 (规范)

概述

用于计算实对称或复厄米特方阵特征值的函数接口。

描述

此接口提供了函数用于返回实对称或复厄米特方阵的特征值。 支持的数据类型包括 realcomplex。 矩阵必须是对称的 (如果为 real) 或厄米特的 (如果为 complex)。 仅访问矩阵的下半部分或上半部分,用户可以使用可选的 upper_a 标志选择 (默认:使用下半部分)。 如果发生错误,将抛出 error stop; 否则,错误信息可以作为可选的 type(linalg_state_type) 输出标志返回。

注意

该解决方案基于 LAPACK 的特征值问题求解器 *SYEV/*HEEV

注意

BLAS/LAPACK 后端目前不支持扩展精度 (xdp)。


函数

private module function stdlib_linalg_eigvalsh_c(a, upper_a, err) result(lambda)

返回实对称/复厄米特 A 的特征值数组

参数

类型 意图可选 属性 名称
complex(kind=sp), intent(in), target :: a(:,:)

输入矩阵 A[m,n]

logical(kind=lk), intent(in), optional :: upper_a

[可选] 应该使用 A 的上半部分/下半部分吗? 默认:下半部分

type(linalg_state_type), intent(out) :: err

[可选] 状态返回值标志。 如果未请求,则在发生错误时,代码将停止

返回值 real(kind=sp), allocatable, (:)

奇异值数组

private module function stdlib_linalg_eigvalsh_d(a, upper_a, err) result(lambda)

返回实对称/复厄米特 A 的特征值数组

参数

类型 意图可选 属性 名称
real(kind=dp), intent(in), target :: a(:,:)

输入矩阵 A[m,n]

logical(kind=lk), intent(in), optional :: upper_a

[可选] 应该使用 A 的上半部分/下半部分吗? 默认:下半部分

type(linalg_state_type), intent(out) :: err

[可选] 状态返回值标志。 如果未请求,则在发生错误时,代码将停止

返回值 real(kind=dp), allocatable, (:)

奇异值数组

private module function stdlib_linalg_eigvalsh_noerr_c(a, upper_a) result(lambda)

返回实对称/复厄米特 A 的特征值数组

参数

类型 意图可选 属性 名称
complex(kind=sp), intent(in), target :: a(:,:)

输入矩阵 A[m,n]

logical(kind=lk), intent(in), optional :: upper_a

[可选] 应该使用 A 的上半部分/下半部分吗? 默认:下半部分

返回值 real(kind=sp), allocatable, (:)

奇异值数组

private module function stdlib_linalg_eigvalsh_noerr_d(a, upper_a) result(lambda)

返回实对称/复厄米特 A 的特征值数组

参数

类型 意图可选 属性 名称
real(kind=dp), intent(in), target :: a(:,:)

输入矩阵 A[m,n]

logical(kind=lk), intent(in), optional :: upper_a

[可选] 应该使用 A 的上半部分/下半部分吗? 默认:下半部分

返回值 real(kind=dp), allocatable, (:)

奇异值数组

private module function stdlib_linalg_eigvalsh_noerr_s(a, upper_a) result(lambda)

返回实对称/复厄米特 A 的特征值数组

参数

类型 意图可选 属性 名称
real(kind=sp), intent(in), target :: a(:,:)

输入矩阵 A[m,n]

logical(kind=lk), intent(in), optional :: upper_a

[可选] 应该使用 A 的上半部分/下半部分吗? 默认:下半部分

返回值 real(kind=sp), allocatable, (:)

奇异值数组

private module function stdlib_linalg_eigvalsh_noerr_z(a, upper_a) result(lambda)

返回实对称/复厄米特 A 的特征值数组

参数

类型 意图可选 属性 名称
complex(kind=dp), intent(in), target :: a(:,:)

输入矩阵 A[m,n]

logical(kind=lk), intent(in), optional :: upper_a

[可选] 应该使用 A 的上半部分/下半部分吗? 默认:下半部分

返回值 real(kind=dp), allocatable, (:)

奇异值数组

private module function stdlib_linalg_eigvalsh_s(a, upper_a, err) result(lambda)

返回实对称/复厄米特 A 的特征值数组

参数

类型 意图可选 属性 名称
real(kind=sp), intent(in), target :: a(:,:)

输入矩阵 A[m,n]

logical(kind=lk), intent(in), optional :: upper_a

[可选] 应该使用 A 的上半部分/下半部分吗? 默认:下半部分

type(linalg_state_type), intent(out) :: err

[可选] 状态返回值标志。 如果未请求,则在发生错误时,代码将停止

返回值 real(kind=sp), allocatable, (:)

奇异值数组

private module function stdlib_linalg_eigvalsh_z(a, upper_a, err) result(lambda)

返回实对称/复厄米特 A 的特征值数组

参数

类型 意图可选 属性 名称
complex(kind=dp), intent(in), target :: a(:,:)

输入矩阵 A[m,n]

logical(kind=lk), intent(in), optional :: upper_a

[可选] 应该使用 A 的上半部分/下半部分吗? 默认:下半部分

type(linalg_state_type), intent(out) :: err

[可选] 状态返回值标志。 如果未请求,则在发生错误时,代码将停止

返回值 real(kind=dp), allocatable, (:)

奇异值数组