?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