Re: [eigen] about changeset fa29f384b58e2 |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] about changeset fa29f384b58e2
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Fri, 11 Jun 2010 10:30:54 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=WUrAc1c9LX6Gp+WddA7Uhyd3Fwv6SKsAFCb2JzHbTec=; b=O341i+4BA8xFngcVP/vaU+UhqEwxLpxx0b+nHqZnm6ow+wGRe3IlnO5f+HTNfFLZHE ZXuGITULfUD3ACIJMLPpj5BUFHCdEWt5hBt/B0loobotNCxvE92MeesI9pymgpk7cAZg CACKqEO36D1q+Q2oWOAwK/M9+uXkd7Dup7Cx8=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=ifSJfnZLCg/16cqjbpM3xImXWHGzaFUAWhXbCnA/8KD2Ml5gQk/vpZxGy8zfvyZR5w MHwxESdI1vOEewPMpQJW83/t8Pd0tkAttiAiICEY9maXytZKV7oNG/57pPuMOmigT/Mq iME05KudbHg7YdE5fZ+lJJIAHpnLPfF6zCs+I=
FYI, this Stride stuff is the next thing I rewrite :) now that index
types are configurable, it really doesn't work anymore.
Benoit
2010/6/11 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
> On Fri, Jun 11, 2010 at 2:28 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
>> 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.
>
> ok, good :) Actually, this is what I initially thought when debugging
> this but all this stride mechanism scared me and I thought you
> probably had a good reason to do so ;)
>
> gael.
>
>> Benoit
>>
>>
>>
>
>
>