adapted for the use of eigen-library
adapted for the use of eigen-library