+ GINAC_ASSERT(is_exactly_a<numeric>(p.coeff));
+ GINAC_ASSERT(is_exactly_a<numeric>(c));
+
+ // First, try a common shortcut:
+ if (is_exactly_a<symbol>(p.rest))
+ return expair(p.rest, p.coeff * c);
+
+ // trivial case: exponent 1
+ if (c.is_equal(_ex1))
+ return p;
+ if (p.coeff.is_equal(_ex1))
+ return expair(p.rest, c);
+