计算上/下三角矩阵的逆矩阵。
C Interface:
void strtri_(const char *uplo, const char *diag, const int *n, float *a, const int *lda, int *info);
void dtrtri_(const char *uplo, const char *diag, const int *n, double *a, const int *lda, int *info);
void ctrtri_(const char *uplo, const char *diag, const int *n, float _Complex *a, const int *lda, int *info);
void ztrtri_(const char *uplo, const char *diag, const int *n, double _Complex *a, const int *lda, int *info);
Fortran Interface:
STRTRI(UPLO, DIAG, N, A, LDA, INFO)
DTRTRI(UPLO, DIAG, N, A, LDA, INFO)
CTRTRI(UPLO, DIAG, N, A, LDA, INFO)
ZTRTRI(UPLO, DIAG, N, A, LDA, INFO)
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
UPLO |
字符型 |
|
输入 |
DIAG |
字符型 |
|
输入/输出 |
N |
整数型 |
矩阵A的维度,N≥0。 |
输入 |
A |
|
|
输出 |
LDA |
整数型 |
矩阵A的主维,LDA≥max(1,N)。 |
输入 |
INFO |
整数型 |
执行结果:
|
输出 |
#include "klapack.h"
C Interface:
const char uplo = 'U'; const char diag = 'N'; const int n = 4; const int lda = n; /* * A: After Cholesky factorization (via potrf, stored in column-major): * 231.8009 33.9545 9.4153 11.1156 * 33.9454 162.2902 6.6684 53.2023 * 9.4153 6.6684 100.3220 71.5384 * 11.1156 53.2023 71.5384 106.5638 */ double a[] = {231.8009, 33.9545, 9.4143, 11.1156, 33.9495, 162.2902, 6.6684, 53.2033, 9.4143, 6.6684, 100.322, 71.5384, 11.1156, 53.2033, 71.5384, 106.5638 }; int info = 0; dtrtri_(&uplo, &diag, &n, a, &lda, &info); if (info != 0) { printf("ERROR, info = %d\n", info); } /* * Output: * a: * 0.004314 -0.000902 -0.000345 0.000232 * 33.954500 0.006162 -0.000410 -0.002801 * 9.414300 6.668400 0.009968 -0.006692 * 11.115600 53.203300 71.538400 0.009384 */
Fortran Interface:
CHARACTER::uplo = "U" CHARACTER::diag = "N" PARAMETER (n = 4) PARAMETER (lda = 4) INTEGER :: info = 0 REAL(8) :: a(lda, n) * A: After Cholesky factorization (via potrf, stored in column-major): * 231.8009 33.9545 9.4153 11.1156 * 33.9454 162.2902 6.6684 53.2023 * 9.4153 6.6684 100.3220 71.5384 * 11.1156 53.2023 71.5384 106.5638 DATA a / 231.8009, 33.9545, 9.4143, 11.1156, $ 33.9495, 162.2902, 6.6684, 53.2033, $ 9.4143, 6.6684, 100.322, 71.5384, $ 11.1156, 53.2033, 71.5384, 106.5638 / EXTERNAL DTRTRI CALL DTRTRI(uplo, diag, n, a, lda, info) * * Output: * a: * 0.004314 -0.000902 -0.000345 0.000232 * 33.954500 0.006162 -0.000410 -0.002801 * 9.414300 6.668400 0.009968 -0.006692 * 11.115600 53.203300 71.538400 0.009384 *