//////////////////////////////////////////////////////////////////////////////////////////// My function for reduction //////////////////////////////////////////////////////////
// it seems, that we need those two levels of indirection to correctly expand macros