Clone this repo:
  1. bc25605 Added README to explain how to keep the eigen mirror in sync. by Alexandre Zani · 8 days ago master
  2. 18c23c9 bump to 3.3.4 by Gael Guennebaud · 9 days ago 3.3.4
  3. 416e476 Enable Array(EigenBase<>) ctor for compatible scalar types only. This prevents nested arrays to look as being convertible from/to simple arrays. by Gael Guennebaud · 11 days ago
  4. 554c246 Fix compilation of streaming nested Array, i.e., cout << Array<Array<>> by Gael Guennebaud · 11 days ago
  5. 64baccc Fix 1x1 case in Solve expression with EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION==RowMajor by Gael Guennebaud · 11 days ago

Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

For more information go to http://eigen.tuxfamily.org/.

Mirroring Eigen

This repository is a mirror of the C++ linear algebra library Eigen.

Because Eigen is hosted on BitBucket in a Mercurial repository, you will need a way to convert between mercurial and git. We use git-remote-hg for this purpose.

https://github.com/felipec/git-remote-hg

Check out this repository.

git clone https://fuchsia.googlesource.com/third_party/eigen cd eigen

Add a remote pointing to the mercurial bucket on bitbucket.

git remote add bitbucket hg::https://bitbucket.org/eigen/eigen git fetch bitbucket

Now, we need to update the branches we care about. As of the writing of this document, we only care about upstream/master (the Eigen tip of tree) and upstream/3.3 (the 3.3.x line of stable releases).

Track the branch on fuchsia.googlesource.com.

git checkout --track origin/upstream/master

Fetch the changes from bitbucket.org and upload.

git pull bitbucket master git push origin upstream/master

Repeat the process for the other branches we care about.

Bumping the Version Used In Fuchsia

As you noticed, the master branch on fuchsia.googlesource.com is not the same as the master branch on bitbucket. That's because our master branch is kept at a stable release.

To see if you need to update the master branch, see if a new stable version is available.

git log -1

Look for “tag: 3.3.4” or similar on the first line. This is version at which fuchsia is building eigen.

git ls-remote bitbucket

And see if there is a tag for the new version.

If there is, check it out on the master branch.

git checkout master git reset --hard 3.3.5

And push to fuchsia.

git push origin 3.3.5 git push origin master