Re: [eigen] eigen sqrt compilation error

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


OK to add Eigen/Eigen including at least "Dense" and "Sparse".

But I'm not sure if it should include StdVector and QtAlignedMalloc.

for QtAlignedMalloc I don't even understand how it works? i mean how
can it define functions that are already defined by Qt? is it meant to
be included before or after Qt or is that irrelevant?

Benoit

2009/6/19 Mark Borgerding <mark@xxxxxxxxxxxxxx>
>
> May I suggest Eigen/Eigen include ALL functionality that is considered stable and part of the "official" Eigen.
> I think speeding up compile times is less important than making an easy to use interface.  If a developer is concerned with their compile times, they can notice an entry in the FAQ that tells them how to speed things up  (selecting a subset of headers, precompiled header options?...) .
>
> Caveat: I'm an Eigen newcomer and so I am unencumbered by knowledge of the specific issues :)
>
> -- Mark
>
>
>
> Benoit Jacob wrote:
>>
>> Finally, I added a Eigen/Dense header, including all the dense
>> functionality, but not Sparse, and not the workaround files
>> QtAlignedMalloc, StdVector.
>>
>> Rationale:
>> - this is only 15% slower than Core on my test, while it becomes 35%
>> slower than Core if I also include Sparse.
>> - we can still offer Eigen/Eigen alongside if you still think it's
>> needed. It would include Dense and Sparse, but still not the
>> workaround files. For that reason it's a bit misleading : the name
>> Eigen/Eigen suggests that all is included. Tell us if you still want
>> Eigen/Eigen.
>>
>> Benoit
>>
>> 2009/6/19 Rohit Garg <rpg.314@xxxxxxxxx>
>>
>>>
>>> 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/