From 4e8523b835fc3559172a4715d96065735de6db2e Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Tue, 12 Jun 2012 14:33:03 +0200 Subject: update blas interface for trsm --- blas/level3_impl.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'blas') diff --git a/blas/level3_impl.h b/blas/level3_impl.h index 0a3aa98b8..4f4f39080 100644 --- a/blas/level3_impl.h +++ b/blas/level3_impl.h @@ -81,7 +81,7 @@ int EIGEN_BLAS_FUNC(gemm)(char *opa, char *opb, int *m, int *n, int *k, RealScal int EIGEN_BLAS_FUNC(trsm)(char *side, char *uplo, char *opa, char *diag, int *m, int *n, RealScalar *palpha, RealScalar *pa, int *lda, RealScalar *pb, int *ldb) { // std::cerr << "in trsm " << *side << " " << *uplo << " " << *opa << " " << *diag << " " << *m << "," << *n << " " << *palpha << " " << *lda << " " << *ldb<< "\n"; - typedef void (*functype)(DenseIndex, DenseIndex, const Scalar *, DenseIndex, Scalar *, DenseIndex); + typedef void (*functype)(DenseIndex, DenseIndex, const Scalar *, DenseIndex, Scalar *, DenseIndex, internal::level3_blocking&); static functype func[32]; static bool init = false; @@ -143,11 +143,17 @@ int EIGEN_BLAS_FUNC(trsm)(char *side, char *uplo, char *opa, char *diag, int *m, return xerbla_(SCALAR_SUFFIX_UP"TRSM ",&info,6); int code = OP(*opa) | (SIDE(*side) << 2) | (UPLO(*uplo) << 3) | (DIAG(*diag) << 4); - + if(SIDE(*side)==LEFT) - func[code](*m, *n, a, *lda, b, *ldb); + { + internal::gemm_blocking_space blocking(*m,*n,*m); + func[code](*m, *n, a, *lda, b, *ldb, blocking); + } else - func[code](*n, *m, a, *lda, b, *ldb); + { + internal::gemm_blocking_space blocking(*m,*n,*n); + func[code](*n, *m, a, *lda, b, *ldb, blocking); + } if(alpha!=Scalar(1)) matrix(b,*m,*n,*ldb) *= alpha; -- cgit v1.2.3