Clone this repo:
  1. bc25605 Added README to explain how to keep the eigen mirror in sync. by Alexandre Zani · 5 years ago main master
  2. 18c23c9 bump to 3.3.4 by Gael Guennebaud · 5 years 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 · 5 years ago
  4. 554c246 Fix compilation of streaming nested Array, i.e., cout << Array<Array<>> by Gael Guennebaud · 5 years ago
  5. 64baccc Fix 1x1 case in Solve expression with EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION==RowMajor by Gael Guennebaud · 5 years ago

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

For more information go to

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.

Check out this repository.

git clone cd eigen

Add a remote pointing to the mercurial bucket on bitbucket.

git remote add bitbucket hg:: 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

git checkout --track origin/upstream/master

Fetch the changes from 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 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