Ticket #14184: 14184_optional.patch

File 14184_optional.patch, 103.1 KB (added by jdemeyer, 7 years ago)
  • doc/de/tutorial/interfaces.rst

    # HG changeset patch
    # User Jeroen Demeyer <jdemeyer@cage.ugent.be>
    # Date 1361957573 -3600
    # Node ID 61eb27ccc8c70911bf7fa464028c2c26f7045726
    # Parent  5bd25dfa55f94c516a883b431a7e5ac054a2267d
    Fix # optional tags
    
    diff --git a/doc/de/tutorial/interfaces.rst b/doc/de/tutorial/interfaces.rst
    a b  
    160160    Group( [ (1,2,3)(4,5), (3,4) ] )
    161161    sage: G.Center()
    162162    Group( () )
    163     sage: G.IdGroup()    # requires optional database_gap package
     163    sage: G.IdGroup()    # optional - database_gap
    164164    [ 120, 34 ]
    165165    sage: G.Order()
    166166    120
     
    173173    sage: G = PermutationGroup([[(1,2,3),(4,5)],[(3,4)]])
    174174    sage: G.center()
    175175    Subgroup of (Permutation Group with generators [(3,4), (1,2,3)(4,5)]) generated by [()]
    176     sage: G.group_id()    # requires optional database_gap package
     176    sage: G.group_id()    # optional - database_gap
    177177    [120, 34]
    178178    sage: n = G.order(); n
    179179    120
  • doc/en/bordeaux_2008/modular_forms_and_hecke_operators.rst

    diff --git a/doc/en/bordeaux_2008/modular_forms_and_hecke_operators.rst b/doc/en/bordeaux_2008/modular_forms_and_hecke_operators.rst
    a b  
    166166    11156973844800
    167167    sage: a = [dimension_cusp_forms(Gamma0(N),2) for N in [1..25]]; a
    168168    [0, 0, ..., 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 2, 2, 1, 0]
    169     sage: sloane_find(a)      #optional -- requires internet
     169    sage: sloane_find(a)      # optional - internet
    170170    Searching Sloane's online database...
    171171    [[1617,
    172172      'Genus of modular group GAMMA_0 (n). Or, genus of
  • doc/en/constructions/groups.rst

    diff --git a/doc/en/constructions/groups.rst b/doc/en/constructions/groups.rst
    a b  
    261261    sage: G = PermutationGroup(['(1,2,3)(4,5)', '(3,4)'])
    262262    sage: G.order()
    263263    120
    264     sage: G.group_id()      # requires optional GAP database package
     264    sage: G.group_id()      # optional - database_gap
    265265    [120, 34]
    266266
    267267Another example of using the small groups database: ``group_id``
  • doc/en/constructions/interface_issues.rst

    diff --git a/doc/en/constructions/interface_issues.rst b/doc/en/constructions/interface_issues.rst
    a b  
    498498
    499499::
    500500
    501     sage: octave("atanh(1.1)")   ## requires optional octave
     501    sage: octave("atanh(1.1)")   ## optional - octave
    502502    (1.52226,-1.5708)
    503503
    504504Here's an example using Sage's interface to ``pari``'s special
  • doc/en/constructions/linear_algebra.rst

    diff --git a/doc/en/constructions/linear_algebra.rst b/doc/en/constructions/linear_algebra.rst
    a b  
    462462    sage: A   = M33([1,2,3,4,5,6,7,8,0])
    463463    sage: V3  = VectorSpace(QQ,3)
    464464    sage: b   = V3([1,2,3])
    465     sage: octave.solve_linear_system(A,b)    # requires optional octave
     465    sage: octave.solve_linear_system(A,b)    # optional - octave
    466466    [-0.33333299999999999, 0.66666700000000001, 0]
  • doc/en/constructions/number_fields.rst

    diff --git a/doc/en/constructions/number_fields.rst b/doc/en/constructions/number_fields.rst
    a b  
    1818
    1919::
    2020
    21     sage: J = JonesDatabase()            # requires optional database
    22     sage: J                              # requires optional database
     21    sage: J = JonesDatabase()            # optional - database
     22    sage: J                              # optional - database
    2323    John Jones's table of number fields with bounded ramification and degree <= 6
    2424
    2525.. index::
     
    3232
    3333::
    3434
    35     sage: [(k.degree(), k.disc()) for k in J.unramified_outside([2])] # requires optional database
     35    sage: [(k.degree(), k.disc()) for k in J.unramified_outside([2])] # optional - database
    3636    [(4, -2048), (2, 8), (4, -1024), (1, 1), (4, 256), (2, -4), (4, 2048), (4, 512), (4, 2048), (2, -8), (4, 2048)]
    3737
    3838List the discriminants of the fields of degree exactly 2 unramified
     
    4242
    4343::
    4444
    45     sage: [k.disc() for k in J.unramified_outside([2],2)] # requires optional database
     45    sage: [k.disc() for k in J.unramified_outside([2],2)] # optional - database
    4646    [8, -4, -8]
    4747
    4848List the discriminants of cubic field in the database ramified
     
    5252
    5353::
    5454
    55     sage: [k.disc() for k in J.ramified_at([3,5],3)] # requires optional database
     55    sage: [k.disc() for k in J.ramified_at([3,5],3)] # optional - database
    5656    [-6075, -6075, -675, -135]
    5757    sage: factor(6075)
    5858    3^5 * 5^2
     
    6767
    6868::
    6969
    70     sage: J.ramified_at(101)                     # requires optional database     
     70    sage: J.ramified_at(101)                     # optional - database
    7171    [Number Field in a with defining polynomial x^2 - 101,
    7272     Number Field in a with defining polynomial x^4 - x^3 + 13*x^2 - 19*x + 361,
    7373     Number Field in a with defining polynomial x^5 - x^4 - 40*x^3 - 93*x^2 - 21*x + 17,
  • doc/en/developer/coding_in_other.rst

    diff --git a/doc/en/developer/coding_in_other.rst b/doc/en/developer/coding_in_other.rst
    a b  
    710710                sage: A   = M33([1,2,3,4,5,6,7,8,0])
    711711                sage: V3  = VectorSpace(QQ,3)
    712712                sage: b   = V3([1,2,3])
    713                 sage: octave.solve_linear_system(A,b)    # requires optional octave
     713                sage: octave.solve_linear_system(A,b)    # optional - octave
    714714                [-0.33333299999999999, 0.66666700000000001, -3.5236600000000002e-18]
    715715
    716716            AUTHOR: David Joyner and William Stein
  • doc/en/tutorial/interfaces.rst

    diff --git a/doc/en/tutorial/interfaces.rst b/doc/en/tutorial/interfaces.rst
    a b  
    158158    Group( [ (1,2,3)(4,5), (3,4) ] )
    159159    sage: G.Center()
    160160    Group( () )
    161     sage: G.IdGroup()    # requires optional database_gap package
     161    sage: G.IdGroup()    # optional - database_gap
    162162    [ 120, 34 ]
    163163    sage: G.Order()
    164164    120
     
    171171    sage: G = PermutationGroup([[(1,2,3),(4,5)],[(3,4)]])
    172172    sage: G.center()
    173173    Subgroup of (Permutation Group with generators [(3,4), (1,2,3)(4,5)]) generated by [()]
    174     sage: G.group_id()     # requires optional database_gap package
     174    sage: G.group_id()     # optional - database_gap
    175175    [120, 34]
    176176    sage: n = G.order(); n
    177177    120
  • doc/ru/tutorial/interfaces.rst

    diff --git a/doc/ru/tutorial/interfaces.rst b/doc/ru/tutorial/interfaces.rst
    a b  
    153153    Group( [ (1,2,3)(4,5), (3,4) ] )
    154154    sage: G.Center()
    155155    Group( () )
    156     sage: G.IdGroup()    # requires optional database_gap package
     156    sage: G.IdGroup()    # optional - database_gap
    157157    [ 120, 34 ]
    158158    sage: G.Order()
    159159    120
     
    166166    sage: G = PermutationGroup([[(1,2,3),(4,5)],[(3,4)]])
    167167    sage: G.center()
    168168    Subgroup of (Permutation Group with generators [(3,4), (1,2,3)(4,5)]) generated by [()]
    169     sage: G.group_id()     # requires optional database_gap package
     169    sage: G.group_id()     # optional - database_gap
    170170    [120, 34]
    171171    sage: n = G.order(); n
    172172    120
  • sage/calculus/calculus.py

    diff --git a/sage/calculus/calculus.py b/sage/calculus/calculus.py
    a b  
    537537
    538538    This summation only Mathematica can perform::
    539539
    540         sage: symbolic_sum(1/(1+k^2), k, -oo, oo, algorithm = 'mathematica')     # optional  -- requires mathematica
     540        sage: symbolic_sum(1/(1+k^2), k, -oo, oo, algorithm = 'mathematica')     # optional - mathematica
    541541        pi*coth(pi)
    542542
    543543    An example of this summation with Giac::
    544544
    545         sage: symbolic_sum(1/(1+k^2), k, -oo, oo, algorithm = 'giac')           # optional -- requires giac
     545        sage: symbolic_sum(1/(1+k^2), k, -oo, oo, algorithm = 'giac')           # optional - giac
    546546        -(pi*e^(-2*pi) - pi*e^(2*pi))/(e^(-2*pi) + e^(2*pi) - 2)
    547547
    548548    Use Maple as a backend for summation::
    549549
    550         sage: symbolic_sum(binomial(n,k)*x^k, k, 0, n, algorithm = 'maple')      # optional  -- requires maple
     550        sage: symbolic_sum(binomial(n,k)*x^k, k, 0, n, algorithm = 'maple')      # optional - maple
    551551        (x + 1)^n
    552552
    553553    TESTS:
  • sage/categories/finite_permutation_groups.py

    diff --git a/sage/categories/finite_permutation_groups.py b/sage/categories/finite_permutation_groups.py
    a b  
    152152                sage: 60 * AlternatingGroup(5).cycle_index()
    153153                p[1, 1, 1, 1, 1] + 15*p[2, 2, 1] + 20*p[3, 1, 1] + 24*p[5]
    154154
    155                 sage: for G in TransitiveGroups(5):               # requires optional database_gap # long time
     155                sage: for G in TransitiveGroups(5):               # optional - database_gap # long time
    156156                ...       G.cardinality() * G.cycle_index()
    157157                p[1, 1, 1, 1, 1] + 4*p[5]
    158158                p[1, 1, 1, 1, 1] + 5*p[2, 2, 1] + 4*p[5]
  • sage/coding/code_bounds.py

    diff --git a/sage/coding/code_bounds.py b/sage/coding/code_bounds.py
    a b  
    210210    EXAMPLES::
    211211        sage: codesize_upper_bound(10,3,2)
    212212        93
    213         sage: codesize_upper_bound(10,3,2,algorithm="gap")  # requires optional GAP package Guava
     213        sage: codesize_upper_bound(10,3,2,algorithm="gap")  # optional - gap_packages (Guava package)
    214214        85
    215215
    216216    """
     
    275275    EXAMPLES::
    276276        sage: plotkin_upper_bound(10,2,3)
    277277        192
    278         sage: plotkin_upper_bound(10,2,3,algorithm="gap")  # requires optional GAP package Guava
     278        sage: plotkin_upper_bound(10,2,3,algorithm="gap")  # optional - gap_packages (Guava package)
    279279        192
    280280    """
    281281    if algorithm=="gap":
     
    306306    EXAMPLES::
    307307        sage: griesmer_upper_bound(10,2,3)
    308308        128
    309         sage: griesmer_upper_bound(10,2,3,algorithm="gap")  # requires optional GAP package Guava
     309        sage: griesmer_upper_bound(10,2,3,algorithm="gap")  # optional - gap_packages (Guava package)
    310310        128
    311311    """
    312312    if algorithm=="gap":
     
    341341   
    342342        sage: elias_upper_bound(10,2,3)
    343343        232
    344         sage: elias_upper_bound(10,2,3,algorithm="gap")  # requires optional GAP package Guava
     344        sage: elias_upper_bound(10,2,3,algorithm="gap")  # optional - gap_packages (Guava package)
    345345        232
    346346
    347347    """
  • sage/coding/guava.py

    diff --git a/sage/coding/guava.py b/sage/coding/guava.py
    a b  
    5050        Returns the binary 'Reed-Muller code' with dimension k and order r.
    5151   
    5252    EXAMPLE::
    53         sage: C = BinaryReedMullerCode(2,4); C  # requires optional package
     53        sage: C = BinaryReedMullerCode(2,4); C  # optional - gap_packages (Guava package)
    5454        Linear code of length 16, dimension 11 over Finite Field of size 2
    55         sage: C.minimum_distance()              # requires optional package
     55        sage: C.minimum_distance()              # optional - gap_packages (Guava package)
    5656        4
    57         sage: C.gen_mat()                       # requires optional package
     57        sage: C.gen_mat()                       # optional - gap_packages (Guava package)
    5858        [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
    5959        [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]
    6060        [0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1]
     
    9494        Returns a QQR code of length 2p.
    9595   
    9696    EXAMPLES::
    97         sage: C = QuasiQuadraticResidueCode(11); C   # requires optional package
     97        sage: C = QuasiQuadraticResidueCode(11); C   # optional - gap_packages (Guava package)
    9898        Linear code of length 22, dimension 11 over Finite Field of size 2
    9999
    100100    REFERENCES:
     
    133133        Returns a "random" linear code with length n, dimension k over field F.
    134134
    135135    EXAMPLES::
    136         sage: C = RandomLinearCodeGuava(30,15,GF(2)); C      # requires optional package
     136        sage: C = RandomLinearCodeGuava(30,15,GF(2)); C      # optional - gap_packages (Guava package)
    137137        Linear code of length 30, dimension 15 over Finite Field of size 2
    138         sage: C = RandomLinearCodeGuava(10,5,GF(4,'a')); C      # requires optional package
     138        sage: C = RandomLinearCodeGuava(10,5,GF(4,'a')); C      # optional - gap_packages (Guava package)
    139139        Linear code of length 10, dimension 5 over Finite Field in a of size 2^2
    140140
    141141    AUTHOR: David Joyner (11-2005)
  • sage/coding/linear_code.py

    diff --git a/sage/coding/linear_code.py b/sage/coding/linear_code.py
    a b  
    369369
    370370        This output is different but still a minimum weight vector:
    371371
    372         sage: sage.coding.linear_code.min_wt_vec_gap(Gstr,7,4,GF(2),algorithm="guava")    # requires optional GAP package Guava
     372        sage: sage.coding.linear_code.min_wt_vec_gap(Gstr,7,4,GF(2),algorithm="guava")    # optional - gap_packages (Guava package)
    373373        (0, 0, 1, 0, 1, 1, 0)
    374374
    375375    Here ``Gstr`` is a generator matrix of the Hamming [7,4,3] binary code.
     
    418418
    419419    EXAMPLES::
    420420
    421         sage: best_known_linear_code(10,5,GF(2))    # long time and requires optional GAP package Guava
     421        sage: best_known_linear_code(10,5,GF(2))    # long time; optional - gap_packages (Guava package)
    422422        Linear code of length 10, dimension 5 over Finite Field of size 2
    423         sage: gap.eval("C:=BestKnownLinearCode(10,5,GF(2))")     # long time and requires optional GAP package Guava
     423        sage: gap.eval("C:=BestKnownLinearCode(10,5,GF(2))")     # long time; optional - gap_packages (Guava package)
    424424        'a linear [10,5,4]2..4 shortened code'
    425425
    426426    This means that best possible binary linear code of length 10 and
     
    461461
    462462    EXAMPLES::
    463463
    464         sage: L = best_known_linear_code_www(72, 36, GF(2)) # requires internet, optional
    465         sage: print L                                       # requires internet, optional
     464        sage: L = best_known_linear_code_www(72, 36, GF(2)) # optional - internet
     465        sage: print L                                       # optional - internet
    466466        Construction of a linear code
    467467        [72,36,15] over GF(2):
    468468        [1]:  [73, 36, 16] Cyclic Linear Code over GF(2)
     
    12411241        EXAMPLES::
    12421242
    12431243            sage: C = HammingCode(5,GF(2))
    1244             sage: C.covering_radius()  # requires optional GAP package Guava
     1244            sage: C.covering_radius()  # optional - gap_packages (Guava package)
    12451245            1
    12461246        """
    12471247        F = self.base_ring()
     
    12841284            (1, 1, 0, 1, 0, 0, 1)
    12851285            sage: C.decode(v1,algorithm="nearest neighbor")
    12861286            (1, 1, 0, 1, 0, 0, 1)
    1287             sage: C.decode(v1,algorithm="guava")  # requires optional GAP package Guava
     1287            sage: C.decode(v1,algorithm="guava")  # optional - gap_packages (Guava package)
    12881288            (1, 1, 0, 1, 0, 0, 1)
    12891289            sage: v2 = matrix([[a,a,F(0),a,a,F(0),a]])
    12901290            sage: C.decode(v2)
     
    13051305            (1, 0, 1, 1, 1)
    13061306            sage: C.decode(v, algorithm="nearest neighbor")
    13071307            (1, 0, 1, 1, 1)
    1308             sage: C.decode(v, algorithm="guava")  # requires optional GAP package Guava
     1308            sage: C.decode(v, algorithm="guava")  # optional - gap_packages (Guava package)
    13091309            (1, 0, 1, 1, 1)
    13101310
    13111311        Does not work for very long codes since the syndrome table grows too
     
    18521852            sage: C = HammingCode(3,GF(2))
    18531853            sage: C.is_self_orthogonal()
    18541854            False
    1855             sage: C = QuasiQuadraticResidueCode(11)  # requires optional GAP package Guava
    1856             sage: C.is_self_orthogonal()             # requires optional GAP package Guava
     1855            sage: C = QuasiQuadraticResidueCode(11)  # optional - gap_packages (Guava package)
     1856            sage: C.is_self_orthogonal()             # optional - gap_packages (Guava package)
    18571857            True
    18581858        """
    18591859        return self.is_subcode(self.dual_code())
     
    20102010
    20112011            sage: C.minimum_distance(algorithm="gap")
    20122012            3
    2013             sage: C.minimum_distance(algorithm="guava")  # requires optional GAP package Guava
     2013            sage: C.minimum_distance(algorithm="guava")  # optional - gap_packages (Guava package)
    20142014            3
    20152015
    20162016        Another example.::
     
    21672167            Linear code of length 5, dimension 3 over Finite Field in z of size 2^2
    21682168            sage: C.permutation_automorphism_group(algorithm="partition")
    21692169            Permutation Group with generators [(1,3)(4,5), (1,4)(3,5)]
    2170             sage: C.permutation_automorphism_group(algorithm="gap")  # requires optional GAP package Guava
     2170            sage: C.permutation_automorphism_group(algorithm="gap")  # optional - gap_packages (Guava package)
    21712171            Permutation Group with generators [(1,3)(4,5), (1,4)(3,5)]
    21722172            sage: C = TernaryGolayCode()
    2173             sage: C.permutation_automorphism_group(algorithm="gap")  # requires optional GAP package Guava
     2173            sage: C.permutation_automorphism_group(algorithm="gap")  # optional - gap_packages (Guava package)
    21742174            Permutation Group with generators [(3,4)(5,7)(6,9)(8,11), (3,5,8)(4,11,7)(6,9,10), (2,3)(4,6)(5,8)(7,10), (1,2)(4,11)(5,8)(9,10)]
    21752175
    21762176        However, the option ``algorithm="gap+verbose"``, will print out::
     
    26302630            [1, 0, 0, 30, 15, 18]
    26312631            sage: C = HammingCode(3,GF(2)); C
    26322632            Linear code of length 7, dimension 4 over Finite Field of size 2
    2633             sage: C.spectrum(algorithm="leon")   # requires optional GAP package Guava
     2633            sage: C.spectrum(algorithm="leon")   # optional - gap_packages (Guava package)
    26342634            [1, 0, 0, 7, 7, 0, 0, 1]
    26352635            sage: C.spectrum(algorithm="gap")
    26362636            [1, 0, 0, 7, 7, 0, 0, 1]
     
    26382638            [1, 0, 0, 7, 7, 0, 0, 1]
    26392639            sage: C = HammingCode(3,GF(3)); C
    26402640            Linear code of length 13, dimension 10 over Finite Field of size 3
    2641             sage: C.spectrum() == C.spectrum(algorithm="leon")   # requires optional GAP package Guava
     2641            sage: C.spectrum() == C.spectrum(algorithm="leon")   # optional - gap_packages (Guava package)
    26422642            True
    26432643            sage: C = HammingCode(2,GF(5)); C
    26442644            Linear code of length 6, dimension 4 over Finite Field of size 5
    2645             sage: C.spectrum() == C.spectrum(algorithm="leon")   # requires optional GAP package Guava
     2645            sage: C.spectrum() == C.spectrum(algorithm="leon")   # optional - gap_packages (Guava package)
    26462646            True
    26472647            sage: C = HammingCode(2,GF(7)); C
    26482648            Linear code of length 8, dimension 6 over Finite Field of size 7
    2649             sage: C.spectrum() == C.spectrum(algorithm="leon")   # requires optional GAP package Guava
     2649            sage: C.spectrum() == C.spectrum(algorithm="leon")   # optional - gap_packages (Guava package)
    26502650            True
    26512651
    26522652        """
     
    28202820            sage: C = HammingCode(3,GF(2))
    28212821            sage: C.zeta_polynomial()
    28222822            2/5*T^2 + 2/5*T + 1/5
    2823             sage: C = best_known_linear_code(6,3,GF(2))  # requires optional GAP package Guava
    2824             sage: C.minimum_distance()                   # requires optional GAP package Guava
     2823            sage: C = best_known_linear_code(6,3,GF(2))  # optional - gap_packages (Guava package)
     2824            sage: C.minimum_distance()                   # optional - gap_packages (Guava package)
    28252825            3
    2826             sage: C.zeta_polynomial()                    # requires optional GAP package Guava
     2826            sage: C.zeta_polynomial()                    # optional - gap_packages (Guava package)
    28272827            2/5*T^2 + 2/5*T + 1/5
    28282828            sage: C = HammingCode(4,GF(2))
    28292829            sage: C.zeta_polynomial()
  • sage/combinat/designs/block_design.py

    diff --git a/sage/combinat/designs/block_design.py b/sage/combinat/designs/block_design.py
    a b  
    8989   
    9090        sage: ProjectiveGeometryDesign(2, 1, GF(2))
    9191        Incidence structure with 7 points and 7 blocks
    92         sage: BD = ProjectiveGeometryDesign(2, 1, GF(2), algorithm="gap") # requires optional gap package 'design'
    93         sage: BD.is_block_design()                                     # requires optional gap package 'design'
     92        sage: BD = ProjectiveGeometryDesign(2, 1, GF(2), algorithm="gap") # optional - gap_packages (design package)
     93        sage: BD.is_block_design()                                     # optional - gap_packages (design package)
    9494        (True, [2, 7, 3, 1])
    9595    """
    9696    q = F.order()
     
    183183   
    184184    EXAMPLES::
    185185   
    186         sage: BD = WittDesign(9)   # requires optional gap package 'design'
    187         sage: BD.parameters()      # requires optional gap package 'design'
     186        sage: BD = WittDesign(9)   # optional - gap_packages (design package)
     187        sage: BD.parameters()      # optional - gap_packages (design package)
    188188        (2, 9, 3, 1)
    189         sage: BD                   # requires optional gap package 'design'
     189        sage: BD                   # optional - gap_packages (design package)
    190190        Incidence structure with 9 points and 12 blocks
    191         sage: print BD             # requires optional gap package 'design'
     191        sage: print BD             # optional - gap_packages (design package)
    192192        WittDesign<points=[0, 1, 2, 3, 4, 5, 6, 7, 8], blocks=[[0, 1, 7], [0, 2, 5], [0, 3, 4], [0, 6, 8], [1, 2, 6], [1, 3, 5], [1, 4, 8], [2, 3, 8], [2, 4, 7], [3, 6, 7], [4, 5, 6], [5, 7, 8]]>
    193         sage: BD = WittDesign(12)  # requires optional gap package 'design'
    194         sage: BD.parameters(t=5)   # requires optional gap package 'design'
     193        sage: BD = WittDesign(12)  # optional - gap_packages (design package)
     194        sage: BD.parameters(t=5)   # optional - gap_packages (design package)
    195195        (5, 12, 6, 1)
    196196    """
    197197    from sage.interfaces.gap import gap, GapElement
  • sage/combinat/designs/covering_design.py

    diff --git a/sage/combinat/designs/covering_design.py b/sage/combinat/designs/covering_design.py
    a b  
    443443        CoveringDesign -- (v,k,t) covering design with smallest number of blocks
    444444
    445445    EXAMPLES:
    446         sage: C = best_known_covering_design_www(7, 3, 2)   # optional -- requires internet
    447         sage: print C                                       # optional -- requires internet
     446        sage: C = best_known_covering_design_www(7, 3, 2)   # optional - internet
     447        sage: print C                                       # optional - internet
    448448        C(7,3,2) = 7
    449449        Method: lex covering
    450450        Submitted on: 1996-12-01 00:00:00
  • sage/combinat/designs/ext_rep.py

    diff --git a/sage/combinat/designs/ext_rep.py b/sage/combinat/designs/ext_rep.py
    a b  
    550550        sage: os.remove(file_loc)
    551551
    552552        sage: from sage.combinat.designs import ext_rep
    553         sage: s = ext_rep.designs_from_XML_url("http://designtheory.org/database/v-b-k/v3-b6-k2.icgsa.txt.bz2") # optional - requires internet
     553        sage: s = ext_rep.designs_from_XML_url("http://designtheory.org/database/v-b-k/v3-b6-k2.icgsa.txt.bz2") # optional - internet
    554554    """
    555555
    556556    f = urllib2.urlopen(url)
     
    10371037        sage: os.remove(file_loc)
    10381038
    10391039        sage: from sage.combinat.designs import ext_rep
    1040         sage: ext_rep.designs_from_XML_url("http://designtheory.org/database/v-b-k/v3-b6-k2.icgsa.txt.bz2") # optional - requires internet
     1040        sage: ext_rep.designs_from_XML_url("http://designtheory.org/database/v-b-k/v3-b6-k2.icgsa.txt.bz2") # optional - internet
    10411041        [(3, [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 2]]),
    10421042         (3, [[0, 1], [0, 1], [0, 1], [0, 1], [0, 2], [0, 2]]),
    10431043         (3, [[0, 1], [0, 1], [0, 1], [0, 1], [0, 2], [1, 2]]),
  • sage/combinat/designs/incidence_structures.py

    diff --git a/sage/combinat/designs/incidence_structures.py b/sage/combinat/designs/incidence_structures.py
    a b  
    503503            (True, [2, 7, 3, 1])
    504504            sage: BD.block_design_checker(2, 7, 3, 1)
    505505            True
    506             sage: BD = WittDesign(9)        # requires optional gap package 'design'
    507             sage: BD.is_block_design()      # requires optional gap package 'design'
     506            sage: BD = WittDesign(9)        # optional - gap_packages (design package)
     507            sage: BD.is_block_design()      # optional - gap_packages (design package)
    508508            (True, [2, 9, 3, 1])
    509             sage: BD = WittDesign(12)       # requires optional gap package 'design'
    510             sage: BD.is_block_design()      # requires optional gap package 'design'
     509            sage: BD = WittDesign(12)       # optional - gap_packages (design package)
     510            sage: BD.is_block_design()      # optional - gap_packages (design package)
    511511            (True, [5, 12, 6, 1])
    512512            sage: BD = AffineGeometryDesign(3, 1, GF(2))
    513513            sage: BD.is_block_design()
     
    601601       
    602602            sage: from sage.combinat.designs.block_design import BlockDesign
    603603            sage: BD = BlockDesign(7,[[0,1,2],[0,3,4],[0,5,6],[1,3,5],[1,4,6],[2,3,6],[2,4,5]])
    604             sage: BD.points_from_gap()      # requires optional gap package 'design'
     604            sage: BD.points_from_gap()      # optional - gap_packages (design package)
    605605            [1, 2, 3, 4, 5, 6, 7]
    606606        """
    607607        from sage.interfaces.gap import gap, GapElement
  • sage/combinat/matrices/hadamard_matrix.py

    diff --git a/sage/combinat/matrices/hadamard_matrix.py b/sage/combinat/matrices/hadamard_matrix.py
    a b  
    176176    file is printed if it exists. Otherwise nothing is done.
    177177
    178178    EXAMPLES::
    179         sage: hadamard_matrix_www("had.4.txt")             # requires internet, optional
     179        sage: hadamard_matrix_www("had.4.txt")             # optional - internet
    180180        [ 1  1  1  1]
    181181        [ 1 -1  1 -1]
    182182        [ 1  1 -1 -1]
    183183        [ 1 -1 -1  1]
    184         sage: hadamard_matrix_www("had.16.2.txt",comments=True)   # requires internet, optional
     184        sage: hadamard_matrix_www("had.16.2.txt",comments=True)   # optional - internet
    185185        Automorphism group has order = 49152 = 2^14 * 3
    186186        [ 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1]
    187187        [ 1 -1  1 -1  1 -1  1 -1  1 -1  1 -1  1 -1  1 -1]
  • sage/combinat/sloane_functions.py

    diff --git a/sage/combinat/sloane_functions.py b/sage/combinat/sloane_functions.py
    a b  
    4949
    5050    We agree with the online database::
    5151
    52     sage: for t in sloane.trait_names(): # long time optional, requires internet
     52    sage: for t in sloane.trait_names(): # long time; optional - internet
    5353    ...       online_list = sloane_sequence(ZZ(t[1:].lstrip('0')), verbose = False)[2]
    5454    ...       L = max(2, len(online_list) // 2)
    5555    ...       sage_list = sloane.__getattribute__(t).list(L)
     
    360360       
    361361            sage: sloane.A000001._eval(4)
    362362            2
    363             sage: sloane.A000001._eval(51) #optional requires database_gap
     363            sage: sloane.A000001._eval(51) # optional - database_gap
    364364        """
    365365        if n <= 50:
    366366            return self._small[n-1]
  • sage/combinat/tiling.py

    diff --git a/sage/combinat/tiling.py b/sage/combinat/tiling.py
    a b  
    16461646
    16471647        ::
    16481648
    1649             sage: a.show()                 # optional - requires convert command
     1649            sage: a.show()                 # optional -- ImageMagick
    16501650
    16511651        The ``show`` function takes arguments to specify the delay between
    16521652        frames (measured in hundredths of a second, default value 20) and
  • sage/combinat/words/paths.py

    diff --git a/sage/combinat/words/paths.py b/sage/combinat/words/paths.py
    a b  
    15941594            sage: p = P('aaababbb')
    15951595            sage: a = p.animate(); a
    15961596            Animation with 9 frames
    1597             sage: show(a)       # optional -- requires convert command
     1597            sage: show(a)       # optional -- ImageMagick
    15981598            sage: a.gif(delay=35, iterations=3)       # optional
    15991599
    16001600        ::
  • sage/databases/db_modular_polynomials.py

    diff --git a/sage/databases/db_modular_polynomials.py b/sage/databases/db_modular_polynomials.py
    a b  
    6464        there is no such polynomial in the database.
    6565       
    6666        EXAMPLES:
    67             sage: DBMP = ClassicalModularPolynomialDatabase()  #optional requires database_hohel
     67            sage: DBMP = ClassicalModularPolynomialDatabase()  # optional - database_kohel
    6868            sage: f = DBMP[29]                                 #optional
    6969            sage: f.degree()                                   #optional
    7070            58
  • sage/databases/lincodes.py

    diff --git a/sage/databases/lincodes.py b/sage/databases/lincodes.py
    a b  
    5858
    5959##     EXAMPLES:
    6060##     To find lower and upper bounds for values q=7, n=32, k=8, type
    61 ##         sage: lower, upper, text = linear_code_bound(7, 32, 8)     # optional -- needs internet
     61##         sage: lower, upper, text = linear_code_bound(7, 32, 8)     # optional - internet
    6262##         sage: lower                   # optional
    6363##         19
    6464##         sage: upper                   # optional
     
    6767##         'Lb(32,8) = 19 DG4\n\nUb(32,8) = 21 follows by a one-step Griesmer bound from:\nUb(10,7) = 3 is found by considering shortening to:\nUb(9,6) = 3 is found by construction B:\n[consider deleting the (at most) 6 coordinates of a word in the dual]'
    6868
    6969##     When bounds are not known the upper and lower returned bounds are -1:
    70 ##         sage: linear_code_bound(9, 32, 200)          # optional -- needs internet
     70##         sage: linear_code_bound(9, 32, 200)          # optional - internet
    7171##         (-1, -1, '(error executing -why-)')
    7272       
    7373##     This function raises an IOError if an error occurs downloading
  • sage/geometry/polyhedron/base.py

    diff --git a/sage/geometry/polyhedron/base.py b/sage/geometry/polyhedron/base.py
    a b  
    31113111
    31123112        EXAMPLES::
    31133113
    3114             sage: polytopes.n_cube(3).lrs_volume() #optional, needs lrs package installed
     3114            sage: polytopes.n_cube(3).lrs_volume() # optional - lrs
    31153115            8.0
    3116             sage: (polytopes.n_cube(3)*2).lrs_volume() #optional, needs lrs package installed
     3116            sage: (polytopes.n_cube(3)*2).lrs_volume() # optional - lrs
    31173117            64.0
    3118             sage: polytopes.twenty_four_cell().lrs_volume() #optional, needs lrs package installed
     3118            sage: polytopes.twenty_four_cell().lrs_volume() # optional - lrs
    31193119            2.0
    31203120
    31213121        REFERENCES:
  • sage/graphs/dot2tex_utils.py

    diff --git a/sage/graphs/dot2tex_utils.py b/sage/graphs/dot2tex_utils.py
    a b  
    1818
    1919    EXAMPLES::
    2020
    21         sage: sage.graphs.dot2tex_utils.have_dot2tex() # optional - requires dot2tex and graphviz
     21        sage: sage.graphs.dot2tex_utils.have_dot2tex() # optional - dot2tex graphviz
    2222        True
    2323        sage: sage.graphs.dot2tex_utils.have_dot2tex() in [True, False]
    2424        True
     
    3838
    3939    EXAMPLES::
    4040
    41         sage: sage.graphs.dot2tex_utils.assert_have_dot2tex() # optional - requires dot2tex and graphviz
     41        sage: sage.graphs.dot2tex_utils.assert_have_dot2tex() # optional - dot2tex graphviz
    4242    """
    4343    check_error_string = """
    4444An error occurs while testing the dot2tex installation.
  • sage/graphs/graph_latex.py

    diff --git a/sage/graphs/graph_latex.py b/sage/graphs/graph_latex.py
    a b  
    216216This example illustrates using the optional dot2tex module::
    217217
    218218    sage: g = graphs.PetersenGraph()
    219     sage: g.set_latex_options(format='dot2tex',prog='neato') # optional - requires dot2tex
     219    sage: g.set_latex_options(format='dot2tex',prog='neato') # optional - dot2tex
    220220    sage: from sage.graphs.graph_latex import check_tkz_graph
    221221    sage: check_tkz_graph()  # random - depends on TeX installation
    222     sage: latex(g) # optional - requires dot2tex
     222    sage: latex(g) # optional - dot2tex
    223223    \begin{tikzpicture}[>=latex,line join=bevel,]
    224224    ...
    225225    \end{tikzpicture}
     
    230230
    231231    sage: g = graphs.PetersenGraph()
    232232    sage: g.set_latex_options(format="dot2tex", edge_options = lambda (u,v,label): {"color": "red"} if u==0 else {})
    233     sage: latex(g) # optional - requires dot2tex
     233    sage: latex(g) # optional - dot2tex
    234234    \begin{tikzpicture}[>=latex,line join=bevel,]
    235235    ...
    236236    \end{tikzpicture}
     
    13221322            sage: g = digraphs.ButterflyGraph(1)
    13231323            sage: from sage.graphs.graph_latex import check_tkz_graph
    13241324            sage: check_tkz_graph()  # random - depends on TeX installation
    1325             sage: print g.latex_options().dot2tex_picture()  # optional - requires dot2tex and graphviz
     1325            sage: print g.latex_options().dot2tex_picture()  # optional - dot2tex graphviz
    13261326            \begin{tikzpicture}[>=latex,line join=bevel,]
    13271327            %%
    13281328              \node (0+1) at (...bp,...bp) [draw,draw=none] {$\left(\text{0}, 1\right)$};
  • sage/groups/perm_gps/permgroup.py

    diff --git a/sage/groups/perm_gps/permgroup.py b/sage/groups/perm_gps/permgroup.py
    a b  
    165165        sage: foo = hap_decorator(foo)
    166166        sage: foo(None, 3)    #optional - gap_packages
    167167        Done
    168         sage: foo(None, 3, 0) #optional - gap packages
     168        sage: foo(None, 3, 0) # optional - gap_packages
    169169        Done
    170         sage: foo(None, 3, 5) #optional - gap packages
     170        sage: foo(None, 3, 5) # optional - gap_packages
    171171        Done
    172172        sage: foo(None, 3, 4) #optional - gap_packages
    173173        Traceback (most recent call last):
  • sage/groups/perm_gps/permgroup_named.py

    diff --git a/sage/groups/perm_gps/permgroup_named.py b/sage/groups/perm_gps/permgroup_named.py
    a b  
    14711471            Transitive group number 1 of degree 0
    14721472            sage: TransitiveGroup(1,1)
    14731473            Transitive group number 1 of degree 1
    1474             sage: G = TransitiveGroup(5, 2); G         # requires optional database_gap
     1474            sage: G = TransitiveGroup(5, 2); G         # optional - database_gap
    14751475            Transitive group number 2 of degree 5
    1476             sage: G.gens()                             # requires optional database_gap
     1476            sage: G.gens()                             # optional - database_gap
    14771477            [(1,2,3,4,5), (1,4)(2,3)]
    14781478
    1479             sage: G.category()                         # requires optional database_gap
     1479            sage: G.category()                         # optional - database_gap
    14801480            Category of finite permutation groups
    14811481
    14821482        .. warning:: this follows GAP's naming convention of indexing
    14831483          the transitive groups starting from ``1``::
    14841484
    1485             sage: TransitiveGroup(5,0)                 # requires optional database_gap
     1485            sage: TransitiveGroup(5,0)                 # optional - database_gap
    14861486            Traceback (most recent call last):
    14871487            ...
    14881488            ValueError: Index n must be in {1,..,5}
     
    14901490        .. warning:: only transitive groups of "small" degree are
    14911491          available in GAP's database::
    14921492
    1493             sage: TransitiveGroup(31,1)                # requires optional database_gap
     1493            sage: TransitiveGroup(31,1)                # optional - database_gap
    14941494            Traceback (most recent call last):
    14951495            ...
    14961496            NotImplementedError: Only the transitive groups of order less than 30 are available in GAP's database
     
    15031503           
    15041504            sage: TestSuite(TransitiveGroup(0,1)).run()
    15051505            sage: TestSuite(TransitiveGroup(1,1)).run()
    1506             sage: TestSuite(TransitiveGroup(5,2)).run()# requires optional database_gap
    1507 
    1508             sage: TransitiveGroup(1,5)                 # requires optional database_gap
     1506            sage: TestSuite(TransitiveGroup(5,2)).run()# optional - database_gap
     1507
     1508            sage: TransitiveGroup(1,5)                 # optional - database_gap
    15091509            Traceback (most recent call last):
    15101510            ...
    15111511            ValueError: Index n must be in {1,..,1}
     
    15641564    .. warning:: in practice, the database currently only contains
    15651565      transitive groups up to degree 30::
    15661566
    1567         sage: TransitiveGroups(31).cardinality() # requires optional database_gap
     1567        sage: TransitiveGroups(31).cardinality() # optional - database_gap
    15681568        Traceback (most recent call last):
    15691569        ...
    15701570        NotImplementedError: Only the transitive groups of order less than 30 are available in GAP's database
     
    15911591        sage: L.cardinality()
    15921592        +Infinity
    15931593
    1594         sage: p = L.__iter__()            # requires optional database_gap
    1595         sage: (p.next(), p.next(), p.next(), p.next(), p.next(), p.next(), p.next(), p.next()) # requires optional database_gap
     1594        sage: p = L.__iter__()            # optional - database_gap
     1595        sage: (p.next(), p.next(), p.next(), p.next(), p.next(), p.next(), p.next(), p.next()) # optional - database_gap
    15961596        (Transitive group number 1 of degree 0, Transitive group number 1 of degree 1, Transitive group number 1 of degree 2, Transitive group number 1 of degree 3, Transitive group number 2 of degree 3, Transitive group number 1 of degree 4, Transitive group number 2 of degree 4, Transitive group number 3 of degree 4)
    15971597
    15981598    TESTS::
    15991599
    1600         sage: TestSuite(TransitiveGroups()).run() # requires optional database_gap # long time
     1600        sage: TestSuite(TransitiveGroups()).run() # optional - database_gap # long time
    16011601    """
    16021602    def __init__(self):
    16031603        """
    16041604        TESTS::
    16051605
    1606             sage: S = TransitiveGroups() # requires optional database_gap
    1607             sage: S.category() # requires optional database_gap
     1606            sage: S = TransitiveGroups() # optional - database_gap
     1607            sage: S.category() # optional - database_gap
    16081608            Category of infinite enumerated sets
    16091609        """
    16101610        DisjointUnionEnumeratedSets.__init__(self, Family(NonNegativeIntegers(), lambda i: TransitiveGroups(i)) )
     
    16131613        """
    16141614        TESTS::
    16151615
    1616             sage: TransitiveGroups() # requires optional database_gap # indirect doctest
     1616            sage: TransitiveGroups() # optional - database_gap # indirect doctest
    16171617            Transitive Groups
    16181618        """
    16191619        return "Transitive Groups"
     
    16221622        r"""
    16231623        EXAMPLES::
    16241624
    1625             sage: TransitiveGroup(5,2) in TransitiveGroups() # requires optional database_gap
     1625            sage: TransitiveGroup(5,2) in TransitiveGroups() # optional - database_gap
    16261626            True
    1627             sage: TransitiveGroup(6,5) in TransitiveGroups() # requires optional database_gap
     1627            sage: TransitiveGroup(6,5) in TransitiveGroups() # optional - database_gap
    16281628            True
    1629             sage: 1 in TransitiveGroups() # requires optional database_gap
     1629            sage: 1 in TransitiveGroups() # optional - database_gap
    16301630            False
    16311631        """
    16321632        return isinstance(G,TransitiveGroup)
     
    16371637
    16381638    EXAMPLES::
    16391639
    1640         sage: S = TransitiveGroups(4); S       # requires optional database_gap
     1640        sage: S = TransitiveGroups(4); S       # optional - database_gap
    16411641        Transitive Groups of degree 4
    1642         sage: list(S)                          # requires optional database_gap
     1642        sage: list(S)                          # optional - database_gap
    16431643        [Transitive group number 1 of degree 4, Transitive group number 2 of degree 4, Transitive group number 3 of degree 4, Transitive group number 4 of degree 4, Transitive group number 5 of degree 4]
    16441644
    1645         sage: TransitiveGroups(5).an_element() # requires optional database_gap
     1645        sage: TransitiveGroups(5).an_element() # optional - database_gap
    16461646        Transitive group number 1 of degree 5
    16471647
    16481648    We write the cardinality of all transitive groups of degree 5::
    16491649
    1650         sage: for G in TransitiveGroups(5):    # requires optional database_gap
     1650        sage: for G in TransitiveGroups(5):    # optional - database_gap
    16511651        ...       print G.cardinality()
    16521652        5
    16531653        10
     
    16571657
    16581658    TESTS::
    16591659
    1660         sage: TestSuite(TransitiveGroups(3)).run() # requires optional database_gap
     1660        sage: TestSuite(TransitiveGroups(3)).run() # optional - database_gap
    16611661
    16621662
    16631663    """
     
    16651665        """
    16661666        TESTS::
    16671667
    1668             sage: S = TransitiveGroups(4) # requires optional database_gap
    1669             sage: S.category() # requires optional database_gap
     1668            sage: S = TransitiveGroups(4) # optional - database_gap
     1669            sage: S.category() # optional - database_gap
    16701670            Category of finite enumerated sets
    16711671        """
    16721672        self._degree = n
     
    16761676        """
    16771677        TESTS::
    16781678
    1679             sage: TransitiveGroups(6) # requires optional database_gap
     1679            sage: TransitiveGroups(6) # optional - database_gap
    16801680            Transitive Groups of degree 6
    16811681        """
    16821682        return "Transitive Groups of degree %s"%(self._degree)
     
    16851685        r"""
    16861686        EXAMPLES::
    16871687
    1688             sage: TransitiveGroup(6,5) in TransitiveGroups(4) # requires optional database_gap
     1688            sage: TransitiveGroup(6,5) in TransitiveGroups(4) # optional - database_gap
    16891689            False
    1690             sage: TransitiveGroup(4,3) in TransitiveGroups(4) # requires optional database_gap
     1690            sage: TransitiveGroup(4,3) in TransitiveGroups(4) # optional - database_gap
    16911691            True
    1692             sage: 1 in TransitiveGroups(4) # requires optional database_gap
     1692            sage: 1 in TransitiveGroups(4) # optional - database_gap
    16931693            False
    16941694        """
    16951695        if isinstance(G,TransitiveGroup):
     
    17071707
    17081708        EXAMPLES::
    17091709
    1710             sage: TransitiveGroups(5)[3]          # requires optional database_gap#
     1710            sage: TransitiveGroups(5)[3]          # optional - database_gap
    17111711            Transitive group number 3 of degree 5
    17121712
    17131713        .. warning:: this follows GAP's naming convention of indexing
    17141714        the transitive groups starting from ``1``::
    17151715
    1716             sage: TransitiveGroups(5)[0]          # requires optional database_gap
     1716            sage: TransitiveGroups(5)[0]          # optional - database_gap
    17171717            Traceback (most recent call last):
    17181718            ...
    17191719            ValueError: Index n must be in {1,..,5}
     
    17241724        """
    17251725        EXAMPLES::
    17261726
    1727             sage: list(TransitiveGroups(5)) # indirect doctest # requires optional database_gap
     1727            sage: list(TransitiveGroups(5)) # indirect doctest # optional - database_gap
    17281728            [Transitive group number 1 of degree 5, Transitive group number 2 of degree 5, Transitive group number 3 of degree 5, Transitive group number 4 of degree 5, Transitive group number 5 of degree 5]
    17291729        """
    17301730        for n in xrange(1, self.cardinality() + 1):
     
    17381738
    17391739        EXAMPLES::
    17401740
    1741             sage: TransitiveGroups(0).cardinality()                      # requires optional database_gap
     1741            sage: TransitiveGroups(0).cardinality()                      # optional - database_gap
    17421742            1
    1743             sage: TransitiveGroups(2).cardinality()                      # requires optional database_gap
     1743            sage: TransitiveGroups(2).cardinality()                      # optional - database_gap
    17441744            1
    1745             sage: TransitiveGroups(7).cardinality()                      # requires optional database_gap
     1745            sage: TransitiveGroups(7).cardinality()                      # optional - database_gap
    17461746            7
    1747             sage: TransitiveGroups(12).cardinality()                     # requires optional database_gap
     1747            sage: TransitiveGroups(12).cardinality()                     # optional - database_gap
    17481748            301
    1749             sage: [TransitiveGroups(i).cardinality() for i in range(11)] # requires optional database_gap
     1749            sage: [TransitiveGroups(i).cardinality() for i in range(11)] # optional - database_gap
    17501750            [1, 1, 1, 2, 5, 5, 16, 7, 50, 34, 45]
    17511751
    17521752        .. warning::
     
    17541754            The database_gap contains all transitive groups
    17551755            up to degree 30::
    17561756
    1757                 sage: TransitiveGroups(31).cardinality()                     # requires optional database_gap
     1757                sage: TransitiveGroups(31).cardinality()                     # optional - database_gap
    17581758                Traceback (most recent call last):
    17591759                ...
    17601760                NotImplementedError: Only the transitive groups of order less than 30 are available in GAP's database
    17611761
    17621762        TESTS::
    17631763
    1764             sage: type(TransitiveGroups(12).cardinality())               # requires optional database_gap
     1764            sage: type(TransitiveGroups(12).cardinality())               # optional - database_gap
    17651765            <type 'sage.rings.integer.Integer'>
    17661766            sage: type(TransitiveGroups(0).cardinality())
    17671767            <type 'sage.rings.integer.Integer'>
     
    18021802        Trivial group
    18031803        sage: PrimitiveGroup(1,1)
    18041804        Trivial group
    1805         sage: G = PrimitiveGroup(5, 2); G           # requires optional database_gap
     1805        sage: G = PrimitiveGroup(5, 2); G           # optional - database_gap
    18061806        D(2*5)
    1807         sage: G.gens()                              # requires optional database_gap
     1807        sage: G.gens()                              # optional - database_gap
    18081808        [(2,4)(3,5), (1,2,3,5,4)]
    1809         sage: G.category()                          # requires optional database_gap
     1809        sage: G.category()                          # optional - database_gap
    18101810        Category of finite permutation groups
    18111811
    18121812    .. warning::
     
    18141814        this follows GAP's naming convention of indexing the primitive
    18151815        groups starting from ``1``::
    18161816
    1817             sage: PrimitiveGroup(5,0)               # requires optional database_gap
     1817            sage: PrimitiveGroup(5,0)               # optional - database_gap
    18181818            Traceback (most recent call last):
    18191819            ...
    18201820            ValueError: Index n must be in {1,..,5}
     
    18221822    Only primitive groups of "small" degree are available in GAP's
    18231823    database::
    18241824
    1825         sage: PrimitiveGroup(2500,1)          # requires optional database_gap
     1825        sage: PrimitiveGroup(2500,1)          # optional - database_gap
    18261826        Traceback (most recent call last):
    18271827        ...
    18281828        NotImplementedError: Only the primitive groups of degree less
     
    18411841
    18421842            sage: TestSuite(PrimitiveGroup(0,1)).run()
    18431843            sage: TestSuite(PrimitiveGroup(1,1)).run()
    1844             sage: TestSuite(PrimitiveGroup(5,2)).run()  # requires optional database_gap
    1845             sage: PrimitiveGroup(6,5)                   # requires optional database_gap
     1844            sage: TestSuite(PrimitiveGroup(5,2)).run()  # optional - database_gap
     1845            sage: PrimitiveGroup(6,5)                   # optional - database_gap
    18461846            Traceback (most recent call last):
    18471847            ...
    18481848            ValueError: Index n must be in {1,..,4}
     
    18801880
    18811881        EXAMPLES::
    18821882
    1883             sage: G = PrimitiveGroup(5,1); G             # requires optional database_gap
     1883            sage: G = PrimitiveGroup(5,1); G             # optional - database_gap
    18841884            C(5)
    18851885        """
    18861886        return self._pretty_name
     
    18971897
    18981898        EXAMPLES::
    18991899
    1900             sage: G = PrimitiveGroup(5,2); G.group_primitive_id()  # requires optional database_gap
     1900            sage: G = PrimitiveGroup(5,2); G.group_primitive_id()  # optional - database_gap
    19011901            2
    19021902        """
    19031903        return self._n
     
    19361936    The database currently only contains primitive groups up to degree
    19371937    2499::
    19381938
    1939          sage: PrimitiveGroups(2500).cardinality() # requires optional database_gap
     1939         sage: PrimitiveGroups(2500).cardinality() # optional - database_gap
    19401940         Traceback (most recent call last):
    19411941         ...
    19421942         NotImplementedError: Only the primitive groups of degree less
     
    19711971        sage: L.cardinality()
    19721972        +Infinity
    19731973
    1974         sage: p = L.__iter__()            # requires optional database_gap
    1975         sage: (p.next(), p.next(), p.next(), p.next(), # requires optional database_gap
     1974        sage: p = L.__iter__()            # optional - database_gap
     1975        sage: (p.next(), p.next(), p.next(), p.next(), # optional - database_gap
    19761976        ...    p.next(), p.next(), p.next(), p.next())
    19771977        (Trivial group, Trivial group, S(2), A(3), S(3), A(4), S(4), C(5))
    19781978
    19791979    TESTS::
    19801980
    1981         sage: TestSuite(PrimitiveGroups()).run() # requires optional database_gap # long time
     1981        sage: TestSuite(PrimitiveGroups()).run() # optional - database_gap # long time
    19821982    """
    19831983    def __init__(self):
    19841984        """
    19851985        TESTS::
    19861986
    1987             sage: S = PrimitiveGroups() # requires optional database_gap
    1988             sage: S.category() # requires optional database_gap
     1987            sage: S = PrimitiveGroups() # optional - database_gap
     1988            sage: S.category() # optional - database_gap
    19891989            Category of infinite enumerated sets
    19901990        """
    19911991        DisjointUnionEnumeratedSets.__init__(self, Family(NonNegativeIntegers(), lambda i: PrimitiveGroups(i)) )
     
    20002000
    20012001        TESTS::
    20022002
    2003             sage: PrimitiveGroups() # requires optional database_gap # indirect doctest
     2003            sage: PrimitiveGroups() # optional - database_gap # indirect doctest
    20042004            Primitive Groups
    20052005        """
    20062006        return "Primitive Groups"
     
    20192019
    20202020        EXAMPLES::
    20212021
    2022             sage: PrimitiveGroup(5,2) in PrimitiveGroups() # requires optional database_gap
     2022            sage: PrimitiveGroup(5,2) in PrimitiveGroups() # optional - database_gap
    20232023            True
    2024             sage: PrimitiveGroup(6,4) in PrimitiveGroups() # requires optional database_gap
     2024            sage: PrimitiveGroup(6,4) in PrimitiveGroups() # optional - database_gap
    20252025            True
    2026             sage: 1 in PrimitiveGroups() # requires optional database_gap
     2026            sage: 1 in PrimitiveGroups() # optional - database_gap
    20272027            False
    20282028        """
    20292029        return isinstance(G,PrimitiveGroup)
     
    20342034
    20352035    EXAMPLES::
    20362036
    2037         sage: S = PrimitiveGroups(5); S       # requires optional database_gap
     2037        sage: S = PrimitiveGroups(5); S       # optional - database_gap
    20382038        Primitive Groups of degree 5
    2039         sage: S.list()                          # requires optional database_gap
     2039        sage: S.list()                          # optional - database_gap
    20402040        [C(5), D(2*5), AGL(1, 5), A(5), S(5)]
    2041         sage: S.an_element() # requires optional database_gap
     2041        sage: S.an_element() # optional - database_gap
    20422042        C(5)
    20432043
    20442044    We write the cardinality of all primitive groups of degree 5::
    20452045
    2046         sage: for G in PrimitiveGroups(5):    # requires optional database_gap
     2046        sage: for G in PrimitiveGroups(5):    # optional - database_gap
    20472047        ...       print G.cardinality()
    20482048        5
    20492049        10
     
    20532053
    20542054    TESTS::
    20552055
    2056         sage: TestSuite(PrimitiveGroups(3)).run() # requires optional database_gap
     2056        sage: TestSuite(PrimitiveGroups(3)).run() # optional - database_gap
    20572057    """
    20582058    def __init__(self, n):
    20592059        """
    20602060        TESTS::
    20612061
    2062             sage: S = PrimitiveGroups(4) # requires optional database_gap
    2063             sage: S.category() # requires optional database_gap
     2062            sage: S = PrimitiveGroups(4) # optional - database_gap
     2063            sage: S.category() # optional - database_gap
    20642064            Category of finite enumerated sets
    20652065        """
    20662066        self._degree = n
     
    20762076
    20772077        TESTS::
    20782078
    2079             sage: PrimitiveGroups(6) # requires optional database_gap
     2079            sage: PrimitiveGroups(6) # optional - database_gap
    20802080            Primitive Groups of degree 6
    20812081        """
    20822082        return "Primitive Groups of degree %s"%(self._degree)
     
    20952095
    20962096        EXAMPLES::
    20972097
    2098             sage: PrimitiveGroup(6,4) in PrimitiveGroups(4) # requires optional database_gap
     2098            sage: PrimitiveGroup(6,4) in PrimitiveGroups(4) # optional - database_gap
    20992099            False
    2100             sage: PrimitiveGroup(4,2) in PrimitiveGroups(4) # requires optional database_gap
     2100            sage: PrimitiveGroup(4,2) in PrimitiveGroups(4) # optional - database_gap
    21012101            True
    2102             sage: 1 in PrimitiveGroups(4) # requires optional database_gap
     2102            sage: 1 in PrimitiveGroups(4) # optional - database_gap
    21032103            False
    21042104        """
    21052105        if isinstance(G,PrimitiveGroup):
     
    21172117
    21182118        EXAMPLES::
    21192119
    2120             sage: PrimitiveGroups(5)[3]          # requires optional database_gap
     2120            sage: PrimitiveGroups(5)[3]          # optional - database_gap
    21212121            AGL(1, 5)
    21222122
    21232123        .. warning::
     
    21252125            this follows GAP's naming convention of indexing the
    21262126            primitive groups starting from ``1``::
    21272127
    2128                 sage: PrimitiveGroups(5)[0]      # requires optional database_gap
     2128                sage: PrimitiveGroups(5)[0]      # optional - database_gap
    21292129                Traceback (most recent call last):
    21302130                ...
    21312131                ValueError: Index n must be in {1,..,5}
     
    21362136        """
    21372137        EXAMPLES::
    21382138
    2139             sage: list(PrimitiveGroups(5)) # indirect doctest # requires optional database_gap
     2139            sage: list(PrimitiveGroups(5)) # indirect doctest # optional - database_gap
    21402140            [C(5), D(2*5), AGL(1, 5), A(5), S(5)]
    21412141        """
    21422142        for n in xrange(1, self.cardinality() + 1):
     
    21542154
    21552155        EXAMPLES::
    21562156
    2157             sage: PrimitiveGroups(0).cardinality()                      # requires optional database_gap
     2157            sage: PrimitiveGroups(0).cardinality()                      # optional - database_gap
    21582158            1
    2159             sage: PrimitiveGroups(2).cardinality()                      # requires optional database_gap
     2159            sage: PrimitiveGroups(2).cardinality()                      # optional - database_gap
    21602160            1
    2161             sage: PrimitiveGroups(7).cardinality()                      # requires optional database_gap
     2161            sage: PrimitiveGroups(7).cardinality()                      # optional - database_gap
    21622162            7
    2163             sage: PrimitiveGroups(12).cardinality()                     # requires optional database_gap
     2163            sage: PrimitiveGroups(12).cardinality()                     # optional - database_gap
    21642164            6
    2165             sage: [PrimitiveGroups(i).cardinality() for i in range(11)] # requires optional database_gap
     2165            sage: [PrimitiveGroups(i).cardinality() for i in range(11)] # optional - database_gap
    21662166            [1, 1, 1, 2, 2, 5, 4, 7, 7, 11, 9]
    21672167
    21682168        The database_gap contains all primitive groups up to degree
    21692169        2499::
    21702170
    2171             sage: PrimitiveGroups(2500).cardinality()                     # requires optional database_gap
     2171            sage: PrimitiveGroups(2500).cardinality()                     # optional - database_gap
    21722172            Traceback (most recent call last):
    21732173            ...
    21742174            NotImplementedError: Only the primitive groups of degree less than
     
    21762176
    21772177        TESTS::
    21782178
    2179             sage: type(PrimitiveGroups(12).cardinality())               # requires optional database_gap
     2179            sage: type(PrimitiveGroups(12).cardinality())               # optional - database_gap
    21802180            <type 'sage.rings.integer.Integer'>
    21812181            sage: type(PrimitiveGroups(0).cardinality())
    21822182            <type 'sage.rings.integer.Integer'>
  • sage/interfaces/axiom.py

    diff --git a/sage/interfaces/axiom.py b/sage/interfaces/axiom.py
    a b  
    257257            sage: f = open(filename, 'w')
    258258            sage: f.write('xx := 22;\n')
    259259            sage: f.close()
    260             sage: axiom.read(filename)    #optional -- requires Axiom
     260            sage: axiom.read(filename)    # optional - axiom
    261261            sage: axiom.get('xx')         #optional
    262262            '22'
    263263        """
  • sage/interfaces/expect.py

    diff --git a/sage/interfaces/expect.py b/sage/interfaces/expect.py
    a b  
    621621            sage: f = open(filename, 'w')
    622622            sage: f.write('x = 2\n')
    623623            sage: f.close()
    624             sage: octave.read(filename)  #optional -- requires Octave
     624            sage: octave.read(filename)  # optional - octave
    625625            sage: octave.get('x')        #optional
    626626            ' 2'
    627627            sage: import os
  • sage/interfaces/giac.py

    diff --git a/sage/interfaces/giac.py b/sage/interfaces/giac.py
    a b  
    672672            sage: giac._equality_symbol()               # optional - giac
    673673            '=='
    674674
    675             sage: giac(2) == giac(2) # optional -- requires giac
     675            sage: giac(2) == giac(2) # optional - giac
    676676            True
    677677        """
    678678        return '=='
     
    10291029
    10301030        EXAMPLE::
    10311031
    1032         sage: m = giac('x^2 + 5*y')                            # optional - requires giac
    1033         sage: m.sage()                                          # optional - requires giac
     1032        sage: m = giac('x^2 + 5*y')                            # optional - giac
     1033        sage: m.sage()                                          # optional - giac
    10341034        x^2 + 5*y
    10351035
    10361036        ::
    10371037
    1038         sage: m = giac('sin(2*sqrt(1-x^2)) * (1 - cos(1/x))^2')  # optional - requires giac
    1039         sage: m.trigexpand().sage()                              # optional - requires giac
     1038        sage: m = giac('sin(2*sqrt(1-x^2)) * (1 - cos(1/x))^2')  # optional - giac
     1039        sage: m.trigexpand().sage()                              # optional - giac
    10401040        2*(cos(1/x) - 1)^2*sin(sqrt(-x^2 + 1))*cos(sqrt(-x^2 + 1))
    10411041
    10421042        """
  • sage/interfaces/gnuplot.py

    diff --git a/sage/interfaces/gnuplot.py b/sage/interfaces/gnuplot.py
    a b  
    154154       
    155155        EXAMPLES::
    156156       
    157             sage: gnuplot.plot3d_parametric('v^2*sin(u), v*cos(u), v*(1-v)')   # optional -- requires gnuplot  (not tested, since something pops up).
     157            sage: gnuplot.plot3d_parametric('v^2*sin(u), v*cos(u), v*(1-v)')   # optional - gnuplot  (not tested, since something pops up).
    158158        """
    159159        if title is None:
    160160            title = str(f)
  • sage/interfaces/interface.py

    diff --git a/sage/interfaces/interface.py b/sage/interfaces/interface.py
    a b  
    114114            sage: f = open(filename, 'w')
    115115            sage: f.write('x = 2\n')
    116116            sage: f.close()
    117             sage: octave.read(filename)  #optional -- requires Octave
     117            sage: octave.read(filename)  # optional - octave
    118118            sage: octave.get('x')        #optional
    119119            ' 2'
    120120            sage: import os
  • sage/interfaces/kash.py

    diff --git a/sage/interfaces/kash.py b/sage/interfaces/kash.py
    a b  
    122122
    123123Use ``a.name()`` to get the name of the KASH variable::
    124124
    125     sage: a.name()                                 # somewhat random and optional - kash
     125    sage: a.name()                                 # somewhat random; optional - kash
    126126    'sage0'
    127127    sage: kash(a.name())                           # optional -- kash
    128128    32233
     
    558558##         Return help on KASH commands.
    559559
    560560##         EXAMPLES:
    561 ##             sage: X = kash.help('IntegerRing')   # needs optional kash package
     561##             sage: X = kash.help('IntegerRing')   # optional - kash
    562562
    563563##         """
    564564##         if name is None:
  • sage/interfaces/maple.py

    diff --git a/sage/interfaces/maple.py b/sage/interfaces/maple.py
    a b  
    652652            sage: maple._equality_symbol()
    653653            '='
    654654       
    655             sage: maple(2) == maple(2) # optional -- requires maple
     655            sage: maple(2) == maple(2) # optional - maple
    656656            True
    657657        """
    658658        return '='
     
    776776        ::
    777777       
    778778            sage: maple.quit()   # optional -- to reset maple.
    779             sage: maple('partition(10)')              # optional -- requires maple
     779            sage: maple('partition(10)')              # optional - maple
    780780            partition(10)
    781             sage: maple('bell(10)')                   # optional -- requires maple
     781            sage: maple('bell(10)')                   # optional - maple
    782782            bell(10)
    783             sage: maple.with_package('combinat')      # optional -- requires maple
    784             sage: maple('partition(10)')              # optional -- requires maple
     783            sage: maple.with_package('combinat')      # optional - maple
     784            sage: maple('partition(10)')              # optional - maple
    785785            [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 2], [1, 1, 1, 1, 1, 1, 2, 2], [1, 1, 1, 1, 2, 2, 2], [1, 1, 2, 2, 2, 2], [2, 2, 2, 2, 2], [1, 1, 1, 1, 1, 1, 1, 3], [1, 1, 1, 1, 1, 2, 3], [1, 1, 1, 2, 2, 3], [1, 2, 2, 2, 3], [1, 1, 1, 1, 3, 3], [1, 1, 2, 3, 3], [2, 2, 3, 3], [1, 3, 3, 3], [1, 1, 1, 1, 1, 1, 4], [1, 1, 1, 1, 2, 4], [1, 1, 2, 2, 4], [2, 2, 2, 4], [1, 1, 1, 3, 4], [1, 2, 3, 4], [3, 3, 4], [1, 1, 4, 4], [2, 4, 4], [1, 1, 1, 1, 1, 5], [1, 1, 1, 2, 5], [1, 2, 2, 5], [1, 1, 3, 5], [2, 3, 5], [1, 4, 5], [5, 5], [1, 1, 1, 1, 6], [1, 1, 2, 6], [2, 2, 6], [1, 3, 6], [4, 6], [1, 1, 1, 7], [1, 2, 7], [3, 7], [1, 1, 8], [2, 8], [1, 9], [10]]
    786             sage: maple('bell(10)')                   # optional -- requires maple
     786            sage: maple('bell(10)')                   # optional - maple
    787787            115975
    788             sage: maple('fibonacci(10)')              # optional -- requires maple
     788            sage: maple('fibonacci(10)')              # optional - maple
    789789            55
    790790        """
    791791        self.eval('with(%s)'%package)
     
    956956        TESTS::
    957957       
    958958            sage: x = var('x')
    959             sage: t = maple((x+1)^2)                       # optional -- requires maple
    960             sage: u = maple(x^2+2*x+1)                     # optional -- requires maple
     959            sage: t = maple((x+1)^2)                       # optional - maple
     960            sage: u = maple(x^2+2*x+1)                     # optional - maple
    961961            sage: u == t # todo: not implemented
    962962            True         # returns False, should use 'testeq' in maple
    963963            sage: maple.eval('testeq(%s = %s)'%(t.name(),u.name()))    # optional - maple
     
    10611061       
    10621062        EXAMPLES::
    10631063       
    1064             sage: print latex(maple('(x^4 - y)/(y^2-3*x)'))      # optional -- requires maple
     1064            sage: print latex(maple('(x^4 - y)/(y^2-3*x)'))      # optional - maple
    10651065            {\frac {{x}^{4}-y}{{y}^{2}-3\,x}}
    1066             sage: print latex(maple(pi - e^3))                   # optional -- requires maple
     1066            sage: print latex(maple(pi - e^3))                   # optional - maple
    10671067            \pi - \left( {e^{1}} \right) ^{3}
    10681068       
    10691069        .. note::
     
    10821082
    10831083        EXAMPLE::
    10841084
    1085             sage: m = maple('x^2 + 5*y')                            # optional - requires maple
    1086             sage: m.sage()                                          # optional - requires maple
     1085            sage: m = maple('x^2 + 5*y')                            # optional - maple
     1086            sage: m.sage()                                          # optional - maple
    10871087            x^2 + 5*y
    10881088
    10891089        ::
    10901090
    1091             sage: m = maple('sin(sqrt(1-x^2)) * (1 - cos(1/x))^2')  # optional - requires maple
    1092             sage: m.sage()                                          # optional - requires maple
     1091            sage: m = maple('sin(sqrt(1-x^2)) * (1 - cos(1/x))^2')  # optional - maple
     1092            sage: m.sage()                                          # optional - maple
    10931093            (cos(1/x) - 1)^2*sin(sqrt(-x^2 + 1))
    10941094
    10951095        """
  • sage/interfaces/matlab.py

    diff --git a/sage/interfaces/matlab.py b/sage/interfaces/matlab.py
    a b  
    256256
    257257        EXAMPLES::
    258258
    259             sage: s = matlab.eval('a = 2') #optional - requires matlab
     259            sage: s = matlab.eval('a = 2') # optional - matlab
    260260            sage: matlab.get('a')               #optional
    261261            '     2'
    262262        """
     
    308308       
    309309            sage: M33 = MatrixSpace(QQ,3,3)                     
    310310            sage: A = M33([1,2,3,4,5,6,7,8,0])
    311             sage: matlab.sage2matlab_matrix_string(A)   # requires optional matlab
     311            sage: matlab.sage2matlab_matrix_string(A)   # optional - matlab
    312312            '[1, 2, 3; 4, 5, 6; 7, 8, 0]'
    313313       
    314314        AUTHOR:
     
    331331       
    332332        EXAMPLES::
    333333       
    334             sage: A = matlab('[1,2;3,4]')       # optional matlab package
     334            sage: A = matlab('[1,2;3,4]')       # optional - matlab
    335335            sage: matrix(ZZ, A)                 # optional
    336336            [1 2]
    337337            [3 4]
    338             sage: A = matlab('[1,2;3,4.5]')     # optional matlab package
     338            sage: A = matlab('[1,2;3,4.5]')     # optional - matlab
    339339            sage: matrix(RR, A)                 # optional
    340340            [1.00000000000000 2.00000000000000]
    341341            [3.00000000000000 4.50000000000000]
    342342
    343             sage: a = matlab('eye(50)')         #optional - requires matlab
    344             sage: matrix(RR, a)                 #optional - requires matlab
     343            sage: a = matlab('eye(50)')         # optional - matlab
     344            sage: matrix(RR, a)                 # optional - matlab
    345345            50 x 50 dense matrix over Real Field with 53 bits of precision
    346346                                   
    347347        """
     
    374374   
    375375    EXAMPLES::
    376376   
    377         sage: matlab_console()                               # optional and not tested
     377        sage: matlab_console()                               # optional; not tested
    378378                                       < M A T L A B >
    379379                           Copyright 1984-2006 The MathWorks, Inc.
    380380        ...
     
    399399   
    400400    EXAMPLES::
    401401   
    402         sage: matlab_version()    # random optional matlab package
     402        sage: matlab_version()    # random; optional - matlab
    403403        '7.2.0.283 (R2006a)'
    404404    """
    405405    return str(matlab('version')).strip()
  • sage/interfaces/mupad.py

    diff --git a/sage/interfaces/mupad.py b/sage/interfaces/mupad.py
    a b  
    160160            sage: f = open(filename, 'w')
    161161            sage: f.write('x := 2;\n')
    162162            sage: f.close()
    163             sage: mupad.read(filename)   #optional -- requires MuPAD
     163            sage: mupad.read(filename)   # optional - MuPAD
    164164            sage: mupad.get('x').strip() # optional - mupad
    165165            '2'
    166166
     
    279279    def cputime(self, t=None):
    280280        """
    281281        EXAMPLES:
    282             sage: t = mupad.cputime() #random, optional -- requires MuPAD
     282            sage: t = mupad.cputime() #random, optional - MuPAD
    283283            0.11600000000000001
    284284        """
    285285        if t is None:
  • sage/interfaces/octave.py

    diff --git a/sage/interfaces/octave.py b/sage/interfaces/octave.py
    a b  
    1212
    1313EXAMPLES::
    1414
    15     sage: octave.eval('2+2')    # optional -- requires Octave
     15    sage: octave.eval('2+2')    # optional - octave
    1616    'ans = 4'
    1717
    18     sage: a = octave(10)        # optional -- requires Octave
    19     sage: a**10                 # optional -- requires Octave
     18    sage: a = octave(10)        # optional - octave
     19    sage: a**10                 # optional - octave
    2020    1e+10
    2121
    2222LOG: - creation (William Stein) - ? (David Joyner, 2005-12-18) -
     
    6060
    6161::
    6262
    63     sage: octave("airy(3,2)")         # optional -- requires Octave
     63    sage: octave("airy(3,2)")         # optional - octave
    6464    4.10068
    65     sage: octave("beta(2,2)")         # optional -- requires Octave
     65    sage: octave("beta(2,2)")         # optional - octave
    6666    0.166667
    67     sage: octave("betainc(0.2,2,2)")  # optional -- requires Octave
     67    sage: octave("betainc(0.2,2,2)")  # optional - octave
    6868    0.104
    69     sage: octave("besselh(0,2)")      # optional -- requires Octave
     69    sage: octave("besselh(0,2)")      # optional - octave
    7070    (0.223891,0.510376)
    71     sage: octave("besselh(0,1)")      # optional -- requires Octave
     71    sage: octave("besselh(0,1)")      # optional - octave
    7272    (0.765198,0.088257)
    73     sage: octave("besseli(1,2)")      # optional -- requires Octave
     73    sage: octave("besseli(1,2)")      # optional - octave
    7474    1.59064
    75     sage: octave("besselj(1,2)")      # optional -- requires Octave
     75    sage: octave("besselj(1,2)")      # optional - octave
    7676    0.576725
    77     sage: octave("besselk(1,2)")      # optional -- requires Octave
     77    sage: octave("besselk(1,2)")      # optional - octave
    7878    0.139866
    79     sage: octave("erf(0)")            # optional -- requires Octave
     79    sage: octave("erf(0)")            # optional - octave
    8080    0
    81     sage: octave("erf(1)")            # optional -- requires Octave
     81    sage: octave("erf(1)")            # optional - octave
    8282    0.842701
    83     sage: octave("erfinv(0.842)")     # optional -- requires Octave
     83    sage: octave("erfinv(0.842)")     # optional - octave
    8484    0.998315
    85     sage: octave("gamma(1.5)")        # optional -- requires Octave
     85    sage: octave("gamma(1.5)")        # optional - octave
    8686    0.886227
    87     sage: octave("gammainc(1.5,1)")   # optional -- requires Octave
     87    sage: octave("gammainc(1.5,1)")   # optional - octave
    8888    0.77687
    8989
    9090The Octave interface reads in even very long input (using files) in
    9191a robust manner::
    9292
    9393    sage: t = '"%s"'%10^10000   # ten thousand character string.
    94     sage: a = octave.eval(t + ';')    # optional -- requires Octave, < 1/100th of a second
    95     sage: a = octave(t)               # optional -- requires Octave
     94    sage: a = octave.eval(t + ';')    # optional - octave, < 1/100th of a second
     95    sage: a = octave(t)               # optional - octave
    9696
    9797Note that actually reading a back out takes forever. This *must*
    9898be fixed ASAP - see
     
    103103
    104104EXAMPLES::
    105105
    106     sage: octave('4+10')              # optional -- requires Octave
     106    sage: octave('4+10')              # optional - octave
    107107    14
    108     sage: octave('date')              # optional -- requires Octave; random output
     108    sage: octave('date')              # optional - octave; random output
    109109    18-Oct-2007
    110     sage: octave('5*10 + 6')          # optional -- requires Octave
     110    sage: octave('5*10 + 6')          # optional - octave
    111111    56
    112     sage: octave('(6+6)/3')           # optional -- requires Octave
     112    sage: octave('(6+6)/3')           # optional - octave
    113113    4
    114     sage: octave('9')^2               # optional -- requires Octave
     114    sage: octave('9')^2               # optional - octave
    115115    81
    116     sage: a = octave(10); b = octave(20); c = octave(30)    # optional -- requires Octave
    117     sage: avg = (a+b+c)/3             # optional -- requires Octave
    118     sage: avg                         # optional -- requires Octave
     116    sage: a = octave(10); b = octave(20); c = octave(30)    # optional - octave
     117    sage: avg = (a+b+c)/3             # optional - octave
     118    sage: avg                         # optional - octave
    119119    20
    120     sage: parent(avg)                 # optional -- requires Octave
     120    sage: parent(avg)                 # optional - octave
    121121    Octave
    122122
    123123::
    124124
    125     sage: my_scalar = octave('3.1415')       # optional -- requires Octave
    126     sage: my_scalar                          # optional -- requires Octave
     125    sage: my_scalar = octave('3.1415')       # optional - octave
     126    sage: my_scalar                          # optional - octave
    127127    3.1415
    128     sage: my_vector1 = octave('[1,5,7]')     # optional -- requires Octave
    129     sage: my_vector1                         # optional -- requires Octave
     128    sage: my_vector1 = octave('[1,5,7]')     # optional - octave
     129    sage: my_vector1                         # optional - octave
    130130    1     5     7
    131     sage: my_vector2 = octave('[1;5;7]')     # optional -- requires Octave
    132     sage: my_vector2                         # optional -- requires Octave
     131    sage: my_vector2 = octave('[1;5;7]')     # optional - octave
     132    sage: my_vector2                         # optional - octave
    133133    1
    134134    5
    135135    7
    136     sage: my_vector1 * my_vector2            # optional -- requires Octave
     136    sage: my_vector1 * my_vector2            # optional - octave
    137137    75
    138138"""
    139139
     
    163163   
    164164    EXAMPLES::
    165165   
    166         sage: octave.eval("a = [ 1, 1, 2; 3, 5, 8; 13, 21, 33 ]")    # optional -- requires Octave
     166        sage: octave.eval("a = [ 1, 1, 2; 3, 5, 8; 13, 21, 33 ]")    # optional - octave
    167167        'a =\n\n 1 1 2\n 3 5 8\n 13 21 33\n\n'
    168         sage: octave.eval("b = [ 1; 3; 13]")                         # optional -- requires Octave
     168        sage: octave.eval("b = [ 1; 3; 13]")                         # optional - octave
    169169        'b =\n\n 1\n 3\n 13\n\n'
    170         sage: octave.eval("c=a \\ b") # solves linear equation: a*c = b  # optional -- requires Octave; random output
     170        sage: octave.eval("c=a \\ b") # solves linear equation: a*c = b  # optional - octave; random output
    171171        'c =\n\n 1\n 7.21645e-16\n -7.21645e-16\n\n'
    172         sage: octave.eval("c")                                 # optional -- requires Octave; random output
     172        sage: octave.eval("c")                                 # optional - octave; random output
    173173        'c =\n\n 1\n 7.21645e-16\n -7.21645e-16\n\n'
    174174    """
    175175    def __init__(self, maxread=100, script_subdirectory="", logfile=None, server=None, server_tmpdir=None):
     
    256256        EXAMPLES::
    257257       
    258258            sage: o = Octave()
    259             sage: o._start()    #optional -- requires Octave
    260             sage: o.quit(True)  #optional -- requires Octave
     259            sage: o._start()    # optional - octave
     260            sage: o.quit(True)  # optional - octave
    261261            Exiting spawned Octave process.
    262262        """
    263263        # Don't bother, since it just hangs in some cases, and it
     
    274274       
    275275        EXAMPLES::
    276276       
    277             sage: o = Octave()    #optional -- requires Octave
    278             sage: o.is_running()  #optional -- requires Octave
     277            sage: o = Octave()    # optional - octave
     278            sage: o.is_running()  # optional - octave
    279279            False
    280             sage: o._start()      #optional -- requires Octave
    281             sage: o.is_running()  #optional -- requires Octave
     280            sage: o._start()      # optional - octave
     281            sage: o.is_running()  # optional - octave
    282282            True
    283283        """
    284284        Expect._start(self)
     
    291291       
    292292        EXAMPLES::
    293293       
    294             sage: octave.set('x', '2') #optional -- requires Octave
    295             sage: octave.get('x') #optional -- requires Octave
     294            sage: octave.set('x', '2') # optional - octave
     295            sage: octave.get('x') # optional - octave
    296296            ' 2'
    297297        """
    298298        cmd = '%s=%s;'%(var,value)       
     
    306306       
    307307        EXAMPLES::
    308308       
    309             sage: octave.set('x', '2') #optional -- requires Octave
    310             sage: octave.get('x') #optional -- requires Octave
     309            sage: octave.set('x', '2') # optional - octave
     310            sage: octave.get('x') # optional - octave
    311311            ' 2'
    312312        """
    313313        s = self.eval('%s'%var)
     
    320320       
    321321        EXAMPLES::
    322322       
    323             sage: octave.set('x', '2') #optional -- requires Octave
    324             sage: octave.clear('x') #optional -- requires Octave
    325             sage: octave.get('x') #optional -- requires Octave
     323            sage: octave.set('x', '2') # optional - octave
     324            sage: octave.clear('x') # optional - octave
     325            sage: octave.get('x') # optional - octave
    326326            "error: `x' undefined near line ... column 1"
    327327        """
    328328        self.eval('clear %s'%var)
     
    358358       
    359359        EXAMPLES::
    360360       
    361             sage: octave.version()   # optional -- requires Octave; random output depending on version
     361            sage: octave.version()   # optional - octave; random output depending on version
    362362            '2.1.73'
    363363        """
    364364        return octave_version()
     
    383383            sage: A   = M33([1,2,3,4,5,6,7,8,0])
    384384            sage: V3  = VectorSpace(QQ,3)
    385385            sage: b   = V3([1,2,3])
    386             sage: octave.solve_linear_system(A,b)    # optional -- requires Octave (and output is slightly random in low order bits)
     386            sage: octave.solve_linear_system(A,b)    # optional - octave (and output is slightly random in low order bits)
    387387            [-0.33333299999999999, 0.66666700000000001, -3.5236600000000002e-18]
    388388       
    389389        AUTHORS:
     
    422422       
    423423            sage: M33 = MatrixSpace(QQ,3,3)
    424424            sage: A = M33([1,2,3,4,5,6,7,8,0])
    425             sage: octave.sage2octave_matrix_string(A)   # optional -- requires Octave
     425            sage: octave.sage2octave_matrix_string(A)   # optional - octave
    426426            '[1, 2, 3; 4, 5, 6; 7, 8, 0]'
    427427       
    428428        AUTHORS:
     
    492492       
    493493        EXAMPLES::
    494494       
    495             sage: A = octave('[1,2;3,4]')       # optional -- requires Octave
    496             sage: matrix(ZZ, A)                 # optional -- requires Octave
     495            sage: A = octave('[1,2;3,4]')       # optional - octave
     496            sage: matrix(ZZ, A)                 # optional - octave
    497497            [1 2]
    498498            [3 4]
    499             sage: A = octave('[1,2;3,4.5]')     # optional -- requires Octave
    500             sage: matrix(RR, A)                 # optional -- requires Octave
     499            sage: A = octave('[1,2;3,4.5]')     # optional - octave
     500            sage: matrix(RR, A)                 # optional - octave
    501501            [1.00000000000000 2.00000000000000]
    502502            [3.00000000000000 4.50000000000000]
    503503        """
     
    558558   
    559559    EXAMPLES::
    560560   
    561         sage: octave_version()    # optional -- requires Octave; and output is random
     561        sage: octave_version()    # optional - octave; and output is random
    562562        '2.9.12'
    563563    """
    564564    return str(octave('version')).strip()
  • sage/interfaces/qsieve.py

    diff --git a/sage/interfaces/qsieve.py b/sage/interfaces/qsieve.py
    a b  
    6363        sage: v, t = qsieve(n, time=True)   # uses the sieve    (optional: time doesn't work on cygwin)
    6464        sage: v                                          # optional
    6565        [10000000000000000051, 100000000000000000039]
    66         sage: t                                          # random and optional
     66        sage: t                                          # random; optional
    6767        '0.36 real         0.19 user         0.00 sys'
    6868    """
    6969    Z = sage.rings.integer.Integer
     
    140140    still use Sage in parallel:
    141141
    142142        sage: k = 19; n = next_prime(10^k)*next_prime(10^(k+1))
    143         sage: q = qsieve(n, block=False, time=True)           # optional -- requires time command
     143        sage: q = qsieve(n, block=False, time=True)           # optional - time
    144144        sage: q           # random output                     # optional
    145145        Proper factors so far: [] 
    146146        sage: q           # random output                     # optional
  • sage/interfaces/r.py

    diff --git a/sage/interfaces/r.py b/sage/interfaces/r.py
    a b  
    399399
    400400        EXAMPLES::
    401401
    402             sage: r.install_packages('aaMI')       #optional requires internet
     402            sage: r.install_packages('aaMI')       # optional - internet
    403403            ...
    404404            R is free software and comes with ABSOLUTELY NO WARRANTY.
    405405            You are welcome to redistribute it under certain conditions.
     
    617617
    618618        EXAMPLES::
    619619
    620             sage: ap = r.available_packages()   #optional requires internet connection
     620            sage: ap = r.available_packages()   # optional - internet
    621621            sage: len(ap) > 20                  #optional
    622622            True
    623623        """
     
    10301030            NULL
    10311031            sage: r.library("lattice")
    10321032            sage: r("print(histogram(~wt | cyl, data=mtcars))") # plot should appear; optional -- rgraphics
    1033             sage: import os; os.unlink(filename) # We remove the file for doctesting, not needed in notebook;  optional -- rgraphics
     1033            sage: import os; os.unlink(filename) # We remove the file for doctesting, not needed in notebook; optional -- rgraphics
    10341034        """
    10351035        # We have to define this to override the plot function defined in the
    10361036        # superclass.
     
    18401840       
    18411841        EXAMPLES::
    18421842
    1843             sage: latex(r(2))  #optional requires the Hmisc R package
     1843            sage: latex(r(2))  # optional - Hmisc R package
    18441844            2
    18451845        """
    18461846        from sage.misc.latex import LatexExpr
  • sage/interfaces/scilab.py

    diff --git a/sage/interfaces/scilab.py b/sage/interfaces/scilab.py
    a b  
    329329        Starts Scilab console.
    330330
    331331        EXAMPLES:
    332             sage: scilab.console()          # optional - scilab and not tested
     332            sage: scilab.console()          # optional - scilab; not tested
    333333
    334334        """
    335335        scilab_console()
     
    471471   
    472472    EXAMPLES:
    473473        sage: from sage.interfaces.scilab import scilab_console # optional - scilab
    474         sage: scilab_console()                               # optional - scilab and not tested
     474        sage: scilab_console()                               # optional - scilab; not tested
    475475                ___________________________________________       
    476476                               scilab-5.0.3
    477477
  • sage/lfunctions/sympow.py

    diff --git a/sage/lfunctions/sympow.py b/sage/lfunctions/sympow.py
    a b  
    126126       
    127127            sage: a = sympow.L(EllipticCurve('11a'), 2, 16); a   # optional
    128128            '1.057599244590958E+00'
    129             sage: RR(a)                    # optional -- requires precomputations
     129            sage: RR(a)                    # optional - precomputations
    130130            1.05759924459096
    131131        """
    132132        if n % 2 == 1:
  • sage/libs/fes.pyx

    diff --git a/sage/libs/fes.pyx b/sage/libs/fes.pyx
    a b  
    2222
    2323Random Degree-2 System::
    2424
    25     sage: from sage.libs.fes import exhaustive_search                            #optional - needs FES
    26     sage: n = 16                                                                 #optional - needs FES
    27     sage: R = BooleanPolynomialRing(n, 'x')                                      #optional - needs FES
    28     sage: solution = dict(zip(R.gens(), VectorSpace(GF(2), n).random_element())) #optional - needs FES
     25    sage: from sage.libs.fes import exhaustive_search                            # optional - FES
     26    sage: n = 16                                                                 # optional - FES
     27    sage: R = BooleanPolynomialRing(n, 'x')                                      # optional - FES
     28    sage: solution = dict(zip(R.gens(), VectorSpace(GF(2), n).random_element())) # optional - FES
    2929
    30     sage: F = [ R.random_element() for i in range(n+10)  ]                       #optional - needs FES
    31     sage: G = [ f + f.subs(solution) for f in F]                                 #optional - needs FES
    32     sage: sols = exhaustive_search(G)                                            #optional - needs FES
    33     sage: solution in sols                                                       #optional - needs FES
     30    sage: F = [ R.random_element() for i in range(n+10)  ]                       # optional - FES
     31    sage: G = [ f + f.subs(solution) for f in F]                                 # optional - FES
     32    sage: sols = exhaustive_search(G)                                            # optional - FES
     33    sage: solution in sols                                                       # optional - FES
    3434    True
    35     sage: len(sols)                                                              #optional - needs FES
     35    sage: len(sols)                                                              # optional - FES
    3636    1
    3737
    3838Cylic benchmark::
    3939
    40     sage: from sage.rings.ideal import Cyclic                 #optional - needs FES
    41     sage: from sage.libs.fes import exhaustive_search         #optional - needs FES
    42     sage: n = 10                                              #optional - needs FES
    43     sage: R = BooleanPolynomialRing(n, 'x')                   #optional - needs FES
    44     sage: sols = exhaustive_search( Cyclic(R) )               #optional - needs FES
    45     sage: len(sols)                                           #optional - needs FES
     40    sage: from sage.rings.ideal import Cyclic                 # optional - FES
     41    sage: from sage.libs.fes import exhaustive_search         # optional - FES
     42    sage: n = 10                                              # optional - FES
     43    sage: R = BooleanPolynomialRing(n, 'x')                   # optional - FES
     44    sage: sols = exhaustive_search( Cyclic(R) )               # optional - FES
     45    sage: len(sols)                                           # optional - FES
    4646    1
    47     sage: set(sols[0]) == set(R.gens())                       #optional - needs FES
     47    sage: set(sols[0]) == set(R.gens())                       # optional - FES
    4848    True
    4949
    5050REFERENCES:
     
    137137
    138138    A very simple example::
    139139
    140         sage: from sage.libs.fes import exhaustive_search               #optional - needs FES
    141         sage: R.<x,y,z> = BooleanPolynomialRing()                       #optional - needs FES
    142         sage: exhaustive_search( [x*y + z + y + 1, x+y+z, x*y + y*z] )  #optional - needs FES
     140        sage: from sage.libs.fes import exhaustive_search               # optional - FES
     141        sage: R.<x,y,z> = BooleanPolynomialRing()                       # optional - FES
     142        sage: exhaustive_search( [x*y + z + y + 1, x+y+z, x*y + y*z] )  # optional - FES
    143143        [{y: 0, z: 1, x: 1}]
    144144
    145145    Another very simple example::
    146146
    147         sage: R.<x,y,z,t,w> = BooleanPolynomialRing()                   #optional - needs FES
    148         sage: f = x*y*z + z + y + 1                                     #optional - needs FES
    149         sage: sorted( exhaustive_search( [f, x+y+z, x*y + y*z] ) )      #optional - needs FES
     147        sage: R.<x,y,z,t,w> = BooleanPolynomialRing()                   # optional - FES
     148        sage: f = x*y*z + z + y + 1                                     # optional - FES
     149        sage: sorted( exhaustive_search( [f, x+y+z, x*y + y*z] ) )      # optional - FES
    150150        [{w: 0, t: 0, y: 0, z: 1, x: 1}, {w: 0, t: 1, y: 0, z: 1, x: 1}, {w: 1, t: 0, y: 0, z: 1, x: 1}, {w: 1, t: 1, y: 0, z: 1, x: 1}]
    151151
    152152    An example with several solutions::
    153153
    154         sage: R.<x,y,z, t> = BooleanPolynomialRing()                    #optional - needs FES
    155         sage: eqs = [x*z + y*t + 1,   x*y + y*z + z*t + t*x , x+y+z+1]  #optional - needs FES
    156         sage: sorted( exhaustive_search( eqs ) )                        #optional - needs FES
     154        sage: R.<x,y,z, t> = BooleanPolynomialRing()                    # optional - FES
     155        sage: eqs = [x*z + y*t + 1,   x*y + y*z + z*t + t*x , x+y+z+1]  # optional - FES
     156        sage: sorted( exhaustive_search( eqs ) )                        # optional - FES
    157157        [{t: 0, y: 1, z: 1, x: 1}, {t: 1, y: 1, z: 0, x: 0}]
    158158
    159159    We voluntarily limit the number of solutions returned by the library::
    160160
    161         sage: eqs =  [x*z + y*t + 1,   x*y + y*z + z*t + t*x , x+y+z+1] #optional - needs FES
    162         sage: exhaustive_search(eqs, max_sols=1 )                       #optional - needs FES
     161        sage: eqs =  [x*z + y*t + 1,   x*y + y*z + z*t + t*x , x+y+z+1] # optional - FES
     162        sage: exhaustive_search(eqs, max_sols=1 )                       # optional - FES
    163163        [{t: 0, y: 1, z: 1, x: 1}]
    164164
    165165    .. SEEALSO::
     
    254254
    255255    Testing that the function works::
    256256
    257         sage: from sage.libs.fes import find_coordinate_change    #optional - needs FES
    258         sage: n = 40                                              #optional - needs FES
    259         sage: K = GF(2)                                           #optional - needs FES
    260         sage: R = BooleanPolynomialRing(n, 'x')                   #optional - needs FES
    261         sage: foo = [ MatrixSpace(GF(2), n, n).random_element() ] #optional - needs FES
    262         sage: f = [ M + M.T for M in foo ]                        #optional - needs FES
    263         sage: S = find_coordinate_change( f )                     #optional - needs FES
    264         sage: g = [ S.T*M*S for M in f ]                          #optional - needs FES
    265         sage: vector ([ M[0,1] for M in g[:32]]).is_zero()        #optional - needs FES
     257        sage: from sage.libs.fes import find_coordinate_change    # optional - FES
     258        sage: n = 40                                              # optional - FES
     259        sage: K = GF(2)                                           # optional - FES
     260        sage: R = BooleanPolynomialRing(n, 'x')                   # optional - FES
     261        sage: foo = [ MatrixSpace(GF(2), n, n).random_element() ] # optional - FES
     262        sage: f = [ M + M.T for M in foo ]                        # optional - FES
     263        sage: S = find_coordinate_change( f )                     # optional - FES
     264        sage: g = [ S.T*M*S for M in f ]                          # optional - FES
     265        sage: vector ([ M[0,1] for M in g[:32]]).is_zero()        # optional - FES
    266266        True
    267267    """
    268268    n = As[0].nrows()
     
    303303
    304304    We check that the function does what it is supposed to do::
    305305
    306         sage: from sage.libs.fes import prepare_polynomials                    #optional - needs FES
    307         sage: n = 35                                                           #optional - needs FES
    308         sage: K = GF(2)                                                        #optional - needs FES
    309         sage: R = BooleanPolynomialRing(n, 'x')                                #optional - needs FES
     306        sage: from sage.libs.fes import prepare_polynomials                    # optional - FES
     307        sage: n = 35                                                           # optional - FES
     308        sage: K = GF(2)                                                        # optional - FES
     309        sage: R = BooleanPolynomialRing(n, 'x')                                # optional - FES
    310310        sage: f = [ sum( [K.random_element() * R.gen(i) * R.gen(j) for i in range(n) for j in range(i)] ) \
    311311               + sum( [K.random_element() * R.gen(i)  for i in range(n) ] ) \
    312312               + K.random_element() for l in range(n) ]                        #optional - needs FES
    313         sage: g = prepare_polynomials(f)                                       #optional - needs FES
    314         sage: map(lambda x:x.lm(), g)                                          #optional - needs FES, random
     313        sage: g = prepare_polynomials(f)                                       # optional - FES
     314        sage: map(lambda x:x.lm(), g)                                          # optional - FES, random
    315315        0
    316316    """
    317317    if f == []:
  • sage/misc/dev_tools.py

    diff --git a/sage/misc/dev_tools.py b/sage/misc/dev_tools.py
    a b  
    1818
    1919    EXAMPLES::
    2020
    21         sage: runsnake("list(SymmetricGroup(3))")        # optional - requires runsnake
     21        sage: runsnake("list(SymmetricGroup(3))")        # optional - runsnake
    2222
    2323    ``command`` is first preparsed (see :func:`preparse`)::
    2424
    25         sage: runsnake('for x in range(1,4): print x^2') # optional - requires runsnake
     25        sage: runsnake('for x in range(1,4): print x^2') # optional - runsnake
    2626        1
    2727        4
    2828        9
  • sage/misc/functional.py

    diff --git a/sage/misc/functional.py b/sage/misc/functional.py
    a b  
    630630
    631631    This summation only Mathematica can perform::
    632632
    633         sage: sum(1/(1+k^2), k, -oo, oo, algorithm = 'mathematica')     # optional  -- requires mathematica
     633        sage: sum(1/(1+k^2), k, -oo, oo, algorithm = 'mathematica')     # optional - mathematica
    634634        pi*coth(pi)
    635635
    636636    Use Maple as a backend for summation::
    637637
    638         sage: sum(binomial(n,k)*x^k, k, 0, n, algorithm = 'maple')      # optional  -- requires maple
     638        sage: sum(binomial(n,k)*x^k, k, 0, n, algorithm = 'maple')      # optional - maple
    639639        (x + 1)^n
    640640
    641641    Python ints should work as limits of summation (trac #9393)::
  • sage/misc/latex.py

    diff --git a/sage/misc/latex.py b/sage/misc/latex.py
    a b  
    10961096            # This would generate a file named "/path/to/test.png"
    10971097            sage: latex.eval("\\ZZ[x]", locals(), filename="/path/to/test") # not tested
    10981098            ''
    1099             sage: latex.eval("\ThisIsAnInvalidCommand", {}) # optional - requires 'convert'
     1099            sage: latex.eval("\ThisIsAnInvalidCommand", {}) # optional -- ImageMagick
    11001100            An error
    11011101            ...
    11021102            No pages of output.
  • sage/misc/remote_file.py

    diff --git a/sage/misc/remote_file.py b/sage/misc/remote_file.py
    a b  
    1212        absolute path to that file.
    1313
    1414    EXAMPLES:
    15         sage: g = get_remote_file("http://sagemath.org/ack.html", verbose=False)   # optional -- requires the internet
    16         sage: len(open(g).read())   # optional and randomly growing.
     15        sage: g = get_remote_file("http://sagemath.org/ack.html", verbose=False)   # optional - internet
     16        sage: len(open(g).read())   # optional; randomly growing.
    1717        10198                 
    1818    """
    1919    if verbose:
  • sage/modular/ssmod/ssmod.py

    diff --git a/sage/modular/ssmod/ssmod.py b/sage/modular/ssmod/ssmod.py
    a b  
    568568    Observe that in this example the j-invariant is not defined over
    569569    the prime field::
    570570
    571         sage: supersingular_j(GF(15073^2,'a'))  # optional -- requires database
     571        sage: supersingular_j(GF(15073^2,'a'))  # optional - database
    572572        10630*a + 6033
    573573
    574574        sage: supersingular_j(GF(83401^2, 'a'))
  • sage/modules/free_module_element.pyx

    diff --git a/sage/modules/free_module_element.pyx b/sage/modules/free_module_element.pyx
    a b  
    30273027       
    30283028            sage: vector((1,2,3), QQ)._mathematica_init_()
    30293029            '{1/1, 2/1, 3/1}'
    3030             sage: mathematica(vector((1,2,3), QQ))  #optional -- requires mathematica
     3030            sage: mathematica(vector((1,2,3), QQ))  # optional - mathematica
    30313031            {1, 2, 3}
    30323032            sage: a = vector(SR, 5, [1, x, x^2, sin(x), pi]); a
    30333033            (1, x, x^2, sin(x), pi)
  • sage/rings/number_field/galois_group.py

    diff --git a/sage/rings/number_field/galois_group.py b/sage/rings/number_field/galois_group.py
    a b  
    109109            sage: G = NumberField(x^3 + 2*x + 2, 'theta').galois_group(type="pari")
    110110            sage: H = G.group(); H
    111111            PARI group [6, -1, 2, "S3"] of degree 3
    112             sage: P = H.permutation_group(); P  # optional -- requires Gap optional databases
     112            sage: P = H.permutation_group(); P  # optional - database_gap
    113113            Transitive group number 2 of degree 3
    114114            sage: list(P)                       # optional
    115115            [(), (2,3), (1,2), (1,2,3), (1,3,2), (1,3)]
  • sage/rings/polynomial/multi_polynomial_element.py

    diff --git a/sage/rings/polynomial/multi_polynomial_element.py b/sage/rings/polynomial/multi_polynomial_element.py
    a b  
    317317#            sage: R.<x,y> = ZZ[]
    318318#            sage: f = (x^3 + 2*y^2*x)^7; f
    319319#            x^21 + 14*x^19*y^2 + 84*x^17*y^4 + 280*x^15*y^6 + 560*x^13*y^8 + 672*x^11*y^10 + 448*x^9*y^12 + 128*x^7*y^14
    320 #            sage: macaulay2(R)                      # optional, requires M2
     320#            sage: macaulay2(R)                      # optional - M2
    321321#            ZZ [x, y, MonomialOrder => GRevLex, MonomialSize => 16]
    322322#            sage: h = f._macaulay2_()               # optional
    323323#            sage: R(h)                              # optional
  • sage/rings/polynomial/multi_polynomial_ideal.py

    diff --git a/sage/rings/polynomial/multi_polynomial_ideal.py b/sage/rings/polynomial/multi_polynomial_ideal.py
    a b  
    938938       
    939939            sage: R.<x,y,z> = PolynomialRing(QQ,3)
    940940            sage: I = R.ideal([y^2 + x^2*(1/4) - z])
    941             sage: I.plot()          # a cone        optional - surf
     941            sage: I.plot()          # a cone; optional - surf
    942942            sage: I = R.ideal([y^2 + z^2*(1/4) - x])
    943             sage: I.plot()          # same code, from a different angle  optional - surf
     943            sage: I.plot()          # same code, from a different angle; optional - surf
    944944            sage: I = R.ideal([x^2*y^2+x^2*z^2+y^2*z^2-16*x*y*z])
    945             sage: I.plot()          # Steiner surface  optional - surf
     945            sage: I.plot()          # Steiner surface; optional - surf
    946946       
    947947        AUTHORS:
    948948
  • sage/rings/polynomial/multi_polynomial_libsingular.pyx

    diff --git a/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/sage/rings/polynomial/multi_polynomial_libsingular.pyx
    a b  
    11111111        EXAMPLES::
    11121112
    11131113            sage: P.<x,y> = PolynomialRing(QQ)
    1114             sage: M2 = P._macaulay2_set_ring() # optional, requires M2
     1114            sage: M2 = P._macaulay2_set_ring() # optional - M2
    11151115        """
    11161116        if not self.__m2_set_ring_cache is None:
    11171117            base_str, gens, order = self.__m2_set_ring_cache
  • sage/symbolic/expression.pyx

    diff --git a/sage/symbolic/expression.pyx b/sage/symbolic/expression.pyx
    a b  
    39053905       
    39063906            sage: f.subs_expr(x^2 + y^2 == t)
    39073907            (x, y, t) |--> x^2 + y^2 + t + sin(y) + cos(x)
    3908             sage: maple.eval('subs(x^2 + y^2 = t, cos(x) + sin(y) + x^2 + y^2 + t)')          # optional requires maple
     3908            sage: maple.eval('subs(x^2 + y^2 = t, cos(x) + sin(y) + x^2 + y^2 + t)')          # optional - maple
    39093909            'cos(x)+sin(y)+x^2+y^2+t'
    39103910            sage: maxima.quit()
    39113911            sage: maxima.eval('cos(x) + sin(y) + x^2 + y^2 + t, x^2 + y^2 = t')
     
    39133913       
    39143914        Actually Mathematica does something that makes more sense::
    39153915       
    3916             sage: mathematica.eval('Cos[x] + Sin[y] + x^2 + y^2 + t /. x^2 + y^2 -> t')       # optional -- requires mathematica
     3916            sage: mathematica.eval('Cos[x] + Sin[y] + x^2 + y^2 + t /. x^2 + y^2 -> t')       # optional - mathematica
    39173917            2 t + Cos[x] + Sin[y]
    39183918        """
    39193919        if isinstance(equations[0], dict):
     
    92149214
    92159215        This summation only Mathematica can perform::
    92169216
    9217             sage: (1/(1+k^2)).sum(k, -oo, oo, algorithm = 'mathematica')     # optional  -- requires mathematica
     9217            sage: (1/(1+k^2)).sum(k, -oo, oo, algorithm = 'mathematica')     # optional - mathematica
    92189218            pi*coth(pi)
    92199219
    92209220        Use Giac to perform this summation::
    92219221
    9222             sage: (sum(1/(1+k^2), k, -oo, oo, algorithm = 'giac')).factor()       # optional  -- requires giac
     9222            sage: (sum(1/(1+k^2), k, -oo, oo, algorithm = 'giac')).factor()       # optional - giac
    92239223            (e^(2*pi) + 1)*pi/((e^pi - 1)*(e^pi + 1))
    92249224
    92259225        Use Maple as a backend for summation::
    92269226
    9227             sage: (binomial(n,k)*x^k).sum(k, 0, n, algorithm = 'maple')      # optional  -- requires maple
     9227            sage: (binomial(n,k)*x^k).sum(k, 0, n, algorithm = 'maple')      # optional - maple
    92289228            (x + 1)^n
    92299229
    92309230        Check that the sum in #10682 is done right::
  • sage/symbolic/integration/external.py

    diff --git a/sage/symbolic/integration/external.py b/sage/symbolic/integration/external.py
    a b  
    4141def mma_free_integrator(expression, v, a=None, b=None):
    4242    """
    4343        sage: from sage.symbolic.integration.external import mma_free_integrator
    44         sage: mma_free_integrator(sin(x), x) # optional - requires internet
     44        sage: mma_free_integrator(sin(x), x) # optional - internet
    4545        -cos(x)
    4646    """
    4747    import urllib, re
  • sage/symbolic/integration/integral.py

    diff --git a/sage/symbolic/integration/integral.py b/sage/symbolic/integration/integral.py
    a b  
    447447
    448448        sage: _ = var('x, y, z')
    449449        sage: f = sin(x^2) + y^z
    450         sage: g = mathematica(f)                           # optional  -- requires mathematica
    451         sage: print g                                      # optional -- requires mathematica
     450        sage: g = mathematica(f)                           # optional - mathematica
     451        sage: print g                                      # optional - mathematica
    452452                  z        2
    453453                 y  + Sin[x ]
    454         sage: print g.Integrate(x)                         # optional -- requires mathematica
     454        sage: print g.Integrate(x)                         # optional - mathematica
    455455                    z        Pi                2
    456456                 x y  + Sqrt[--] FresnelS[Sqrt[--] x]
    457457                             2                 Pi
     
    463463
    464464        sage: _ = var('x, y, z')
    465465        sage: f = sin(x^2) + y^z
    466         sage: f.integrate(algorithm="mathematica_free")       # optional -- requires internet
     466        sage: f.integrate(algorithm="mathematica_free")       # optional - internet
    467467        sqrt(pi)*sqrt(1/2)*fresnels(sqrt(2)*x/sqrt(pi)) + y^z*x
    468468
    469469    We can also use Sympy::
     
    477477       
    478478    We integrate the above function in maple now::
    479479
    480         sage: g = maple(f); g                             # optional -- requires maple
     480        sage: g = maple(f); g                             # optional - maple
    481481        sin(x^2)+y^z
    482         sage: g.integrate(x)                              # optional -- requires maple
     482        sage: g.integrate(x)                              # optional - maple
    483483        1/2*2^(1/2)*Pi^(1/2)*FresnelS(2^(1/2)/Pi^(1/2)*x)+y^z*x
    484484
    485485    We next integrate a function with no closed form integral. Notice
  • sage/tests/benchmark.py

    diff --git a/sage/tests/benchmark.py b/sage/tests/benchmark.py
    a b  
    329329        EXAMPLE:
    330330            sage: from sage.tests.benchmark import MPolynomialPower
    331331            sage: B = MPolynomialPower()
    332             sage: isinstance(B.maple()[1], float)  #optional -- requires Maple
     332            sage: isinstance(B.maple()[1], float)  # optional - Maple
    333333            True
    334334
    335335        """
     
    426426        EXAMPLE:
    427427            sage: from sage.tests.benchmark import MPolynomialMult
    428428            sage: B = MPolynomialMult()
    429             sage: isinstance(B.maple()[1], float)  #optional -- requires Maple
     429            sage: isinstance(B.maple()[1], float)  # optional - Maple
    430430            True
    431431
    432432        """
     
    621621        EXAMPLE:
    622622            sage: from sage.tests.benchmark import MPolynomialMult2
    623623            sage: B = MPolynomialMult2()
    624             sage: isinstance(B.maple()[1], float) # optional -- requires maple
     624            sage: isinstance(B.maple()[1], float) # optional - maple
    625625            True
    626626
    627627        """
     
    961961        EXAMPLE:
    962962            sage: from sage.tests.benchmark import SquareInts
    963963            sage: B = SquareInts()
    964             sage: isinstance(B.maple()[1], float) # optional -- requires maple
     964            sage: isinstance(B.maple()[1], float) # optional - maple
    965965            True
    966966
    967967        """
     
    11221122        EXAMPLE:
    11231123            sage: from sage.tests.benchmark import Factorial
    11241124            sage: B = Factorial(10)
    1125             sage: isinstance(B.maple()[1], float) # optional -- requires maple
     1125            sage: isinstance(B.maple()[1], float) # optional - maple
    11261126            True
    11271127
    11281128        """