?laset
初始化m*n的矩阵,且将对角线元素设置为beta,非对角线元素设置为alpha。
接口定义
C Interface:
void slaset_(const char *uplo, const int *m, const int *n, const float *alpha, const float *beta, float *a, const int *lda);
void dlaset_(const char *uplo, const int *m, const int *n, const double *alpha, const double *beta, double *a, const int *lda);
void claset_(const char *uplo, const int *m, const int *n, const float _Complex *alpha, const float _Complex *beta, float _Complex *a, const int *lda);
void zlaset_(const char *uplo, const int *m, const int *n, const double _Complex *alpha, const double _Complex *beta, double _Complex *a, const int *lda);
Fortran Interface:
SLASET(UPLO, M, N, ALPHA, BETA, A, LDA);
DLASET(UPLO, M, N, ALPHA, BETA, A, LDA);
CLASET(UPLO, M, N, ALPHA, BETA, A, LDA);
ZLASET(UPLO, M, N, ALPHA, BETA, A, LDA);
参数
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
UPLO |
字符型 |
|
输入 |
M |
整数型 |
矩阵A的行数。 |
输入 |
N |
整数型 |
矩阵A的列数。 |
输入 |
ALPHA |
|
矩阵A的非对角线元素值。 |
输入 |
BETA |
|
矩阵A的对角线元素值。 |
输入 |
A |
|
矩阵A,维度为(LDA,N)。 |
输出 |
LDA |
整数型 |
矩阵A的主维。 |
输入 |
依赖
#include "klapack.h"
示例
C Interface:
const char uplo = 'U'; const int m = 4; const int n = 4; const int lda = m; const double alpha = 2.0; const double beta = 1.0; double *a = (double*)malloc(lda * n * sizeof(double)); for (int i = 0; i < lda * n; i++) { a[i] = -1; } dlaset_(&uplo, &m, &n, &alpha, &beta, a, &lda); /* * Output: * a output (stored in column-major) * * 1.000000 2.000000 2.000000 2.000000 * -1.000000 1.000000 2.000000 2.000000 * -1.000000 -1.000000 1.000000 2.000000 * -1.000000 -1.000000 -1.000000 1.000000
Fortran Interface:
CHARACTER :: uplo = "U" PARAMETER (m = 4) PARAMETER (n = 4) PARAMETER (lda = 4) REAL(8) :: alpha REAL(8) :: beta REAL(8) :: a(lda, n) DATA alpha / 2.0 / DATA beta / 1.0 / DATA a / -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 / EXTERNAL DLASET CALL DLASET(uplo, m, n, alpha, beta, a, lda); * * Output: * a output (stored in column-major) * 1.000000 2.000000 2.000000 2.000000 * -1.000000 1.000000 2.000000 2.000000 * -1.000000 -1.000000 1.000000 2.000000 * -1.000000 -1.000000 -1.000000 1.000000