mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-09-12 09:23:12 +08:00
Implement stricter argument checking for SYRK and SY2K and real matrices. To implement the BLAS API they should return info=2 if op='C' is passed for a complex matrix. Without this change, the Eigen BLAS fails the strict zblat3 and cblat3 tests in LAPACK 3.5.
This commit is contained in:
parent
3dddd34133
commit
1f48f47ab7
@ -385,7 +385,7 @@ int EIGEN_BLAS_FUNC(syrk)(const char *uplo, const char *op, const int *n, const
|
|||||||
|
|
||||||
int info = 0;
|
int info = 0;
|
||||||
if(UPLO(*uplo)==INVALID) info = 1;
|
if(UPLO(*uplo)==INVALID) info = 1;
|
||||||
else if(OP(*op)==INVALID) info = 2;
|
else if(OP(*op)==INVALID || (ISCOMPLEX && OP(*op)==ADJ) ) info = 2;
|
||||||
else if(*n<0) info = 3;
|
else if(*n<0) info = 3;
|
||||||
else if(*k<0) info = 4;
|
else if(*k<0) info = 4;
|
||||||
else if(*lda<std::max(1,(OP(*op)==NOTR)?*n:*k)) info = 7;
|
else if(*lda<std::max(1,(OP(*op)==NOTR)?*n:*k)) info = 7;
|
||||||
@ -447,7 +447,7 @@ int EIGEN_BLAS_FUNC(syr2k)(const char *uplo, const char *op, const int *n, const
|
|||||||
|
|
||||||
int info = 0;
|
int info = 0;
|
||||||
if(UPLO(*uplo)==INVALID) info = 1;
|
if(UPLO(*uplo)==INVALID) info = 1;
|
||||||
else if(OP(*op)==INVALID) info = 2;
|
else if(OP(*op)==INVALID || (ISCOMPLEX && OP(*op)==ADJ) ) info = 2;
|
||||||
else if(*n<0) info = 3;
|
else if(*n<0) info = 3;
|
||||||
else if(*k<0) info = 4;
|
else if(*k<0) info = 4;
|
||||||
else if(*lda<std::max(1,(OP(*op)==NOTR)?*n:*k)) info = 7;
|
else if(*lda<std::max(1,(OP(*op)==NOTR)?*n:*k)) info = 7;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user