def transform(self, st): """ >>> from sympy import * >>> from symplus.strplus import init_mprinting >>> init_mprinting() >>> m = translation([2,3,5]) >>> m.transform((1,2,3)) (3, 5, 8) >>> s = shearing(2*j,sqrt(3)*i) >>> m.transform(s) AffineTransformation([1 0 0; 2*sqrt(3) 1 0; 0 0 1], [0 -4*sqrt(3) 0]') >>> import symplus.setplus >>> x, y, z = symbols('x,y,z') >>> m.transform(AbstractSet((x,y,z), x**2+y**2+z**2<1)) {(x + 2, y + 3, z + 5) | x**2 + y**2 + z**2 < 1} """ if is_Tuple(st) and len(st) == 3: return self(*st) elif is_Function(st): return compose(self, st, inverse(self)) elif isinstance(st, Set): return Image(self, st) else: raise ValueError
def base_decompose(action1, action2): return compose(action1, inverse(action2))
def base_compose(action1, action2): return compose(action1, action2)