invert 接口

公共接口 invert

方阵求逆 (规范)

摘要

此接口提供用于就地求逆方阵 realcomplex 的方法。逆矩阵定义如下.

描述

此子程序接口提供了一种计算矩阵逆的方法。
支持的数据类型包括 realcomplex。用户可以提供唯一的矩阵参数 a。在这种情况下,a 将被输出时的逆矩阵替换。否则,可以提供两个单独的参数:输入矩阵 a 和输出矩阵 inva。在这种情况下,a 不会被修改,逆矩阵将返回到 inva 中。可以为枢轴索引数组 pivot 提供预分配的存储空间。如果提供了所有预分配的工作空间,则使用此接口时不会发生内部内存分配。

注意

提供的子程序适用于方阵。


子程序

私有模块子程序 stdlib_linalg_invert_inplace_c(a, pivot, err)

参数

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

输入矩阵 a[n,n]

integer(kind=ilp), intent(inout), optional, target :: pivot(:)

[可选] 对角枢轴索引的存储数组

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

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

私有模块子程序 stdlib_linalg_invert_inplace_d(a, pivot, err)

参数

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

输入矩阵 a[n,n]

integer(kind=ilp), intent(inout), optional, target :: pivot(:)

[可选] 对角枢轴索引的存储数组

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

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

私有模块子程序 stdlib_linalg_invert_inplace_s(a, pivot, err)

参数

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

输入矩阵 a[n,n]

integer(kind=ilp), intent(inout), optional, target :: pivot(:)

[可选] 对角枢轴索引的存储数组

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

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

私有模块子程序 stdlib_linalg_invert_inplace_z(a, pivot, err)

参数

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

输入矩阵 a[n,n]

integer(kind=ilp), intent(inout), optional, target :: pivot(:)

[可选] 对角枢轴索引的存储数组

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

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

私有模块子程序 stdlib_linalg_invert_split_c(a, inva, pivot, err)

参数

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

输入矩阵 a[n,n]。

complex(kind=sp), intent(out) :: inva(:,:)

逆矩阵 a[n,n]。

integer(kind=ilp), intent(inout), optional, target :: pivot(:)

[可选] 对角枢轴索引的存储数组

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

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

私有模块子程序 stdlib_linalg_invert_split_d(a, inva, pivot, err)

参数

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

输入矩阵 a[n,n]。

real(kind=dp), intent(out) :: inva(:,:)

逆矩阵 a[n,n]。

integer(kind=ilp), intent(inout), optional, target :: pivot(:)

[可选] 对角枢轴索引的存储数组

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

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

私有模块子程序 stdlib_linalg_invert_split_s(a, inva, pivot, err)

参数

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

输入矩阵 a[n,n]。

real(kind=sp), intent(out) :: inva(:,:)

逆矩阵 a[n,n]。

integer(kind=ilp), intent(inout), optional, target :: pivot(:)

[可选] 对角枢轴索引的存储数组

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

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

私有模块子程序 stdlib_linalg_invert_split_z(a, inva, pivot, err)

参数

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

输入矩阵 a[n,n]。

complex(kind=dp), intent(out) :: inva(:,:)

逆矩阵 a[n,n]。

integer(kind=ilp), intent(inout), optional, target :: pivot(:)

[可选] 对角枢轴索引的存储数组

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

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