Re: [eigen] eigen sqrt compilation error

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


I like this.
* easy to get everything from Eigen you could possibly want with one include
* possible to go through the trouble of minimizing compile time or source file dependencies.
It seems like a good philosophy.

Guido Von Rossum is fond of saying "Make the easy things easy. Make the hard things possible."
-- Mark


Benoit Jacob wrote:
oh and there is another "nuclear option":

add a convenience #include<Eigen/Eigen> that includes them all. And
then keep the separate headers for the users who want every % of
compilation speed.

The idea is that Core and Array are the 2 biggest modules, so
Eigen/Eigen won't be much slower than including them two.

Benoit

2009/6/19 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
2009/6/19 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
On Fri, Jun 19, 2009 at 12:29 PM, Patrick Mihelich
<patrick.mihelich@xxxxxxxxx> wrote:
On Fri, Jun 19, 2009 at 12:37 AM, Moritz Lenz <mlenz@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
Considering the number of times people make this error (forgetting to include it), what about including it by default? Is there a very good reason not to do it?
I wonder this too. I ran into this error when I started using Eigen, and it seems to pop up regularly on the list. What exactly is the cost of including <Eigen/Array> in the core? How much does it increase compile times?
on my high end computer with gcc 4.3.2 -O2 -DNDEBUG, much less time
than to compile: Vector3f a, b; cout << a+b;, so something around 0.02
sec.
On my computer I tried this program:

#include <Eigen/Core>
//#include <Eigen/Array>

using namespace Eigen;

int main() {
 Matrix3d m = Matrix3d::Identity();
 Matrix3d n = m+m;
 Vector3d v; v << 1, 2, 3;
 Vector3d w = v+v;
 w = m * w;
 std::cout << w << std::endl;
}

with g++ 4.3.3. I repeated the compilation 10 times.

The #include<Eigen/Array> increases compilation times by 2.5% and the
memory usage is not affected.

I'm OK to consider this reasonable, especially as other modules like
Geometry already include Array.
What's your opinion?

The next question would be: should we merge the Array/ files into
Core/ or just #include<Array> in Core.

Benoit






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