OpenQube, Avogadro and Eigen 3

Hi,

I wanted to let the list know that I just uploaded a patch porting
OpenQube to use Eigen 3. Avogadro maintains a snapshot of it, and can
optionally build against the system installed version. In the new work
we are doing we want to use Eigen 3, and that was the motivation for
porting to the newer Eigen. If there are updates that Avogadro wants
before it moves to Eigen 3 I could just backport them. With a little
more work we could add some #ifdefs, but I largely wanted to see how
well this worked and avoid the complication of having to test any
Eigen change twice (once with Eigen 2, and again with Eigen 3).

The change is here,

http://review.source.kitware.com/#/c/4260/

I was not proposing to go through Avogadro and change everything, but
for Avogadro 2 my intent is to depend on Eigen 3. After talking with
Benoit, it seems that basic structures such as the vectors could
probably be passed between APIs using Eigen 2 or Eigen 3 but I am not
sure how much testing that has received.

Thoughts?

Marcus

On Mon, Feb 13, 2012 at 6:27 PM, Marcus D. Hanwell
mhanwell@gmail.com wrote:

I wanted to let the list know that I just uploaded a patch porting
OpenQube to use Eigen 3. Avogadro maintains a snapshot of it, and can
optionally build against the system installed version. In the new work
we are doing we want to use Eigen 3, and that was the motivation for
porting to the newer Eigen. If there are updates that Avogadro wants
before it moves to Eigen 3 I could just backport them. With a little
more work we could add some #ifdefs, but I largely wanted to see how
well this worked and avoid the complication of having to test any
Eigen change twice (once with Eigen 2, and again with Eigen 3).

The change is here,

http://review.source.kitware.com/#/c/4260/

I was not proposing to go through Avogadro and change everything, but
for Avogadro 2 my intent is to depend on Eigen 3. After talking with
Benoit, it seems that basic structures such as the vectors could
probably be passed between APIs using Eigen 2 or Eigen 3 but I am not

sure how much testing that has received.

Thoughts?

Is there a rough date for Avogadro 2? My concern is that it is still
hard to find Eigen 3 on some distros. Even on arch, which stays fairly
bleeding edge, it is only available from a third party repo. I have a
feeling it may be more difficult for enterprise distros.

But then, is eigen really even a dependence for binary distros? Since
everything is templated and inline, we may only need to require
package builders to install Eigen 3. I’m not sure how acceptable this
would be to packagers.

Dave

On Tue, Feb 14, 2012 at 9:22 AM, David Lonie loniedavid@gmail.com wrote:

On Mon, Feb 13, 2012 at 6:27 PM, Marcus D. Hanwell
mhanwell@gmail.com wrote:

I wanted to let the list know that I just uploaded a patch porting
OpenQube to use Eigen 3. Avogadro maintains a snapshot of it, and can
optionally build against the system installed version. In the new work
we are doing we want to use Eigen 3, and that was the motivation for
porting to the newer Eigen. If there are updates that Avogadro wants
before it moves to Eigen 3 I could just backport them. With a little
more work we could add some #ifdefs, but I largely wanted to see how
well this worked and avoid the complication of having to test any
Eigen change twice (once with Eigen 2, and again with Eigen 3).

The change is here,

http://review.source.kitware.com/#/c/4260/

I was not proposing to go through Avogadro and change everything, but
for Avogadro 2 my intent is to depend on Eigen 3. After talking with
Benoit, it seems that basic structures such as the vectors could
probably be passed between APIs using Eigen 2 or Eigen 3 but I am not

sure how much testing that has received.

Thoughts?

Is there a rough date for Avogadro 2? My concern is that it is still
hard to find Eigen 3 on some distros. Even on arch, which stays fairly
bleeding edge, it is only available from a third party repo. I have a
feeling it may be more difficult for enterprise distros.

But then, is eigen really even a dependence for binary distros? Since
everything is templated and inline, we may only need to require
package builders to install Eigen 3. I’m not sure how acceptable this
would be to packagers.

It is still only a compile time dependency, I have a tag of now and so
it would be easy to backport fixes to a legacy branch, or simply port
it back should the need arise. I think we should start getting at
least some alpha releases out this summer to get early feedback. I
have quite a bit of time to dedicate to this effort, as does Kyle.

Right now I am working on a git repository that contains several of
the dependencies as submodules to make the build easy if you don’t
want to grab the dependencies (such as Eigen 3, libxml2, etc). Part of
my concern is to contain the level of complexity for dashboard
testing, which I want to bring online for this project and others we
are working on to assure quality across the three major platforms.

Marcus