Re: [eigen] Vector's -= operator does not seem to work |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: Hung Dang <hungptit@xxxxxxxxx>
- Subject: Re: [eigen] Vector's -= operator does not seem to work
- From: "Janek Kozicki (yade)" <jkozicki-yade@xxxxxxxxx>
- Date: Wed, 18 Mar 2020 14:15:38 +0100
- Cc: eigen@xxxxxxxxxxxxxxxxxxx
- Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAALVBMVEUBAQEtLS1KSkpRUVFXV1dYWFhjY2Nzc3N3d3eHh4eKioqdnZ24uLjLy8vc3NxVIagyAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2AIVEzgS1fgQtQAAAjRJREFUOMtt1DFv00AUAOAzFQNbjigSyoQaRaBMhKgLUyKXpVNNeUpk9vyDqFJhQ1kiBuaqAwJCqvPtSLY7RlTn5+5IdnYkkt/AOyfxXVLe5vf53Z1875kd34tOEax8djmj6GyjhB5bxz50GdsVZr9fqRjZwAtKOJw5Wqs2MMZ16ALHsaDncF7xAHix1oEFHAB8f+pRjcO4gfZDykcYzbiucRolOLUJ6kjA0xtVt+A6TySlM0RajIpK6DzwKZ/nOYbF/gclHMo1ZOHYY/+Ha+AWuM+3oMS4eeqYzZ8FiCltgUqI8cd2wwAVpJk+8LWYjBtnJdQpHQqJMd4Oxt4bU9ESiFGc5hkqaH74asAX4iabP5I5gZ+qjgGlJCqZa3h3lxhoeVcSE1qLQC4sqKOK9MGW9E3izFqqHokoztLFEgXg31sbZEKnWi2T74A4NxfVQqlkjKtcAWD+zcArFEES01dR0E/nnV0IgugmDd/2L84sOAouRBBHEc7gtc8teDkRlE0iNQPo2w3Xhh/D4TCIQ4LRLoTvgwjj6RRgavdurxYGMaIuGOyAW/PpNlCcU9/93AHenAWYjPoAwa+G3e3to/MgFNTAEKvKDjzuCzHTnY3qqdXtx24VijzQfZ0yewZ5cwRFQaa+mIYr1uI0I76+3W4xhlvoVRwOA0Fdl64HlJnxP6T8YpX/Lga4Wv4A3ErrU5oTfN7Mu/llXMl8RXEPji/lQkN3H7qXqgC2By47EXeU/7PJ/wPxRKMnuZwIeAAAAABJRU5ErkJggg==
- Organization: Gdańsk University of Technology, YADE software
Hung Dang said: (by the date of Wed, 18 Mar 2020 09:06:02 -0400)
> [...] I only look from the implement perspective (\=, *=, -= ,
> and += operators are the same) and do not pay attention to the mathematical
> meaning of the expression.
Whoa! That's surprising. I am really glad that Eigen library through
the compiler errors prevents people from doing simple mathematical
mistakes.
best regards
Janek
>
> Best,
> Hung
>
> On Tue, Mar 17, 2020 at 10:53 PM Adrien Escande <adrien.escande@xxxxxxxxx>
> wrote:
>
> > Hello,
> >
> > this is not working, because you are trying to subtract two elements that
> > are different in nature: a vector and a scalar. From a mathematical point
> > of view, it doesn't make sense.
> > By doing v -=2 I assume you are trying to subtract 2 from every component
> > of v. Some software like matlab offer a *shorcut* in the form v - 2, but
> > Eigen doesn't (at least not directly).
> > There are at least two ways to achieve what you want:
> > * v -= Vector3d::Constant(2), that is you express in a proper
> > mathematical way what you want
> > * going into array world as Janos suggested: v.array() -= 2;
> >
> > Note that v *= 2 works because it is mathematically valid to multiply a
> > vector or matrix by a scalar.
> >
> > Best regards,
> > Adrien Escande
> >
> > On Wed, Mar 18, 2020 at 10:04 AM Everton Rufino Constantino1 <
> > everton.constantino@xxxxxxx> wrote:
> >
> >> Looking at VectorwiseOp.h there is an -= operator implemented...
> >> What kind of error are you seeing exactly?
> >>
> >> Everton Constantino
> >> Software Developer
> >> Application Libraries Optimisation
> >> Linux Technology Center, IBM Systems
> >> e-mail: everton.constantino@xxxxxxx
> >>
> >>
> >>
> >>
> >> ----- Original message -----
> >> From: Janos Meny <janos.meny@xxxxxxxxxxxxxx>
> >> To: eigen@xxxxxxxxxxxxxxxxxxx
> >> Cc:
> >> Subject: [EXTERNAL] Re: [eigen] Vector's -= operator does not seem to work
> >> Date: Tue, Mar 17, 2020 21:56
> >>
> >> How about using v.array() -= 2; ?
> >>
> >> On Wed 18. Mar 2020 at 01:53, Hung Dang <hungptit@xxxxxxxxx> wrote:
> >>
> >> Hi,
> >>
> >> I try some Eigen examples (see below) and the -= operator is not
> >> supported. Is there any way to make it work without creating a constant
> >> vector?
> >>
> >> Thank a lot,
> >>
> >> Hung
> >>
> >> Matrix2d a;
> >> a << 1, 2, 3, 4;
> >> Vector3d v(1, 2, 3);
> >> std::cout << "a * 2.5 =\n" << a * 2.5 << std::endl;
> >> std::cout << "0.1 * v =\n" << 0.1 * v << std::endl;
> >> std::cout << "Doing v *= 2;" << std::endl;
> >>
> >> v *= 2;
> >> std::cout << "Now v =\n" << v << std::endl;
> >>
> >> // Does not work
> >> // v -= 2;
> >> // std::cout << "Now v =\n" << v << std::endl;
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
--
--
Janek Kozicki, PhD. DSc. Arch. Assoc. Prof.
Gdańsk University of Technology
Faculty of Applied Physics and Mathematics
Department of Theoretical Physics and Quantum Information
--
http://yade-dem.org/
http://pg.edu.pl/jkozicki (click English flag on top right)