Re: [eigen] [Eigen] SSE may cause linker error on VS.net |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] [Eigen] SSE may cause linker error on VS.net
- From: Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>
- Date: Wed, 22 Apr 2009 16:24:38 +0200
- 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 :content-transfer-encoding; bh=ELZM9S//idzopV5z8xVAv2F/h9vPrhnmURu6xCd1Rjo=; b=qjuCpxNpnZ+T3C6R/mD2NY6Ty6NxGJHIWVYg9wtnZGHIyo2h/D5U0Wr76Ec7HeuqZt VWgePingaMrCcxa4C85pjhTjlnABnfzRbWhsg1Hb3qPnfKvGOIweXFEXTjHBbGpToS6q QNTge7VWiJXFN9zDJ653SNpBQgd0y3nzUXlKs=
- 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:content-transfer-encoding; b=IbYqLcuLAl4CN0EW15+NpYetGHFcXg4bUCTsWDf32y/gOXooL85ywDDE4QExPQnXhx n/9s1hEXO6VNug8SCqa4C1wcp+JueZApqswtCM4yKYYoItOAEItLUQHa4gczgsfT4DFk FEpRBUuHAqFmw1CClsHAlje+xvUaBF4MGWRzg=
Benoit, the function is explicitly declared with EIGEN_DONT_INLINE and
as it is a full specialization it is not a template and thus being
compiled into every object file. It occurs for 'all' vectorized
functions (currently, ei_plog, ei_pexp, ei_psin, ei_pcos and
ei_psqrt). The only solution I can think of is the introduction of a
spcialized struct.
Your proposal of declaring them static is probably not working as well
because static functions are instantiated per compile-unit. I can give
it a try but have no hopes.
- Hauke
On Wed, Apr 22, 2009 at 4:19 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
> bah, we forgot another 'inline' keyword somewhere?
>
> which symbols exactly does the linker complain about? (yes i'm too
> lazy to try myself :p )
>
> Benoit
>
> 2009/4/22 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
>> Hi,
>>
>> the attached example causes a linker error, when SSE is enabled. The
>> problem is that object code for specializations in MathFunctions.h
>> is generated in UnitA and UnitB from the attached example.
>>
>> Does anybody have any easy solutions to fix this?
>>
>> Btw, to reproduce the problem you have to make sure SSE is actually used.
>>
>> Regards,
>> Hauke
>>
>
>
>