Functions support Eigen::MatrixBase

Any expression can now be the input of a function