stdlib_linalg_blas_d 模块



函数

public pure function stdlib_dasum(n, dx, incx)

DASUM 取绝对值的总和。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
real(kind=dp), intent(in) :: dx(*)
integer(kind=ilp), intent(in) :: incx

返回值 real(kind=dp)

public pure function stdlib_ddot(n, dx, incx, dy, incy)

DDOT 计算两个向量的点积。对于增量等于 1 使用展开循环。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
real(kind=dp), intent(in) :: dx(*)
integer(kind=ilp), intent(in) :: incx
real(kind=dp), intent(in) :: dy(*)
integer(kind=ilp), intent(in) :: incy

返回值 real(kind=dp)

public pure function stdlib_dnrm2(n, x, incx)

DNRM2 通过函数名返回向量的欧几里得范数,使得 DNRM2 := sqrt( x'*x )

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
real(kind=dp), intent(in) :: x(*)
integer(kind=ilp), intent(in) :: incx

返回值 real(kind=dp)

public pure function stdlib_dsdot(n, sx, incx, sy, incy)

计算两个向量的内积,具有扩展精度累积和结果。返回 D.P. 点积,在 D.P. 中累积,对于 S.P. SX 和 SY DSDOT = sum for I = 0 to N-1 of SX(LX+IINCX) * SY(LY+IINCY),其中 LX = 1 如果 INCX >= 0,否则 LX = 1+(1-N)*INCX,LY 以类似的方式使用 INCY 定义。

参数

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

返回值 real(kind=dp)

public pure function stdlib_dzasum(n, zx, incx)

DZASUM 取复向量 (|Re(.)| + |Im(.)|) 的总和,并返回双精度结果。

参数

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

返回值 real(kind=dp)

public pure function stdlib_dznrm2(n, x, incx)

DZNRM2 通过函数名返回向量的欧几里得范数,使得 DZNRM2 := sqrt( x*Hx )

参数

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

返回值 real(kind=dp)


子例程

public pure subroutine stdlib_daxpy(n, da, dx, incx, dy, incy)

DAXPY 常数乘以向量加上向量。对于增量等于 1 使用展开循环。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
real(kind=dp), intent(in) :: da
real(kind=dp), intent(in) :: dx(*)
integer(kind=ilp), intent(in) :: incx
real(kind=dp), intent(inout) :: dy(*)
integer(kind=ilp), intent(in) :: incy

public pure subroutine stdlib_dcopy(n, dx, incx, dy, incy)

DCOPY 将向量 x 复制到向量 y。对于增量等于 1 使用展开循环。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
real(kind=dp), intent(in) :: dx(*)
integer(kind=ilp), intent(in) :: incx
real(kind=dp), intent(out) :: dy(*)
integer(kind=ilp), intent(in) :: incy

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

DGBMV 执行矩阵向量运算之一 y := alphaAx + betay,或 y := alphaATx + betay,其中 alpha 和 beta 是标量,x 和 y 是向量,A 是一个 m 行 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
real(kind=dp), intent(in) :: alpha
real(kind=dp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
real(kind=dp), intent(in) :: x(*)
integer(kind=ilp), intent(in) :: incx
real(kind=dp), intent(in) :: beta
real(kind=dp), intent(inout) :: y(*)
integer(kind=ilp), intent(in) :: incy

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

DGEMM 执行矩阵矩阵运算之一 C := alphaop( A )op( B ) + betaC,其中 op( X ) 是 op( X ) = X 或 op( X ) = X*T 之一,alpha 和 beta 是标量,A、B 和 C 是矩阵,其中 op( A ) 是一个 m 行 k 列的矩阵,op( B ) 是一个 k 行 n 列的矩阵,C 是一个 m 行 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
real(kind=dp), intent(in) :: alpha
real(kind=dp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
real(kind=dp), intent(in) :: b(ldb,*)
integer(kind=ilp), intent(in) :: ldb
real(kind=dp), intent(in) :: beta
real(kind=dp), intent(inout) :: c(ldc,*)
integer(kind=ilp), intent(in) :: ldc

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

DGEMV 执行矩阵向量运算之一 y := alphaAx + betay,或 y := alphaATx + betay,其中 alpha 和 beta 是标量,x 和 y 是向量,A 是一个 m 行 n 列的矩阵。

参数

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

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

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

参数

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

public pure subroutine stdlib_drot(n, dx, incx, dy, incy, c, s)

DROT 应用平面旋转。

参数

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

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

计算使用以下公式 sigma = sgn(a) 如果 |a| > |b| = sgn(b) 如果 |b| >= |a| r = sigmasqrt( a2 + b2 ) c = 1; s = 0 如果 r = 0 c = a/r; s = b/r 如果 r != 0 子程序还计算 z = s 如果 |a| > |b|, = 1/c 如果 |b| >= |a| 且 c != 0 = 1 如果 c = 0 这允许从 z 中重建 c 和 s,如下所示:如果 z = 1,则设置 c = 0,s = 1。如果 |z| < 1,则设置 c = sqrt(1 - z2) 且 s = z。如果 |z| > 1,则设置 c = 1/z 且 s = sqrt( 1 - c*2)。

参数

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

public pure subroutine stdlib_drotm(n, dx, incx, dy, incy, dparam)

DROTM 应用修改后的 Givens 变换,到 2×N 矩阵其中表示转置。 的元素位于 DX(LX+IINCX),I = 0:N-1,其中 LX = 1 如果 INCX >= 0,否则 LX = (-INCX)N,并且对于 DY 使用 LY 和 INCY 也类似。用 DPARAM(1)=DFLAG,具有以下形式之一
有关 DPARAM 中数据存储的说明,请参见 DROTMG。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
real(kind=dp), intent(inout) :: dx(*)
integer(kind=ilp), intent(in) :: incx
real(kind=dp), intent(inout) :: dy(*)
integer(kind=ilp), intent(in) :: incy
real(kind=dp), intent(in) :: dparam(5)

public pure subroutine stdlib_drotmg(dd1, dd2, dx1, dy1, dparam)

DROTMG 构造修改后的 Givens 变换矩阵它将 2 向量的第二个分量置零。用 DPARAM(1)=DFLAG,具有以下形式之一
DPARAM 的位置 2-4 分别包含 DH11、DH21、DH12 和 DH22。(DPARAM(1) 的值隐含的 1.0、-1.0 或 0.0 值不会存储在 DPARAM 中。)参数 GAMSQ 和 RGAMSQ 的值可能不精确。这没关系,因为它们仅用于测试 DD1 和 DD2 的大小。所有数据的实际缩放都使用 GAM 完成。

参数

类型 意图可选 属性 名称
real(kind=dp), intent(inout) :: dd1
real(kind=dp), intent(inout) :: dd2
real(kind=dp), intent(inout) :: dx1
real(kind=dp), intent(in) :: dy1
real(kind=dp), intent(out) :: dparam(5)

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

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

参数

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

public pure subroutine stdlib_dscal(n, da, dx, incx)

DSCAL 将向量按常数缩放。对于增量等于 1,使用展开循环。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
real(kind=dp), intent(in) :: da
real(kind=dp), intent(inout) :: dx(*)
integer(kind=ilp), intent(in) :: incx

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

DSPMV 执行矩阵-向量运算 y := alphaAx + beta*y,其中 alpha 和 beta 是标量,x 和 y 是 n 元素向量,而 A 是一个 n×n 对称矩阵,以打包形式提供。

参数

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

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

DSPR 执行对称秩 1 运算 A := alphaxx**T + A,其中 alpha 是一个实标量,x 是一个 n 元素向量,而 A 是一个 n×n 对称矩阵,以打包形式提供。

参数

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

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

DSPR2 执行对称秩 2 运算 A := alphaxyT + alphayxT + A,其中 alpha 是一个标量,x 和 y 是 n 元素向量,而 A 是一个 n×n 对称矩阵,以打包形式提供。

参数

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

public pure subroutine stdlib_dswap(n, dx, incx, dy, incy)

DSWAP 交换两个向量。对于增量等于 1,使用展开循环。

参数

类型 意图可选 属性 名称
integer(kind=ilp), intent(in) :: n
real(kind=dp), intent(inout) :: dx(*)
integer(kind=ilp), intent(in) :: incx
real(kind=dp), intent(inout) :: dy(*)
integer(kind=ilp), intent(in) :: incy

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

DSYMM 执行以下矩阵-矩阵运算之一 C := alphaAB + betaC,或 C := alphaBA + betaC,其中 alpha 和 beta 是标量,A 是一个对称矩阵,而 B 和 C 是 m×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
real(kind=dp), intent(in) :: alpha
real(kind=dp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
real(kind=dp), intent(in) :: b(ldb,*)
integer(kind=ilp), intent(in) :: ldb
real(kind=dp), intent(in) :: beta
real(kind=dp), intent(inout) :: c(ldc,*)
integer(kind=ilp), intent(in) :: ldc

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

DSYMV 执行矩阵-向量运算 y := alphaAx + beta*y,其中 alpha 和 beta 是标量,x 和 y 是 n 元素向量,而 A 是一个 n×n 对称矩阵。

参数

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

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

DSYR 执行对称秩 1 运算 A := alphaxx**T + A,其中 alpha 是一个实标量,x 是一个 n 元素向量,而 A 是一个 n×n 对称矩阵。

参数

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

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

DSYR2 执行对称秩 2 运算 A := alphaxyT + alphayxT + A,其中 alpha 是一个标量,x 和 y 是 n 元素向量,而 A 是一个 n×n 对称矩阵。

参数

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

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

DSYR2K 执行以下对称秩 2k 运算之一 C := alphaABT + alphaBAT + betaC,或 C := alphaATB + alphaBTA + betaC,其中 alpha 和 beta 是标量,C 是一个 n×n 对称矩阵,而 A 和 B 是在第一种情况下为 n×k 矩阵,在第二种情况下为 k×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=dp), intent(in) :: alpha
real(kind=dp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
real(kind=dp), intent(in) :: b(ldb,*)
integer(kind=ilp), intent(in) :: ldb
real(kind=dp), intent(in) :: beta
real(kind=dp), intent(inout) :: c(ldc,*)
integer(kind=ilp), intent(in) :: ldc

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

DSYRK 执行以下对称秩 k 运算之一 C := alphaAAT + betaC,或 C := alphaATA + betaC,其中 alpha 和 beta 是标量,C 是一个 n×n 对称矩阵,而 A 是在第一种情况下为 n×k 矩阵,在第二种情况下为 k×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=dp), intent(in) :: alpha
real(kind=dp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
real(kind=dp), intent(in) :: beta
real(kind=dp), intent(inout) :: c(ldc,*)
integer(kind=ilp), intent(in) :: ldc

public pure subroutine stdlib_dtbmv(uplo, trans, diag, n, k, a, lda, x, incx)

DTBMV 执行以下矩阵向量运算之一:x := A*x 或 x := ATx,其中 x 是一个 n 元素向量,A 是一个 n×n 单位或非单位上三角或下三角带状矩阵,具有 (k+1) 条对角线。

参数

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

public pure subroutine stdlib_dtbsv(uplo, trans, diag, n, k, a, lda, x, incx)

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

参数

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

public pure subroutine stdlib_dtpmv(uplo, trans, diag, n, ap, x, incx)

DTPMV 执行以下矩阵向量运算之一:x := A*x 或 x := ATx,其中 x 是一个 n 元素向量,A 是一个 n×n 单位或非单位上三角或下三角矩阵,以压缩形式提供。

参数

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

public pure subroutine stdlib_dtpsv(uplo, trans, diag, n, ap, x, incx)

DTPSV 求解以下方程组之一:A*x = b 或 ATx = b,其中 b 和 x 是 n 元素向量,A 是一个 n×n 单位或非单位上三角或下三角矩阵,以压缩形式提供。此例程不包含奇异性或近奇异性测试。必须在调用此例程之前执行此类测试。

参数

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

public pure subroutine stdlib_dtrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)

DTRMM 执行以下矩阵矩阵运算之一:B := alpha*op(A)*B 或 B := alpha*B*op(A),其中 alpha 是一个标量,B 是一个 m×n 矩阵,A 是一个单位或非单位上三角或下三角矩阵,op(A) 是以下之一:op(A) = A 或 op(A) = AT

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: side
character(len=1), intent(in) :: uplo
character(len=1), intent(in) :: transa
character(len=1), intent(in) :: diag
integer(kind=ilp), intent(in) :: m
integer(kind=ilp), intent(in) :: n
real(kind=dp), intent(in) :: alpha
real(kind=dp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
real(kind=dp), intent(inout) :: b(ldb,*)
integer(kind=ilp), intent(in) :: ldb

public pure subroutine stdlib_dtrmv(uplo, trans, diag, n, a, lda, x, incx)

DTRMV 执行以下矩阵向量运算之一:x := A*x 或 x := ATx,其中 x 是一个 n 元素向量,A 是一个 n×n 单位或非单位上三角或下三角矩阵。

参数

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

public pure subroutine stdlib_dtrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)

DTRSM 求解以下矩阵方程之一:op(A)*X = alpha*B 或 X*op(A) = alpha*B,其中 alpha 是一个标量,X 和 B 是 m×n 矩阵,A 是一个单位或非单位上三角或下三角矩阵,op(A) 是以下之一:op(A) = A 或 op(A) = AT。矩阵 X 将覆盖在 B 上。

参数

类型 意图可选 属性 名称
character(len=1), intent(in) :: side
character(len=1), intent(in) :: uplo
character(len=1), intent(in) :: transa
character(len=1), intent(in) :: diag
integer(kind=ilp), intent(in) :: m
integer(kind=ilp), intent(in) :: n
real(kind=dp), intent(in) :: alpha
real(kind=dp), intent(in) :: a(lda,*)
integer(kind=ilp), intent(in) :: lda
real(kind=dp), intent(inout) :: b(ldb,*)
integer(kind=ilp), intent(in) :: ldb

public pure subroutine stdlib_dtrsv(uplo, trans, diag, n, a, lda, x, incx)

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

参数

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