From cbd6fe323c77ae93c3fbd7ee300a2deeebf39554 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Fri, 16 Jul 2010 23:30:06 +0200 Subject: fix a couple a issue with blas (new TRMM api, and enforece column major) --- blas/level3_impl.h | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'blas/level3_impl.h') diff --git a/blas/level3_impl.h b/blas/level3_impl.h index 099a04889..ff7ed6752 100644 --- a/blas/level3_impl.h +++ b/blas/level3_impl.h @@ -63,10 +63,8 @@ int EIGEN_BLAS_FUNC(gemm)(char *opa, char *opb, int *m, int *n, int *k, RealScal if(beta!=Scalar(1)) { - if(beta==Scalar(0)) - matrix(c, *m, *n, *ldc).setZero(); - else - matrix(c, *m, *n, *ldc) *= beta; + if(beta==Scalar(0)) matrix(c, *m, *n, *ldc).setZero(); + else matrix(c, *m, *n, *ldc) *= beta; } ei_gemm_blocking_space blocking(*m,*n,*k); @@ -207,14 +205,17 @@ int EIGEN_BLAS_FUNC(trmm)(char *side, char *uplo, char *opa, char *diag, int *m, return 0; } + if(*m==0 || *n==0) + return 1; + // FIXME find a way to avoid this copy - Matrix tmp = matrix(b,*m,*n,*ldb); + Matrix tmp = matrix(b,*m,*n,*ldb); matrix(b,*m,*n,*ldb).setZero(); if(SIDE(*side)==LEFT) func[code](*m, *n, *m, a, *lda, tmp.data(), tmp.outerStride(), b, *ldb, alpha); else - func[code](*n, *m, *n, tmp.data(), tmp.outerStride(), a, *lda, b, *ldb, alpha); + func[code](*m, *n, *n, tmp.data(), tmp.outerStride(), a, *lda, b, *ldb, alpha); return 1; } -- cgit v1.2.3