aboutsummaryrefslogtreecommitdiffhomepage
path: root/blas
diff options
context:
space:
mode:
authorGravatar Eric Martin <eric@ericmart.in>2015-07-11 21:46:13 -0500
committerGravatar Eric Martin <eric@ericmart.in>2015-07-11 21:46:13 -0500
commit002c2923c2e520989870a417603ec2253b19d575 (patch)
tree99fadb19cf59c7206ac4352885be7a4e2f947ea7 /blas
parente6297741c9d5e6106b6fa4876afac9571e038161 (diff)
Modify GEMM to handle m=0, n=0, and k=0 cases.
Diffstat (limited to 'blas')
-rw-r--r--blas/level3_impl.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/blas/level3_impl.h b/blas/level3_impl.h
index b3b727675..563101dfc 100644
--- a/blas/level3_impl.h
+++ b/blas/level3_impl.h
@@ -50,12 +50,18 @@ int EIGEN_BLAS_FUNC(gemm)(char *opa, char *opb, int *m, int *n, int *k, RealScal
if(info)
return xerbla_(SCALAR_SUFFIX_UP"GEMM ",&info,6);
+ if (*m == 0 || *n == 0)
+ return 0;
+
if(beta!=Scalar(1))
{
if(beta==Scalar(0)) matrix(c, *m, *n, *ldc).setZero();
else matrix(c, *m, *n, *ldc) *= beta;
}
+ if(*k == 0)
+ return 0;
+
internal::gemm_blocking_space<ColMajor,Scalar,Scalar,Dynamic,Dynamic,Dynamic> blocking(*m,*n,*k,1,true);
int code = OP(*opa) | (OP(*opb) << 2);