cublassyr2()
cublasStatus_t cublasSsyr2(cublasHandle_t handle, cublasFillMode_t uplo, int n,
const float *alpha, const float *x, int incx,
const float *y, int incy, float *A, int lda
cublasStatus_t cublasDsyr2(cublasHandle_t handle, cublasFillMode_t uplo, int n,
const double *alpha, const double *x, int incx,
const double *y, int incy, double *A, int lda
cublasStatus_t cublasCsyr2(cublasHandle_t handle, cublasFillMode_t uplo, int n,
const cuComplex *alpha, const cuComplex *x, int incx,
const cuComplex *y, int incy, cuComplex *A, int lda
cublasStatus_t cublasZsyr2(cublasHandle_t handle, cublasFillMode_t uplo, int n,
const cuDoubleComplex *alpha, const cuDoubleComplex *x, int incx,
const cuDoubleComplex *y, int incy, cuDoubleComplex *A, int lda
此函数执行对称 rank-2 更新:
A = α ( x y T + y x T ) + A A = \alpha (xy^T + yx^T) + A A=α(xyT+yxT)+A
其中 A 是以列主序存储的 n*n 对称矩阵,x和y 是向量,而 α \alpha α是标量。
Param. | Memory | In/out | Meaning |
---|---|---|---|
handle | input | handle to the cuBLAS library context. | |
uplo | input | indicates if matrix A lower or upper part is stored, the other symmetric part is not referenced and is inferred from the stored elements. | |
n | input | number of rows and columns of matrix A. | |
alpha | host or device | input | scalar used for multiplication. |
A | device | input | array of dimension lda x n with lda>=max(1,n). |
lda | input | leading dimension of two-dimensional array used to store matrix A. | |
x | device | input | vector with n elements. |
incx | input | stride between consecutive elements of x. | |
y | device | input | vector with n elements. |
incy | input | stride between consecutive elements of y. |
该函数可能返回的错误值及其含义如下所列。
ErrorValue | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 操作成功完成 |
CUBLAS_STATUS_NOT_INITIALIZED | 库未初始化 |
CUBLAS_STATUS_INVALID_VALUE | 参数 m,n<0 或 incx,incy=0 |
CUBLAS_STATUS_EXECUTION_FAILED | 该功能无法在 GPU 上启动 |