Ticket #11576: underscores.patch

File underscores.patch, 5.3 KB (added by mjo, 7 years ago)

Use underscores to separate indices (applies on top of previous patch)

  • sage/symbolic/ring.pyx

    # HG changeset patch
    # User Michael Orlitzky <michael@orlitzky.com>
    # Date 1354383176 18000
    # Node ID 7290151c5a697e69c72b9dbe184e9a3328e53321
    # Parent  ddfab2ba7a2ee5b3d270487189c91fc6bd6e5649
    Use underscores to separate indices
    
    diff --git a/sage/symbolic/ring.pyx b/sage/symbolic/ring.pyx
    a b  
    526526        INPUT:
    527527
    528528        - ``name`` -- The sequence name. For example, if you name the
    529           sequence `x`, the variables will be called `x0`, `x1`,...
     529          sequence `x`, the variables will be called `x_0`, `x_1`,...
    530530
    531531        - ``latex_name`` -- An optional latex expression (string) to
    532532          use instead of `name` when converting the symbols to latex.
     
    544544
    545545            sage: a = SR.symbols('a')
    546546            sage: a[0]
    547             a0
     547            a_0
    548548            sage: a[1]
    549             a1
     549            a_1
    550550
    551551        Create polynomials with symbolic coefficients of arbitrary
    552552        degree::
     
    554554            sage: a = SR.symbols('a')
    555555            sage: p = sum([ a[i]*x^i for i in range(0,5)])
    556556            sage: p
    557             a4*x^4 + a3*x^3 + a2*x^2 + a1*x + a0
     557            a_4*x^4 + a_3*x^3 + a_2*x^2 + a_1*x + a_0
    558558
    559559        Using a different latex name since 'lambda' is reserved::
    560560
    561561            sage: l = SR.symbols('l', '\lambda')
    562562            sage: l[0]
    563             l0
     563            l_0
    564564            sage: latex(l[0])
    565565            \lambda_{0}
    566566
     
    568568
    569569            sage: a = SR.symbols('a')
    570570            sage: a[0,1,2]
    571             a012
     571            a_0_1_2
    572572            sage: latex(a[0,1,2])
    573573            a_{0}_{1}_{2}
    574574            sage: [ a[i,j] for i in range(0,2) for j in range(0,2) ]
    575             [a00, a01, a10, a11]
     575            [a_0_0, a_0_1, a_1_0, a_1_1]
    576576
    577577        You can pass slices instead of integers to obtain a list of
    578578        symbols::
    579579
    580580            sage: a = SR.symbols('a')
    581581            sage: a[5:7]
    582             [a5, a6]
     582            [a_5, a_6]
    583583
    584584        This even works for the second, third, etc. indices::
    585585
    586586            sage: a = SR.symbols('a')
    587587            sage: a[0:2, 0:2]
    588             [a00, a01, a10, a11]
     588            [a_0_0, a_0_1, a_1_0, a_1_1]
    589589
    590590        TESTS:
    591591
    592592        We shouldn't overwrite variables in the global namespace::
    593593
    594594            sage: a = SR.symbols('a')
    595             sage: a0 = 4
     595            sage: a_0 = 4
    596596            sage: a[0]
    597             a0
    598             sage: a0
     597            a_0
     598            sage: a_0
    599599            4
    600600
    601601        The symbol at a given index should always be the same, even
     
    611611
    612612            sage: a = SR.symbols('a')
    613613            sage: a[3, 0:2]
    614             [a30, a31]
     614            [a_3_0, a_3_1]
    615615            sage: a[0:2, 3]
    616             [a03, a13]
     616            [a_0_3, a_1_3]
     617
     618        Multiple indices shouldn't overlap with single indices::
     619
     620            sage: a = SR.symbols('a')
     621            sage: bool(a[11] == a[1,1])
     622            False
    617623
    618624        """
    619625        return SymbolSequence(name, latex_name, domain)
     
    10271033
    10281034            sage: from sage.symbolic.ring import SymbolSequence
    10291035            sage: a = SymbolSequence('a', 'alpha', 'real')
    1030             sage: a1 = a._create_symbol_(1)
    1031             sage: a1
    1032             a1
    1033             sage: latex(a1)
     1036            sage: a_1 = a._create_symbol_(1)
     1037            sage: a_1
     1038            a_1
     1039            sage: latex(a_1)
    10341040            alpha_{1}
    10351041
    10361042        """
     
    10381044        # SR.symbol().
    10391045        name = None
    10401046        if self._name is not None:
    1041             name = '%s%d' % (self._name, subscript)
     1047            name = '%s_%d' % (self._name, subscript)
    10421048
    10431049        latex_name = None
    10441050        if self._latex_name is not None:
     
    10921098            sage: from sage.symbolic.ring import SymbolSequence
    10931099            sage: a = SymbolSequence('a')
    10941100            sage: a.__getitem__(1)
    1095             a1
     1101            a_1
    10961102
    10971103        A tuple argument::
    10981104
    10991105            sage: from sage.symbolic.ring import SymbolSequence
    11001106            sage: a = SymbolSequence('a')
    11011107            sage: a.__getitem__((1,2))
    1102             a12
     1108            a_1_2
    11031109
    11041110        A slice argument::
    11051111
    11061112            sage: from sage.symbolic.ring import SymbolSequence
    11071113            sage: a = SymbolSequence('a')
    11081114            sage: a.__getitem__(slice(1,4))
    1109             [a1, a2, a3]
     1115            [a_1, a_2, a_3]
    11101116
    11111117        """
    11121118        if isinstance(key, tuple):
     
    11311137            sage: from sage.symbolic.ring import SymbolSequence
    11321138            sage: a = SymbolSequence('a')
    11331139            sage: a._subscript_integer_(123)
    1134             a123
     1140            a_123
    11351141
    11361142        """
    11371143        if n < 0:
     
    11561162            sage: from sage.symbolic.ring import SymbolSequence
    11571163            sage: a = SymbolSequence('a')
    11581164            sage: a._subscript_slice_(slice(1,3))
    1159             [a1, a2]
     1165            [a_1, a_2]
    11601166
    11611167        """
    11621168        (start, step) = (s.start, s.step)
     
    11881194            sage: from sage.symbolic.ring import SymbolSequence
    11891195            sage: a = SymbolSequence('a')
    11901196            sage: a._subscript_tuple_((1,8))
    1191             a18
     1197            a_1_8
    11921198
    11931199        Nested tuples::
    11941200
    11951201            sage: a._subscript_tuple_(( (1,2), (3,(4,5,6)) ))
    1196             a123456
     1202            a_1_2_3_4_5_6
    11971203
    11981204        """
    11991205