rivet is hosted by Hepforge, IPPP Durham
close Warning: Can't synchronize with repository "(default)" (Repository path '/hepforge/hg/rivet/public/rivet' does not exist.). Look in the Trac log for more information.

Opened 11 years ago

Last modified 7 years ago

#288 assigned enhancement

Upgrade linear algebra to use Eigen

Reported by: Andy Buckley Owned by: Andy Buckley
Priority: minor Milestone: Perfection
Component: General Version:
Keywords: Cc:

Description (last modified by Andy Buckley)

Eigen 2 has been in intense development for over a year (I've been monitoring the mailing list: they're very good) and has had a couple of production releases to burn out the obvious bugs. Since it uses cool expression template stuff internally, this could really speed up our Lorentz transformations, diagonalisations etc. ... plus it's supported, unlike Eigen1.

Change History (6)

comment:1 Changed 11 years ago by Andy Buckley

Status: newassigned

comment:2 Changed 11 years ago by Andy Buckley

Description: modified (diff)
Milestone: Version 1.3.0Version 2

I did the work needed for this change, and it worked nicely. The new Eigen design is really neat. However, it's also about 2MB of files, which is an unacceptable overhead for Rivet as a bundled dependency. So I've put the updated interface in a branch, where it can reside until we can rely on it as a system dependency.

comment:3 Changed 11 years ago by Andy Buckley

Milestone: Version 2Release 1.3.0

Moving this up the agenda, given how many warnings the Rivet_i build in ATLAS produced due to Eigen1. We will install Eigen2 in the LCG AA, and require it either as a sys lib or install it via the bootstrap script (cf. Boost)

comment:4 Changed 8 years ago by Andy Buckley

Milestone: 2.0.0Perfection

Should now be about using Eigen3! The branch written for Eigen2 will hopefully still be largely valid.

It's a big package so we will need to expect this as a system package or manual dependency rather than bundling it cf. Eigen1 (hurrah! fewer bundled deps!)

LCG AA should now have installed Eigen3 so we can pick it up on AFS systems via the bootstrap script.

comment:5 Changed 7 years ago by Andy Buckley

Probably we won't get enough value from this... do we need Eigen at all? Certainly we get more complaints about dependencies than about vector manipulation speed, so my feeling is that we can drop Eigen & other cleverness entirely, to get rid of build warnings etc. and simplify the codebase.

The alternative is to be able to bundle Eigen3 as we now do for yaml-cpp, i.e. just bring the code up to date. But we need to make 100% sure that it isn't exposed in any headers.

comment:6 Changed 7 years ago by Andy Buckley

Summary: Upgrade linear algebra to use Eigen 2Upgrade linear algebra to use Eigen
Note: See TracTickets for help on using tickets.