Re: [eigen] matrix::linspace |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] matrix::linspace
- From: Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>
- Date: Mon, 25 Jan 2010 16:19:37 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=P09fmAfij50crVmGiNxU2fNlQ2UcfvkK7adxv6xQV9E=; b=MeBCq67hVD+3iLpkS5J6WFFSxkgR3OgJiXjJ1XFYnCLjg5Z8vDRcXK1/vZT0z2Tb77 kr+CYHrltWcX72bLKN8pnnN5d3S/TPFC23RKdiS2VN3MuoR0qojpeiM3ZMeXMF24Q/xi bSapYn/YmMCY7l5OKDL0cVa5S5Lal3oov6hxY=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=aOirif6m/xqq+IAfpeHo5APDgE1uJ6CJZgtNRfRngY9yhCAnjheIV3RH6Pk5K0h1RF 6rlEWQ2c6wMywQECptd1/3UzeOYbBYtJn1L7e8v186any33Xir4TeiVZkhHW6pbcanR5 NjHye/7ZRduMuuvXwCLXuzODRUPeaT5/YKXJ8=
Please ignore the last patch. It's buggy and I am working on a
solution. If you already wasted time, trying it out - sorry.
- Hauke
On Sun, Jan 24, 2010 at 10:54 PM, Hauke Heibel
<hauke.heibel@xxxxxxxxxxxxxx> wrote:
> On Sun, Jan 24, 2010 at 8:16 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
>> 2010/1/24 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
>>> which is nice and reasonable. So, MSVC has an optimization issue over
>>> here. In my particular case, the unaligned cases are anyways empty and
>>> skipping them does not hurt.
>>
>> This could then be quite far reaching: this path in Assign.h is used
>> for much more than just this particular functor, so this is really
>> worth understanding and fixing / working around!
>
> I don't really understand what is going on nor why it is. I can tell
> that the ASM code is different and not optimal but I do not know
> exactly why. With some tinkering, I was able to create a fix which you
> find attached.
>
> In short, it does the following. The unaligned paths are once more
> wrapped into a proxy object which is specialized for cases where the
> unaligned path is non-existent (of zero length). We can make use of it
> in some cases, in particular, when the destination is aligned which we
> do already know at compile time. That approach allows MSVC to perform
> the correct optimization.
>
> I did not push since it's quite a low-level modification.
>
> - Hauke
>