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

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


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/