def __iter__(self): """ TESTS:: sage: SignedCompositions(0).list() #indirect doctest [[]] sage: SignedCompositions(1).list() #indirect doctest [[1], [-1]] sage: SignedCompositions(2).list() #indirect doctest [[1, 1], [1, -1], [-1, 1], [-1, -1], [2], [-2]] """ for comp in Compositions_n.__iter__(self): l = len(comp) for sign in itertools.product([1,-1], repeat=l): yield [ sign[i]*comp[i] for i in range(l)]
def __iter__(self): """ TESTS:: sage: SignedCompositions(0).list() #indirect doctest [[]] sage: SignedCompositions(1).list() #indirect doctest [[1], [-1]] sage: SignedCompositions(2).list() #indirect doctest [[1, 1], [1, -1], [-1, 1], [-1, -1], [2], [-2]] """ for comp in Compositions_n.__iter__(self): l = len(comp) a = [[1,-1] for i in range(l)] for sign in cartesian_product.CartesianProduct(*a): yield [ sign[i]*comp[i] for i in range(l)]
def __iter__(self): """ TESTS:: sage: SignedCompositions(0).list() #indirect doctest [[]] sage: SignedCompositions(1).list() #indirect doctest [[1], [-1]] sage: SignedCompositions(2).list() #indirect doctest [[1, 1], [1, -1], [-1, 1], [-1, -1], [2], [-2]] """ for comp in Compositions_n.__iter__(self): l = len(comp) a = [[1, -1] for i in range(l)] for sign in cartesian_product.CartesianProduct(*a): yield [sign[i] * comp[i] for i in range(l)]