[eigen] about changeset fa29f384b58e2 |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen <eigen@xxxxxxxxxxxxxxxxxxx>
- Subject: [eigen] about changeset fa29f384b58e2
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Fri, 11 Jun 2010 08:28:03 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=C12k5/41bsSLfPvefGQ27z7ZJOxcYOp8USINFHbprfA=; b=s7p4pAIrw0qYFbtdkMIaaczuE5FAtkHCAHhhkcbGmAhEcx5CscJQhRpHS1LSwkHTnW iX/jaW3oJ9ElNSaZv708onVNjvhAEu9GQH+wReX2yU6H5Qdz5XNH8Un6YLJ38wqjovHQ SmovdArAymIkoS7iKXxngqdR4uqiTr/7oA6s4=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=je3qc89WYOESGj4ahjmASgvFIPHORSPk/kjbIEKPNGPzb/lvns+31sgZ69CP2tBcYv PRieZ9+aMN6BnrEVY4mga8UOJlSXvzl/9OfQNe5SlfNKNVuI80sxwM+Mxy6LZNUBJFvq tSAoxO6Cm6IUSTVm/0ZSxVY92HL/EWTTi8fNY=
Hi,
This changeset fixed a bug preventing products involving Map
expression from being properly optimized, but the fix was not the
right one:
# Node ID fa29f384b58e26b3dc69e8483d93f7080e3a3616
# Parent 57403e3ebd7764ac50d647b056d887ecf0fe8eee
fix issue #128 : inner stride can also be 0 in which case it means 1...
diff --git a/Eigen/src/Core/util/BlasUtil.h b/Eigen/src/Core/util/BlasUtil.h
--- a/Eigen/src/Core/util/BlasUtil.h
+++ b/Eigen/src/Core/util/BlasUtil.h
@@ -157,17 +157,17 @@ template<typename XprType> struct ei_bla
enum {
IsComplex = NumTraits<Scalar>::IsComplex,
IsTransposed = false,
NeedToConjugate = false,
HasUsableDirectAccess = ( (int(XprType::Flags)&DirectAccessBit)
&& ( /* Uncomment this when the low-level
matrix-vector product functions support strided vectors
bool(XprType::IsVectorAtCompileTime)
|| */
-
int(ei_inner_stride_at_compile_time<XprType>::ret) == 1)
+
int(ei_inner_stride_at_compile_time<XprType>::ret) <= 1)
) ? 1 : 0
};
The real bug was that the inner-stride-at-compile-time could be 0. The
0 value in Stride, meaning used the MatrixType's default, should never
have been propagated to the Map traits. The fix is coming in the
Dynamic ---> -1 merge.
Benoit