Adding macros for minimal functions

Also added some documentation to macros.hpp

relates #60