boost::numeric::functional::unary_minus
template<typename Arg, typename Tag = typename tag<Arg>::type> struct unary_minus : public boost::numeric::functional::unary_minus_base< Arg, void > { };