From 04367447ac295d9818713f54b0a539efef7f0caa Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Sun, 24 Feb 2013 23:05:42 +0100 Subject: Fix bug #496: generalize internal rank1_update implementation to accept uplo(A) += v * w and make A.triangularView() += v * w uses it. Update unit tests and blas interface respectively. --- blas/level2_cplx_impl.h | 4 ++-- blas/level2_real_impl.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'blas') diff --git a/blas/level2_cplx_impl.h b/blas/level2_cplx_impl.h index f52d384a9..ceed3e86d 100644 --- a/blas/level2_cplx_impl.h +++ b/blas/level2_cplx_impl.h @@ -216,7 +216,7 @@ int EIGEN_BLAS_FUNC(hpr2)(char *uplo, int *n, RealScalar *palpha, RealScalar *px */ int EIGEN_BLAS_FUNC(her)(char *uplo, int *n, RealScalar *palpha, RealScalar *px, int *incx, RealScalar *pa, int *lda) { - typedef void (*functype)(int, Scalar*, int, const Scalar*, Scalar); + typedef void (*functype)(int, Scalar*, int, const Scalar*, const Scalar*, Scalar); static functype func[2]; static bool init = false; @@ -252,7 +252,7 @@ int EIGEN_BLAS_FUNC(her)(char *uplo, int *n, RealScalar *palpha, RealScalar *px, if(code>=2 || func[code]==0) return 0; - func[code](*n, a, *lda, x_cpy, alpha); + func[code](*n, a, *lda, x_cpy, x_cpy, alpha); matrix(a,*n,*n,*lda).diagonal().imag().setZero(); diff --git a/blas/level2_real_impl.h b/blas/level2_real_impl.h index febf08d1f..842f0a066 100644 --- a/blas/level2_real_impl.h +++ b/blas/level2_real_impl.h @@ -85,7 +85,7 @@ int EIGEN_BLAS_FUNC(syr)(char *uplo, int *n, RealScalar *palpha, RealScalar *px, // init = true; // } - typedef void (*functype)(int, Scalar*, int, const Scalar*, Scalar); + typedef void (*functype)(int, Scalar*, int, const Scalar*, const Scalar*, Scalar); static functype func[2]; static bool init = false; @@ -121,7 +121,7 @@ int EIGEN_BLAS_FUNC(syr)(char *uplo, int *n, RealScalar *palpha, RealScalar *px, if(code>=2 || func[code]==0) return 0; - func[code](*n, c, *ldc, x_cpy, alpha); + func[code](*n, c, *ldc, x_cpy, x_cpy, alpha); if(x_cpy!=x) delete[] x_cpy; -- cgit v1.2.3