Added macros to define unary and binary operations