Ticket #3662: trac_3662-5.patch
| File trac_3662-5.patch, 5.8 kB (added by mhansen, 4 months ago) |
|---|
-
a/sage/combinat/free_module.py
old new 36 36 sage: F = CombinatorialFreeModule(QQ, ['a','b','c']) 37 37 sage: B = F.basis() 38 38 sage: f = B['a'] + 3*B['c']; f 39 B ('a') + 3*B('c')39 B['a'] + 3*B['c'] 40 40 sage: f == loads(dumps(f)) 41 41 True 42 42 … … 118 118 sage: F = CombinatorialFreeModule(QQ, ['a', 'b', 'c'], prefix='F') 119 119 sage: e = F.basis() 120 120 sage: e['a'] + 2*e['b'] 121 F ('a') + 2*F('b')121 F['a'] + 2*F['b'] 122 122 123 123 """ 124 124 v = self._monomial_coefficients.items() 125 125 v.sort() 126 126 prefix = self.parent().prefix() 127 mons = [ prefix + " (" + repr(m) + ")" for (m, _) in v ]127 mons = [ prefix + "[" + repr(m) + "]" for (m, _) in v ] 128 128 cffs = [ x for (_, x) in v ] 129 129 x = repr_lincomb(mons, cffs).replace("*1 "," ") 130 130 if x[len(x)-2:] == "*1": … … 185 185 sage: F = CombinatorialFreeModule(QQ, ['a','b','c']) 186 186 sage: B = F.basis() 187 187 sage: B['a'] + 3*B['c'] 188 B ('a') + 3*B('c')188 B['a'] + 3*B['c'] 189 189 190 190 sage: s = SFASchur(QQ) 191 191 sage: s([2,1]) + s([5,4]) # indirect doctest … … 227 227 sage: B = F.basis() 228 228 sage: f = B['a'] + 3*B['c'] 229 229 sage: -f 230 -B ('a') - 3*B('c')230 -B['a'] - 3*B['c'] 231 231 232 232 sage: s = SFASchur(QQ) 233 233 sage: -s([2,1]) # indirect doctest … … 242 242 sage: F = CombinatorialFreeModule(QQ, ['a','b','c']) 243 243 sage: B = F.basis() 244 244 sage: B['a'] - 3*B['c'] 245 B ('a') - 3*B('c')245 B['a'] - 3*B['c'] 246 246 247 247 sage: s = SFASchur(QQ) 248 248 sage: s([2,1]) - s([5,4]) # indirect doctest … … 422 422 sage: B = F.basis() 423 423 sage: f = B['a'] + 2*B['c'] 424 424 sage: f.monomials() 425 [B ('a'), B('c')]425 [B['a'], B['c']] 426 426 """ 427 427 P = self.parent() 428 428 one = P.base_ring()(1) … … 437 437 sage: B = F.basis() 438 438 sage: f = B['a'] + 2*B['c'] 439 439 sage: f.terms() 440 [B ('a'), 2*B('c')]440 [B['a'], 2*B['c']] 441 441 """ 442 442 P = self.parent() 443 443 v = self._monomial_coefficients.items() … … 529 529 sage: B = F.basis() 530 530 sage: f = B['a'] - 3*B['c'] 531 531 sage: f.map_coefficients(lambda x: x+5) 532 6*B ('a') + 2*B('c')532 6*B['a'] + 2*B['c'] 533 533 534 534 sage: s = SFASchur(QQ) 535 535 sage: a = s([2,1])+2*s([3,2]) … … 591 591 sage: F = CombinatorialFreeModule(QQ, ['a','b','c']) 592 592 sage: B = F.basis() 593 593 sage: B['a']*1/2 594 1/2*B ('a')594 1/2*B['a'] 595 595 596 596 """ 597 597 x = self.base_ring()(x) … … 606 606 sage: F = CombinatorialFreeModule(QQ, ['a','b','c']) 607 607 sage: B = F.basis() 608 608 sage: 1/2*B['a'] 609 1/2*B ('a')609 1/2*B['a'] 610 610 611 611 """ 612 612 x = self.base_ring()(x) … … 620 620 sage: F = CombinatorialFreeModule(QQ, [1,2,3]) 621 621 sage: x = F._from_dict({1:2, 2:3}) 622 622 sage: x/2 623 B (1) + 3/2*B(2)623 B[1] + 3/2*B[2] 624 624 625 625 sage: F = CombinatorialFreeModule(QQ, [1,2,3]) 626 626 sage: B = F.basis() 627 627 sage: f = 2*B[2] + 4*B[3] 628 628 sage: f/2 629 B (2) + 2*B(3)629 B[2] + 2*B[3] 630 630 631 631 """ 632 632 if self.base_ring().is_field(): … … 658 658 659 659 class CombinatorialFreeModuleInterface(sage.structure.parent_base.ParentWithBase): 660 660 def __init__(self, R, element_class): 661 """662 """663 661 #Make sure R is a ring with unit element 664 662 if not isinstance(R, Ring): 665 663 raise TypeError, "Argument R must be a ring." … … 687 685 EXAMPLES: 688 686 sage: F = CombinatorialFreeModule(QQ, ['a','b','c']) 689 687 sage: F.basis() 690 Finite family {'a': B ('a'), 'c': B('c'), 'b': B('b')}688 Finite family {'a': B['a'], 'c': B['c'], 'b': B['b']} 691 689 692 690 sage: QS3 = SymmetricGroupAlgebra(QQ,3) 693 691 sage: list(QS3.basis()) … … 932 930 EXAMPLES: 933 931 sage: F = CombinatorialFreeModule(QQ, ['a', 'b', 'c']) 934 932 sage: F.term('a') 935 B ('a')933 B['a'] 936 934 """ 937 935 return self._from_dict({i:self.base_ring().one_element()}) 938 936 … … 951 949 EXAMPLES: 952 950 sage: F = CombinatorialFreeModule(QQ, [1,2,3,4]) 953 951 sage: F.sum(F.term(i) for i in [1,2,3]) 954 B (1) + B(2) + B(3)952 B[1] + B[2] + B[3] 955 953 """ 956 954 return sum(operands, self.zero()) 957 955 … … 999 997 sage: list(sorted(e.keys())) 1000 998 ['a', 'b', 'c'] 1001 999 sage: list(sorted(e)) 1002 [B ('a'), B('b'), B('c')]1000 [B['a'], B['b'], B['c']] 1003 1001 1004 1002 Let us construct some elements, and compute with them: 1005 1003 sage: e['a'] 1006 B ('a')1004 B['a'] 1007 1005 sage: 2*e['a'] 1008 2*B ('a')1006 2*B['a'] 1009 1007 sage: e['a'] + 3*e['b'] 1010 B ('a') + 3*B('b')1008 B['a'] + 3*B['b'] 1011 1009 """ 1012 1010 def __init__(self, R, cc, element_class = CombinatorialFreeModuleElement, prefix="B"): 1013 1011 """