Re: [eigen] State of eigen support for small integers(16 bit, signed/unsigned) |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] State of eigen support for small integers(16 bit, signed/unsigned)
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Fri, 21 Aug 2009 10:50:06 -0400
- 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=qfpUA4BrvehGzmp7ztrRbD6F7N9RERuOXRY86H0ZrKs=; b=BwY+MjFkJGApJNDMKRIt8aDCUeeysdzq99jY3o4HlTFrnkWDx2eHozeoah7s2uJlNp 1x2ubA6hoLXy3HH6EyvndKxSoZuRYfXyxhNCWnoip9mfn0K4YPtzvy0hNzSgf72kKMs+ 952bjmz4giNn2hYpIqG5r2MV9t0IH6SNnoqfQ=
- 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=sV7g0YK3RCGKp9avmrqQ01tKk/RmVRT6Dt48rJBUzO2lWa7vzYoYskCN72nMlddVvt XcKW7oIUiLymrE4lacGuf4CVs5cgR2UQQS7czmQFCRcgymVYnHUsMMdaGqgEh7zivlDo 2JMfTzFyJ+fmeDE0KtiO/n7g2BfG0QFDSjjAs=
2009/8/21 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
> On Fri, Aug 21, 2009 at 2:34 PM, Benoit Jacob<jacob.benoit.1@xxxxxxxxx> wrote:
>> 2009/8/21 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
>>> one more information, if you want the coeff wise product of two int16
>>> returns a int32, you can simply add the specialization:
>>>
>>> template<> struct ei_scalar_product_traits<int16,int16> { typedef
>>> int32 ReturnType; };
>>>
>>> Also for the vectorization I think there is no other choice than using
>>> structs instead of typdefs for the PacketXX SSE types because we need
>>> to distinguish, e.g.:
>>>
>>> ei_padd(Packet4i,Packet4i)
>>>
>>> and
>>>
>>> ei_padd(Packet8s,Packet8s)
>>>
>>> so here Packet4i and Packet8s *must* be different types.
>>
>> Depends: in the other solution, this is remedied by making ei_padd
>> template in the scalar type, so the first is the specialization for
>> int and the second is the specialization for short.
>
> hm actually we must have both ei_padd<float>(float,float) and
> ei_padd<Packet4f>(Packet4f,Packet4f) so I don't think solution (a)
> could work.
Well then make ei_padd template in both the scalar type and the packet type.
That's really what i had in mind when I half expected this to be too
cumbersome ;)
So indeed the other solution looks better at this point.
Benoit