Using Index type instead of hard coded int type to prevent potential implicit integer conversion.
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/.