stdlib_linalg_blas_c 模块



函数

public pure function stdlib_cdotc(n, cx, incx, cy, incy)

CDOTC 形成两个复数向量的点积 CDOTC = X^H * Y

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(in) :: cx(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(in) :: cy(*)
integer(kind=ilp), intent(in) :: incy

返回值 complex(kind=sp)

public pure function stdlib_cdotu(n, cx, incx, cy, incy)

CDOTU 形成两个复数向量的点积 CDOTU = X^T * Y

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(in) :: cx(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(in) :: cy(*)
integer(kind=ilp), intent(in) :: incy

返回值 complex(kind=sp)


子程序

public pure subroutine stdlib_caxpy(n, ca, cx, incx, cy, incy)

CAXPY 常数乘以向量加上向量。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(in) :: ca
complex(kind=sp), intent(in) :: cx(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(inout) :: cy(*)
integer(kind=ilp), intent(in) :: incy

public pure subroutine stdlib_ccopy(n, cx, incx, cy, incy)

CCOPY 将向量 x 复制到向量 y。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(in) :: cx(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(out) :: cy(*)
integer(kind=ilp), intent(in) :: incy

public pure subroutine stdlib_cgbmv(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy)

CGBMV 执行以下矩阵-向量运算之一:y := alpha*A*x + beta*y,或 y := alpha*A**T*x + beta*y,或 y := alpha*A**H*x + beta*y,其中 alpha 和 beta 是标量,x 和 y 是向量,A 是一个 m x n 带状矩阵,具有 kl 个次对角线和 ku 个超对角线。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: trans
integer(kind=ilp), intent(in) :: m
integer(kind=ilp), intent(in) :: n
integer(kind=ilp), intent(in) :: kl
integer(kind=ilp), intent(in) :: ku
complex(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
complex(kind=sp), intent(in) :: x(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(in) :: beta
complex(kind=sp), intent(inout) :: y(*)
integer(kind=ilp), intent(in) :: incy

public pure subroutine stdlib_cgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)

CGEMM 执行以下矩阵-矩阵运算之一:C := alpha*op( A )*op( B ) + beta*C,其中 op( X ) 是 op( X ) = X 或 op( X ) = X**T 或 op( X ) = X**H 之一,alpha 和 beta 是标量,A、B 和 C 是矩阵,其中 op( A ) 是一个 m x k 矩阵,op( B ) 是一个 k x n 矩阵,C 是一个 m x n 矩阵。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: transa
character(len=1), intent(in) :: transb
integer(kind=ilp), intent(in) :: m
integer(kind=ilp), intent(in) :: n
integer(kind=ilp), intent(in) :: k
complex(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
complex(kind=sp), intent(in) :: b(ldb,*)
integer(kind=ilp), intent(in) :: ldb
complex(kind=sp), intent(in) :: beta
complex(kind=sp), intent(inout) :: c(ldc,*)
integer(kind=ilp), intent(in) :: ldc

public pure subroutine stdlib_cgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)

CGEMV 执行以下矩阵-向量运算之一:y := alpha*A*x + beta*y,或 y := alpha*A**T*x + beta*y,或 y := alpha*A**H*x + beta*y,其中 alpha 和 beta 是标量,x 和 y 是向量,A 是一个 m x n 矩阵。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: trans
integer(kind=ilp), intent(in) :: m
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
complex(kind=sp), intent(in) :: x(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(in) :: beta
complex(kind=sp), intent(inout) :: y(*)
integer(kind=ilp), intent(in) :: incy

public pure subroutine stdlib_cgerc(m, n, alpha, x, incx, y, incy, a, lda)

CGERC 执行秩 1 运算 A := alpha*x*y**H + A,其中 alpha 是标量,x 是一个 m 元素向量,y 是一个 n 元素向量,A 是一个 m x n 矩阵。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: m
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: x(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(in) :: y(*)
integer(kind=ilp), intent(in) :: incy
complex(kind=sp), intent(inout) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda

public pure subroutine stdlib_cgeru(m, n, alpha, x, incx, y, incy, a, lda)

CGERU 执行秩 1 运算 A := alpha*x*y**T + A,其中 alpha 是标量,x 是一个 m 元素向量,y 是一个 n 元素向量,A 是一个 m x n 矩阵。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: m
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: x(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(in) :: y(*)
integer(kind=ilp), intent(in) :: incy
complex(kind=sp), intent(inout) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda

public pure subroutine stdlib_chbmv(uplo, n, k, alpha, a, lda, x, incx, beta, y, incy)

CHBMV 执行矩阵-向量运算 y := alpha*A*x + beta*y,其中 alpha 和 beta 是标量,x 和 y 是 n 元素向量,A 是一个 n x n 厄米特带状矩阵,具有 k 个超对角线。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: uplo
integer(kind=ilp), intent(in) :: n
integer(kind=ilp), intent(in) :: k
complex(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
complex(kind=sp), intent(in) :: x(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(in) :: beta
complex(kind=sp), intent(inout) :: y(*)
integer(kind=ilp), intent(in) :: incy

public pure subroutine stdlib_chemm(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)

CHEMM 执行以下矩阵-矩阵运算之一:C := alpha*A*B + beta*C,或 C := alpha*B*A + beta*C,其中 alpha 和 beta 是标量,A 是一个厄米特矩阵,B 和 C 是 m x n 矩阵。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: side
character(len=1), intent(in) :: uplo
integer(kind=ilp), intent(in) :: m
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
complex(kind=sp), intent(in) :: b(ldb,*)
integer(kind=ilp), intent(in) :: ldb
complex(kind=sp), intent(in) :: beta
complex(kind=sp), intent(inout) :: c(ldc,*)
integer(kind=ilp), intent(in) :: ldc

public pure subroutine stdlib_chemv(uplo, n, alpha, a, lda, x, incx, beta, y, incy)

CHEMV 执行矩阵-向量运算 y := alpha*A*x + beta*y,其中 alpha 和 beta 是标量,x 和 y 是 n 元素向量,A 是一个 n x n 厄米特矩阵。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: uplo
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
complex(kind=sp), intent(in) :: x(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(in) :: beta
complex(kind=sp), intent(inout) :: y(*)
integer(kind=ilp), intent(in) :: incy

public pure subroutine stdlib_cher(uplo, n, alpha, x, incx, a, lda)

CHER 执行埃尔米特秩 1 操作 A := alpha*x*x**H + A,其中 alpha 是一个实数标量,x 是一个 n 元素向量,A 是一个 n x n 的埃尔米特矩阵。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: uplo
integer(kind=ilp), intent(in) :: n
real(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: x(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(inout) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda

public pure subroutine stdlib_cher2(uplo, n, alpha, x, incx, y, incy, a, lda)

CHER2 执行埃尔米特秩 2 操作 A := alpha*x*y**H + conjg( alpha )*y*x**H + A,其中 alpha 是一个标量,x 和 y 是 n 元素向量,A 是一个 n x n 的埃尔米特矩阵。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: uplo
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: x(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(in) :: y(*)
integer(kind=ilp), intent(in) :: incy
complex(kind=sp), intent(inout) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda

public pure subroutine stdlib_cher2k(uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc)

CHER2K 执行以下埃尔米特秩 2k 操作之一:C := alpha*A*B**H + conjg( alpha )*B*A**H + beta*C,或 C := alpha*A**H*B + conjg( alpha )*B**H*A + beta*C,其中 alpha 和 beta 是标量,beta 为实数,C 是一个 n x n 的埃尔米特矩阵,A 和 B 在第一种情况下是 n x k 矩阵,在第二种情况下是 k x n 矩阵。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: uplo
character(len=1), intent(in) :: trans
integer(kind=ilp), intent(in) :: n
integer(kind=ilp), intent(in) :: k
complex(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
complex(kind=sp), intent(in) :: b(ldb,*)
integer(kind=ilp), intent(in) :: ldb
real(kind=sp), intent(in) :: beta
complex(kind=sp), intent(inout) :: c(ldc,*)
integer(kind=ilp), intent(in) :: ldc

public pure subroutine stdlib_cherk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)

CHERK 执行以下埃尔米特秩 k 操作之一:C := alpha*A*A**H + beta*C,或 C := alpha*A**H*A + beta*C,其中 alpha 和 beta 是实数标量,C 是一个 n x n 的埃尔米特矩阵,A 在第一种情况下是 n x k 矩阵,在第二种情况下是 k x n 矩阵。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: uplo
character(len=1), intent(in) :: trans
integer(kind=ilp), intent(in) :: n
integer(kind=ilp), intent(in) :: k
real(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
real(kind=sp), intent(in) :: beta
complex(kind=sp), intent(inout) :: c(ldc,*)
integer(kind=ilp), intent(in) :: ldc

public pure subroutine stdlib_chpmv(uplo, n, alpha, ap, x, incx, beta, y, incy)

CHPMV 执行矩阵向量操作 y := alpha*A*x + beta*y,其中 alpha 和 beta 是标量,x 和 y 是 n 元素向量,A 是一个 n x n 的埃尔米特矩阵,以打包形式提供。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: uplo
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: ap(*)
complex(kind=sp), intent(in) :: x(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(in) :: beta
complex(kind=sp), intent(inout) :: y(*)
integer(kind=ilp), intent(in) :: incy

public pure subroutine stdlib_chpr(uplo, n, alpha, x, incx, ap)

CHPR 执行埃尔米特秩 1 操作 A := alpha*x*x**H + A,其中 alpha 是一个实数标量,x 是一个 n 元素向量,A 是一个 n x n 的埃尔米特矩阵,以打包形式提供。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: uplo
integer(kind=ilp), intent(in) :: n
real(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: x(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(inout) :: ap(*)

public pure subroutine stdlib_chpr2(uplo, n, alpha, x, incx, y, incy, ap)

CHPR2 执行埃尔米特秩 2 操作 A := alpha*x*y**H + conjg( alpha )*y*x**H + A,其中 alpha 是一个标量,x 和 y 是 n 元素向量,A 是一个 n x n 的埃尔米特矩阵,以打包形式提供。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: uplo
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: x(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(in) :: y(*)
integer(kind=ilp), intent(in) :: incy
complex(kind=sp), intent(inout) :: ap(*)

public pure subroutine stdlib_crotg(a, b, c, s)

计算使用以下公式:|x| = sqrt( Re(x)**2 + Im(x)**2 ) sgn(x) = x / |x| if x /= 0 = 1 if x = 0 c = |a| / sqrt(|a|**2 + |b|**2) s = sgn(a) * conjg(b) / sqrt(|a|**2 + |b|**2) 当 a 和 b 为实数且 r /= 0 时,公式简化为 r = sgn(a)*sqrt(|a|**2 + |b|**2) c = a / r s = b / r 与 SROTG 中相同,当 |a| > |b| 时。当 |b| >= |a| 时,如果 a 和 b 的符号不同,则 c 和 s 的符号将与 SROTG 计算的不同。

参数

类型 意图可选 属性 名称
complex(kind=sp), intent(inout) :: a
complex(kind=sp), intent(in) :: b
real(kind=sp), intent(out) :: c
complex(kind=sp), intent(out) :: s

public pure subroutine stdlib_cscal(n, ca, cx, incx)

CSCAL 将向量按常数缩放。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(in) :: ca
complex(kind=sp), intent(inout) :: cx(*)
integer(kind=ilp), intent(in) :: incx

public pure subroutine stdlib_csrot(n, cx, incx, cy, incy, c, s)

CSROT 应用平面旋转,其中 cos 和 sin(c 和 s)为实数,向量 cx 和 cy 为复数。jack dongarra,linpack,3/11/78。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(inout) :: cx(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(inout) :: cy(*)
integer(kind=ilp), intent(in) :: incy
real(kind=sp), intent(in) :: c
real(kind=sp), intent(in) :: s

public pure subroutine stdlib_csscal(n, sa, cx, incx)

CSSCAL 将复数向量按实数常数缩放。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
real(kind=sp), intent(in) :: sa
complex(kind=sp), intent(inout) :: cx(*)
integer(kind=ilp), intent(in) :: incx

public pure subroutine stdlib_cswap(n, cx, incx, cy, incy)

CSWAP 交换两个向量。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(inout) :: cx(*)
integer(kind=ilp), intent(in) :: incx
complex(kind=sp), intent(inout) :: cy(*)
integer(kind=ilp), intent(in) :: incy

public pure subroutine stdlib_csymm(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)

CSYMM 执行以下矩阵矩阵操作之一:C := alpha*A*B + beta*C,或 C := alpha*B*A + beta*C,其中 alpha 和 beta 是标量,A 是一个对称矩阵,B 和 C 是 m x n 矩阵。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: side
character(len=1), intent(in) :: uplo
integer(kind=ilp), intent(in) :: m
integer(kind=ilp), intent(in) :: n
complex(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
complex(kind=sp), intent(in) :: b(ldb,*)
integer(kind=ilp), intent(in) :: ldb
complex(kind=sp), intent(in) :: beta
complex(kind=sp), intent(inout) :: c(ldc,*)
integer(kind=ilp), intent(in) :: ldc

public pure subroutine stdlib_csyr2k(uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc)

CSYR2K 执行以下对称秩 2k 操作之一:C := alpha*A*B**T + alpha*B*A**T + beta*C,或 C := alpha*A**T*B + alpha*B**T*A + beta*C,其中 alpha 和 beta 是标量,C 是一个 n x n 的对称矩阵,A 和 B 在第一种情况下是 n x k 矩阵,在第二种情况下是 k x n 矩阵。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: uplo
character(len=1), intent(in) :: trans
integer(kind=ilp), intent(in) :: n
integer(kind=ilp), intent(in) :: k
complex(kind=sp), intent(in) :: alpha
complex(kind=sp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
complex(kind=sp), intent(in) :: b(ldb,*)
integer(kind=ilp), intent(in) :: ldb
complex(kind=sp), intent(in) :: beta
complex(kind=sp), intent(inout) :: c(ldc,*)
integer(kind=ilp), intent(in) :: ldc

public pure subroutine stdlib_csyrk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)

CSYRK 执行以下对称秩 k 运算之一:C := alpha*A*A**T + beta*C 或 C := alpha*A**T*A + beta*C,其中 alpha 和 beta 为标量,C 为 n x n 对称矩阵,A 为 n x k 矩阵(第一种情况)或 k x n 矩阵(第二种情况)。

参数

类型 意图可选 属性 名称
字符(长度=1), intent(in) :: uplo
字符(长度=1), intent(in) :: trans
整数(kind=ilp), intent(in) :: n
整数(kind=ilp), intent(in) :: k
复数(kind=sp), intent(in) :: alpha
复数(kind=sp), intent(in) :: a(lda,*)
整数(kind=ilp), intent(in) :: lda
复数(kind=sp), intent(in) :: beta
复数(kind=sp), intent(inout) :: c(ldc,*)
整数(kind=ilp), intent(in) :: ldc

公共纯子程序 stdlib_ctbmv(uplo, trans, diag, n, k, a, lda, x, incx)

CTBMV 执行以下矩阵-向量运算之一:x := A*x,或 x := A**T*x,或 x := A**H*x,其中 x 为 n 元素向量,A 为 n x n 单元或非单元上三角或下三角带状矩阵,具有 (k + 1) 条对角线。

参数

类型 意图可选 属性 名称
字符(长度=1), intent(in) :: uplo
字符(长度=1), intent(in) :: trans
字符(长度=1), intent(in) :: diag
整数(kind=ilp), intent(in) :: n
整数(kind=ilp), intent(in) :: k
复数(kind=sp), intent(in) :: a(lda,*)
整数(kind=ilp), intent(in) :: lda
复数(kind=sp), intent(inout) :: x(*)
整数(kind=ilp), intent(in) :: incx

公共纯子程序 stdlib_ctbsv(uplo, trans, diag, n, k, a, lda, x, incx)

CTBSV 求解以下方程组之一:A*x = b,或 A**T*x = b,或 A**H*x = b,其中 b 和 x 为 n 元素向量,A 为 n x n 单元或非单元上三角或下三角带状矩阵,具有 (k + 1) 条对角线。此例程中未包含奇异性或近奇异性的测试。在调用此例程之前必须执行此类测试。

参数

类型 意图可选 属性 名称
字符(长度=1), intent(in) :: uplo
字符(长度=1), intent(in) :: trans
字符(长度=1), intent(in) :: diag
整数(kind=ilp), intent(in) :: n
整数(kind=ilp), intent(in) :: k
复数(kind=sp), intent(in) :: a(lda,*)
整数(kind=ilp), intent(in) :: lda
复数(kind=sp), intent(inout) :: x(*)
整数(kind=ilp), intent(in) :: incx

公共纯子程序 stdlib_ctpmv(uplo, trans, diag, n, ap, x, incx)

CTPMV 执行以下矩阵-向量运算之一:x := A*x,或 x := A**T*x,或 x := A**H*x,其中 x 为 n 元素向量,A 为 n x n 单元或非单元上三角或下三角矩阵,以打包形式提供。

参数

类型 意图可选 属性 名称
字符(长度=1), intent(in) :: uplo
字符(长度=1), intent(in) :: trans
字符(长度=1), intent(in) :: diag
整数(kind=ilp), intent(in) :: n
复数(kind=sp), intent(in) :: ap(*)
复数(kind=sp), intent(inout) :: x(*)
整数(kind=ilp), intent(in) :: incx

公共纯子程序 stdlib_ctpsv(uplo, trans, diag, n, ap, x, incx)

CTPSV 求解以下方程组之一:A*x = b,或 A**T*x = b,或 A**H*x = b,其中 b 和 x 为 n 元素向量,A 为 n x n 单元或非单元上三角或下三角矩阵,以打包形式提供。此例程中未包含奇异性或近奇异性的测试。在调用此例程之前必须执行此类测试。

参数

类型 意图可选 属性 名称
字符(长度=1), intent(in) :: uplo
字符(长度=1), intent(in) :: trans
字符(长度=1), intent(in) :: diag
整数(kind=ilp), intent(in) :: n
复数(kind=sp), intent(in) :: ap(*)
复数(kind=sp), intent(inout) :: x(*)
整数(kind=ilp), intent(in) :: incx

公共纯子程序 stdlib_ctrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)

CTRMM 执行以下矩阵-矩阵运算之一:B := alpha*op(A)*B,或 B := alpha*B*op(A),其中 alpha 为标量,B 为 m x n 矩阵,A 为单元或非单元上三角或下三角矩阵,而 op(A) 为以下之一:op(A) = A 或 op(A) = A**T 或 op(A) = A**H。

参数

类型 意图可选 属性 名称
字符(长度=1), intent(in) :: side
字符(长度=1), intent(in) :: uplo
字符(长度=1), intent(in) :: transa
字符(长度=1), intent(in) :: diag
整数(kind=ilp), intent(in) :: m
整数(kind=ilp), intent(in) :: n
复数(kind=sp), intent(in) :: alpha
复数(kind=sp), intent(in) :: a(lda,*)
整数(kind=ilp), intent(in) :: lda
复数(kind=sp), intent(inout) :: b(ldb,*)
整数(kind=ilp), intent(in) :: ldb

公共纯子程序 stdlib_ctrmv(uplo, trans, diag, n, a, lda, x, incx)

CTRMV 执行以下矩阵-向量运算之一:x := A*x,或 x := A**T*x,或 x := A**H*x,其中 x 为 n 元素向量,A 为 n x n 单元或非单元上三角或下三角矩阵。

参数

类型 意图可选 属性 名称
字符(长度=1), intent(in) :: uplo
字符(长度=1), intent(in) :: trans
字符(长度=1), intent(in) :: diag
整数(kind=ilp), intent(in) :: n
复数(kind=sp), intent(in) :: a(lda,*)
整数(kind=ilp), intent(in) :: lda
复数(kind=sp), intent(inout) :: x(*)
整数(kind=ilp), intent(in) :: incx

公共纯子程序 stdlib_ctrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)

CTRSM 求解以下矩阵方程之一:op(A)*X = alpha*B,或 X*op(A) = alpha*B,其中 alpha 为标量,X 和 B 为 m x n 矩阵,A 为单元或非单元上三角或下三角矩阵,而 op(A) 为以下之一:op(A) = A 或 op(A) = A**T 或 op(A) = A**H。矩阵 X 将覆盖 B。

参数

类型 意图可选 属性 名称
字符(长度=1), intent(in) :: side
字符(长度=1), intent(in) :: uplo
字符(长度=1), intent(in) :: transa
字符(长度=1), intent(in) :: diag
整数(kind=ilp), intent(in) :: m
整数(kind=ilp), intent(in) :: n
复数(kind=sp), intent(in) :: alpha
复数(kind=sp), intent(in) :: a(lda,*)
整数(kind=ilp), intent(in) :: lda
复数(kind=sp), intent(inout) :: b(ldb,*)
整数(kind=ilp), intent(in) :: ldb

公共纯子程序 stdlib_ctrsv(uplo, trans, diag, n, a, lda, x, incx)

CTRSV 求解以下方程组之一:A*x = b,或 A**T*x = b,或 A**H*x = b,其中 b 和 x 为 n 元素向量,A 为 n x n 单元或非单元上三角或下三角矩阵。此例程中未包含奇异性或近奇异性的测试。在调用此例程之前必须执行此类测试。

参数

类型 意图可选 属性 名称
字符(长度=1), intent(in) :: uplo
字符(长度=1), intent(in) :: trans
字符(长度=1), intent(in) :: diag
整数(kind=ilp), intent(in) :: n
复数(kind=sp), intent(in) :: a(lda,*)
整数(kind=ilp), intent(in) :: lda
复数(kind=sp), intent(inout) :: x(*)
整数(kind=ilp), intent(in) :: incx