|Re: [eigen] Feature request - Prevent dynamic resizing of a matrix|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Feature request - Prevent dynamic resizing of a matrix
- From: Timothy Hunter <tjhunter@xxxxxxxxxxxx>
- Date: Wed, 28 Jan 2009 09:25:19 -0800
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:message-id:subject:from:to :content-type:content-transfer-encoding; bh=mz4dyL3fQR0SSzyC8ffio2qqxZ2u1QVylPQG2O1n7pc=; b=Xk1NjJJtie3rvVcdmbqc4hH1QwxS994xCvO4+ObG4d6ERXcOuV9JmYK9m1gfDFApei BmCgxMz1iFwgUx0sE390YZJG2u/39g0rwUEAlRK5ceXYIhdOiNnSAL9KPipovNXk5Dab TJeGGp3OwWJ2KL0nqHwrZQFCm0edIzsbpdCMc=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type :content-transfer-encoding; b=ZRse4k6VTbzwgjjbOVh7hfGGLgjvjna0xPJ4NMR7pxB3y0xcUbmggG3p4B69cH7pvG tQFmRfzaCOsbtkkPix2IR8eGr3gkAor76Y+w5PziUJ8id8Rf/K04JwfIMmPuYS3fCh3a u9gUtRkBwuJCK6j49TqTj/aOHipufFTeb03Os=
On Wed, Jan 28, 2009 at 8:45 AM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
> It's added in trunk now (won't make it into 2.0).
> Commit msg:
> add EIGEN_NO_AUTOMATIC_RESIZING
> if defined, already initialized matrices won't be automatically
> resized in assignments
> uninitialized matrices may still be initialized
> 2009/1/28 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
>> OK, this has been a tough decision. Let's recall the arguments on both sides.
>> In favor of automatic resizing:
>> 1) This is more practical for the majority
>> 2) This is the usual behavior of objects in C++ and in the C++ STL
>> 3) Because this is what STL containers assume, it's almost required in
>> order to allow convenient usage of STL containers with Eigen types
>> Against automatic resizing:
>> 1) Exactly what you say. Indeed automatic resizing can hide nasty bugs.
>> So the default behavior will stay as it is right now, but what you
>> propose, with a #define, sounds like a good solution to me. I
>> implement it now. I'd rather call it EIGEN_NO_AUTOMATIC_RESIZING
>> because i think we still want to allow explicitly calling resize().
>> Notice that one could also consider implementing this behavior as a
>> matrix type option. So you would do
>> typedef Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic,
>> Eigen::NonResizable> MyMat;
>> and then objects of type MyMat have this behavior. Stuff to consider for 2.1...
>> 2009/1/28 Timothy Hunter <tjhunter@xxxxxxxxxxxx>:
>>> Hello all,
>>> I has been decided that the operator=(A,B) would resize A if it does
>>> not fit the size of B, right?
>>> I had a bug in my code I had problems to detect because of this
>>> feature. It would be nice to have an assert that fails if the matrices
>>> are of different size, and let the user decide to use this assert with
>>> some flag definitions like EIGEN_DO_NOT_RESIZE_DYNAMIC_MATRICES.
>>> Is it possible to do it with the current code?
>>> -- Timothy Hunter