Make eigen as a submodule
Created by: Roger-luo
Just had a brief look at your repo. It would be better to make eigen as an git submodule. And write a CMake file to download/load this as dependency. This will make your repository cleaner. About how to use a git submodule: https://git-scm.com/docs/git-submodule
There is a mirror for eigen3 on github: https://github.com/eigenteam/eigen-git-mirror
IMHO, a standard modern C++ library should use CMake rather than Makefile.
Furthermore, since this will be a some kind of python library. I would suggest to use xtensor with self defined operators instead,. For quantum many-body system, I believe the use of high dimensional array (like numpy's strided array) is quite often. Eigen does not have a mature support for this at the moment.