Re: [eigen] [eigen3] .cwise() vs .array() and static assertion

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


2010/8/16 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
> from changeset d9f25c6413a8 you also get the explicit:
>
> Eigen/src/Core/MatrixBase.h: In member function ‘Derived&
> Eigen::MatrixBase<Derived>::operator+=(const
> Eigen::ArrayBase<OtherDerived>&) [with OtherDerived =
> Eigen::Array<float, -0x00000000000000001, 1>, Derived =
> Eigen::Matrix<float, -0x00000000000000001, -0x00000000000000001>]’:
> jitse01.cpp:14:7:   instantiated from here
> ../Eigen/src/Core/MatrixBase.h:433:6: error:
> ‘YOU_CANNOT_MIX_ARRAYS_AND_MATRICES’ is not a member of
> ‘Eigen::ei_static_assert<false>’

This looks very good, thanks!
Benoit

>
> gael
>
>
> On Mon, Aug 16, 2010 at 11:08 AM, Gael Guennebaud
> <gael.guennebaud@xxxxxxxxx> wrote:
>> Hi,
>>
>> you now get the following error message:
>>
>> Eigen/src/Core/MatrixBase.h:432:46: error: ‘Derived&
>> Eigen::MatrixBase<Derived>::operator+=(const
>> Eigen::ArrayBase<OtherDerived>&) [with OtherDerived =
>> Eigen::Array<float, -0x00000000000000001, 1>, Derived =
>> Eigen::Matrix<float, -0x00000000000000001, -0x00000000000000001>]’ is
>> protected
>>
>> not ideal yet, but much better.
>>
>> gael
>>
>> On Wed, Aug 4, 2010 at 3:30 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
>>> 2010/8/4 Christophe Prud'homme <christophe.prudhomme@xxxxxxxxxxxxxxx>:
>>>> Hi,
>>>>
>>>> I am starting using eigen3
>>>> I got this message
>>>>
>>>> THE_EVAL_EVALTO_FUNCTION_SHOULD_NEVER_BE_CALLED_FOR_DENSE_OBJECTS
>>>>
>>>> triggered by this code:
>>>>
>>>> tmp -= (0.5 * ii)*scalings().row( ii-1 ).array()*bs[ii].row( jj ).array();
>>>
>>> You are doing:
>>>
>>>  matrix -= array;
>>>
>>> which amounts to:
>>>
>>>  matrix = matrix - array;
>>>
>>> the mixing of matrices and arrays on the RHS is illegal, so you need to do:
>>>
>>> tmp.array() -= (0.5 * ii)*scalings().row( ii-1 ).array()*bs[ii].row(
>>> jj ).array();
>>>
>>> I do agree that the error message is not helpful, needs to be fixed.
>>>
>>> Benoit
>>>
>>>>
>>>> any idea what this means ?
>>>>
>>>> The code was compiling before with cwise()
>>>>
>>>> tmp -= (0.5 * ii)*scalings().row( ii-1 ).cwise()*bs[ii].row( jj );
>>>>
>>>> Best regards
>>>> C.
>>>> --
>>>> Christophe Prud'homme
>>>> Université de Grenoble      christophe.prudhomme@xxxxxxxxxxxxxxx
>>>> LJK - Room 55                  Tel: +33476635497
>>>> 51, rue des Mathématiques      Fax: +33476631263
>>>> BP53 38041 Grenoble Cedex 9
>>>>       <http://ljk.imag.fr/membres/Christophe.Prudhomme/>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>
>
>



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/