Re: [eigen] eigen sqrt compilation error

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


PLEASE include the nuclear option. I like that.

On Fri, Jun 19, 2009 at 6:13 AM, Mark Borgerding<mark@xxxxxxxxxxxxxx> wrote:
> 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
>>>
>>
>>
>>
>
>
>
>



-- 
Rohit Garg

http://rpg-314.blogspot.com/

Senior Undergraduate
Department of Physics
Indian Institute of Technology
Bombay



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