aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/Product.h
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2010-04-20 15:59:17 -0400
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2010-04-20 15:59:17 -0400
commit4ba032c9abd653ce24d5f8b94a5d1897c0d4ffce (patch)
treeec63031a1ce05406b7b10e736ba020bf78d123c1 /Eigen/src/Core/Product.h
parent941a7e4ebd93526b509b841f5c7000e6c08de7aa (diff)
fix grave bug introduced by me: the low-level matrix-vector product functions can't be fed strided vectors, only strided matrices.
Diffstat (limited to 'Eigen/src/Core/Product.h')
-rw-r--r--Eigen/src/Core/Product.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/Eigen/src/Core/Product.h b/Eigen/src/Core/Product.h
index 4e7ffa5c1..3e6fbf065 100644
--- a/Eigen/src/Core/Product.h
+++ b/Eigen/src/Core/Product.h
@@ -297,7 +297,8 @@ struct ei_gemv_selector<OnTheLeft,StorageOrder,BlasCompatible>
static void run(const ProductType& prod, Dest& dest, typename ProductType::Scalar alpha)
{
Transpose<Dest> destT(dest);
- ei_gemv_selector<OnTheRight,!StorageOrder,BlasCompatible>
+ enum { OtherStorageOrder = StorageOrder == RowMajor ? ColMajor : RowMajor };
+ ei_gemv_selector<OnTheRight,OtherStorageOrder,BlasCompatible>
::run(GeneralProduct<Transpose<typename ProductType::_RhsNested>,Transpose<typename ProductType::_LhsNested>, GemvProduct>
(prod.rhs().transpose(), prod.lhs().transpose()), destT, alpha);
}