Ticket #12334: sage-trac_12334.patch

File sage-trac_12334.patch, 15.9 KB (added by jdemeyer, 10 years ago)

Fix optional syntax in sage/interfaces/lie.py.

  • sage/interfaces/lie.py

    # HG changeset patch
    # User Michael Orlitzky <michael@orlitzky.com>
    # Date 1327366369 18000
    # Node ID 7031a3fb43466167cff3a26cb92b4d3b1160fabc
    # Parent  af53aa8200bce9d7c88fa98349dc10bb1550aae6
    Trac #12334: Fix #optional syntax in sage/interfaces/lie.py.
    
    diff --git a/sage/interfaces/lie.py b/sage/interfaces/lie.py
    a b  
    1919
    2020
    2121EXAMPLES:
    22     sage: a4 = lie('A4')  # optional -- requires lie package
    23     sage: lie.diagram('A4')          # optional
     22    sage: a4 = lie('A4')  # optional - lie
     23    sage: lie.diagram('A4')          # optional - lie
    2424    O---O---O---O
    2525    1   2   3   4   
    2626    A4
    2727
    28     sage: lie.diagram(a4)            # optional
     28    sage: lie.diagram(a4)            # optional - lie
    2929    O---O---O---O
    3030    1   2   3   4   
    3131    A4
    3232
    33     sage: a4.diagram()               # optional
     33    sage: a4.diagram()               # optional - lie
    3434    O---O---O---O
    3535    1   2   3   4   
    3636    A4
    3737
    38     sage: a4.Cartan()                # optional
     38    sage: a4.Cartan()                # optional - lie
    3939         [[ 2,-1, 0, 0]
    4040         ,[-1, 2,-1, 0]
    4141         ,[ 0,-1, 2,-1]
    4242         ,[ 0, 0,-1, 2]
    4343         ]
    44     sage: lie.LR_tensor([3,1],[2,2]) # optional
     44    sage: lie.LR_tensor([3,1],[2,2]) # optional - lie
    4545    1X[5,3]
    4646
    4747
     
    5151
    5252You can perform basic arithmetic operations in LiE.
    5353
    54     sage: lie.eval('19+68') # optional
     54    sage: lie.eval('19+68') # optional - lie
    5555    '87'
    56     sage: a = lie('1111111111*1111111111') # optional
    57     sage: a # optional
     56    sage: a = lie('1111111111*1111111111') # optional - lie
     57    sage: a # optional - lie
    5858    1234567900987654321
    59     sage: a/1111111111 # optional
     59    sage: a/1111111111 # optional - lie
    6060    1111111111
    61     sage: a = lie('345') # optional
    62     sage: a^2+3*a-5 # optional
     61    sage: a = lie('345') # optional - lie
     62    sage: a^2+3*a-5 # optional - lie
    6363    120055
    64     sage: _ / 7*a # optional
     64    sage: _ / 7*a # optional - lie
    6565    5916750
    6666
    6767Vectors in LiE are created using square brackets.  Notice that
    6868the indexing in LiE is 1-based, unlike Python/Sage which is
    69690-based.
    7070
    71     sage: v = lie('[3,2,6873,-38]') # optional
    72     sage: v # optional
     71    sage: v = lie('[3,2,6873,-38]') # optional - lie
     72    sage: v # optional - lie
    7373    [3,2,6873,-38]
    74     sage: v[3] # optional
     74    sage: v[3] # optional - lie
    7575    6873
    76     sage: v+v # optional
     76    sage: v+v # optional - lie
    7777    [6,4,13746,-76]
    78     sage: v*v # optional
     78    sage: v*v # optional - lie
    7979    47239586
    80     sage: v+234786 # optional
     80    sage: v+234786 # optional - lie
    8181    [3,2,6873,-38,234786]
    82     sage: v-3 # optional
     82    sage: v-3 # optional - lie
    8383    [3,2,-38]
    84     sage: v^v # optional
     84    sage: v^v # optional - lie
    8585    [3,2,6873,-38,3,2,6873,-38]
    8686
    8787You can also work with matrices in LiE.
    8888
    89     sage: m = lie('[[1,0,3,3],[12,4,-4,7],[-1,9,8,0],[3,-5,-2,9]]') # optional
    90     sage: m # optional
     89    sage: m = lie('[[1,0,3,3],[12,4,-4,7],[-1,9,8,0],[3,-5,-2,9]]') # optional - lie
     90    sage: m # optional - lie
    9191         [[ 1, 0, 3,3]
    9292         ,[12, 4,-4,7]
    9393         ,[-1, 9, 8,0]
    9494         ,[ 3,-5,-2,9]
    9595         ]
    96     sage: print lie.eval('*'+m._name) # optional
     96    sage: print lie.eval('*'+m._name) # optional - lie
    9797         [[1,12,-1, 3]
    9898         ,[0, 4, 9,-5]
    9999         ,[3,-4, 8,-2]
    100100         ,[3, 7, 0, 9]
    101101         ]
    102102
    103     sage: m^3 # optional
     103    sage: m^3 # optional - lie
    104104         [[ 220,   87, 81, 375]
    105105         ,[-168,-1089, 13,1013]
    106106         ,[1550,  357,-55,1593]
    107107         ,[-854, -652, 98,-170]
    108108         ]
    109     sage: v*m # optional
     109    sage: v*m # optional - lie
    110110    [-6960,62055,55061,-319]
    111     sage: m*v # optional
     111    sage: m*v # optional - lie
    112112    [20508,-27714,54999,-14089]
    113     sage: v*m*v # optional
     113    sage: v*m*v # optional - lie
    114114    378549605
    115     sage: m+v # optional
     115    sage: m+v # optional - lie
    116116         [[ 1, 0,   3,  3]
    117117         ,[12, 4,  -4,  7]
    118118         ,[-1, 9,   8,  0]
     
    120120         ,[ 3, 2,6873,-38]
    121121         ]
    122122
    123     sage: m-2 # optional
     123    sage: m-2 # optional - lie
    124124         [[ 1, 0, 3,3]
    125125         ,[-1, 9, 8,0]
    126126         ,[ 3,-5,-2,9]
     
    129129
    130130LiE handles multivariate (Laurent) polynomials.
    131131
    132     sage: lie('X[1,2]') # optional
     132    sage: lie('X[1,2]') # optional - lie
    133133    1X[1,2]
    134     sage: -3*_ # optional
     134    sage: -3*_ # optional - lie
    135135    -3X[1,2]
    136     sage: _ + lie('4X[-1,4]') # optional
     136    sage: _ + lie('4X[-1,4]') # optional - lie
    137137    4X[-1,4] - 3X[ 1,2]
    138     sage: _^2 # optional
     138    sage: _^2 # optional - lie
    139139    16X[-2,8] - 24X[ 0,6] +  9X[ 2,4]
    140     sage: lie('(4X[-1,4]-3X[1,2])*(X[2,0]-X[0,-4])') # optional
     140    sage: lie('(4X[-1,4]-3X[1,2])*(X[2,0]-X[0,-4])') # optional - lie
    141141    -4X[-1, 0] + 3X[ 1,-2] + 4X[ 1, 4] - 3X[ 3, 2]
    142     sage: _ - _ # optional
     142    sage: _ - _ # optional - lie
    143143    0X[0,0]
    144144
    145145
    146146You can call LiE's built-in functions using lie.functionname .
    147147
    148     sage: lie.partitions(6) # optional
     148    sage: lie.partitions(6) # optional - lie
    149149         [[6,0,0,0,0,0]
    150150         ,[5,1,0,0,0,0]
    151151         ,[4,2,0,0,0,0]
     
    158158         ,[2,1,1,1,1,0]
    159159         ,[1,1,1,1,1,1]
    160160         ]
    161     sage: lie.diagram('E8') # optional
     161    sage: lie.diagram('E8') # optional - lie
    162162            O 2
    163163            |
    164164            |
     
    171171a function (say f), you can call it using lie.f ; however, user-defined functions
    172172do not show up when using tab-completion.
    173173
    174     sage: lie.eval('f(int x) = 2*x') # optional
     174    sage: lie.eval('f(int x) = 2*x') # optional - lie
    175175    ''
    176     sage: lie.f(984) # optional
     176    sage: lie.f(984) # optional - lie
    177177    1968
    178     sage: lie.eval('f(int n) = a=3*n-7; if a < 0 then a = -a fi; 7^a+a^3-4*a-57') # optional
     178    sage: lie.eval('f(int n) = a=3*n-7; if a < 0 then a = -a fi; 7^a+a^3-4*a-57') # optional - lie
    179179    ''
    180     sage: lie.f(2) # optional
     180    sage: lie.f(2) # optional - lie
    181181    -53
    182     sage: lie.f(5) # optional
     182    sage: lie.f(5) # optional - lie
    183183    5765224
    184184
    185185
     
    187187LiE's help can be accessed through lie.help('functionname') where
    188188functionname is the function you want to receive help for.
    189189
    190    sage: print lie.help('diagram') # optional
     190   sage: print lie.help('diagram') # optional - lie
    191191   diagram(g).   Prints the Dynkin diagram of g, also indicating
    192192      the type of each simple component printed, and labeling the nodes as
    193193      done by Bourbaki (for the second and further simple components the
     
    204204
    205205Integers:
    206206
    207     sage: a = lie('1234') # optional
    208     sage: b = a.sage(); b # optional
     207    sage: a = lie('1234') # optional - lie
     208    sage: b = a.sage(); b # optional - lie
    209209    1234
    210     sage: type(b) # optional
     210    sage: type(b) # optional - lie
    211211    <type 'sage.rings.integer.Integer'>
    212212
    213213Vectors:
    214214
    215     sage: a = lie('[1,2,3]')# optional
    216     sage: b = a.sage(); b # optional
     215    sage: a = lie('[1,2,3]') # optional - lie
     216    sage: b = a.sage(); b # optional - lie
    217217    [1, 2, 3]
    218     sage: type(b) # optional
     218    sage: type(b) # optional - lie
    219219    <type 'list'>
    220220
    221221Matrices:
    222222
    223     sage: a = lie('[[1,2],[3,4]]') # optional
    224     sage: b = a.sage(); b # optional
     223    sage: a = lie('[[1,2],[3,4]]') # optional - lie
     224    sage: b = a.sage(); b # optional - lie
    225225    [1 2]
    226226    [3 4]
    227     sage: type(b) # optional
     227    sage: type(b) # optional - lie
    228228    <type 'sage.matrix.matrix_integer_dense.Matrix_integer_dense'>
    229229
    230230
    231231Polynomials:
    232232
    233     sage: a = lie('X[1,2] - 2*X[2,1]') # optional
    234     sage: b = a.sage(); b              # optional
     233    sage: a = lie('X[1,2] - 2*X[2,1]') # optional - lie
     234    sage: b = a.sage(); b              # optional - lie
    235235    -2*x0^2*x1 + x0*x1^2
    236     sage: type(b)                      # optional
     236    sage: type(b)                      # optional - lie
    237237    <type 'sage.rings.polynomial.multi_polynomial_libsingular.MPolynomial_libsingular'>
    238238
    239239Text:
    240240
    241     sage: a = lie('"text"') # optional
    242     sage: b = a.sage(); b # optional
     241    sage: a = lie('"text"') # optional - lie
     242    sage: b = a.sage(); b # optional - lie
    243243    'text'
    244     sage: type(b) # optional
     244    sage: type(b) # optional - lie
    245245    <type 'str'>
    246246
    247247
     
    250250which evaluates a polynomial at a point.  Below is a (roughly) direct
    251251translation of that program into Python / Sage.
    252252
    253     sage: def eval_pol(p, pt): # optional
     253    sage: def eval_pol(p, pt): # optional - lie
    254254    ...       s = 0
    255255    ...       for i in range(1,p.length().sage()+1):
    256256    ...           m = 1
     
    258258    ...               m *= pt[j]^p.expon(i)[j]
    259259    ...           s += p.coef(i)*m   
    260260    ...       return s   
    261     sage: a = lie('X[1,2]') # optional
    262     sage: b1 = lie('[1,2]') # optional
    263     sage: b2 = lie('[2,3]') # optional
    264     sage: eval_pol(a, b1) # optional
     261    sage: a = lie('X[1,2]') # optional - lie
     262    sage: b1 = lie('[1,2]') # optional - lie
     263    sage: b2 = lie('[2,3]') # optional - lie
     264    sage: eval_pol(a, b1) # optional - lie
    265265    4
    266     sage: eval_pol(a, b2) # optional
     266    sage: eval_pol(a, b2) # optional - lie
    267267    18
    268268   
    269269
     
    356356            sage: lie = LiE()
    357357            sage: lie._trait_names_list is None
    358358            True
    359             sage: lie._read_info_files(use_disk_cache=False) #optional -- requires LiE
    360             sage: lie._trait_names_list #optional
     359            sage: lie._read_info_files(use_disk_cache=False) #optional - lie
     360            sage: lie._trait_names_list # optional - lie
    361361            ['history',
    362362             'version',
    363363             ...
     
    501501    def trait_names(self, type=None, verbose=False, use_disk_cache=True):
    502502        """
    503503        EXAMPLES:
    504             sage: lie.trait_names() #optional -- requires LiE
     504            sage: lie.trait_names() # optional - lie
    505505            ['Cartan_type',
    506506             'cent_roots',
    507507             ...
     
    518518    def _an_element_impl(self):
    519519        """
    520520        EXAMPLES:
    521             sage: lie._an_element_impl() #optional -- requires LiE
     521            sage: lie._an_element_impl() # optional - lie
    522522            0
    523523        """
    524524        return self(0)
     
    530530            sage: f = open(filename, 'w')
    531531            sage: f.write('x = 2\n')
    532532            sage: f.close()
    533             sage: lie.read(filename)  #optional -- requires LiE
    534             sage: lie.get('x')        #optional
     533            sage: lie.read(filename)  # optional - lie
     534            sage: lie.get('x')        # optional - lie
    535535            '2'
    536536            sage: import os
    537537            sage: os.unlink(filename)
     
    555555    def version(self):
    556556        """
    557557        EXAMPLES:
    558             sage: lie.version() #optional -- requires LiE
     558            sage: lie.version() # optional - lie
    559559            '2.1'
    560560        """
    561561        return lie_version()
     
    598598        Returns a string of the LiE help for command.
    599599
    600600        EXAMPLES:
    601             sage: lie.help('diagram') # optional -- requires LiE
     601            sage: lie.help('diagram') # optional - lie
    602602            'diagram(g)...'
    603603        """
    604604        # return help on a given command.
     
    612612    def _eval_line(self, line, allow_use_file=True, wait_for_prompt=True, restart_if_needed=False):
    613613        """
    614614        EXAMPLES:
    615             sage: lie._eval_line('2+2') #optional -- requires LiE
     615            sage: lie._eval_line('2+2') # optional - lie
    616616            '     4'
    617             sage: lie._eval_line('diagram(2)') #optional
     617            sage: lie._eval_line('diagram(2)') # optional - lie
    618618            Traceback (most recent call last):
    619619            ...
    620620            RuntimeError: An error occurred running a LiE command:
     
    633633    def eval(self, code, strip=True, **kwds):
    634634        """
    635635        EXAMPLES:
    636             sage: lie.eval('2+2')  #optional -- requires LiE
     636            sage: lie.eval('2+2')  # optional - lie
    637637            '4'
    638638        """
    639639        s = Expect.eval(self,code, strip=True, **kwds)
     
    648648        Set the variable var to the given value.
    649649
    650650        EXAMPLES:
    651             sage: lie.set('x', '2')  #optional -- requires LiE
    652             sage: lie.get('x')       #optional
     651            sage: lie.set('x', '2')  # optional - lie
     652            sage: lie.get('x')       # optional - lie
    653653            '2'
    654654        """
    655655        cmd = '%s=%s'%(var,value)
     
    663663        Get the value of the variable var.
    664664
    665665        EXAMPLES:
    666             sage: lie.set('x', '2')  #optional -- requires LiE
    667             sage: lie.get('x')       #optional
     666            sage: lie.set('x', '2')  # optional - lie
     667            sage: lie.get('x')       # optional - lie
    668668            '2'
    669669
    670670        """
     
    684684    def function_call(self, function, args=None, kwds=None):
    685685        """
    686686        EXAMPLES:
    687             sage: lie.function_call("diagram", args=['A4'])  #optional -- requires LiE
     687            sage: lie.function_call("diagram", args=['A4']) # optional - lie
    688688            O---O---O---O
    689689            1   2   3   4   
    690690            A4
     
    713713        Returns the possible tab completions for self.
    714714
    715715        EXAMPLES:
    716             sage: a4 = lie('A4')   #optional -- requires LiE
    717             sage: a4.trait_names() #optional
     716            sage: a4 = lie('A4')   # optional - lie
     717            sage: a4.trait_names() # optional - lie
    718718            ['center',
    719719             'diagram',
    720720             ...
     
    726726    def type(self):
    727727        """       
    728728        EXAMPLES:
    729             sage: m = lie('[[1,0,3,3],[12,4,-4,7],[-1,9,8,0],[3,-5,-2,9]]') # optional
    730             sage: m.type() #optional
     729            sage: m = lie('[[1,0,3,3],[12,4,-4,7],[-1,9,8,0],[3,-5,-2,9]]') # optional - lie
     730            sage: m.type() # optional - lie
    731731            'mat'
    732732        """
    733733        t = self.parent().eval('type(%s)'%self._name)
     
    737737    def _matrix_(self, R=None):
    738738        """
    739739        EXAMPLES:
    740             sage: m = lie('[[1,0,3,3],[12,4,-4,7],[-1,9,8,0],[3,-5,-2,9]]') # optional
    741             sage: matrix(m)  #optional
     740            sage: m = lie('[[1,0,3,3],[12,4,-4,7],[-1,9,8,0],[3,-5,-2,9]]') # optional - lie
     741            sage: matrix(m)  # optional - lie
    742742            [ 1  0  3  3]
    743743            [12  4 -4  7]
    744744            [-1  9  8  0]
    745745            [ 3 -5 -2  9]
    746             sage: matrix(RDF, m) #optional
     746            sage: matrix(RDF, m) # optional - lie
    747747            [ 1.0  0.0  3.0  3.0]
    748748            [12.0  4.0 -4.0  7.0]
    749749            [-1.0  9.0  8.0  0.0]
     
    762762    def _sage_(self):
    763763        """
    764764        EXAMPLES:
    765             sage: m = lie('[[1,0,3,3],[12,4,-4,7],[-1,9,8,0],[3,-5,-2,9]]') # optional
    766             sage: m.sage()  #optional
     765            sage: m = lie('[[1,0,3,3],[12,4,-4,7],[-1,9,8,0],[3,-5,-2,9]]') # optional - lie
     766            sage: m.sage()  # optional - lie
    767767            [ 1  0  3  3]
    768768            [12  4 -4  7]
    769769            [-1  9  8  0]
     
    824824    def _sage_doc_(self):
    825825        """
    826826        EXAMPLES:
    827             sage: a4 = lie('A4')  # optional -- requires lie package
    828             sage: a4.diagram._sage_doc_() #optional
     827            sage: a4 = lie('A4')  # optional - lie
     828            sage: a4.diagram._sage_doc_() # optional - lie
    829829            'diagram(g)...'
    830830        """
    831831        M = self._obj.parent()
     
    838838        Returns the help for self.
    839839
    840840        EXAMPLES:
    841             sage: lie.diagram._sage_doc_() #optional -- requires LiE
     841            sage: lie.diagram._sage_doc_() # optional - lie
    842842            'diagram(g)...'
    843843        """
    844844        M = self._parent
     
    850850    """
    851851    EXAMPLES:
    852852        sage: from sage.interfaces.lie import is_LiEElement
    853         sage: l = lie(2) #optional -- requires LiE
    854         sage: is_LiEElement(l) #optional -- requires LiE
     853        sage: l = lie(2) # optional - lie
     854        sage: is_LiEElement(l) # optional - lie
    855855        True
    856856        sage: is_LiEElement(2)
    857857        False
     
    891891    """
    892892    EXAMPLES:
    893893        sage: from sage.interfaces.lie import lie_version
    894         sage: lie_version() #optional -- requires LiE
     894        sage: lie_version() # optional - lie
    895895        '2.1'
    896896    """
    897897    f = open(SAGE_LOCAL + 'lib/lie/INFO.0')