[eigen] Areas of eigen3 variation and using eigen2/3 in generic code? |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: [eigen] Areas of eigen3 variation and using eigen2/3 in generic code?
- From: Jesse Perla <jesseperla@xxxxxxxxx>
- Date: Sun, 3 Jan 2010 10:09:48 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:from:date:message-id :subject:to:content-type; bh=npVYOF8SYKmRocDfCDDGoSGuBOd8Bpg9svnoYcM3/Pk=; b=sRs/cn+JXAehigTMkswx+mTpcWSuei9FybgKTR6uPB10ChWP0bnppAaI7UTa/n/B0n S6Z/KkaSu9n5OyTP4nm69/lbjXPqnXDuIQqxARX15mmqrQTBh7Ed2alaDnj6GxYHpwfE ASzleOOBG0/HP07p5hCnEf4mr4Hwhn+sRAGA8=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type; b=CULQv8Hf3xWry2Ka72VDi+tcFroKsonbSnNhj82DbrlUZf13kCa3TJ/Z6h5mzUZlBv Q6KMY//puas6W72DTORkld+dhgQq0zk6t3Y6tvXidUkGy4eK843KGovoA5CtQ/fY6LiZ Sn9QnQ9X+0MaT+MgJTg8QO8OysxL5oIcHNNBg=
I am considering a partial switch for my economics-oriented library from ublas to eigen and have a few questions.
1. What are the likely areas of flux in the eigen3 interface? I looked at: http://eigen.tuxfamily.org/index.php?title=Todo_for_3.0 and it seems that most are focused on changing higher level functionality and some of the underlying _expression_ template tech. But not necessarily on the basic linear algebra operations . Is this correct? My worry, of course, is to have to do a port of my library to eigen3 in 9-12 months that involves fundamental changes. If I stuck to the basic operations in: http://eigen.tuxfamily.org/dox-devel/AsciiQuickReference.txt (with the exception of the solution and eigenvalue routines) do you expect that I would have few changes when it comes time for a port?
2. I am interested in writing many of my library routines with generic code that would use a subset of operations and could work with various matrix/vector types. (just the basic opertations for the most part, with no expectation of integration between libraries for a given call)
Since many of the other libraries use free rather than member functions, it would make things easier if those functions existed (e..g. row(A, i) as well as A.row(i) ). Is this something people have contributed or is there anything that could make this difficult to develop with no overhead? If there is no impediment, it is something I could contribute on my own using basic SFINAE if it is allowed in the library. I think a lot of people would find this a natural alternative API.
Has anyone implemented the traits for eigen2 or see any reason it would be impossible?
Thanks for your help evaluating this superb library.
-Jesse