Re: [eigen] a few more points... |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] a few more points...
- From: "Benoit Jacob" <jacob.benoit.1@xxxxxxxxx>
- Date: Sat, 3 Jan 2009 14:26:15 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=7KwxWvjzN45M6j+ME6YZ3zqKX4DFd3WGXnObGVd3xzw=; b=xv3J8u/SWMETlyiqWygJYXwcX0Tbkna6z8W9ItDq5iD8IYDmwuNzu8Pv4rtvhanjDj lnRoTiho8aO0hVj8GaAQhoH349+pFqrghUV6Y6uXd4QoIHr/T7RUOSEL7Z5xsabx1bb1 Kn4z6515WbOkcPycR+UA5zayjJUpifLphsIpk=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=m/oixXb72JXznwQ56MXk0otDB0pGXV2WEwBB41BmJoALmvR89UjuyAhn140WxlHjY2 7v5w54wKeZu1uVQDn2DBD8Bki/yhXEXakG7xP8pJwJqb+ZPWrxvp7D+dg8XS9wf/xjSa dO9pwyBXGQ/XowF9lnR0/Bs/l6ZvHVxC770Bs=
2009/1/3 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
>>> and I don't think that's safe to add AlignedBit if we have
>>> ForceAligned, eg:
>>>
>>> Matrix4d m1;
>>> m1.block<2,2>(1,0) *= 2;
>>>
>>> will take the "LinearVectorization with CompleteUnrolling" path and crash.
>>
>> The block expression here doesn't have the LinearAccessBit because it
>> isn't a vector. So this assignment shouldn't take the
>> LinearVectorization path.
>
> right, so it will take the "InnerVectorization with CompleteUnrolling"
> and still crash.
ok, now I understand. But the point is, with code such as
>>> Matrix4d m1;
>>> m1.block<2,2>(1,0) *= 2;
I would never have thought of using ForceAligned. But now I understand
your explanation, there are other examples like you say where we want
ForceAligned but not Aligned flag, like when one does aligned accesses
in a non-aligned block.
>> Actually your ForceAligned as you explained it sounds like exactly
>> what I want. What I need now is a way to tell Assign.h to use a
>> vectorized path -- currently it doesn't because SrcIsAligned is 0 in
>> ei_assign_traits because my block expression doesn't have the
>> AlignedBit.
>
> .mark<AlignedBit>() ???
Doh... sure that does the trick. I guess I was just wrongly assuming
that Eigen should do that automatically with ForceAligned but now I
understand why it doesn't. Thanks.
Benoit
---