|Re: [eigen] matrix::linspace|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] matrix::linspace
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Mon, 25 Jan 2010 10:26:27 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=uuU8FoNgTA/2sro+/XuDYYF4iUksMGgYT2BOF3fnkUg=; b=awRJf3fDOfde4Z1Ppq81eVq8gPtY8lrUym+VP0vb4p9JDMcFGKHp8TGgZxC5w/msxC 8Vrrq0sbbyLGNWx6zHMGtZPNuwGm5sKz5c4HcsuE6kjJsmWxr7/BS0bt6eTNwJg4jfhO fKvB/6GHRj9CM2QLmHnp1MJ6tOVayVshXw9VM=
- 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; b=uR2tXvbZkd0BljvhpzcHwRTn/Z0q/Vw+izzef7gH+1hlPVu0GEyGL5BXWsDZ1NnCCS d1aOJIeAL+fyrGzwbf+6dH5HM9y4MtK289Miwkzc/sYYLJSX9liz1xeVVnF2CdlmA8VC ZjmO+Sa0tbdT+ZPI6fLgmtThmYQ4vqKekDY0o=
Oops, no worry, I had read your email yesterday but forgot to reply to
it. I hadn't tested your patch, but everything you wrote sounded
reasonable, the idea of using a meta selector here, etc.
2010/1/25 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
> 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