Re: [eigen] [Eigen] SSE may cause linker error on

[ Thread Index | Date Index | More Archives ]

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

Mail converted by MHonArc 2.6.19+