This adds a new macro to ease the definition of custom user functions. The BOOST_COMPUTE_FUNCTION() macro creates a new boost::compute::function<> object with the provided return type, argument types, function name and OpenCL source code.