Ticket #6495: trac_6495-reference_breakup_v2.patch

File trac_6495-reference_breakup_v2.patch, 226.8 KB (added by mpatel, 10 years ago)

PDF fixes. This patch only. sage repo.

  • .hgignore

    # HG changeset patch
    # User Mitesh Patel <qed777@gmail.com>
    # Date 1259521097 28800
    # Node ID e15db9cb851c82fd21b18de2afafbc07a347067c
    # Parent  c97fa208548170efd4b3b3b2c60a4af78acb3017
    #6495/doc: Break the reference manual into more manageable pieces
    
    diff --git a/.hgignore b/.hgignore
    a b sage/rings/complex_double_api.h 
    123123sage/misc/allocator.h
    124124sage/symbolic/pynac.h
    125125doc/output/*
    126 doc/en/reference/utils/*
    127 doc/en/reference/sage/*
     126doc/en/reference/.*/sage/*
  • doc/common/builder.py

    diff --git a/doc/common/builder.py b/doc/common/builder.py
    a b class DocBuilder(object): 
    135135
    136136        - ``lang`` - (default "en") the language of the document.
    137137        """
    138         if '/' in name:
    139             lang, name = name.split(os.path.sep)
    140         self.name = name
     138        doc = name.split(os.path.sep)
     139
     140        if doc[0] in LANGUAGES:
     141            lang = doc[0]
     142            doc.pop(0)
     143
     144        self.name = os.path.join(*doc)
    141145        self.lang = lang
    142         self.dir = os.path.join(SAGE_DOC, lang, name)
     146        self.dir = os.path.join(SAGE_DOC, self.lang, self.name)
    143147
    144148        #Make sure the .static and .templates directories are there
    145149        mkdir(os.path.join(self.dir, "static"))
    class DocBuilder(object): 
    237241    changes = builder_helper('changes')
    238242    linkcheck = builder_helper('linkcheck')
    239243
     244
    240245class AllBuilder(object):
    241246    """
    242247    A class used to build all of the documentation.
    class AllBuilder(object): 
    279284                    documents.append(os.path.join(lang, document))
    280285        return documents
    281286
     287
    282288class WebsiteBuilder(DocBuilder):
    283289    def html(self):
    284290        """
    class WebsiteBuilder(DocBuilder): 
    310316
    311317        DocBuilder.clean(self)
    312318
    313 class ReferenceBuilder(DocBuilder):
     319
     320class ReferenceBuilder(AllBuilder):
    314321    """
    315     This the class used to build the reference manual.  It is
     322    This class builds the reference manual.  It uses DocBuilder to
     323    build the top-level page and ReferenceSubBuilder for each
     324    sub-component.
     325    """
     326    def __init__(self, name):
     327        """
     328        Records the reference manual's name, in case it's not
     329        identical to 'reference'.
     330        """
     331        AllBuilder.__init__(self)
     332        self.name = name
     333
     334    def _wrapper(self, format, *args, **kwds):
     335        """
     336        Builds reference manuals.  For each language, it builds the
     337        top-level document and its components.
     338        """
     339        for lang in LANGUAGES:
     340            refdir = os.path.join(SAGE_DOC, lang, self.name)
     341            if not os.path.exists(refdir):
     342                continue
     343
     344            getattr(DocBuilder(self.name, lang), format)(*args, **kwds)
     345            for doc in self.get_all_documents(refdir):
     346                getattr(ReferenceSubBuilder(doc, lang), format)(*args, **kwds)
     347
     348    def get_all_documents(self, refdir):
     349        """
     350        Returns a list of all reference manual components to build.
     351        We add a component name if it's a subdirectory of the manual's
     352        directory and contains a file named 'index.rst'.
     353        """
     354        documents = []
     355
     356        for doc in os.listdir(refdir):
     357            if os.path.exists(os.path.join(refdir, doc, 'index.rst')):
     358                documents.append(os.path.join(self.name, doc))
     359       
     360        return documents
     361
     362
     363class ReferenceSubBuilder(DocBuilder):
     364    """
     365    This class builds sub-components of the reference manual.  It is
    316366    resposible for making sure the auto generated ReST files for the
    317367    Sage library are up to date.
    318368
    class ReferenceBuilder(DocBuilder): 
    696746
    697747def get_builder(name):
    698748    """
    699     Returns a either a AllBuilder or DocBuilder object depending
    700     on whether ``name`` is 'all' or not.  These are the objects
    701     which do all the real work in building the documentation.
     749    Returns an appropriate *Builder object for the document ``name``.
     750    DocBuilder and its subclasses do all the real work in building the
     751    documentation.
    702752    """
    703753    if name == 'all':
    704754        return AllBuilder()
    705755    elif name.endswith('reference'):
    706756        return ReferenceBuilder(name)
     757    elif 'reference' in name:
     758        return ReferenceSubBuilder(name)
    707759    elif name.endswith('website'):
    708760        return WebsiteBuilder(name)
    709761    elif name in get_documents() or name in AllBuilder().get_all_documents():
  • doc/common/conf.py

    diff --git a/doc/common/conf.py b/doc/common/conf.py
    a b html_split_index = True 
    183183# Output file base name for HTML help builder.
    184184#htmlhelp_basename = ''
    185185
    186 # Cross-links to other project's online documentation.
    187 intersphinx_mapping = {'http://docs.python.org/dev': None}
     186# Cross-references within Sage docs and to other projects' docs.
     187intersphinx_mapping = {
     188    'http://docs.python.org/dev': None
     189    }
     190
     191ref_src = os.path.join(SAGE_DOC, 'en', 'reference')
     192ref_out = os.path.join(SAGE_DOC, 'output', 'html', 'en', 'reference')
     193intersphinx_mapping[ref_out] = None
     194
     195for doc in os.listdir(ref_src):
     196    if os.path.exists(os.path.join(ref_src, doc, 'index.rst')):
     197        intersphinx_mapping[os.path.join(ref_out, doc)] = None
    188198
    189199
    190200# Options for LaTeX output
  • deleted file doc/en/reference/algebras.rst

    diff --git a/doc/en/reference/algebras.rst b/doc/en/reference/algebras.rst
    deleted file mode 100644
    + -  
    1 .. _ch:algebras:
    2 
    3 Algebras
    4 ========
    5 
    6 .. toctree::
    7    :maxdepth: 2
    8 
    9    sage/algebras/free_algebra
    10    sage/algebras/free_algebra_element
    11 
    12    sage/algebras/free_algebra_quotient
    13    sage/algebras/free_algebra_quotient_element
    14 
    15    sage/algebras/steenrod_algebra
    16    sage/algebras/steenrod_algebra_element
    17    sage/algebras/steenrod_algebra_bases
    18  No newline at end of file
  • new file doc/en/reference/algebras/conf.py

    diff --git a/doc/en/reference/algebras/conf.py b/doc/en/reference/algebras/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/algebras/index.rst

    diff --git a/doc/en/reference/algebras/index.rst b/doc/en/reference/algebras/index.rst
    new file mode 100644
    - +  
     1Algebras
     2========
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/algebras/free_algebra
     8   sage/algebras/free_algebra_element
     9
     10   sage/algebras/free_algebra_quotient
     11   sage/algebras/free_algebra_quotient_element
     12
     13   sage/algebras/steenrod_algebra
     14   sage/algebras/steenrod_algebra_element
     15   sage/algebras/steenrod_algebra_bases
     16
     17
     18.. include:: ../footer.txt
  • deleted file doc/en/reference/arithgroup.rst

    diff --git a/doc/en/reference/arithgroup.rst b/doc/en/reference/arithgroup.rst
    deleted file mode 100644
    + -  
    1 .. _ch:arithgroup:
    2 
    3 Arithmetic Subgroups of `{\rm SL}_2(\ZZ)`
    4 ================================================
    5 
    6 This chapter describes the basic functionality for finite index subgroups of
    7 the modular group `{\rm SL}_2(\ZZ)`.
    8 
    9 .. toctree::
    10    :maxdepth: 2
    11 
    12    sage/modular/arithgroup/arithgroup_generic
    13    sage/modular/arithgroup/arithgroup_perm
    14    sage/modular/arithgroup/arithgroup_element
    15    sage/modular/arithgroup/congroup_generic
    16    sage/modular/arithgroup/congroup_gammaH
    17    sage/modular/arithgroup/congroup_gamma1
    18    sage/modular/arithgroup/congroup_gamma0
    19    sage/modular/arithgroup/congroup_gamma
    20    sage/modular/arithgroup/congroup_sl2z
  • new file doc/en/reference/arithgroup/conf.py

    diff --git a/doc/en/reference/arithgroup/conf.py b/doc/en/reference/arithgroup/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/arithgroup/index.rst

    diff --git a/doc/en/reference/arithgroup/index.rst b/doc/en/reference/arithgroup/index.rst
    new file mode 100644
    - +  
     1Arithmetic Subgroups of `{\rm SL}_2({\bf Z})`
     2================================================
     3
     4This chapter describes the basic functionality for finite index subgroups of
     5the modular group `{\rm SL}_2(\ZZ)`.
     6
     7.. toctree::
     8   :maxdepth: 2
     9
     10   sage/modular/arithgroup/arithgroup_generic
     11   sage/modular/arithgroup/arithgroup_perm
     12   sage/modular/arithgroup/arithgroup_element
     13   sage/modular/arithgroup/congroup_generic
     14   sage/modular/arithgroup/congroup_gammaH
     15   sage/modular/arithgroup/congroup_gamma1
     16   sage/modular/arithgroup/congroup_gamma0
     17   sage/modular/arithgroup/congroup_gamma
     18   sage/modular/arithgroup/congroup_sl2z
     19
     20
     21.. include:: ../footer.txt
  • deleted file doc/en/reference/calculus.rst

    diff --git a/doc/en/reference/calculus.rst b/doc/en/reference/calculus.rst
    deleted file mode 100644
    + -  
    1 Symbolic Calculus
    2 =================
    3 
    4 .. toctree::
    5    :maxdepth: 2
    6 
    7    sage/symbolic/expression
    8    sage/symbolic/relation
    9    sage/calculus/calculus
    10    sage/symbolic/ring
    11    sage/calculus/functional
    12    sage/calculus/test_sympy
    13    sage/calculus/tests
    14    sage/symbolic/expression_conversions
    15    sage/calculus/wester
  • new file doc/en/reference/calculus/conf.py

    diff --git a/doc/en/reference/calculus/conf.py b/doc/en/reference/calculus/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/calculus/index.rst

    diff --git a/doc/en/reference/calculus/index.rst b/doc/en/reference/calculus/index.rst
    new file mode 100644
    - +  
     1Symbolic Calculus
     2=================
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/symbolic/expression
     8   sage/symbolic/relation
     9   sage/calculus/calculus
     10   sage/symbolic/ring
     11   sage/calculus/functional
     12   sage/calculus/test_sympy
     13   sage/calculus/tests
     14   sage/symbolic/expression_conversions
     15   sage/calculus/wester
     16
     17
     18.. include:: ../footer.txt
  • deleted file doc/en/reference/categories.rst

    diff --git a/doc/en/reference/categories.rst b/doc/en/reference/categories.rst
    deleted file mode 100644
    + -  
    1 .. _ch:categories:
    2 
    3 Category Theory
    4 ===============
    5 
    6 .. toctree::
    7    :maxdepth: 2
    8 
    9    sage/categories/primer
    10    sage/categories/tutorial
    11    sage/categories/category
    12    sage/categories/category_types
    13    sage/categories/homset
    14    sage/categories/morphism
    15    sage/categories/functor
    16 
    17 Functorial constructions
    18 ========================
    19 
    20 .. toctree::
    21    :maxdepth: 2
    22 
    23    sage/categories/cartesian_product
    24    sage/categories/tensor
    25    sage/categories/dual
    26 
    27 Categories
    28 ==========
    29 
    30 .. toctree::
    31    :maxdepth: 2
    32 
    33    sage/categories/algebra_ideals
    34    sage/categories/algebra_modules
    35    sage/categories/algebras
    36    sage/categories/algebras_with_basis
    37    sage/categories/bialgebras
    38    sage/categories/bialgebras_with_basis
    39    sage/categories/bimodules
    40    sage/categories/coalgebras
    41    sage/categories/coalgebras_with_basis
    42    sage/categories/commutative_additive_groups
    43    sage/categories/commutative_additive_monoids
    44    sage/categories/commutative_additive_semigroups
    45    sage/categories/commutative_algebra_ideals
    46    sage/categories/commutative_algebras
    47    sage/categories/commutative_ring_ideals
    48    sage/categories/commutative_rings
    49    sage/categories/coxeter_groups
    50    sage/categories/division_rings
    51    sage/categories/domains
    52    sage/categories/enumerated_sets
    53    sage/categories/euclidean_domains
    54    sage/categories/fields
    55    sage/categories/finite_coxeter_groups
    56    sage/categories/finite_dimensional_algebras_with_basis
    57    sage/categories/finite_dimensional_bialgebras_with_basis
    58    sage/categories/finite_dimensional_coalgebras_with_basis
    59    sage/categories/finite_dimensional_hopf_algebras_with_basis
    60    sage/categories/finite_dimensional_modules_with_basis
    61    sage/categories/finite_enumerated_sets
    62    sage/categories/finite_fields
    63    sage/categories/finite_monoids
    64    sage/categories/finite_semigroups
    65    sage/categories/finite_weyl_groups
    66    sage/categories/gcd_domains
    67    sage/categories/graded_algebras
    68    sage/categories/graded_algebras_with_basis
    69    sage/categories/graded_bialgebras
    70    sage/categories/graded_bialgebras_with_basis
    71    sage/categories/graded_coalgebras
    72    sage/categories/graded_coalgebras_with_basis
    73    sage/categories/graded_hopf_algebras
    74    sage/categories/graded_hopf_algebras_with_basis
    75    sage/categories/graded_modules
    76    sage/categories/graded_modules_with_basis
    77    sage/categories/groupoid
    78    sage/categories/groups
    79    sage/categories/g_sets
    80    sage/categories/hecke_modules
    81    sage/categories/hopf_algebras
    82    sage/categories/hopf_algebras_with_basis
    83    sage/categories/infinite_enumerated_sets
    84    sage/categories/integral_domains
    85    sage/categories/left_modules
    86    sage/categories/matrix_algebras
    87    sage/categories/modular_abelian_varieties
    88    sage/categories/modules
    89    sage/categories/modules_with_basis
    90    sage/categories/monoid_algebras
    91    sage/categories/monoids
    92    sage/categories/number_fields
    93    sage/categories/objects
    94    sage/categories/partially_ordered_monoids
    95    sage/categories/partially_ordered_sets
    96    sage/categories/pointed_sets
    97    sage/categories/principal_ideal_domains
    98    sage/categories/quotient_fields
    99    sage/categories/right_modules
    100    sage/categories/ring_ideals
    101    sage/categories/rings
    102    sage/categories/rngs
    103    sage/categories/schemes
    104    sage/categories/semigroups
    105    sage/categories/sets_cat
    106    sage/categories/unique_factorization_domains
    107    sage/categories/vector_spaces
    108    sage/categories/weyl_groups
    109 
    110 .. autoclass:: sage.categories.sets_cat::Sets.ParentMethods
    111    :members:
    112 
    113    
    114 Examples of parents using categories
    115 =====================================
    116 
    117 .. toctree::
    118    :maxdepth: 2
    119 
    120    sage/categories/examples/algebras_with_basis
    121    sage/categories/examples/commutative_additive_monoids
    122    sage/categories/examples/commutative_additive_semigroups
    123    sage/categories/examples/finite_coxeter_groups
    124    sage/categories/examples/finite_enumerated_sets
    125    sage/categories/examples/finite_monoids
    126    sage/categories/examples/finite_semigroups
    127    sage/categories/examples/finite_weyl_groups
    128    sage/categories/examples/hopf_algebras_with_basis
    129    sage/categories/examples/infinite_enumerated_sets
    130    sage/categories/examples/monoids
    131    sage/categories/examples/semigroups
    132    sage/categories/examples/sets_cat
    133    sage/categories/examples/semigroups_cython
    134 
    135 .. sage/categories/examples/coxeter_groups
  • new file doc/en/reference/categories/conf.py

    diff --git a/doc/en/reference/categories/conf.py b/doc/en/reference/categories/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/categories/index.rst

    diff --git a/doc/en/reference/categories/index.rst b/doc/en/reference/categories/index.rst
    new file mode 100644
    - +  
     1Category Theory
     2===============
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/categories/primer
     8   sage/categories/tutorial
     9   sage/categories/category
     10   sage/categories/category_types
     11   sage/categories/homset
     12   sage/categories/morphism
     13   sage/categories/functor
     14
     15Functorial constructions
     16========================
     17
     18.. toctree::
     19   :maxdepth: 2
     20
     21   sage/categories/cartesian_product
     22   sage/categories/tensor
     23   sage/categories/dual
     24
     25Categories
     26==========
     27
     28.. toctree::
     29   :maxdepth: 2
     30
     31   sage/categories/algebra_ideals
     32   sage/categories/algebra_modules
     33   sage/categories/algebras
     34   sage/categories/algebras_with_basis
     35   sage/categories/bialgebras
     36   sage/categories/bialgebras_with_basis
     37   sage/categories/bimodules
     38   sage/categories/coalgebras
     39   sage/categories/coalgebras_with_basis
     40   sage/categories/commutative_additive_groups
     41   sage/categories/commutative_additive_monoids
     42   sage/categories/commutative_additive_semigroups
     43   sage/categories/commutative_algebra_ideals
     44   sage/categories/commutative_algebras
     45   sage/categories/commutative_ring_ideals
     46   sage/categories/commutative_rings
     47   sage/categories/coxeter_groups
     48   sage/categories/division_rings
     49   sage/categories/domains
     50   sage/categories/enumerated_sets
     51   sage/categories/euclidean_domains
     52   sage/categories/fields
     53   sage/categories/finite_coxeter_groups
     54   sage/categories/finite_dimensional_algebras_with_basis
     55   sage/categories/finite_dimensional_bialgebras_with_basis
     56   sage/categories/finite_dimensional_coalgebras_with_basis
     57   sage/categories/finite_dimensional_hopf_algebras_with_basis
     58   sage/categories/finite_dimensional_modules_with_basis
     59   sage/categories/finite_enumerated_sets
     60   sage/categories/finite_fields
     61   sage/categories/finite_monoids
     62   sage/categories/finite_semigroups
     63   sage/categories/finite_weyl_groups
     64   sage/categories/gcd_domains
     65   sage/categories/graded_algebras
     66   sage/categories/graded_algebras_with_basis
     67   sage/categories/graded_bialgebras
     68   sage/categories/graded_bialgebras_with_basis
     69   sage/categories/graded_coalgebras
     70   sage/categories/graded_coalgebras_with_basis
     71   sage/categories/graded_hopf_algebras
     72   sage/categories/graded_hopf_algebras_with_basis
     73   sage/categories/graded_modules
     74   sage/categories/graded_modules_with_basis
     75   sage/categories/groupoid
     76   sage/categories/groups
     77   sage/categories/g_sets
     78   sage/categories/hecke_modules
     79   sage/categories/hopf_algebras
     80   sage/categories/hopf_algebras_with_basis
     81   sage/categories/infinite_enumerated_sets
     82   sage/categories/integral_domains
     83   sage/categories/left_modules
     84   sage/categories/matrix_algebras
     85   sage/categories/modular_abelian_varieties
     86   sage/categories/modules
     87   sage/categories/modules_with_basis
     88   sage/categories/monoid_algebras
     89   sage/categories/monoids
     90   sage/categories/number_fields
     91   sage/categories/objects
     92   sage/categories/partially_ordered_monoids
     93   sage/categories/partially_ordered_sets
     94   sage/categories/pointed_sets
     95   sage/categories/principal_ideal_domains
     96   sage/categories/quotient_fields
     97   sage/categories/right_modules
     98   sage/categories/ring_ideals
     99   sage/categories/rings
     100   sage/categories/rngs
     101   sage/categories/schemes
     102   sage/categories/semigroups
     103   sage/categories/sets_cat
     104   sage/categories/unique_factorization_domains
     105   sage/categories/vector_spaces
     106   sage/categories/weyl_groups
     107
     108.. autoclass:: sage.categories.sets_cat::Sets.ParentMethods
     109   :members:
     110
     111   
     112Examples of parents using categories
     113=====================================
     114
     115.. toctree::
     116   :maxdepth: 2
     117
     118   sage/categories/examples/algebras_with_basis
     119   sage/categories/examples/commutative_additive_monoids
     120   sage/categories/examples/commutative_additive_semigroups
     121   sage/categories/examples/finite_coxeter_groups
     122   sage/categories/examples/finite_enumerated_sets
     123   sage/categories/examples/finite_monoids
     124   sage/categories/examples/finite_semigroups
     125   sage/categories/examples/finite_weyl_groups
     126   sage/categories/examples/hopf_algebras_with_basis
     127   sage/categories/examples/infinite_enumerated_sets
     128   sage/categories/examples/monoids
     129   sage/categories/examples/semigroups
     130   sage/categories/examples/sets_cat
     131   sage/categories/examples/semigroups_cython
     132
     133.. sage/categories/examples/coxeter_groups
     134
     135
     136.. include:: ../footer.txt
  • deleted file doc/en/reference/cmd.rst

    diff --git a/doc/en/reference/cmd.rst b/doc/en/reference/cmd.rst
    deleted file mode 100644
    + -  
    1 .. _ch:cmdline:
    2 
    3 The Sage Command Line
    4 =====================
    5 
    6 The chapter lists the Sage command line options. For more details
    7 about how to use the Sage command line once it starts up, see the
    8 Sage tutorial and the documentation for IPython.
    9 
    10 .. toctree::
    11    :maxdepth: 2
    12 
    13    sage/misc/attach
    14    sage/misc/trace
    15    options
  • new file doc/en/reference/cmd/conf.py

    diff --git a/doc/en/reference/cmd/conf.py b/doc/en/reference/cmd/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/cmd/index.rst

    diff --git a/doc/en/reference/cmd/index.rst b/doc/en/reference/cmd/index.rst
    new file mode 100644
    - +  
     1The Sage Command Line
     2=====================
     3
     4The chapter lists the Sage command line options. For more details
     5about how to use the Sage command line once it starts up, see the
     6Sage tutorial and the documentation for IPython.
     7
     8.. toctree::
     9   :maxdepth: 2
     10
     11   sage/misc/attach
     12   sage/misc/trace
     13   options
     14
     15
     16.. include:: ../footer.txt
  • deleted file doc/en/reference/coding.rst

    diff --git a/doc/en/reference/coding.rst b/doc/en/reference/coding.rst
    deleted file mode 100644
    + -  
    1 Coding Theory
    2 =============
    3 
    4 .. toctree::
    5    :maxdepth: 2
    6 
    7    sage/coding/linear_code
    8    sage/coding/code_constructions
    9    sage/coding/sd_codes
    10    sage/coding/code_bounds
    11  No newline at end of file
  • new file doc/en/reference/coding/conf.py

    diff --git a/doc/en/reference/coding/conf.py b/doc/en/reference/coding/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/coding/index.rst

    diff --git a/doc/en/reference/coding/index.rst b/doc/en/reference/coding/index.rst
    new file mode 100644
    - +  
     1Coding Theory
     2=============
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/coding/linear_code
     8   sage/coding/code_constructions
     9   sage/coding/sd_codes
     10   sage/coding/code_bounds
     11
     12.. include:: ../footer.txt
  • deleted file doc/en/reference/coercion.rst

    diff --git a/doc/en/reference/coercion.rst b/doc/en/reference/coercion.rst
    deleted file mode 100644
    + -  
    1 Coercion
    2 ========
    3 
    4 Preliminaries
    5 --------------
    6 
    7 What is coercion all about?
    8 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    9 
    10 *The primary goal of coercion is to be able to transparently do arithmetic, comparisons, etc. between elements of distinct sets.*
    11 
    12 As a concrete example, when one writes `1 + 1/2` one wants to perform
    13 arithmetic on the operands as rational numbers, despite the left being
    14 an integer. This makes sense given the obvious and natural inclusion
    15 of the integers into the rational numbers. The goal of the coercion
    16 system is to facilitate this (and more complicated arithmetic) without
    17 having to explicitly map everything over into the same domain, and at
    18 the same time being strict enough to not resolve ambiguity or accept
    19 nonsense. Here are some examples::
    20 
    21     sage: 1 + 1/2
    22     3/2
    23     sage: R.<x,y> = ZZ[]
    24     sage: R
    25     Multivariate Polynomial Ring in x, y over Integer Ring
    26     sage: parent(x)
    27     Multivariate Polynomial Ring in x, y over Integer Ring
    28     sage: parent(1/3)
    29     Rational Field
    30     sage: x+1/3
    31     x + 1/3
    32     sage: parent(x+1/3)
    33     Multivariate Polynomial Ring in x, y over Rational Field
    34    
    35     sage: GF(5)(1) + CC(I)
    36     Traceback (most recent call last):
    37     ...
    38     TypeError: unsupported operand parent(s) for '+': 'Finite Field of size 5' and 'Complex Field with 53 bits of precision'
    39 
    40 Parents and Elements
    41 ~~~~~~~~~~~~~~~~~~~~
    42 
    43 Parents are objects in concrete categories, and Elements are their
    44 members. Parents are first-class objects.  Most things in Sage are
    45 either parents or have a parent. Typically whenever one sees the word
    46 *Parent* one can think *Set*. Here are some examples::
    47 
    48     sage: parent(1)
    49     Integer Ring
    50     sage: parent(1) is ZZ
    51     True
    52     sage: ZZ
    53     Integer Ring
    54     sage: parent(1.50000000000000000000000000000000000)
    55     Real Field with 120 bits of precision
    56     sage: parent(x)
    57     Symbolic Ring
    58     sage: x^sin(x)
    59     x^sin(x)
    60     sage: R.<t> = Qp(5)[]
    61     sage: f = t^3-5; f
    62     (1 + O(5^20))*t^3 + (4*5 + 4*5^2 + 4*5^3 + 4*5^4 + 4*5^5 + 4*5^6 + 4*5^7 + 4*5^8 + 4*5^9 + 4*5^10 + 4*5^11 + 4*5^12 + 4*5^13 + 4*5^14 + 4*5^15 + 4*5^16 + 4*5^17 + 4*5^18 + 4*5^19 + 4*5^20 + O(5^21))
    63     sage: parent(f)
    64     Univariate Polynomial Ring in t over 5-adic Field with capped relative precision 20
    65     sage: f = EllipticCurve('37a').lseries().taylor_series(10); f
    66     0.997997869801216 + 0.00140712894524925*z - 0.000498127610960097*z^2 + 0.000118835596665956*z^3 - 0.0000215906522442707*z^4 + (3.20363155418419e-6)*z^5 + O(z^6) # 32-bit
    67     0.997997869801216 + 0.00140712894524925*z - 0.000498127610960098*z^2 + 0.000118835596665956*z^3 - 0.0000215906522442713*z^4 + (3.20363155418461e-6)*z^5 + O(z^6) # 64-bit
    68     sage: parent(f)
    69     Power Series Ring in z over Complex Field with 53 bits of precision
    70 
    71 There is an important distinction between Parents and types::
    72 
    73     sage: a = GF(5).random_element()
    74     sage: b = GF(7).random_element()
    75     sage: type(a)
    76     <type 'sage.rings.integer_mod.IntegerMod_int'>
    77     sage: type(b)
    78     <type 'sage.rings.integer_mod.IntegerMod_int'>
    79     sage: type(a) == type(b)
    80     True
    81     sage: parent(a)
    82     Finite Field of size 5
    83     sage: parent(a) == parent(b)
    84     False
    85 
    86 However, non-Sage objects don't really have parents, but we still want
    87 to be able to reason with them, so their type is used instead::
    88 
    89     sage: a = int(10)
    90     sage: parent(a)
    91     <type 'int'>
    92 
    93 In fact, under the hood, a special kind of parent "The set of all
    94 Python objects of type T" is used in these cases.
    95 
    96 Note that parents are **not** always as tight as possible.
    97 
    98 ::
    99 
    100     sage: parent(1/2)
    101     Rational Field
    102     sage: parent(2/1)
    103     Rational Field
    104 
    105 Maps between Parents
    106 ~~~~~~~~~~~~~~~~~~~~
    107 
    108 Many parents come with maps to and from other parents.
    109 
    110 Sage makes a distinction between being able to **convert** between
    111 various parents, and **coerce** between them. Conversion is explicit
    112 and tries to make sense of an object in the target domain if at all
    113 possible. It is invoked by calling::
    114 
    115     sage: ZZ(5)
    116     5
    117     sage: ZZ(10/5)
    118     2
    119     sage: QQ(10)
    120     10
    121     sage: parent(QQ(10))
    122     Rational Field
    123     sage: a = GF(5)(2); a
    124     2
    125     sage: parent(a)
    126     Finite Field of size 5
    127     sage: parent(ZZ(a))
    128     Integer Ring
    129     sage: GF(71)(1/5)
    130     57
    131     sage: ZZ(1/2)
    132     Traceback (most recent call last):
    133     ...
    134     TypeError: no conversion of this rational to integer
    135 
    136 Conversions need not be canonical (they may for example involve a
    137 choice of lift) or even make sense mathematically (e.g. constructions
    138 of some kind).
    139 
    140 ::
    141 
    142     sage: ZZ("123")
    143     123
    144     sage: ZZ(GF(5)(14))
    145     4
    146     sage: ZZ['x']([4,3,2,1])
    147     x^3 + 2*x^2 + 3*x + 4
    148     sage: a = Qp(5, 10)(1/3); a
    149     2 + 3*5 + 5^2 + 3*5^3 + 5^4 + 3*5^5 + 5^6 + 3*5^7 + 5^8 + 3*5^9 + O(5^10)
    150     sage: ZZ(a)
    151     6510417
    152 
    153 On the other hand, Sage has the notion of a **coercion**, which is a
    154 canonical morphism (occasionally up to a conventional choice made by
    155 developers) between parents. A coercion from one parent to another
    156 **must** be defined on the whole domain, and always succeeds. As it
    157 may be invoked implicitly, it should be obvious and natural (in both
    158 the mathematically rigorous and colloquial sense of the word). Up to
    159 inescapable rounding issues that arise with inexact representations,
    160 these coercion morphisms should all commute.  In particular, if there
    161 are coercion maps `A \to B` and `B \to A`, then their composites
    162 must be the identity maps.
    163 
    164 Coercions can be discovered via the :meth:`has_coerce_map_from` method, and
    165 if needed explicitly invoked with the :meth:`coerce` method::
    166 
    167     sage: QQ.has_coerce_map_from(ZZ)
    168     True
    169     sage: QQ.has_coerce_map_from(RR)
    170     False
    171     sage: ZZ['x'].has_coerce_map_from(QQ)
    172     False
    173     sage: ZZ['x'].has_coerce_map_from(ZZ)
    174     True
    175     sage: ZZ['x'].coerce(5)
    176     5
    177     sage: ZZ['x'].coerce(5).parent()
    178     Univariate Polynomial Ring in x over Integer Ring
    179     sage: ZZ['x'].coerce(5/1)
    180     Traceback (most recent call last):
    181     ...
    182     TypeError: no canonical coercion from Rational Field to Univariate Polynomial Ring in x over Integer Ring
    183 
    184 Basic Arithmetic Rules
    185 ----------------------
    186 
    187 Suppose we want to add two element, a and b, whose parents are A and B
    188 respectively. When we type ``a+b`` then
    189 
    190 1. If A ``is`` B, call a._add_(b)
    191 
    192 2. If there is a coercion `\phi: B \rightarrow A`, call a._add_( `\phi` (b))
    193 
    194 3. If there is a coercion `\phi: A \rightarrow B`, call `\phi` (a)._add_(b)
    195 
    196 4. Look for `Z` such that there is a coercion `\phi_A: A \rightarrow Z` and
    197    `\phi_B: B \rightarrow Z`, call `\phi_A` (a)._add_( `\phi_B` (b))
    198 
    199 These rules are evaluated in order; therefore if there are coercions
    200 in both directions, then the parent of a._add_b is A -- the parent
    201 of the left-hand operand is used in such cases.
    202 
    203 These rules are evaluated in order; therefore if there are coercions
    204 in both directions, then the parent of a._add_b is A -- the parent
    205 of the left-hand operand is used in such cases.
    206 
    207 The same rules are used for subtraction, multiplication, and
    208 division. This logic is embedded in a coercion model object, which can
    209 be obtained and queried.
    210 
    211 ::
    212 
    213     sage: parent(1 + 1/2)
    214     Rational Field
    215     sage: cm = sage.structure.element.get_coercion_model(); cm
    216     <sage.structure.coerce.CoercionModel_cache_maps object at ...>
    217     sage: cm.explain(ZZ, QQ)
    218     Coercion on left operand via
    219        Natural morphism:
    220          From: Integer Ring
    221          To:   Rational Field
    222     Arithmetic performed after coercions.
    223     Result lives in Rational Field
    224     Rational Field
    225    
    226     sage: cm.explain(ZZ['x','y'], QQ['x'])
    227     Coercion on left operand via
    228        Call morphism:
    229          From: Multivariate Polynomial Ring in x, y over Integer Ring
    230          To:   Multivariate Polynomial Ring in x, y over Rational Field
    231     Coercion on right operand via
    232        Call morphism:
    233          From: Univariate Polynomial Ring in x over Rational Field
    234          To:   Multivariate Polynomial Ring in x, y over Rational Field
    235     Arithmetic performed after coercions.
    236     Result lives in Multivariate Polynomial Ring in x, y over Rational Field
    237     Multivariate Polynomial Ring in x, y over Rational Field
    238 
    239 The coercion model can be used directly for any binary operation
    240 (callable taking two arguments).
    241 
    242 .. link
    243 
    244 ::
    245 
    246     sage: cm.bin_op(77, 9, gcd)
    247     1
    248 
    249 There are also **actions** in the sense that a field `K` acts on a
    250 module over `K`, or a permutation group acts on a set. These are
    251 discovered between steps 1 and 2 above.
    252 
    253 .. link
    254 
    255 ::
    256 
    257     sage: cm.explain(ZZ['x'], ZZ, operator.mul)
    258     Action discovered.
    259        Right scalar multiplication by Integer Ring on Univariate Polynomial Ring in x over Integer Ring
    260     Result lives in Univariate Polynomial Ring in x over Integer Ring
    261     Univariate Polynomial Ring in x over Integer Ring
    262    
    263     sage: cm.explain(ZZ['x'], ZZ, operator.div)
    264     Action discovered.
    265        Right inverse action by Rational Field on Univariate Polynomial Ring in x over Integer Ring
    266        with precomposition on right by Natural morphism:
    267          From: Integer Ring
    268          To:   Rational Field
    269     Result lives in Univariate Polynomial Ring in x over Rational Field
    270     Univariate Polynomial Ring in x over Rational Field
    271    
    272     sage: f = QQ.coerce_map_from(ZZ)
    273     sage: f(3).parent()
    274     Rational Field
    275     sage: QQ.coerce_map_from(int)
    276     Native morphism:
    277      From: Set of Python objects of type 'int'
    278      To:   Rational Field
    279     sage: QQ.has_coerce_map_from(RR)
    280     False
    281     sage: QQ['x'].get_action(QQ)
    282     Right scalar multiplication by Rational Field on Univariate Polynomial Ring in x over Rational Field
    283     sage: (QQ^2).get_action(QQ)
    284     Right scalar multiplication by Rational Field on Vector space of dimension 2 over Rational Field
    285     sage: QQ['x'].get_action(RR)
    286     Right scalar multiplication by Real Field with 53 bits of precision on Univariate Polynomial Ring in x over Rational Field
    287 
    288 How to Implement
    289 ----------------
    290 
    291 Methods to implement
    292 ~~~~~~~~~~~~~~~~~~~~
    293 
    294 * Arithmetic on Elements: ``_add_``, ``_sub_``, ``_mul_``, ``_div_``
    295 
    296   This is where the binary arithmetic operators should be
    297   implemented. Unlike Python's ``__add__``, both operands are
    298   *guaranteed* to have the same Parent at this point.
    299 
    300 * Coercion for Parents: ``_coerce_map_from_``
    301 
    302   Given two parents R and S, ``R._coerce_map_from_(S)`` is called to
    303   determine if there is a coercion `\phi: S \rightarrow R`.  Note that
    304   the function is called on the potential codomain.  To indicate that
    305   there is no coercion from S to R (self), return ``False`` or
    306   ``None``. This is the default behavior.  If there is a coercion,
    307   return ``True`` (in which case an morphism using
    308   ``R._element_constructor_`` will be created) or an actual
    309   :class:`Morphism` object with S as the domain and R as the codomain.
    310 
    311 * Actions for Parents: ``_get_action_`` or ``_rmul_``, ``_lmul_``, ``_r_action_``, ``_l_action_``
    312 
    313   Suppose one wants R to act on S. Some examples of this could be
    314   `R = \QQ`, `S = \QQ[x]` or `R = {\rm Gal}(S/\QQ)`
    315   where `S`  is a number field. There are several ways to implement this:
    316 
    317   * If `R` is the base of `S` (as in the first example), simply
    318     implement ``_rmul_`` and/or ``_lmul_`` on the Elements of `S`.
    319     In this case ``r * s`` gets handled as ``s._rmul_(r)`` and
    320     ``s * r`` as ``s._lmul_(r)``.  The argument to ``_rmul_``
    321     and ``_lmul_`` are *guaranteed* to be Elements of the base of
    322     `S` (with coercion happening beforehand if necessary).
    323 
    324   * If `R` acts on `S`, one can alternatively define the methods
    325     ``_r_action_`` and/or ``_l_action_`` on the Elements of `R`.
    326     There is no constraint on the type or parents of objects passed to
    327     these methods; raise a ``TypeError`` or ``ValueError`` if the
    328     wrong kind of object is passed in to indicate the action is not
    329     appropriate here.
    330 
    331   * If either `R` acts on `S` *or* `S` acts on `R`, one may
    332     implement ``R._get_action_`` to return an actual :class:`Action`
    333     object to be used.  This is how non-multiplicative actions must be
    334     implemented, and is the most powerful (and completed) way to do
    335     things.
    336 
    337 * Element conversion/construction for Parents: use
    338   ``_element_constructor_`` **not** ``__call__``
    339 
    340   The :meth:`Parent.__call__` method dispatches to
    341   ``_element_constructor_``. When someone writes ``R(x, ...)``, this is
    342   the method that eventually gets called in most cases.  See the
    343   documentation on the ``__call__`` method below.
    344    
    345 Parents may also call the ``self._populate_coercion_lists_`` method in
    346 their ``__init__`` functions to pass any callable for use instead of
    347 ``_element_constructor_``, provide a list of Parents with coercions to
    348 self (as an alternative to implementing ``_coerce_map_from_``),
    349 provide special construction methods (like ``_integer_`` for ZZ),
    350 etc. This also allows one to specify a single coercion embedding *out*
    351 of self (whereas the rest of the coercion functions all specify maps
    352 *into* self). There is extensive documentation in the docstring of the
    353 ``_populate_coercion_lists_`` method.
    354 
    355 Example
    356 ~~~~~~~
    357 
    358 Sometimes a simple example is worth a thousand words. Here is a
    359 minimal example of setting up a simple Ring that handles coercion. (It
    360 is easy to imagine much more sophisticated and powerful localizations,
    361 but that would obscure the main points being made here.)
    362 
    363 ::
    364 
    365     class Localization(Ring):
    366        def __init__(self, primes):
    367            """
    368            Localization of `\ZZ` away from primes.
    369            """
    370            Ring.__init__(self, base=ZZ)
    371            self._primes = primes
    372            self._populate_coercion_lists_()
    373    
    374        def _repr_(self):
    375            """
    376            How to print self.
    377            """
    378            return "%s localized at %s" % (self.base(), self._primes)
    379    
    380        def _element_constructor_(self, x):
    381            """
    382            Make sure x is a valid member of self, and return the constructed element.
    383            """
    384            if isinstance(x, LocalizationElement):
    385                x = x._x
    386            else:
    387                x = QQ(x)
    388            for p, e in x.denominator().factor():
    389                if p not in self._primes:
    390                    raise ValueError, "Not integral at %s" % p
    391            return LocalizationElement(self, x)
    392    
    393        def _coerce_map_from_(self, S):
    394            """
    395            The only things that coerce into this ring are:
    396                
    397            - the integer ring
    398 
    399            - other localizations away from fewer primes
    400            """
    401            if S is ZZ:
    402                return True
    403            elif isinstance(S, Localization):
    404                return all(p in self._primes for p in S._primes)
    405    
    406    
    407     class LocalizationElement(RingElement):
    408    
    409        def __init__(self, parent, x):
    410            RingElement.__init__(self, parent)
    411            self._value = x
    412    
    413    
    414        # We're just printing out this way to make it easy to see what's going on in the examples.
    415    
    416        def _repr_(self):
    417            return "LocalElt(%s)" % self._value
    418    
    419        # Now define addition, subtraction, and multiplication of elements.
    420        # Note that left and right always have the same parent.
    421    
    422        def _add_(left, right):
    423            return LocalizationElement(left.parent(), left._value + right._value)
    424        
    425        def _sub_(left, right):
    426            return LocalizationElement(left.parent(), left._value - right._value)
    427        
    428        def _mul_(left, right):
    429            return LocalizationElement(left.parent(), left._value * right._value)
    430    
    431        # The basering was set to ZZ, so c is guaranteed to be in ZZ
    432    
    433        def _rmul_(self, c):
    434            return LocalizationElement(self.parent(), c * self._value)
    435    
    436        def _lmul_(self, c):
    437            return LocalizationElement(self.parent(), self._value * c)
    438 
    439 That's all there is to it. Now we can test it out:
    440 
    441 .. skip
    442 
    443 ::
    444 
    445     sage: R = Localization([2]); R
    446     Integer Ring localized at [2]
    447     sage: R(1)
    448     LocalElt(1)
    449     sage: R(1/2)
    450     LocalElt(1/2)
    451     sage: R(1/3)
    452     Traceback (most recent call last):
    453     ...
    454     ValueError: Not integral at 3
    455    
    456     sage: R.coerce(1)
    457     LocalElt(1)
    458     sage: R.coerce(1/4)
    459     Traceback (click to the left for traceback)
    460     ...
    461     TypeError: no cannonical coercion from Rational Field to Integer Ring localized at [2]
    462    
    463     sage: R(1/2) + R(3/4)
    464     LocalElt(5/4)
    465     sage: R(1/2) + 5
    466     LocalElt(11/2)
    467     sage: 5 + R(1/2)
    468     LocalElt(11/2)
    469     sage: R(1/2) + 1/7
    470     Traceback (most recent call last):
    471     ...
    472     TypeError: unsupported operand parent(s) for '+': 'Integer Ring localized at [2]' and 'Rational Field'
    473     sage: R(3/4) * 7
    474     LocalElt(21/4)
    475    
    476     sage: R.get_action(ZZ)
    477     Right scalar multiplication by Integer Ring on Integer Ring localized at [2]
    478     sage: cm = sage.structure.element.get_coercion_model()
    479     sage: cm.explain(R, ZZ, operator.add)
    480     Coercion on right operand via
    481        Conversion map:
    482          From: Integer Ring
    483          To:   Integer Ring localized at [2]
    484     Arithmetic performed after coercions.
    485     Result lives in Integer Ring localized at [2]
    486     Integer Ring localized at [2]
    487    
    488     sage: cm.explain(R, ZZ, operator.mul)
    489     Action discovered.
    490        Right scalar multiplication by Integer Ring on Integer Ring localized at [2]
    491     Result lives in Integer Ring localized at [2]
    492     Integer Ring localized at [2]
    493    
    494     sage: R6 = Localization([2,3]); R6
    495     Integer Ring localized at [2, 3]
    496     sage: R6(1/3) - R(1/2)
    497     LocalElt(-1/6)
    498     sage: parent(R6(1/3) - R(1/2))
    499     Integer Ring localized at [2, 3]
    500    
    501     sage: R.has_coerce_map_from(ZZ)
    502     True
    503     sage: R.coerce_map_from(ZZ)
    504     Conversion map:
    505      From: Integer Ring
    506      To:   Integer Ring localized at [2]
    507    
    508     sage: R6.coerce_map_from(R)
    509     Conversion map:
    510      From: Integer Ring localized at [2]
    511      To:   Integer Ring localized at [2, 3]
    512    
    513     sage: R6.coerce(R(1/2))
    514     LocalElt(1/2)
    515    
    516     sage: cm.explain(R, R6, operator.mul)
    517     Coercion on left operand via
    518        Conversion map:
    519          From: Integer Ring localized at [2]
    520          To:   Integer Ring localized at [2, 3]
    521     Arithmetic performed after coercions.
    522     Result lives in Integer Ring localized at [2, 3]
    523     Integer Ring localized at [2, 3]
    524 
    525 Provided Methods
    526 ~~~~~~~~~~~~~~~~
    527 
    528 * ``__call__``
    529    
    530   This provides a consistent interface for element construction. In
    531   particular, it makes sure that conversion always gives the same
    532   result as coercion, if a coercion exists. (This used to be violated
    533   for some Rings in Sage as the code for conversion and coercion got
    534   edited separately.) Let R be a Parent and assume the user types
    535   R(x), where x has parent X.  Roughly speaking, the following occurs:
    536 
    537   1. If X ``is`` R, return x (*)
    538 
    539   2. If there is a coercion `f: X \rightarrow R`, return `f(x)`
    540 
    541   3. If there is a coercion `f: R \rightarrow X`, try to return `{f^{-1}}(x)`
    542 
    543   4. Return ``R._element_constructor_(x)`` (**)
    544 
    545   Keywords and extra arguments are passed on. The result of all this logic is cached.
    546 
    547   (*) Unless there is a "copy" keyword like R(x, copy=False)
    548 
    549   (**) Technically, a generic morphism is created from X to R, which
    550   may use magic methods like ``_integer_`` or other data provided by
    551   ``_populate_coercion_lists_``.
    552 
    553 * ``coerce``
    554 
    555   Coerces elements into self, raising a type error if there is no
    556   coercion map.
    557 
    558 * ``coerce_map_from, convert_map_from``
    559 
    560   Returns an actual ``Morphism`` object to coerce/convert from
    561   another Parent to self. Barring direct construction of elements of
    562   R, ``R.convert_map_from(S)`` will provide a callable Python object
    563   which is the fastest way to convert elements of S to elements of
    564   R.  From Cython, it can be invoked via the cdef ``_call_`` method.
    565 
    566 * ``has_coerce_map_from``
    567    
    568   Returns ``True`` or ``False`` depending on whether or not there is
    569   a coercion.  ``R.has_coerce_map_from(S)`` is shorthand for
    570   ``R.coerce_map_from(S) is not None``
    571 
    572 * ``get_action``
    573 
    574   This will unwind all the
    575   ``_rmul_, _lmul_, _r_action_, _l_action_, ...`` methods to provide
    576   an actual ``Action`` object, if one exists.
    577 
    578 
    579 Discovering new parents
    580 -----------------------
    581 
    582 New parents are discovered using an algorithm in
    583 sage/category/pushout.py.  The fundamental idea is that most Parents
    584 in Sage are constructed from simpler objects via various functors.
    585 These are accessed via the :meth:`construction` method, which returns a
    586 (simpler) Parent along with a functor with which one can create self.
    587 
    588 ::
    589 
    590     sage: CC.construction()
    591     (AlgebraicClosureFunctor, Real Field with 53 bits of precision)
    592     sage: RR.construction()
    593     (CompletionFunctor, Rational Field)
    594     sage: QQ.construction()
    595     (FractionField, Integer Ring)
    596     sage: ZZ.construction()  # None
    597    
    598     sage: Qp(5).construction()
    599     (CompletionFunctor, Rational Field)
    600     sage: QQ.completion(5, 100)
    601     5-adic Field with capped relative precision 100
    602     sage: c, R = RR.construction()
    603     sage: a = CC.construction()[0]
    604     sage: a.commutes(c)
    605     False
    606     sage: RR == c(QQ)
    607     True
    608    
    609     sage: sage.categories.pushout.construction_tower(Frac(CDF['x']))
    610     [(None,
    611      Fraction Field of Univariate Polynomial Ring in x over Complex Double Field),
    612     (FractionField, Univariate Polynomial Ring in x over Complex Double Field),
    613     (Poly[x], Complex Double Field),
    614     (AlgebraicClosureFunctor, Real Double Field),
    615     (CompletionFunctor, Rational Field),
    616     (FractionField, Integer Ring)]
    617 
    618 Given Parents R and S, such that there is no coercion either from R to
    619 S or from S to R, one can find a common Z with coercions
    620 `R \rightarrow Z` and `S \rightarrow Z` by considering the sequence of
    621 construction functors to get from a common ancestor to both R and S.
    622 We then use a *heuristic* algorithm to interleave these constructors
    623 in an attempt to arrive at a suitable Z (if one exists). For example::
    624 
    625     sage: ZZ['x'].construction()
    626     (Poly[x], Integer Ring)
    627     sage: QQ.construction()
    628     (FractionField, Integer Ring)
    629     sage: sage.categories.pushout.pushout(ZZ['x'], QQ)
    630     Univariate Polynomial Ring in x over Rational Field
    631     sage: sage.categories.pushout.pushout(ZZ['x'], QQ).construction()
    632     (Poly[x], Rational Field)
    633 
    634 The common ancestor is `Z` and our options for Z are
    635 `\mathrm{Frac}(\ZZ[x])` or `\mathrm{Frac}(\ZZ)[x]`. 
    636 In Sage we choose the later, treating the fraction
    637 field functor as binding "more tightly" than the polynomial functor,
    638 as most people agree that `\QQ[x]` is the more natural choice. The same
    639 procedure is applied to more complicated Parents, returning a new
    640 Parent if one can be unambiguously determined.
    641 
    642 ::
    643 
    644     sage: sage.categories.pushout.pushout(Frac(ZZ['x,y,z']), QQ['z, t'])
    645     Univariate Polynomial Ring in t over Fraction Field of Multivariate Polynomial Ring in x, y, z over Rational Field
    646 
    647 Modules
    648 -------
    649 
    650 .. toctree::
    651     :maxdepth: 2
    652 
    653     sage/structure/coerce
    654     sage/structure/coerce_actions
    655     sage/structure/coerce_maps
    656    
  • new file doc/en/reference/coercion/conf.py

    diff --git a/doc/en/reference/coercion/conf.py b/doc/en/reference/coercion/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/coercion/index.rst

    diff --git a/doc/en/reference/coercion/index.rst b/doc/en/reference/coercion/index.rst
    new file mode 100644
    - +  
     1Coercion
     2========
     3
     4Preliminaries
     5--------------
     6
     7What is coercion all about?
     8~~~~~~~~~~~~~~~~~~~~~~~~~~~
     9
     10*The primary goal of coercion is to be able to transparently do arithmetic, comparisons, etc. between elements of distinct sets.*
     11
     12As a concrete example, when one writes `1 + 1/2` one wants to perform
     13arithmetic on the operands as rational numbers, despite the left being
     14an integer. This makes sense given the obvious and natural inclusion
     15of the integers into the rational numbers. The goal of the coercion
     16system is to facilitate this (and more complicated arithmetic) without
     17having to explicitly map everything over into the same domain, and at
     18the same time being strict enough to not resolve ambiguity or accept
     19nonsense. Here are some examples::
     20
     21    sage: 1 + 1/2
     22    3/2
     23    sage: R.<x,y> = ZZ[]
     24    sage: R
     25    Multivariate Polynomial Ring in x, y over Integer Ring
     26    sage: parent(x)
     27    Multivariate Polynomial Ring in x, y over Integer Ring
     28    sage: parent(1/3)
     29    Rational Field
     30    sage: x+1/3
     31    x + 1/3
     32    sage: parent(x+1/3)
     33    Multivariate Polynomial Ring in x, y over Rational Field
     34   
     35    sage: GF(5)(1) + CC(I)
     36    Traceback (most recent call last):
     37    ...
     38    TypeError: unsupported operand parent(s) for '+': 'Finite Field of size 5' and 'Complex Field with 53 bits of precision'
     39
     40Parents and Elements
     41~~~~~~~~~~~~~~~~~~~~
     42
     43Parents are objects in concrete categories, and Elements are their
     44members. Parents are first-class objects.  Most things in Sage are
     45either parents or have a parent. Typically whenever one sees the word
     46*Parent* one can think *Set*. Here are some examples::
     47
     48    sage: parent(1)
     49    Integer Ring
     50    sage: parent(1) is ZZ
     51    True
     52    sage: ZZ
     53    Integer Ring
     54    sage: parent(1.50000000000000000000000000000000000)
     55    Real Field with 120 bits of precision
     56    sage: parent(x)
     57    Symbolic Ring
     58    sage: x^sin(x)
     59    x^sin(x)
     60    sage: R.<t> = Qp(5)[]
     61    sage: f = t^3-5; f
     62    (1 + O(5^20))*t^3 + (4*5 + 4*5^2 + 4*5^3 + 4*5^4 + 4*5^5 + 4*5^6 + 4*5^7 + 4*5^8 + 4*5^9 + 4*5^10 + 4*5^11 + 4*5^12 + 4*5^13 + 4*5^14 + 4*5^15 + 4*5^16 + 4*5^17 + 4*5^18 + 4*5^19 + 4*5^20 + O(5^21))
     63    sage: parent(f)
     64    Univariate Polynomial Ring in t over 5-adic Field with capped relative precision 20
     65    sage: f = EllipticCurve('37a').lseries().taylor_series(10); f
     66    0.997997869801216 + 0.00140712894524925*z - 0.000498127610960097*z^2 + 0.000118835596665956*z^3 - 0.0000215906522442707*z^4 + (3.20363155418419e-6)*z^5 + O(z^6) # 32-bit
     67    0.997997869801216 + 0.00140712894524925*z - 0.000498127610960098*z^2 + 0.000118835596665956*z^3 - 0.0000215906522442713*z^4 + (3.20363155418461e-6)*z^5 + O(z^6) # 64-bit
     68    sage: parent(f)
     69    Power Series Ring in z over Complex Field with 53 bits of precision
     70
     71There is an important distinction between Parents and types::
     72
     73    sage: a = GF(5).random_element()
     74    sage: b = GF(7).random_element()
     75    sage: type(a)
     76    <type 'sage.rings.integer_mod.IntegerMod_int'>
     77    sage: type(b)
     78    <type 'sage.rings.integer_mod.IntegerMod_int'>
     79    sage: type(a) == type(b)
     80    True
     81    sage: parent(a)
     82    Finite Field of size 5
     83    sage: parent(a) == parent(b)
     84    False
     85
     86However, non-Sage objects don't really have parents, but we still want
     87to be able to reason with them, so their type is used instead::
     88
     89    sage: a = int(10)
     90    sage: parent(a)
     91    <type 'int'>
     92
     93In fact, under the hood, a special kind of parent "The set of all
     94Python objects of type T" is used in these cases.
     95
     96Note that parents are **not** always as tight as possible.
     97
     98::
     99
     100    sage: parent(1/2)
     101    Rational Field
     102    sage: parent(2/1)
     103    Rational Field
     104
     105Maps between Parents
     106~~~~~~~~~~~~~~~~~~~~
     107
     108Many parents come with maps to and from other parents.
     109
     110Sage makes a distinction between being able to **convert** between
     111various parents, and **coerce** between them. Conversion is explicit
     112and tries to make sense of an object in the target domain if at all
     113possible. It is invoked by calling::
     114
     115    sage: ZZ(5)
     116    5
     117    sage: ZZ(10/5)
     118    2
     119    sage: QQ(10)
     120    10
     121    sage: parent(QQ(10))
     122    Rational Field
     123    sage: a = GF(5)(2); a
     124    2
     125    sage: parent(a)
     126    Finite Field of size 5
     127    sage: parent(ZZ(a))
     128    Integer Ring
     129    sage: GF(71)(1/5)
     130    57
     131    sage: ZZ(1/2)
     132    Traceback (most recent call last):
     133    ...
     134    TypeError: no conversion of this rational to integer
     135
     136Conversions need not be canonical (they may for example involve a
     137choice of lift) or even make sense mathematically (e.g. constructions
     138of some kind).
     139
     140::
     141
     142    sage: ZZ("123")
     143    123
     144    sage: ZZ(GF(5)(14))
     145    4
     146    sage: ZZ['x']([4,3,2,1])
     147    x^3 + 2*x^2 + 3*x + 4
     148    sage: a = Qp(5, 10)(1/3); a
     149    2 + 3*5 + 5^2 + 3*5^3 + 5^4 + 3*5^5 + 5^6 + 3*5^7 + 5^8 + 3*5^9 + O(5^10)
     150    sage: ZZ(a)
     151    6510417
     152
     153On the other hand, Sage has the notion of a **coercion**, which is a
     154canonical morphism (occasionally up to a conventional choice made by
     155developers) between parents. A coercion from one parent to another
     156**must** be defined on the whole domain, and always succeeds. As it
     157may be invoked implicitly, it should be obvious and natural (in both
     158the mathematically rigorous and colloquial sense of the word). Up to
     159inescapable rounding issues that arise with inexact representations,
     160these coercion morphisms should all commute.  In particular, if there
     161are coercion maps `A \to B` and `B \to A`, then their composites
     162must be the identity maps.
     163
     164Coercions can be discovered via the :meth:`has_coerce_map_from` method, and
     165if needed explicitly invoked with the :meth:`coerce` method::
     166
     167    sage: QQ.has_coerce_map_from(ZZ)
     168    True
     169    sage: QQ.has_coerce_map_from(RR)
     170    False
     171    sage: ZZ['x'].has_coerce_map_from(QQ)
     172    False
     173    sage: ZZ['x'].has_coerce_map_from(ZZ)
     174    True
     175    sage: ZZ['x'].coerce(5)
     176    5
     177    sage: ZZ['x'].coerce(5).parent()
     178    Univariate Polynomial Ring in x over Integer Ring
     179    sage: ZZ['x'].coerce(5/1)
     180    Traceback (most recent call last):
     181    ...
     182    TypeError: no canonical coercion from Rational Field to Univariate Polynomial Ring in x over Integer Ring
     183
     184Basic Arithmetic Rules
     185----------------------
     186
     187Suppose we want to add two element, a and b, whose parents are A and B
     188respectively. When we type ``a+b`` then
     189
     1901. If A ``is`` B, call a._add_(b)
     191
     1922. If there is a coercion `\phi: B \rightarrow A`, call a._add_( `\phi` (b))
     193
     1943. If there is a coercion `\phi: A \rightarrow B`, call `\phi` (a)._add_(b)
     195
     1964. Look for `Z` such that there is a coercion `\phi_A: A \rightarrow Z` and
     197   `\phi_B: B \rightarrow Z`, call `\phi_A` (a)._add_( `\phi_B` (b))
     198
     199These rules are evaluated in order; therefore if there are coercions
     200in both directions, then the parent of a._add_b is A -- the parent
     201of the left-hand operand is used in such cases.
     202
     203These rules are evaluated in order; therefore if there are coercions
     204in both directions, then the parent of a._add_b is A -- the parent
     205of the left-hand operand is used in such cases.
     206
     207The same rules are used for subtraction, multiplication, and
     208division. This logic is embedded in a coercion model object, which can
     209be obtained and queried.
     210
     211::
     212
     213    sage: parent(1 + 1/2)
     214    Rational Field
     215    sage: cm = sage.structure.element.get_coercion_model(); cm
     216    <sage.structure.coerce.CoercionModel_cache_maps object at ...>
     217    sage: cm.explain(ZZ, QQ)
     218    Coercion on left operand via
     219       Natural morphism:
     220         From: Integer Ring
     221         To:   Rational Field
     222    Arithmetic performed after coercions.
     223    Result lives in Rational Field
     224    Rational Field
     225   
     226    sage: cm.explain(ZZ['x','y'], QQ['x'])
     227    Coercion on left operand via
     228       Call morphism:
     229         From: Multivariate Polynomial Ring in x, y over Integer Ring
     230         To:   Multivariate Polynomial Ring in x, y over Rational Field
     231    Coercion on right operand via
     232       Call morphism:
     233         From: Univariate Polynomial Ring in x over Rational Field
     234         To:   Multivariate Polynomial Ring in x, y over Rational Field
     235    Arithmetic performed after coercions.
     236    Result lives in Multivariate Polynomial Ring in x, y over Rational Field
     237    Multivariate Polynomial Ring in x, y over Rational Field
     238
     239The coercion model can be used directly for any binary operation
     240(callable taking two arguments).
     241
     242.. link
     243
     244::
     245
     246    sage: cm.bin_op(77, 9, gcd)
     247    1
     248
     249There are also **actions** in the sense that a field `K` acts on a
     250module over `K`, or a permutation group acts on a set. These are
     251discovered between steps 1 and 2 above.
     252
     253.. link
     254
     255::
     256
     257    sage: cm.explain(ZZ['x'], ZZ, operator.mul)
     258    Action discovered.
     259       Right scalar multiplication by Integer Ring on Univariate Polynomial Ring in x over Integer Ring
     260    Result lives in Univariate Polynomial Ring in x over Integer Ring
     261    Univariate Polynomial Ring in x over Integer Ring
     262   
     263    sage: cm.explain(ZZ['x'], ZZ, operator.div)
     264    Action discovered.
     265       Right inverse action by Rational Field on Univariate Polynomial Ring in x over Integer Ring
     266       with precomposition on right by Natural morphism:
     267         From: Integer Ring
     268         To:   Rational Field
     269    Result lives in Univariate Polynomial Ring in x over Rational Field
     270    Univariate Polynomial Ring in x over Rational Field
     271   
     272    sage: f = QQ.coerce_map_from(ZZ)
     273    sage: f(3).parent()
     274    Rational Field
     275    sage: QQ.coerce_map_from(int)
     276    Native morphism:
     277     From: Set of Python objects of type 'int'
     278     To:   Rational Field
     279    sage: QQ.has_coerce_map_from(RR)
     280    False
     281    sage: QQ['x'].get_action(QQ)
     282    Right scalar multiplication by Rational Field on Univariate Polynomial Ring in x over Rational Field
     283    sage: (QQ^2).get_action(QQ)
     284    Right scalar multiplication by Rational Field on Vector space of dimension 2 over Rational Field
     285    sage: QQ['x'].get_action(RR)
     286    Right scalar multiplication by Real Field with 53 bits of precision on Univariate Polynomial Ring in x over Rational Field
     287
     288How to Implement
     289----------------
     290
     291Methods to implement
     292~~~~~~~~~~~~~~~~~~~~
     293
     294* Arithmetic on Elements: ``_add_``, ``_sub_``, ``_mul_``, ``_div_``
     295
     296  This is where the binary arithmetic operators should be
     297  implemented. Unlike Python's ``__add__``, both operands are
     298  *guaranteed* to have the same Parent at this point.
     299
     300* Coercion for Parents: ``_coerce_map_from_``
     301
     302  Given two parents R and S, ``R._coerce_map_from_(S)`` is called to
     303  determine if there is a coercion `\phi: S \rightarrow R`.  Note that
     304  the function is called on the potential codomain.  To indicate that
     305  there is no coercion from S to R (self), return ``False`` or
     306  ``None``. This is the default behavior.  If there is a coercion,
     307  return ``True`` (in which case an morphism using
     308  ``R._element_constructor_`` will be created) or an actual
     309  :class:`Morphism` object with S as the domain and R as the codomain.
     310
     311* Actions for Parents: ``_get_action_`` or ``_rmul_``, ``_lmul_``, ``_r_action_``, ``_l_action_``
     312
     313  Suppose one wants R to act on S. Some examples of this could be
     314  `R = \QQ`, `S = \QQ[x]` or `R = {\rm Gal}(S/\QQ)`
     315  where `S`  is a number field. There are several ways to implement this:
     316
     317  * If `R` is the base of `S` (as in the first example), simply
     318    implement ``_rmul_`` and/or ``_lmul_`` on the Elements of `S`.
     319    In this case ``r * s`` gets handled as ``s._rmul_(r)`` and
     320    ``s * r`` as ``s._lmul_(r)``.  The argument to ``_rmul_``
     321    and ``_lmul_`` are *guaranteed* to be Elements of the base of
     322    `S` (with coercion happening beforehand if necessary).
     323
     324  * If `R` acts on `S`, one can alternatively define the methods
     325    ``_r_action_`` and/or ``_l_action_`` on the Elements of `R`.
     326    There is no constraint on the type or parents of objects passed to
     327    these methods; raise a ``TypeError`` or ``ValueError`` if the
     328    wrong kind of object is passed in to indicate the action is not
     329    appropriate here.
     330
     331  * If either `R` acts on `S` *or* `S` acts on `R`, one may
     332    implement ``R._get_action_`` to return an actual :class:`Action`
     333    object to be used.  This is how non-multiplicative actions must be
     334    implemented, and is the most powerful (and completed) way to do
     335    things.
     336
     337* Element conversion/construction for Parents: use
     338  ``_element_constructor_`` **not** ``__call__``
     339
     340  The :meth:`Parent.__call__` method dispatches to
     341  ``_element_constructor_``. When someone writes ``R(x, ...)``, this is
     342  the method that eventually gets called in most cases.  See the
     343  documentation on the ``__call__`` method below.
     344   
     345Parents may also call the ``self._populate_coercion_lists_`` method in
     346their ``__init__`` functions to pass any callable for use instead of
     347``_element_constructor_``, provide a list of Parents with coercions to
     348self (as an alternative to implementing ``_coerce_map_from_``),
     349provide special construction methods (like ``_integer_`` for ZZ),
     350etc. This also allows one to specify a single coercion embedding *out*
     351of self (whereas the rest of the coercion functions all specify maps
     352*into* self). There is extensive documentation in the docstring of the
     353``_populate_coercion_lists_`` method.
     354
     355Example
     356~~~~~~~
     357
     358Sometimes a simple example is worth a thousand words. Here is a
     359minimal example of setting up a simple Ring that handles coercion. (It
     360is easy to imagine much more sophisticated and powerful localizations,
     361but that would obscure the main points being made here.)
     362
     363::
     364
     365    class Localization(Ring):
     366       def __init__(self, primes):
     367           """
     368           Localization of `\ZZ` away from primes.
     369           """
     370           Ring.__init__(self, base=ZZ)
     371           self._primes = primes
     372           self._populate_coercion_lists_()
     373   
     374       def _repr_(self):
     375           """
     376           How to print self.
     377           """
     378           return "%s localized at %s" % (self.base(), self._primes)
     379   
     380       def _element_constructor_(self, x):
     381           """
     382           Make sure x is a valid member of self, and return the constructed element.
     383           """
     384           if isinstance(x, LocalizationElement):
     385               x = x._x
     386           else:
     387               x = QQ(x)
     388           for p, e in x.denominator().factor():
     389               if p not in self._primes:
     390                   raise ValueError, "Not integral at %s" % p
     391           return LocalizationElement(self, x)
     392   
     393       def _coerce_map_from_(self, S):
     394           """
     395           The only things that coerce into this ring are:
     396               
     397           - the integer ring
     398
     399           - other localizations away from fewer primes
     400           """
     401           if S is ZZ:
     402               return True
     403           elif isinstance(S, Localization):
     404               return all(p in self._primes for p in S._primes)
     405   
     406   
     407    class LocalizationElement(RingElement):
     408   
     409       def __init__(self, parent, x):
     410           RingElement.__init__(self, parent)
     411           self._value = x
     412   
     413   
     414       # We're just printing out this way to make it easy to see what's going on in the examples.
     415   
     416       def _repr_(self):
     417           return "LocalElt(%s)" % self._value
     418   
     419       # Now define addition, subtraction, and multiplication of elements.
     420       # Note that left and right always have the same parent.
     421   
     422       def _add_(left, right):
     423           return LocalizationElement(left.parent(), left._value + right._value)
     424       
     425       def _sub_(left, right):
     426           return LocalizationElement(left.parent(), left._value - right._value)
     427       
     428       def _mul_(left, right):
     429           return LocalizationElement(left.parent(), left._value * right._value)
     430   
     431       # The basering was set to ZZ, so c is guaranteed to be in ZZ
     432   
     433       def _rmul_(self, c):
     434           return LocalizationElement(self.parent(), c * self._value)
     435   
     436       def _lmul_(self, c):
     437           return LocalizationElement(self.parent(), self._value * c)
     438
     439That's all there is to it. Now we can test it out:
     440
     441.. skip
     442
     443::
     444
     445    sage: R = Localization([2]); R
     446    Integer Ring localized at [2]
     447    sage: R(1)
     448    LocalElt(1)
     449    sage: R(1/2)
     450    LocalElt(1/2)
     451    sage: R(1/3)
     452    Traceback (most recent call last):
     453    ...
     454    ValueError: Not integral at 3
     455   
     456    sage: R.coerce(1)
     457    LocalElt(1)
     458    sage: R.coerce(1/4)
     459    Traceback (click to the left for traceback)
     460    ...
     461    TypeError: no cannonical coercion from Rational Field to Integer Ring localized at [2]
     462   
     463    sage: R(1/2) + R(3/4)
     464    LocalElt(5/4)
     465    sage: R(1/2) + 5
     466    LocalElt(11/2)
     467    sage: 5 + R(1/2)
     468    LocalElt(11/2)
     469    sage: R(1/2) + 1/7
     470    Traceback (most recent call last):
     471    ...
     472    TypeError: unsupported operand parent(s) for '+': 'Integer Ring localized at [2]' and 'Rational Field'
     473    sage: R(3/4) * 7
     474    LocalElt(21/4)
     475   
     476    sage: R.get_action(ZZ)
     477    Right scalar multiplication by Integer Ring on Integer Ring localized at [2]
     478    sage: cm = sage.structure.element.get_coercion_model()
     479    sage: cm.explain(R, ZZ, operator.add)
     480    Coercion on right operand via
     481       Conversion map:
     482         From: Integer Ring
     483         To:   Integer Ring localized at [2]
     484    Arithmetic performed after coercions.
     485    Result lives in Integer Ring localized at [2]
     486    Integer Ring localized at [2]
     487   
     488    sage: cm.explain(R, ZZ, operator.mul)
     489    Action discovered.
     490       Right scalar multiplication by Integer Ring on Integer Ring localized at [2]
     491    Result lives in Integer Ring localized at [2]
     492    Integer Ring localized at [2]
     493   
     494    sage: R6 = Localization([2,3]); R6
     495    Integer Ring localized at [2, 3]
     496    sage: R6(1/3) - R(1/2)
     497    LocalElt(-1/6)
     498    sage: parent(R6(1/3) - R(1/2))
     499    Integer Ring localized at [2, 3]
     500   
     501    sage: R.has_coerce_map_from(ZZ)
     502    True
     503    sage: R.coerce_map_from(ZZ)
     504    Conversion map:
     505     From: Integer Ring
     506     To:   Integer Ring localized at [2]
     507   
     508    sage: R6.coerce_map_from(R)
     509    Conversion map:
     510     From: Integer Ring localized at [2]
     511     To:   Integer Ring localized at [2, 3]
     512   
     513    sage: R6.coerce(R(1/2))
     514    LocalElt(1/2)
     515   
     516    sage: cm.explain(R, R6, operator.mul)
     517    Coercion on left operand via
     518       Conversion map:
     519         From: Integer Ring localized at [2]
     520         To:   Integer Ring localized at [2, 3]
     521    Arithmetic performed after coercions.
     522    Result lives in Integer Ring localized at [2, 3]
     523    Integer Ring localized at [2, 3]
     524
     525Provided Methods
     526~~~~~~~~~~~~~~~~
     527
     528* ``__call__``
     529   
     530  This provides a consistent interface for element construction. In
     531  particular, it makes sure that conversion always gives the same
     532  result as coercion, if a coercion exists. (This used to be violated
     533  for some Rings in Sage as the code for conversion and coercion got
     534  edited separately.) Let R be a Parent and assume the user types
     535  R(x), where x has parent X.  Roughly speaking, the following occurs:
     536
     537  1. If X ``is`` R, return x (*)
     538
     539  2. If there is a coercion `f: X \rightarrow R`, return `f(x)`
     540
     541  3. If there is a coercion `f: R \rightarrow X`, try to return `{f^{-1}}(x)`
     542
     543  4. Return ``R._element_constructor_(x)`` (**)
     544
     545  Keywords and extra arguments are passed on. The result of all this logic is cached.
     546
     547  (*) Unless there is a "copy" keyword like R(x, copy=False)
     548
     549  (**) Technically, a generic morphism is created from X to R, which
     550  may use magic methods like ``_integer_`` or other data provided by
     551  ``_populate_coercion_lists_``.
     552
     553* ``coerce``
     554
     555  Coerces elements into self, raising a type error if there is no
     556  coercion map.
     557
     558* ``coerce_map_from, convert_map_from``
     559
     560  Returns an actual ``Morphism`` object to coerce/convert from
     561  another Parent to self. Barring direct construction of elements of
     562  R, ``R.convert_map_from(S)`` will provide a callable Python object
     563  which is the fastest way to convert elements of S to elements of
     564  R.  From Cython, it can be invoked via the cdef ``_call_`` method.
     565
     566* ``has_coerce_map_from``
     567   
     568  Returns ``True`` or ``False`` depending on whether or not there is
     569  a coercion.  ``R.has_coerce_map_from(S)`` is shorthand for
     570  ``R.coerce_map_from(S) is not None``
     571
     572* ``get_action``
     573
     574  This will unwind all the
     575  ``_rmul_, _lmul_, _r_action_, _l_action_, ...`` methods to provide
     576  an actual ``Action`` object, if one exists.
     577
     578
     579Discovering new parents
     580-----------------------
     581
     582New parents are discovered using an algorithm in
     583sage/category/pushout.py.  The fundamental idea is that most Parents
     584in Sage are constructed from simpler objects via various functors.
     585These are accessed via the :meth:`construction` method, which returns a
     586(simpler) Parent along with a functor with which one can create self.
     587
     588::
     589
     590    sage: CC.construction()
     591    (AlgebraicClosureFunctor, Real Field with 53 bits of precision)
     592    sage: RR.construction()
     593    (CompletionFunctor, Rational Field)
     594    sage: QQ.construction()
     595    (FractionField, Integer Ring)
     596    sage: ZZ.construction()  # None
     597   
     598    sage: Qp(5).construction()
     599    (CompletionFunctor, Rational Field)
     600    sage: QQ.completion(5, 100)
     601    5-adic Field with capped relative precision 100
     602    sage: c, R = RR.construction()
     603    sage: a = CC.construction()[0]
     604    sage: a.commutes(c)
     605    False
     606    sage: RR == c(QQ)
     607    True
     608   
     609    sage: sage.categories.pushout.construction_tower(Frac(CDF['x']))
     610    [(None,
     611     Fraction Field of Univariate Polynomial Ring in x over Complex Double Field),
     612    (FractionField, Univariate Polynomial Ring in x over Complex Double Field),
     613    (Poly[x], Complex Double Field),
     614    (AlgebraicClosureFunctor, Real Double Field),
     615    (CompletionFunctor, Rational Field),
     616    (FractionField, Integer Ring)]
     617
     618Given Parents R and S, such that there is no coercion either from R to
     619S or from S to R, one can find a common Z with coercions
     620`R \rightarrow Z` and `S \rightarrow Z` by considering the sequence of
     621construction functors to get from a common ancestor to both R and S.
     622We then use a *heuristic* algorithm to interleave these constructors
     623in an attempt to arrive at a suitable Z (if one exists). For example::
     624
     625    sage: ZZ['x'].construction()
     626    (Poly[x], Integer Ring)
     627    sage: QQ.construction()
     628    (FractionField, Integer Ring)
     629    sage: sage.categories.pushout.pushout(ZZ['x'], QQ)
     630    Univariate Polynomial Ring in x over Rational Field
     631    sage: sage.categories.pushout.pushout(ZZ['x'], QQ).construction()
     632    (Poly[x], Rational Field)
     633
     634The common ancestor is `Z` and our options for Z are
     635`\mathrm{Frac}(\ZZ[x])` or `\mathrm{Frac}(\ZZ)[x]`. 
     636In Sage we choose the later, treating the fraction
     637field functor as binding "more tightly" than the polynomial functor,
     638as most people agree that `\QQ[x]` is the more natural choice. The same
     639procedure is applied to more complicated Parents, returning a new
     640Parent if one can be unambiguously determined.
     641
     642::
     643
     644    sage: sage.categories.pushout.pushout(Frac(ZZ['x,y,z']), QQ['z, t'])
     645    Univariate Polynomial Ring in t over Fraction Field of Multivariate Polynomial Ring in x, y, z over Rational Field
     646
     647Modules
     648-------
     649
     650.. toctree::
     651    :maxdepth: 2
     652
     653    sage/structure/coerce
     654    sage/structure/coerce_actions
     655    sage/structure/coerce_maps
     656   
     657
     658
     659.. include:: ../footer.txt
  • new file doc/en/reference/combinat/conf.py

    diff --git a/doc/en/reference/combinat/conf.py b/doc/en/reference/combinat/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • doc/en/reference/combinat/index.rst

    diff --git a/doc/en/reference/combinat/index.rst b/doc/en/reference/combinat/index.rst
    a b Combinatorics 
    44.. toctree::
    55   :maxdepth: 2
    66
    7    ../sage/combinat/combinat
    8    ../sage/combinat/sloane_functions
    9    ../sage/combinat/expnums
    10    ../sage/combinat/alternating_sign_matrix
    11    ../sage/combinat/cartesian_product
    12    ../sage/combinat/combination
    13    ../sage/combinat/composition_signed
    14    ../sage/combinat/composition
    15    ../sage/combinat/dlx
    16    ../sage/combinat/matrices/dlxcpp
    17    ../sage/combinat/dyck_word
    18    ../sage/combinat/finite_class
    19    ../sage/combinat/integer_list
    20    ../sage/combinat/integer_vector
    21    ../sage/combinat/integer_vector_weighted
    22    ../sage/combinat/restricted_growth
    23    ../sage/combinat/yamanouchi
    24    ../sage/combinat/graph_path
    25    ../sage/combinat/matrices/latin
    26    ../sage/combinat/lyndon_word
    27    ../sage/combinat/necklace
    28    ../sage/combinat/non_decreasing_parking_function
    29    ../sage/combinat/partition
    30    ../sage/combinat/permutation
    31    ../sage/combinat/q_analogues
    32    ../sage/combinat/set_partition_ordered
    33    ../sage/combinat/set_partition
    34    ../sage/combinat/skew_partition
    35    ../sage/combinat/subset
    36    ../sage/combinat/subword
    37    ../sage/combinat/tuple
     7   sage/combinat/combinat
     8   sage/combinat/sloane_functions
     9   sage/combinat/expnums
     10   sage/combinat/alternating_sign_matrix
     11   sage/combinat/cartesian_product
     12   sage/combinat/combination
     13   sage/combinat/composition_signed
     14   sage/combinat/composition
     15   sage/combinat/dlx
     16   sage/combinat/matrices/dlxcpp
     17   sage/combinat/dyck_word
     18   sage/combinat/finite_class
     19   sage/combinat/integer_list
     20   sage/combinat/integer_vector
     21   sage/combinat/integer_vector_weighted
     22   sage/combinat/restricted_growth
     23   sage/combinat/yamanouchi
     24   sage/combinat/graph_path
     25   sage/combinat/matrices/latin
     26   sage/combinat/lyndon_word
     27   sage/combinat/necklace
     28   sage/combinat/non_decreasing_parking_function
     29   sage/combinat/partition
     30   sage/combinat/permutation
     31   sage/combinat/q_analogues
     32   sage/combinat/set_partition_ordered
     33   sage/combinat/set_partition
     34   sage/combinat/skew_partition
     35   sage/combinat/subset
     36   sage/combinat/subword
     37   sage/combinat/tuple
    3838
    3939   algebra
    4040   tableaux
    Combinatorics 
    4747   developer
    4848   words
    4949
    50    ../sage/combinat/misc
     50   sage/combinat/misc
     51
     52
     53.. include:: ../footer.txt
  • doc/en/reference/conf.py

    diff --git a/doc/en/reference/conf.py b/doc/en/reference/conf.py
    a b latex_documents = [ 
    3535
    3636#Ignore all .rst in the _sage subdirectory
    3737exclude_trees = exclude_trees + ['_sage']
     38
     39# List of directories, relative to source directory, that shouldn't be
     40# searched for source files.
     41exclude_trees = exclude_trees + [
     42    'algebras',
     43    'arithgroup',
     44    'calculus',
     45    'categories',
     46    'cmd',
     47    'coding',
     48    'coercion',
     49    'combinat',
     50    'constants',
     51    'cryptography',
     52    'databases',
     53    'dsage',
     54    'functions',
     55    'games',
     56    'geometry',
     57    'graphs',
     58    'groups',
     59    'hecke',
     60    'history_and_license',
     61    'homology',
     62    'interfaces',
     63    'lfunctions',
     64    'libs',
     65    'matrices',
     66    'misc',
     67    'modabvar',
     68    'modfrm',
     69    'modmisc',
     70    'modsym',
     71    'modules',
     72    'monoids',
     73    'networking',
     74    'notebook',
     75    'number_fields',
     76    'numerical',
     77    'options',
     78    'padics',
     79    'plane_curves',
     80    'plot3d',
     81    'plotting',
     82    'polynomial_rings',
     83    'polynomial_rings_multivar',
     84    'polynomial_rings_univar',
     85    'power_series',
     86    'probability',
     87    'quat_algebras',
     88    'rings',
     89    'rings_numerical',
     90    'rings_standard',
     91    'sage',
     92    'sagenb',
     93    'schemes',
     94    'structure'
     95    ]
  • new file doc/en/reference/conf_sub.py

    diff --git a/doc/en/reference/conf_sub.py b/doc/en/reference/conf_sub.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2#
     3# Sage documentation build configuration file, created by
     4# sphinx-quickstart on Thu Aug 21 20:15:55 2008.
     5#
     6# This file is execfile()d with the current directory set to its containing dir.
     7#
     8# The contents of this file are pickled, so don't put values in the namespace
     9# that aren't pickleable (module imports are okay, they're removed automatically).
     10#
     11# All configuration values have a default; values that are commented out
     12# serve to show the default.
     13
     14import sys, os
     15sys.path.append(os.environ['SAGE_DOC'])
     16from common.conf import *
     17
     18# We use the main document's title, if we can find it.
     19rst_file = open('index.rst', 'r')
     20rst_lines = rst_file.read().splitlines()
     21rst_file.close()
     22
     23title = u''
     24for i in xrange(len(rst_lines)):
     25    if rst_lines[i].startswith('==') and i > 0:
     26        title = rst_lines[i-1].strip()
     27        break
     28
     29# Otherwise, we use this directory's name.
     30name = os.path.basename(os.path.abspath('.'))
     31if not title:
     32    title = name.capitalize()
     33title = title.replace(u'`', u'$')
     34
     35# General information about the project.
     36project = u'Sage Reference Manual: ' + title
     37
     38# The name for this set of Sphinx documents.  If None, it defaults to
     39# "<project> v<release> documentation".
     40html_title = u'Sage Reference Manual v' + release + ': ' + title
     41
     42# A shorter title for the navigation bar.  Default is the same as html_title.
     43html_short_title = html_title
     44
     45# Output file base name for HTML help builder.
     46htmlhelp_basename = name
     47
     48# Grouping the document tree into LaTeX files. List of tuples (source
     49# start file, target name, title, author, document class
     50# [howto/manual]).
     51latex_documents = [
     52('index', name + '.tex', project, u'The Sage Development Team', 'manual')
     53]
     54
     55#Ignore all .rst in the _sage subdirectory
     56exclude_trees = exclude_trees + ['_sage']
  • deleted file doc/en/reference/constants.rst

    diff --git a/doc/en/reference/constants.rst b/doc/en/reference/constants.rst
    deleted file mode 100644
    + -  
    1 Constants
    2 =========
    3 
    4 .. toctree::
    5    :maxdepth: 2
    6 
    7    sage/symbolic/constants
  • new file doc/en/reference/constants/conf.py

    diff --git a/doc/en/reference/constants/conf.py b/doc/en/reference/constants/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/constants/index.rst

    diff --git a/doc/en/reference/constants/index.rst b/doc/en/reference/constants/index.rst
    new file mode 100644
    - +  
     1Constants
     2=========
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/symbolic/constants
     8
     9
     10.. include:: ../footer.txt
  • deleted file doc/en/reference/cryptography.rst

    diff --git a/doc/en/reference/cryptography.rst b/doc/en/reference/cryptography.rst
    deleted file mode 100644
    + -  
    1 Cryptography
    2 ============
    3 
    4 .. toctree::
    5    :maxdepth: 2
    6 
    7    sage/crypto/cryptosystem
    8 
    9    sage/crypto/cipher
    10 
    11    sage/crypto/classical
    12    sage/crypto/classical_cipher
    13 
    14    sage/crypto/block_cipher/sdes
    15    sage/crypto/block_cipher/miniaes
    16 
    17    sage/crypto/stream
    18    sage/crypto/stream_cipher
    19 
    20    sage/crypto/lfsr
    21 
    22    sage/crypto/boolean_function
    23 
    24    sage/crypto/mq/sr
    25    sage/crypto/mq/mpolynomialsystem
    26    sage/crypto/mq/sbox
  • new file doc/en/reference/cryptography/conf.py

    diff --git a/doc/en/reference/cryptography/conf.py b/doc/en/reference/cryptography/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/cryptography/index.rst

    diff --git a/doc/en/reference/cryptography/index.rst b/doc/en/reference/cryptography/index.rst
    new file mode 100644
    - +  
     1Cryptography
     2============
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/crypto/cryptosystem
     8
     9   sage/crypto/cipher
     10
     11   sage/crypto/classical
     12   sage/crypto/classical_cipher
     13
     14   sage/crypto/block_cipher/sdes
     15   sage/crypto/block_cipher/miniaes
     16
     17   sage/crypto/stream
     18   sage/crypto/stream_cipher
     19
     20   sage/crypto/lfsr
     21
     22   sage/crypto/boolean_function
     23
     24   sage/crypto/mq/sr
     25   sage/crypto/mq/mpolynomialsystem
     26   sage/crypto/mq/sbox
     27
     28
     29.. include:: ../footer.txt
  • deleted file doc/en/reference/databases.rst

    diff --git a/doc/en/reference/databases.rst b/doc/en/reference/databases.rst
    deleted file mode 100644
    + -  
    1 .. _ch:databases:
    2 
    3 Databases
    4 =========
    5 
    6 There are numerous specific mathematical databases either included
    7 in Sage or available as optional packages. Also, Sage includes two
    8 powerful general database packages.
    9 
    10 Sage includes the ZOPE object oriented database ZODB, which
    11 "is a Python object persistence system. It provides transparent object-oriented persistency."
    12 
    13 Sage also includes the powerful relational database SQLite, along
    14 with a Python interface to SQLite. SQlite is a small C library that
    15 implements a self-contained, embeddable, zero-configuration SQL
    16 database engine.
    17 
    18 
    19 -  Transactions are atomic, consistent, isolated, and durable
    20    (ACID) even after system crashes and power failures.
    21 
    22 -  Zero-configuration - no setup or administration needed.
    23 
    24 -  Implements most of SQL92. (Features not supported)
    25 
    26 -  A complete database is stored in a single disk file.
    27 
    28 -  Database files can be freely shared between machines with
    29    different byte orders.
    30 
    31 -  Supports databases up to 2 tebibytes (2^41 bytes) in size.
    32 
    33 -  Strings and BLOBs up to 2 gibibytes (2^31 bytes) in size.
    34 
    35 -  Small code footprint: less than 250KiB fully configured or less
    36    than 150KiB with optional features omitted.
    37 
    38 -  Faster than popular client/server database engines for most
    39    common operations.
    40 
    41 -  Simple, easy to use API.
    42 
    43 -  TCL bindings included. Bindings for many other languages
    44    available separately.
    45 
    46 -  Well-commented source code with over 95% test coverage.
    47 
    48 -  Self-contained: no external dependencies.
    49 
    50 -  Sources are in the public domain. Use for any purpose.
    51 
    52 .. toctree::
    53    :maxdepth: 2
    54    
    55    sage/databases/cremona
    56    sage/databases/stein_watkins
    57    sage/databases/jones
    58    sage/databases/lincodes
    59    sage/databases/sloane
    60    sage/databases/conway
    61    sage/databases/odlyzko
  • new file doc/en/reference/databases/conf.py

    diff --git a/doc/en/reference/databases/conf.py b/doc/en/reference/databases/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/databases/index.rst

    diff --git a/doc/en/reference/databases/index.rst b/doc/en/reference/databases/index.rst
    new file mode 100644
    - +  
     1Databases
     2=========
     3
     4There are numerous specific mathematical databases either included
     5in Sage or available as optional packages. Also, Sage includes two
     6powerful general database packages.
     7
     8Sage includes the ZOPE object oriented database ZODB, which
     9"is a Python object persistence system. It provides transparent object-oriented persistency."
     10
     11Sage also includes the powerful relational database SQLite, along
     12with a Python interface to SQLite. SQlite is a small C library that
     13implements a self-contained, embeddable, zero-configuration SQL
     14database engine.
     15
     16
     17-  Transactions are atomic, consistent, isolated, and durable
     18   (ACID) even after system crashes and power failures.
     19
     20-  Zero-configuration - no setup or administration needed.
     21
     22-  Implements most of SQL92. (Features not supported)
     23
     24-  A complete database is stored in a single disk file.
     25
     26-  Database files can be freely shared between machines with
     27   different byte orders.
     28
     29-  Supports databases up to 2 tebibytes (2^41 bytes) in size.
     30
     31-  Strings and BLOBs up to 2 gibibytes (2^31 bytes) in size.
     32
     33-  Small code footprint: less than 250KiB fully configured or less
     34   than 150KiB with optional features omitted.
     35
     36-  Faster than popular client/server database engines for most
     37   common operations.
     38
     39-  Simple, easy to use API.
     40
     41-  TCL bindings included. Bindings for many other languages
     42   available separately.
     43
     44-  Well-commented source code with over 95% test coverage.
     45
     46-  Self-contained: no external dependencies.
     47
     48-  Sources are in the public domain. Use for any purpose.
     49
     50.. toctree::
     51   :maxdepth: 2
     52   
     53   sage/databases/cremona
     54   sage/databases/stein_watkins
     55   sage/databases/jones
     56   sage/databases/lincodes
     57   sage/databases/sloane
     58   sage/databases/conway
     59   sage/databases/odlyzko
     60
     61
     62.. include:: ../footer.txt
  • deleted file doc/en/reference/dsage.rst

    diff --git a/doc/en/reference/dsage.rst b/doc/en/reference/dsage.rst
    deleted file mode 100644
    + -  
    1 DSage: Distributed Sage
    2 =======================
    3 
    4 .. automodule:: dsage.dsage
    5    :members:
    6    :undoc-members:
    7 
  • new file doc/en/reference/dsage/conf.py

    diff --git a/doc/en/reference/dsage/conf.py b/doc/en/reference/dsage/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/dsage/index.rst

    diff --git a/doc/en/reference/dsage/index.rst b/doc/en/reference/dsage/index.rst
    new file mode 100644
    - +  
     1DSage: Distributed Sage
     2=======================
     3
     4.. automodule:: dsage.dsage
     5   :members:
     6   :undoc-members:
     7
     8
     9
     10.. include:: ../footer.txt
  • new file doc/en/reference/footer.txt

    diff --git a/doc/en/reference/footer.txt b/doc/en/reference/footer.txt
    new file mode 100644
    - +  
     1Indices and Tables
     2==================
     3
     4.. toctree::
     5   :maxdepth: 1
     6
     7* :ref:`genindex`
     8* :ref:`modindex`
     9* :ref:`search`
  • deleted file doc/en/reference/functions.rst

    diff --git a/doc/en/reference/functions.rst b/doc/en/reference/functions.rst
    deleted file mode 100644
    + -  
    1 Functions
    2 =========
    3 
    4 .. toctree::
    5    :maxdepth: 2
    6 
    7    sage/functions/log
    8    sage/functions/hyperbolic
    9    sage/functions/transcendental
    10    sage/functions/piecewise
    11    sage/functions/orthogonal_polys
    12    sage/functions/special
    13    sage/functions/wigner
    14    sage/functions/generalized
    15    sage/functions/prime_pi
    16  No newline at end of file
  • new file doc/en/reference/functions/conf.py

    diff --git a/doc/en/reference/functions/conf.py b/doc/en/reference/functions/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/functions/index.rst

    diff --git a/doc/en/reference/functions/index.rst b/doc/en/reference/functions/index.rst
    new file mode 100644
    - +  
     1Functions
     2=========
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/functions/log
     8   sage/functions/hyperbolic
     9   sage/functions/transcendental
     10   sage/functions/piecewise
     11   sage/functions/orthogonal_polys
     12   sage/functions/special
     13   sage/functions/wigner
     14   sage/functions/generalized
     15   sage/functions/prime_pi
     16
     17.. include:: ../footer.txt
  • deleted file doc/en/reference/games.rst

    diff --git a/doc/en/reference/games.rst b/doc/en/reference/games.rst
    deleted file mode 100644
    + -  
    1 Games
    2 =====
    3 
    4 Sage includes a sophisticated Sudoku solver.  It also has a
    5 Rubik's cube solver (see :ref:`Rubik's Cube Group <sec-rubik>`).
    6 
    7 .. toctree::
    8    :maxdepth: 2
    9 
    10    sage/games/sudoku
    11  No newline at end of file
  • new file doc/en/reference/games/conf.py

    diff --git a/doc/en/reference/games/conf.py b/doc/en/reference/games/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/games/index.rst

    diff --git a/doc/en/reference/games/index.rst b/doc/en/reference/games/index.rst
    new file mode 100644
    - +  
     1Games
     2=====
     3
     4Sage includes a sophisticated Sudoku solver.  It also has a
     5Rubik's cube solver (see :ref:`Rubik's Cube Group <sec-rubik>`).
     6
     7.. toctree::
     8   :maxdepth: 2
     9
     10   sage/games/sudoku
     11
     12.. include:: ../footer.txt
  • deleted file doc/en/reference/geometry.rst

    diff --git a/doc/en/reference/geometry.rst b/doc/en/reference/geometry.rst
    deleted file mode 100644
    + -  
    1 Combinatorial Geometry
    2 ======================
    3 
    4 Sage includes support for computing with lattice and reflexive
    5 polytopes and Groebner fans.  It also has optional support for
    6 computing with general polytopes via the polymake program.
    7 
    8 .. toctree::
    9    :maxdepth: 2
    10 
    11    sage/geometry/lattice_polytope
    12    sage/rings/polynomial/groebner_fan
    13    sage/geometry/polytope
    14  No newline at end of file
  • new file doc/en/reference/geometry/conf.py

    diff --git a/doc/en/reference/geometry/conf.py b/doc/en/reference/geometry/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/geometry/index.rst

    diff --git a/doc/en/reference/geometry/index.rst b/doc/en/reference/geometry/index.rst
    new file mode 100644
    - +  
     1Combinatorial Geometry
     2======================
     3
     4Sage includes support for computing with lattice and reflexive
     5polytopes and Groebner fans.  It also has optional support for
     6computing with general polytopes via the polymake program.
     7
     8.. toctree::
     9   :maxdepth: 2
     10
     11   sage/geometry/lattice_polytope
     12   sage/rings/polynomial/groebner_fan
     13   sage/geometry/polytope
     14
     15.. include:: ../footer.txt
  • deleted file doc/en/reference/graphs.rst

    diff --git a/doc/en/reference/graphs.rst b/doc/en/reference/graphs.rst
    deleted file mode 100644
    + -  
    1 Graph Theory
    2 ============
    3 
    4 .. toctree::
    5    :maxdepth: 2
    6 
    7    sage/graphs/cliquer
    8    sage/graphs/graph
    9    sage/graphs/graph_generators
    10    sage/graphs/graph_database
    11    sage/graphs/graph_list
    12    sage/graphs/base/c_graph
    13    sage/graphs/base/sparse_graph
    14    sage/graphs/base/dense_graph
    15    sage/graphs/graph_latex
  • new file doc/en/reference/graphs/conf.py

    diff --git a/doc/en/reference/graphs/conf.py b/doc/en/reference/graphs/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/graphs/index.rst

    diff --git a/doc/en/reference/graphs/index.rst b/doc/en/reference/graphs/index.rst
    new file mode 100644
    - +  
     1Graph Theory
     2============
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/graphs/cliquer
     8   sage/graphs/graph
     9   sage/graphs/graph_generators
     10   sage/graphs/graph_database
     11   sage/graphs/graph_list
     12   sage/graphs/base/c_graph
     13   sage/graphs/base/sparse_graph
     14   sage/graphs/base/dense_graph
     15   sage/graphs/graph_latex
     16
     17
     18.. include:: ../footer.txt
  • deleted file doc/en/reference/groups.rst

    diff --git a/doc/en/reference/groups.rst b/doc/en/reference/groups.rst
    deleted file mode 100644
    + -  
    1 .. _ch:groups:
    2 
    3 Groups
    4 ======
    5 
    6 .. toctree::
    7    :maxdepth: 2
    8 
    9    sage/groups/group
    10    sage/groups/generic
    11    sage/groups/abelian_gps/abelian_group
    12    sage/groups/abelian_gps/abelian_group_element
    13    sage/groups/abelian_gps/abelian_group_morphism
    14    sage/groups/abelian_gps/dual_abelian_group
    15    sage/groups/perm_gps/permgroup
    16    sage/groups/perm_gps/permgroup_element
    17    sage/groups/perm_gps/permgroup_morphism
    18    sage/groups/perm_gps/cubegroup
    19    sage/groups/matrix_gps/matrix_group
    20    sage/groups/matrix_gps/matrix_group_element
    21    sage/groups/matrix_gps/matrix_group_morphism
    22    sage/groups/matrix_gps/homset
    23    sage/groups/matrix_gps/linear
    24    sage/groups/matrix_gps/general_linear
    25    sage/groups/matrix_gps/special_linear
    26    sage/groups/matrix_gps/orthogonal
    27    sage/groups/matrix_gps/symplectic
    28    sage/groups/matrix_gps/unitary
    29 
    30 
  • new file doc/en/reference/groups/conf.py

    diff --git a/doc/en/reference/groups/conf.py b/doc/en/reference/groups/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/groups/index.rst

    diff --git a/doc/en/reference/groups/index.rst b/doc/en/reference/groups/index.rst
    new file mode 100644
    - +  
     1Groups
     2======
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/groups/group
     8   sage/groups/generic
     9   sage/groups/abelian_gps/abelian_group
     10   sage/groups/abelian_gps/abelian_group_element
     11   sage/groups/abelian_gps/abelian_group_morphism
     12   sage/groups/abelian_gps/dual_abelian_group
     13   sage/groups/perm_gps/permgroup
     14   sage/groups/perm_gps/permgroup_element
     15   sage/groups/perm_gps/permgroup_morphism
     16   sage/groups/perm_gps/cubegroup
     17   sage/groups/matrix_gps/matrix_group
     18   sage/groups/matrix_gps/matrix_group_element
     19   sage/groups/matrix_gps/matrix_group_morphism
     20   sage/groups/matrix_gps/homset
     21   sage/groups/matrix_gps/linear
     22   sage/groups/matrix_gps/general_linear
     23   sage/groups/matrix_gps/special_linear
     24   sage/groups/matrix_gps/orthogonal
     25   sage/groups/matrix_gps/symplectic
     26   sage/groups/matrix_gps/unitary
     27
     28
     29
     30
     31.. include:: ../footer.txt
  • deleted file doc/en/reference/hecke.rst

    diff --git a/doc/en/reference/hecke.rst b/doc/en/reference/hecke.rst
    deleted file mode 100644
    + -  
    1 .. _ch:hecke:
    2 
    3 General Hecke Algebras and Hecke Modules
    4 ========================================
    5 
    6 This chapter describes the basic functionality for modules over Hecke
    7 algebras, including decompositions, degeneracy maps and so on. For specific
    8 examples of Hecke algebras that use this functionality see :ref:`ch:modsym` and
    9 :ref:`ch:modular`.
    10 
    11 .. toctree::
    12    :maxdepth: 2
    13 
    14    sage/modular/hecke/module
    15    sage/modular/hecke/ambient_module
    16    sage/modular/hecke/submodule
    17    sage/modular/hecke/element
    18 
    19    sage/modular/hecke/homspace
    20    sage/modular/hecke/morphism
    21    sage/modular/hecke/degenmap
    22 
    23    sage/modular/hecke/algebra
    24    sage/modular/hecke/hecke_operator
  • new file doc/en/reference/hecke/conf.py

    diff --git a/doc/en/reference/hecke/conf.py b/doc/en/reference/hecke/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/hecke/index.rst

    diff --git a/doc/en/reference/hecke/index.rst b/doc/en/reference/hecke/index.rst
    new file mode 100644
    - +  
     1General Hecke Algebras and Hecke Modules
     2========================================
     3
     4This chapter describes the basic functionality for modules over Hecke
     5algebras, including decompositions, degeneracy maps and so on. For specific
     6examples of Hecke algebras that use this functionality see :ref:`ch:modsym` and
     7:ref:`ch:modular`.
     8
     9.. toctree::
     10   :maxdepth: 2
     11
     12   sage/modular/hecke/module
     13   sage/modular/hecke/ambient_module
     14   sage/modular/hecke/submodule
     15   sage/modular/hecke/element
     16
     17   sage/modular/hecke/homspace
     18   sage/modular/hecke/morphism
     19   sage/modular/hecke/degenmap
     20
     21   sage/modular/hecke/algebra
     22   sage/modular/hecke/hecke_operator
     23
     24
     25.. include:: ../footer.txt
  • deleted file doc/en/reference/history_and_license.rst

    diff --git a/doc/en/reference/history_and_license.rst b/doc/en/reference/history_and_license.rst
    deleted file mode 100644
    + -  
    1 History and License
    2 ===================
    3 Sage was initially created by William Stein in 2004--2005, using
    4 Python, IPython, PARI, SWIG, Pyrex, NTL, and GMP.  These programs
    5 are all open source and released under the GPL or a GPL-compatible
    6 license.
    7 
    8 All Sage releases are released under the GPL.  All documentation
    9 is released under the GNU Free Documentation License.
    10 
    11 
    12 The GNU General Public License
    13 ------------------------------
    14 Version 2, June 1991
    15 
    16 ::
    17 
    18    Copyright (C) 1989, 1991 Free Software Foundation, Inc. 
    19    51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
    20 
    21    Everyone is permitted to copy and distribute verbatim copies
    22    of this license document, but changing it is not allowed.
    23 
    24 
    25 Preamble
    26 ~~~~~~~~
    27 
    28 The licenses for most software are designed to take away your
    29 freedom to share and change it. By contrast, the GNU General Public
    30 License is intended to guarantee your freedom to share and change
    31 free software--to make sure the software is free for all its users.
    32 This General Public License applies to most of the Free Software
    33 Foundation's software and to any other program whose authors commit
    34 to using it. (Some other Free Software Foundation software is
    35 covered by the GNU Library General Public License instead.) You can
    36 apply it to your programs, too.
    37 
    38 When we speak of free software, we are referring to freedom, not
    39 price. Our General Public Licenses are designed to make sure that
    40 you have the freedom to distribute copies of free software (and
    41 charge for this service if you wish), that you receive source code
    42 or can get it if you want it, that you can change the software or
    43 use pieces of it in new free programs; and that you know you can do
    44 these things.
    45 
    46 To protect your rights, we need to make restrictions that forbid
    47 anyone to deny you these rights or to ask you to surrender the
    48 rights. These restrictions translate to certain responsibilities
    49 for you if you distribute copies of the software, or if you modify
    50 it.
    51 
    52 For example, if you distribute copies of such a program, whether
    53 gratis or for a fee, you must give the recipients all the rights
    54 that you have. You must make sure that they, too, receive or can
    55 get the source code. And you must show them these terms so they
    56 know their rights.
    57 
    58 We protect your rights with two steps: (1) copyright the software,
    59 and (2) offer you this license which gives you legal permission to
    60 copy, distribute and/or modify the software.
    61 
    62 Also, for each author's protection and ours, we want to make
    63 certain that everyone understands that there is no warranty for
    64 this free software. If the software is modified by someone else and
    65 passed on, we want its recipients to know that what they have is
    66 not the original, so that any problems introduced by others will
    67 not reflect on the original authors' reputations.
    68 
    69 Finally, any free program is threatened constantly by software
    70 patents. We wish to avoid the danger that redistributors of a free
    71 program will individually obtain patent licenses, in effect making
    72 the program proprietary. To prevent this, we have made it clear
    73 that any patent must be licensed for everyone's free use or not
    74 licensed at all.
    75 
    76 The precise terms and conditions for copying, distribution and
    77 modification follow.
    78 
    79 Terms and Conditions For Copying, Distribution and Modification
    80 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    81 
    82    
    83 
    84 0.  This License applies to any program or other work which contains a
    85     notice placed by the copyright holder saying it may be distributed
    86     under the terms of this General Public License. The "Program",
    87     below, refers to any such program or work, and a
    88     "work based on the Program" means either the Program or any
    89     derivative work under copyright law: that is to say, a work
    90     containing the Program or a portion of it, either verbatim or with
    91     modifications and/or translated into another language.
    92     (Hereinafter, translation is included without limitation in the
    93     term "modification".) Each licensee is addressed as "you".
    94 
    95     Activities other than copying, distribution and modification are
    96     not covered by this License; they are outside its scope. The act of
    97     running the Program is not restricted, and the output from the
    98     Program is covered only if its contents constitute a work based on
    99     the Program (independent of having been made by running the
    100     Program). Whether that is true depends on what the Program does.
    101 
    102 1.  You may copy and distribute verbatim copies of the Program's source
    103     code as you receive it, in any medium, provided that you
    104     conspicuously and appropriately publish on each copy an appropriate
    105     copyright notice and disclaimer of warranty; keep intact all the
    106     notices that refer to this License and to the absence of any
    107     warranty; and give any other recipients of the Program a copy of
    108     this License along with the Program.
    109 
    110     You may charge a fee for the physical act of transferring a copy,
    111     and you may at your option offer warranty protection in exchange
    112     for a fee.
    113 
    114     You may modify your copy or copies of the Program or any portion of
    115     it, thus forming a work based on the Program, and copy and
    116     distribute such modifications or work under the terms of Section 1
    117     above, provided that you also meet all of these conditions:
    118 
    119    
    120     a. You must cause the modified files to carry prominent notices
    121        stating that you changed the files and the date of any change.
    122 
    123     b. You must cause any work that you distribute or publish, that in
    124        whole or in part contains or is derived from the Program or any
    125        part thereof, to be licensed as a whole at no charge to all third
    126        parties under the terms of this License.
    127 
    128     c. If the modified program normally reads commands interactively
    129        when run, you must cause it, when started running for such
    130        interactive use in the most ordinary way, to print or display an
    131        announcement including an appropriate copyright notice and a notice
    132        that there is no warranty (or else, saying that you provide a
    133        warranty) and that users may redistribute the program under these
    134        conditions, and telling the user how to view a copy of this
    135        License. (Exception: if the Program itself is interactive but does
    136        not normally print such an announcement, your work based on the
    137        Program is not required to print an announcement.)
    138 
    139 
    140 2.  These requirements apply to the modified work as a whole. If
    141     identifiable sections of that work are not derived from the
    142     Program, and can be reasonably considered independent and separate
    143     works in themselves, then this License, and its terms, do not apply
    144     to those sections when you distribute them as separate works. But
    145     when you distribute the same sections as part of a whole which is a
    146     work based on the Program, the distribution of the whole must be on
    147     the terms of this License, whose permissions for other licensees
    148     extend to the entire whole, and thus to each and every part
    149     regardless of who wrote it.
    150 
    151     Thus, it is not the intent of this section to claim rights or
    152     contest your rights to work written entirely by you; rather, the
    153     intent is to exercise the right to control the distribution of
    154     derivative or collective works based on the Program.
    155 
    156     In addition, mere aggregation of another work not based on the
    157     Program with the Program (or with a work based on the Program) on a
    158     volume of a storage or distribution medium does not bring the other
    159     work under the scope of this License.
    160 
    161 3.  You may copy and distribute the Program (or a work based on it,
    162     under Section 2) in object code or executable form under the terms
    163     of Sections 1 and 2 above provided that you also do one of the
    164     following:
    165 
    166    
    167     a. Accompany it with the complete corresponding machine-readable
    168        source code, which must be distributed under the terms of Sections
    169        1 and 2 above on a medium customarily used for software
    170        interchange; or,
    171 
    172     b. Accompany it with a written offer, valid for at least three
    173        years, to give any third party, for a charge no more than your cost
    174        of physically performing source distribution, a complete
    175        machine-readable copy of the corresponding source code, to be
    176        distributed under the terms of Sections 1 and 2 above on a medium
    177        customarily used for software interchange; or,
    178 
    179     c. Accompany it with the information you received as to the offer
    180        to distribute corresponding source code. (This alternative is
    181        allowed only for noncommercial distribution and only if you
    182        received the program in object code or executable form with such an
    183        offer, in accord with Subsection b above.)
    184 
    185 
    186     The source code for a work means the preferred form of the work for
    187     making modifications to it. For an executable work, complete source
    188     code means all the source code for all modules it contains, plus
    189     any associated interface definition files, plus the scripts used to
    190     control compilation and installation of the executable. However, as
    191     a special exception, the source code distributed need not include
    192     anything that is normally distributed (in either source or binary
    193     form) with the major components (compiler, kernel, and so on) of
    194     the operating system on which the executable runs, unless that
    195     component itself accompanies the executable.
    196 
    197     If distribution of executable or object code is made by offering
    198     access to copy from a designated place, then offering equivalent
    199     access to copy the source code from the same place counts as
    200     distribution of the source code, even though third parties are not
    201     compelled to copy the source along with the object code.
    202 
    203 4.  You may not copy, modify, sublicense, or distribute the Program
    204     except as expressly provided under this License. Any attempt
    205     otherwise to copy, modify, sublicense or distribute the Program is
    206     void, and will automatically terminate your rights under this
    207     License. However, parties who have received copies, or rights, from
    208     you under this License will not have their licenses terminated so
    209     long as such parties remain in full compliance.
    210 
    211 5.  You are not required to accept this License, since you have not
    212     signed it. However, nothing else grants you permission to modify or
    213     distribute the Program or its derivative works. These actions are
    214     prohibited by law if you do not accept this License. Therefore, by
    215     modifying or distributing the Program (or any work based on the
    216     Program), you indicate your acceptance of this License to do so,
    217     and all its terms and conditions for copying, distributing or
    218     modifying the Program or works based on it.
    219 
    220 6.  Each time you redistribute the Program (or any work based on the
    221     Program), the recipient automatically receives a license from the
    222     original licensor to copy, distribute or modify the Program subject
    223     to these terms and conditions. You may not impose any further
    224     restrictions on the recipients' exercise of the rights granted
    225     herein. You are not responsible for enforcing compliance by third
    226     parties to this License.
    227 
    228 7.  If, as a consequence of a court judgment or allegation of patent
    229     infringement or for any other reason (not limited to patent
    230     issues), conditions are imposed on you (whether by court order,
    231     agreement or otherwise) that contradict the conditions of this
    232     License, they do not excuse you from the conditions of this
    233     License. If you cannot distribute so as to satisfy simultaneously
    234     your obligations under this License and any other pertinent
    235     obligations, then as a consequence you may not distribute the
    236     Program at all. For example, if a patent license would not permit
    237     royalty-free redistribution of the Program by all those who receive
    238     copies directly or indirectly through you, then the only way you
    239     could satisfy both it and this License would be to refrain entirely
    240     from distribution of the Program.
    241 
    242     If any portion of this section is held invalid or unenforceable
    243     under any particular circumstance, the balance of the section is
    244     intended to apply and the section as a whole is intended to apply
    245     in other circumstances.
    246 
    247     It is not the purpose of this section to induce you to infringe any
    248     patents or other property right claims or to contest validity of
    249     any such claims; this section has the sole purpose of protecting
    250     the integrity of the free software distribution system, which is
    251     implemented by public license practices. Many people have made
    252     generous contributions to the wide range of software distributed
    253     through that system in reliance on consistent application of that
    254     system; it is up to the author/donor to decide if he or she is
    255     willing to distribute software through any other system and a
    256     licensee cannot impose that choice.
    257 
    258     This section is intended to make thoroughly clear what is believed
    259     to be a consequence of the rest of this License.
    260 
    261 8.  If the distribution and/or use of the Program is restricted in
    262     certain countries either by patents or by copyrighted interfaces,
    263     the original copyright holder who places the Program under this
    264     License may add an explicit geographical distribution limitation
    265     excluding those countries, so that distribution is permitted only
    266     in or among countries not thus excluded. In such case, this License
    267     incorporates the limitation as if written in the body of this
    268     License.
    269 
    270 9.  The Free Software Foundation may publish revised and/or new
    271     versions of the General Public License from time to time. Such new
    272     versions will be similar in spirit to the present version, but may
    273     differ in detail to address new problems or concerns.
    274 
    275     Each version is given a distinguishing version number. If the
    276     Program specifies a version number of this License which applies to
    277     it and "any later version", you have the option of following the
    278     terms and conditions either of that version or of any later version
    279     published by the Free Software Foundation. If the Program does not
    280     specify a version number of this License, you may choose any
    281     version ever published by the Free Software Foundation.
    282 
    283 10. If you wish to incorporate parts of the Program into other free
    284     programs whose distribution conditions are different, write to the
    285     author to ask for permission. For software which is copyrighted by
    286     the Free Software Foundation, write to the Free Software
    287     Foundation; we sometimes make exceptions for this. Our decision
    288     will be guided by the two goals of preserving the free status of
    289     all derivatives of our free software and of promoting the sharing
    290     and reuse of software generally.
    291 
    292 **NO WARRANTY**
    293 
    294 11. Because the program is licensed free of charge, there is no
    295     warranty for the program, to the extent permitted by applicable
    296     law. Except when otherwise stated in writing the copyright holders
    297     and/or other parties provide the program "as is" without warranty
    298     of any kind, either expressed or implied, including, but not
    299     limited to, the implied warranties of merchantability and fitness
    300     for a particular purpose. The entire risk as to the quality and
    301     performance of the program is with you. Should the program prove
    302     defective, you assume the cost of all necessary servicing, repair
    303     or correction.
    304 
    305 12. In no event unless required by applicable law or agreed to in
    306     writing will any copyright holder, or any other party who may
    307     modify and/or redistribute the program as permitted above, be
    308     liable to you for damages, including any general, special,
    309     incidental or consequential damages arising out of the use or
    310     inability to use the program (including but not limited to loss of
    311     data or data being rendered inaccurate or losses sustained by you
    312     or third parties or a failure of the program to operate with any
    313     other programs), even if such holder or other party has been
    314     advised of the possibility of such damages.
    315 
    316 
    317 **End of Terms and Conditions**
    318 
    319 Appendix: How to Apply These Terms to Your New Programs
    320 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    321 
    322 If you develop a new program, and you want it to be of the greatest
    323 possible use to the public, the best way to achieve this is to make
    324 it free software which everyone can redistribute and change under
    325 these terms.
    326 
    327 To do so, attach the following notices to the program. It is safest
    328 to attach them to the start of each source file to most effectively
    329 convey the exclusion of warranty; and each file should have at
    330 least the "copyright" line and a pointer to where the full notice
    331 is found.
    332 
    333 ::
    334 
    335     one line to give the program's name and a brief idea of what it
    336     does.
    337     Copyright (C) yyyy name of author
    338 
    339     This program is free software; you can redistribute it and/or
    340     modify it under the terms of the GNU General Public License as
    341     published by the Free Software Foundation; either version 2 of the
    342     License, or (at your option) any later version.
    343 
    344     This program is distributed in the hope that it will be useful, but
    345     WITHOUT ANY WARRANTY; without even the implied warranty of
    346     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    347     General Public License for more details.
    348 
    349     You should have received a copy of the GNU General Public License
    350     along with this program; if not, write to the Free Software
    351     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    352     02110-1301, USA.
    353 
    354 
    355 Also add information on how to contact you by electronic and paper
    356 mail.
    357 
    358 If the program is interactive, make it output a short notice like
    359 this when it starts in an interactive mode::
    360 
    361     Gnomovision version 69, Copyright (C) yyyy name of author
    362     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type
    363     'show w'.
    364     This is free software, and you are welcome to redistribute it under
    365     certain conditions; type 'show c' for details.
    366 
    367 
    368 The hypothetical commands show w and show c should show the
    369 appropriate parts of the General Public License. Of course, the
    370 commands you use may be called something other than show w and show
    371 c; they could even be mouse-clicks or menu items--whatever suits
    372 your program.
    373 
    374 You should also get your employer (if you work as a programmer) or
    375 your school, if any, to sign a "copyright disclaimer" for the
    376 program, if necessary. Here is a sample; alter the names::
    377 
    378     Yoyodyne, Inc., hereby disclaims all copyright interest in the
    379     program
    380     'Gnomovision' (which makes passes at compilers) written by James
    381     Hacker.
    382 
    383     signature of Ty Coon, 1 April 1989
    384     Ty Coon, President of Vice
    385 
    386 
    387 This General Public License does not permit incorporating your
    388 program into proprietary programs. If your program is a subroutine
    389 library, you may consider it more useful to permit linking
    390 proprietary applications with the library. If this is what you want
    391 to do, use the GNU Library General Public License instead of this
    392 License.
    393 
  • new file doc/en/reference/history_and_license/conf.py

    diff --git a/doc/en/reference/history_and_license/conf.py b/doc/en/reference/history_and_license/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/history_and_license/index.rst

    diff --git a/doc/en/reference/history_and_license/index.rst b/doc/en/reference/history_and_license/index.rst
    new file mode 100644
    - +  
     1History and License
     2===================
     3Sage was initially created by William Stein in 2004--2005, using
     4Python, IPython, PARI, SWIG, Pyrex, NTL, and GMP.  These programs
     5are all open source and released under the GPL or a GPL-compatible
     6license.
     7
     8All Sage releases are released under the GPL.  All documentation
     9is released under the GNU Free Documentation License.
     10
     11
     12The GNU General Public License
     13------------------------------
     14Version 2, June 1991
     15
     16::
     17
     18   Copyright (C) 1989, 1991 Free Software Foundation, Inc. 
     19   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
     20
     21   Everyone is permitted to copy and distribute verbatim copies
     22   of this license document, but changing it is not allowed.
     23
     24
     25Preamble
     26~~~~~~~~
     27
     28The licenses for most software are designed to take away your
     29freedom to share and change it. By contrast, the GNU General Public
     30License is intended to guarantee your freedom to share and change
     31free software--to make sure the software is free for all its users.
     32This General Public License applies to most of the Free Software
     33Foundation's software and to any other program whose authors commit
     34to using it. (Some other Free Software Foundation software is
     35covered by the GNU Library General Public License instead.) You can
     36apply it to your programs, too.
     37
     38When we speak of free software, we are referring to freedom, not
     39price. Our General Public Licenses are designed to make sure that
     40you have the freedom to distribute copies of free software (and
     41charge for this service if you wish), that you receive source code
     42or can get it if you want it, that you can change the software or
     43use pieces of it in new free programs; and that you know you can do
     44these things.
     45
     46To protect your rights, we need to make restrictions that forbid
     47anyone to deny you these rights or to ask you to surrender the
     48rights. These restrictions translate to certain responsibilities
     49for you if you distribute copies of the software, or if you modify
     50it.
     51
     52For example, if you distribute copies of such a program, whether
     53gratis or for a fee, you must give the recipients all the rights
     54that you have. You must make sure that they, too, receive or can
     55get the source code. And you must show them these terms so they
     56know their rights.
     57
     58We protect your rights with two steps: (1) copyright the software,
     59and (2) offer you this license which gives you legal permission to
     60copy, distribute and/or modify the software.
     61
     62Also, for each author's protection and ours, we want to make
     63certain that everyone understands that there is no warranty for
     64this free software. If the software is modified by someone else and
     65passed on, we want its recipients to know that what they have is
     66not the original, so that any problems introduced by others will
     67not reflect on the original authors' reputations.
     68
     69Finally, any free program is threatened constantly by software
     70patents. We wish to avoid the danger that redistributors of a free
     71program will individually obtain patent licenses, in effect making
     72the program proprietary. To prevent this, we have made it clear
     73that any patent must be licensed for everyone's free use or not
     74licensed at all.
     75
     76The precise terms and conditions for copying, distribution and
     77modification follow.
     78
     79Terms and Conditions For Copying, Distribution and Modification
     80~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     81
     82   
     83
     840.  This License applies to any program or other work which contains a
     85    notice placed by the copyright holder saying it may be distributed
     86    under the terms of this General Public License. The "Program",
     87    below, refers to any such program or work, and a
     88    "work based on the Program" means either the Program or any
     89    derivative work under copyright law: that is to say, a work
     90    containing the Program or a portion of it, either verbatim or with
     91    modifications and/or translated into another language.
     92    (Hereinafter, translation is included without limitation in the
     93    term "modification".) Each licensee is addressed as "you".
     94
     95    Activities other than copying, distribution and modification are
     96    not covered by this License; they are outside its scope. The act of
     97    running the Program is not restricted, and the output from the
     98    Program is covered only if its contents constitute a work based on
     99    the Program (independent of having been made by running the
     100    Program). Whether that is true depends on what the Program does.
     101
     1021.  You may copy and distribute verbatim copies of the Program's source
     103    code as you receive it, in any medium, provided that you
     104    conspicuously and appropriately publish on each copy an appropriate
     105    copyright notice and disclaimer of warranty; keep intact all the
     106    notices that refer to this License and to the absence of any
     107    warranty; and give any other recipients of the Program a copy of
     108    this License along with the Program.
     109
     110    You may charge a fee for the physical act of transferring a copy,
     111    and you may at your option offer warranty protection in exchange
     112    for a fee.
     113
     114    You may modify your copy or copies of the Program or any portion of
     115    it, thus forming a work based on the Program, and copy and
     116    distribute such modifications or work under the terms of Section 1
     117    above, provided that you also meet all of these conditions:
     118
     119   
     120    a. You must cause the modified files to carry prominent notices
     121       stating that you changed the files and the date of any change.
     122
     123    b. You must cause any work that you distribute or publish, that in
     124       whole or in part contains or is derived from the Program or any
     125       part thereof, to be licensed as a whole at no charge to all third
     126       parties under the terms of this License.
     127
     128    c. If the modified program normally reads commands interactively
     129       when run, you must cause it, when started running for such
     130       interactive use in the most ordinary way, to print or display an
     131       announcement including an appropriate copyright notice and a notice
     132       that there is no warranty (or else, saying that you provide a
     133       warranty) and that users may redistribute the program under these
     134       conditions, and telling the user how to view a copy of this
     135       License. (Exception: if the Program itself is interactive but does
     136       not normally print such an announcement, your work based on the
     137       Program is not required to print an announcement.)
     138
     139
     1402.  These requirements apply to the modified work as a whole. If
     141    identifiable sections of that work are not derived from the
     142    Program, and can be reasonably considered independent and separate
     143    works in themselves, then this License, and its terms, do not apply
     144    to those sections when you distribute them as separate works. But
     145    when you distribute the same sections as part of a whole which is a
     146    work based on the Program, the distribution of the whole must be on
     147    the terms of this License, whose permissions for other licensees
     148    extend to the entire whole, and thus to each and every part
     149    regardless of who wrote it.
     150
     151    Thus, it is not the intent of this section to claim rights or
     152    contest your rights to work written entirely by you; rather, the
     153    intent is to exercise the right to control the distribution of
     154    derivative or collective works based on the Program.
     155
     156    In addition, mere aggregation of another work not based on the
     157    Program with the Program (or with a work based on the Program) on a
     158    volume of a storage or distribution medium does not bring the other
     159    work under the scope of this License.
     160
     1613.  You may copy and distribute the Program (or a work based on it,
     162    under Section 2) in object code or executable form under the terms
     163    of Sections 1 and 2 above provided that you also do one of the
     164    following:
     165
     166   
     167    a. Accompany it with the complete corresponding machine-readable
     168       source code, which must be distributed under the terms of Sections
     169       1 and 2 above on a medium customarily used for software
     170       interchange; or,
     171
     172    b. Accompany it with a written offer, valid for at least three
     173       years, to give any third party, for a charge no more than your cost
     174       of physically performing source distribution, a complete
     175       machine-readable copy of the corresponding source code, to be
     176       distributed under the terms of Sections 1 and 2 above on a medium
     177       customarily used for software interchange; or,
     178
     179    c. Accompany it with the information you received as to the offer
     180       to distribute corresponding source code. (This alternative is
     181       allowed only for noncommercial distribution and only if you
     182       received the program in object code or executable form with such an
     183       offer, in accord with Subsection b above.)
     184
     185
     186    The source code for a work means the preferred form of the work for
     187    making modifications to it. For an executable work, complete source
     188    code means all the source code for all modules it contains, plus
     189    any associated interface definition files, plus the scripts used to
     190    control compilation and installation of the executable. However, as
     191    a special exception, the source code distributed need not include
     192    anything that is normally distributed (in either source or binary
     193    form) with the major components (compiler, kernel, and so on) of
     194    the operating system on which the executable runs, unless that
     195    component itself accompanies the executable.
     196
     197    If distribution of executable or object code is made by offering
     198    access to copy from a designated place, then offering equivalent
     199    access to copy the source code from the same place counts as
     200    distribution of the source code, even though third parties are not
     201    compelled to copy the source along with the object code.
     202
     2034.  You may not copy, modify, sublicense, or distribute the Program
     204    except as expressly provided under this License. Any attempt
     205    otherwise to copy, modify, sublicense or distribute the Program is
     206    void, and will automatically terminate your rights under this
     207    License. However, parties who have received copies, or rights, from
     208    you under this License will not have their licenses terminated so
     209    long as such parties remain in full compliance.
     210
     2115.  You are not required to accept this License, since you have not
     212    signed it. However, nothing else grants you permission to modify or
     213    distribute the Program or its derivative works. These actions are
     214    prohibited by law if you do not accept this License. Therefore, by
     215    modifying or distributing the Program (or any work based on the
     216    Program), you indicate your acceptance of this License to do so,
     217    and all its terms and conditions for copying, distributing or
     218    modifying the Program or works based on it.
     219
     2206.  Each time you redistribute the Program (or any work based on the
     221    Program), the recipient automatically receives a license from the
     222    original licensor to copy, distribute or modify the Program subject
     223    to these terms and conditions. You may not impose any further
     224    restrictions on the recipients' exercise of the rights granted
     225    herein. You are not responsible for enforcing compliance by third
     226    parties to this License.
     227
     2287.  If, as a consequence of a court judgment or allegation of patent
     229    infringement or for any other reason (not limited to patent
     230    issues), conditions are imposed on you (whether by court order,
     231    agreement or otherwise) that contradict the conditions of this
     232    License, they do not excuse you from the conditions of this
     233    License. If you cannot distribute so as to satisfy simultaneously
     234    your obligations under this License and any other pertinent
     235    obligations, then as a consequence you may not distribute the
     236    Program at all. For example, if a patent license would not permit
     237    royalty-free redistribution of the Program by all those who receive
     238    copies directly or indirectly through you, then the only way you
     239    could satisfy both it and this License would be to refrain entirely
     240    from distribution of the Program.
     241
     242    If any portion of this section is held invalid or unenforceable
     243    under any particular circumstance, the balance of the section is
     244    intended to apply and the section as a whole is intended to apply
     245    in other circumstances.
     246
     247    It is not the purpose of this section to induce you to infringe any
     248    patents or other property right claims or to contest validity of
     249    any such claims; this section has the sole purpose of protecting
     250    the integrity of the free software distribution system, which is
     251    implemented by public license practices. Many people have made
     252    generous contributions to the wide range of software distributed
     253    through that system in reliance on consistent application of that
     254    system; it is up to the author/donor to decide if he or she is
     255    willing to distribute software through any other system and a
     256    licensee cannot impose that choice.
     257
     258    This section is intended to make thoroughly clear what is believed
     259    to be a consequence of the rest of this License.
     260
     2618.  If the distribution and/or use of the Program is restricted in
     262    certain countries either by patents or by copyrighted interfaces,
     263    the original copyright holder who places the Program under this
     264    License may add an explicit geographical distribution limitation
     265    excluding those countries, so that distribution is permitted only
     266    in or among countries not thus excluded. In such case, this License
     267    incorporates the limitation as if written in the body of this
     268    License.
     269
     2709.  The Free Software Foundation may publish revised and/or new
     271    versions of the General Public License from time to time. Such new
     272    versions will be similar in spirit to the present version, but may
     273    differ in detail to address new problems or concerns.
     274
     275    Each version is given a distinguishing version number. If the
     276    Program specifies a version number of this License which applies to
     277    it and "any later version", you have the option of following the
     278    terms and conditions either of that version or of any later version
     279    published by the Free Software Foundation. If the Program does not
     280    specify a version number of this License, you may choose any
     281    version ever published by the Free Software Foundation.
     282
     28310. If you wish to incorporate parts of the Program into other free
     284    programs whose distribution conditions are different, write to the
     285    author to ask for permission. For software which is copyrighted by
     286    the Free Software Foundation, write to the Free Software
     287    Foundation; we sometimes make exceptions for this. Our decision
     288    will be guided by the two goals of preserving the free status of
     289    all derivatives of our free software and of promoting the sharing
     290    and reuse of software generally.
     291
     292**NO WARRANTY**
     293
     29411. Because the program is licensed free of charge, there is no
     295    warranty for the program, to the extent permitted by applicable
     296    law. Except when otherwise stated in writing the copyright holders
     297    and/or other parties provide the program "as is" without warranty
     298    of any kind, either expressed or implied, including, but not
     299    limited to, the implied warranties of merchantability and fitness
     300    for a particular purpose. The entire risk as to the quality and
     301    performance of the program is with you. Should the program prove
     302    defective, you assume the cost of all necessary servicing, repair
     303    or correction.
     304
     30512. In no event unless required by applicable law or agreed to in
     306    writing will any copyright holder, or any other party who may
     307    modify and/or redistribute the program as permitted above, be
     308    liable to you for damages, including any general, special,
     309    incidental or consequential damages arising out of the use or
     310    inability to use the program (including but not limited to loss of
     311    data or data being rendered inaccurate or losses sustained by you
     312    or third parties or a failure of the program to operate with any
     313    other programs), even if such holder or other party has been
     314    advised of the possibility of such damages.
     315
     316
     317**End of Terms and Conditions**
     318
     319Appendix: How to Apply These Terms to Your New Programs
     320~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     321
     322If you develop a new program, and you want it to be of the greatest
     323possible use to the public, the best way to achieve this is to make
     324it free software which everyone can redistribute and change under
     325these terms.
     326
     327To do so, attach the following notices to the program. It is safest
     328to attach them to the start of each source file to most effectively
     329convey the exclusion of warranty; and each file should have at
     330least the "copyright" line and a pointer to where the full notice
     331is found.
     332
     333::
     334
     335    one line to give the program's name and a brief idea of what it
     336    does.
     337    Copyright (C) yyyy name of author
     338
     339    This program is free software; you can redistribute it and/or
     340    modify it under the terms of the GNU General Public License as
     341    published by the Free Software Foundation; either version 2 of the
     342    License, or (at your option) any later version.
     343
     344    This program is distributed in the hope that it will be useful, but
     345    WITHOUT ANY WARRANTY; without even the implied warranty of
     346    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
     347    General Public License for more details.
     348
     349    You should have received a copy of the GNU General Public License
     350    along with this program; if not, write to the Free Software
     351    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
     352    02110-1301, USA.
     353
     354
     355Also add information on how to contact you by electronic and paper
     356mail.
     357
     358If the program is interactive, make it output a short notice like
     359this when it starts in an interactive mode::
     360
     361    Gnomovision version 69, Copyright (C) yyyy name of author
     362    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type
     363    'show w'.
     364    This is free software, and you are welcome to redistribute it under
     365    certain conditions; type 'show c' for details.
     366
     367
     368The hypothetical commands show w and show c should show the
     369appropriate parts of the General Public License. Of course, the
     370commands you use may be called something other than show w and show
     371c; they could even be mouse-clicks or menu items--whatever suits
     372your program.
     373
     374You should also get your employer (if you work as a programmer) or
     375your school, if any, to sign a "copyright disclaimer" for the
     376program, if necessary. Here is a sample; alter the names::
     377
     378    Yoyodyne, Inc., hereby disclaims all copyright interest in the
     379    program
     380    'Gnomovision' (which makes passes at compilers) written by James
     381    Hacker.
     382
     383    signature of Ty Coon, 1 April 1989
     384    Ty Coon, President of Vice
     385
     386
     387This General Public License does not permit incorporating your
     388program into proprietary programs. If your program is a subroutine
     389library, you may consider it more useful to permit linking
     390proprietary applications with the library. If this is what you want
     391to do, use the GNU Library General Public License instead of this
     392License.
     393
     394
     395
     396.. include:: ../footer.txt
  • deleted file doc/en/reference/homology.rst

    diff --git a/doc/en/reference/homology.rst b/doc/en/reference/homology.rst
    deleted file mode 100644
    + -  
    1 Homology of Simplicial Complexes
    2 ================================
    3 
    4 Sage includes support for constructing simplicial complexes and
    5 computing their homology.
    6 
    7 .. toctree::
    8    :maxdepth: 2
    9 
    10    sage/homology/simplicial_complex
    11    sage/homology/chain_complex
    12    sage/homology/examples
  • new file doc/en/reference/homology/conf.py

    diff --git a/doc/en/reference/homology/conf.py b/doc/en/reference/homology/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/homology/index.rst

    diff --git a/doc/en/reference/homology/index.rst b/doc/en/reference/homology/index.rst
    new file mode 100644
    - +  
     1Homology of Simplicial Complexes
     2================================
     3
     4Sage includes support for constructing simplicial complexes and
     5computing their homology.
     6
     7.. toctree::
     8   :maxdepth: 2
     9
     10   sage/homology/simplicial_complex
     11   sage/homology/chain_complex
     12   sage/homology/examples
     13
     14
     15.. include:: ../footer.txt
  • doc/en/reference/index.rst

    diff --git a/doc/en/reference/index.rst b/doc/en/reference/index.rst
    a b  
    1 .. Sage Reference Manual documentation master file, created by sphinx-quickstart on Sun Sep 28 03:34:37 2008.
    2    You can adapt this file completely to your liking, but it should at least
    3    contain the root `toctree` directive.
     1Welcome to Sage's Reference Manual!
     2===================================
    43
    5 .. _ch:intro:
     4This is the manual for the Sage mathematical software system. Sage is
     5free open source math software that supports research and teaching in
     6algebra, geometry, number theory, cryptography, and related
     7areas. Both the Sage development model and the technology in Sage
     8itself are distinguished by an extremely strong emphasis on openness,
     9community, cooperation, and collaboration: we are building the car,
     10not reinventing the wheel.
    611
    7 Welcome to Sage's Reference Manual!
    8 =================================================
     12This reference manual contains many examples that illustrate the usage
     13of Sage. The examples are all tested with each release of Sage, and
     14should produce exactly the same output as in this manual, except for
     15line breaks.
    916
    10 This is the manual for the Sage mathematical software system. Sage
    11 is free open source math software that supports research and
    12 teaching in algebra, geometry, number theory, cryptography, and
    13 related areas. Both the Sage development model and the technology
    14 in Sage itself are distinguished by an extremely strong emphasis on
    15 openness, community, cooperation, and collaboration: we are
    16 building the car, not reinventing the wheel.
     17The Sage command line is briefly described in `The Sage Command Line
     18<cmd/index.html>`_, which lists the command line options. For more
     19details about the command line, see the Sage tutorial.
    1720
    18 This reference manual contains many examples that illustrate the
    19 usage of Sage. The examples are all tested with each release of
    20 Sage, and should produce exactly the same output as in this manual,
    21 except for line breaks.
     21The Sage graphical user interface is described in `The Sage Notebook
     22<notebook/index.html>`_. This graphical user interface is unusual in
     23that it operates via your web browser. It provides you with Sage
     24worksheets that you can edit and evaluate, which contain scalable
     25typeset mathematics and beautiful antialiased images.
    2226
    23 The Sage command line is briefly described in :ref:`ch:cmdline`, which
    24 lists the command line options. For more details about the command
    25 line, see the Sage tutorial.
    26 
    27 The Sage graphical user interface is described in
    28 :ref:`ch:notebook`. This graphical user interface is unusual in that
    29 it operates via your web browser. It provides you with Sage worksheets
    30 that you can edit and evaluate, which contain scalable typeset
    31 mathematics and beautiful antialiased images.
    32 
    33 This work is licensed under a `Creative Commons Attribution-Share Alike
    34 3.0 License`__.
     27This work is licensed under a `Creative Commons Attribution-Share
     28Alike 3.0 License`__.
    3529
    3630__ http://creativecommons.org/licenses/by-sa/3.0/
    3731
    3832Enjoy Sage!
    3933
    40 .. toctree::
    41    :maxdepth: 2
    4234
    43    cmd
    44    notebook
    45    calculus
    46    plotting
    47    plot3d
    48    games
    49    graphs
    50    constants
    51    functions
    52    structure
    53    coercion
    54    misc
    55    databases
    56    interfaces
    57    libs
    58    networking
    59    cryptography
    60    combinat/index
    61    numerical
    62    probability
    63    categories
    64    monoids
    65    groups
    66    rings
    67    rings_standard
    68    rings_numerical
    69    number_fields
    70    padics
    71    polynomial_rings
    72    power_series
    73    algebras
    74    quat_algebras
    75    matrices
    76    modules
    77    geometry
    78    homology
    79    lfunctions
    80    schemes
    81    plane_curves
    82    coding
    83    arithgroup
    84    hecke
    85    modsym
    86    modfrm
    87    modabvar
    88    modmisc
     35Table of Contents
     36=================
    8937
    90    history_and_license
     38   * `The Sage Command Line <cmd/index.html>`_
     39   * `The Sage Notebook <notebook/index.html>`_
     40   * `Symbolic Calculus <calculus/index.html>`_
     41   * `2D Graphics <plotting/index.html>`_
     42   * `3D Graphics <plot3d/index.html>`_
     43   * `Games <games/index.html>`_
     44   * `Graph Theory <graphs/index.html>`_
     45   * `Constants <constants/index.html>`_
     46   * `Functions <functions/index.html>`_
     47   * `Basic Structures <structure/index.html>`_
     48   * `Coercion <coercion/index.html>`_
     49   * `Miscellaneous <misc/index.html>`_
     50   * `Databases <databases/index.html>`_
     51   * `Interpreter Interfaces <interfaces/index.html>`_
     52   * `C/C++ Library Interfaces <libs/index.html>`_
     53   * `Networking and Grid Computing <networking/index.html>`_
     54   * `Cryptography <cryptography/index.html>`_
     55   * `Combinatorics <combinat/index.html>`_
     56   * `Numerical Optimization <numerical/index.html>`_
     57   * `Probability <probability/index.html>`_
     58   * `Category Theory and Categories <categories/index.html>`_
     59   * `Monoids <monoids/index.html>`_
     60   * `Groups <groups/index.html>`_
     61   * `General Rings, Ideals, and Morphisms <rings/index.html>`_
     62   * `Standard Commutative Rings <rings_standard/index.html>`_
     63   * `Fixed and Arbitrary Precision Numerical Fields <rings_numerical/index.html>`_
     64   * `Algebraic Number Fields <number_fields/index.html>`_
     65   * `p-Adics <padics/index.html>`_
     66   * `Polynomial Rings <polynomial_rings/index.html>`_
     67   * `Power Series Rings <power_series/index.html>`_
     68   * `Algebras <algebras/index.html>`_
     69   * `Quaternion Algebras <quat_algebras/index.html>`_
     70   * `Matrices and Spaces of Matrices <matrices/index.html>`_
     71   * `Modules <modules/index.html>`_
     72   * `Combinatorial Geometry <geometry/index.html>`_
     73   * `Homology of Simplicial Complexes <homology/index.html>`_
     74   * `L-Functions <lfunctions/index.html>`_
     75   * `Schemes <schemes/index.html>`_
     76   * `Elliptic, Plane, and Hyperelliptic Curves <plane_curves/index.html>`_
     77   * `Coding Theory <coding/index.html>`_
     78   * `Arithmetic Subgroups of $${\rm SL}_2(\ZZ)$$ <arithgroup/index.html>`_
     79   * `General Hecke Algebras and Hecke Modules <hecke/index.html>`_
     80   * `Modular Symbols <modsym/index.html>`_
     81   * `Modular Forms <modfrm/index.html>`_
     82   * `Modular Abelian Varieties <modabvar/index.html>`_
     83   * `Miscellaneous Modular-Form-Related Modules <modmisc/index.html>`_
     84   * `History and License <history_and_license/index.html>`_
    9185
    92 Indices and tables
    93 ==================
    9486
    95 * :ref:`genindex`
    96 * :ref:`modindex`
    97 * :ref:`search`
    98 
     87.. include:: footer.txt
  • deleted file doc/en/reference/interfaces.rst

    diff --git a/doc/en/reference/interfaces.rst b/doc/en/reference/interfaces.rst
    deleted file mode 100644
    + -  
    1 .. _ch:interfaces:
    2 
    3 Interpreter Interfaces
    4 ======================
    5 
    6 Sage provides a unified interface to the best computational
    7 software. This is accomplished using both C-libraries (see
    8 :ref:`ch:libraries`) and interpreter interfaces, which are
    9 implemented using pseudo-tty's, system files, etc. This chapter is
    10 about these interpreter interfaces.
    11 
    12 .. note::
    13 
    14     Each interface requires that the corresponding software is
    15     installed on your computer. Sage includes GAP, PARI, Singular, and
    16     Maxima, but does not include Octave (very easy to install), MAGMA
    17     (non-free), Maple (non-free), or Mathematica (non-free).
    18 
    19 
    20     There is overhead associated with each call to one of these
    21     systems. For example, computing ``2+2`` thousands of times using
    22     the GAP interface will be slower than doing it directly in
    23     Sage. In contrast, the C-library interfaces of :ref:`ch:libraries`
    24     incur less overhead.
    25 
    26 
    27 In addition to the commands described for each of the interfaces
    28 below, you can also type e.g., ``%gap``,
    29 ``%magma``, etc., to directly interact with a given
    30 interface in its state. Alternatively, if ``X`` is an
    31 interface object, typing ``X.interact()`` allows you to
    32 interact with it. This is completely different than
    33 ``X.console()`` which starts a complete new copy of
    34 whatever program ``X`` interacts with. Note that the
    35 input for ``X.interact()`` is handled by Sage, so the
    36 history buffer is the same as for Sage, tab completion is as for
    37 Sage (unfortunately!), and input that spans multiple lines must be
    38 indicated using a backslash at the end of each line. You can pull
    39 data into an interactive session with ``X`` using
    40 ``sage(expression)``.
    41 
    42 The console and interact methods of an interface do very different
    43 things. For example, using gap as an example:
    44 
    45 
    46 #. ``gap.console()``: You are completely using another
    47    program, e.g., gap/magma/gp Here Sage is serving as nothing more
    48    than a convenient program launcher, similar to bash.
    49 
    50 #. ``gap.interact()``: This is a convenient way to
    51    interact with a running gap instance that may be "full of" Sage
    52    objects. You can import Sage objects into this gap (even from the
    53    interactive interface), etc.
    54 
    55 
    56 The console function is very useful on occasion, since you get the
    57 exact actual program available (especially useful for tab completion
    58 and testing to make sure nothing funny is going on).
    59 
    60 .. toctree::
    61    :maxdepth: 2
    62 
    63    sage/interfaces/expect
    64    sage/interfaces/axiom
    65    sage/interfaces/gap
    66    sage/interfaces/gp
    67    sage/interfaces/gnuplot
    68    sage/interfaces/kash
    69    sage/interfaces/magma
    70    sage/interfaces/maple
    71    sage/interfaces/matlab
    72    sage/interfaces/maxima
    73    sage/interfaces/mathematica
    74    sage/interfaces/mwrank
    75    sage/interfaces/octave
    76    sage/interfaces/sage0
    77    sage/interfaces/singular
    78    sage/interfaces/tachyon
  • new file doc/en/reference/interfaces/conf.py

    diff --git a/doc/en/reference/interfaces/conf.py b/doc/en/reference/interfaces/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/interfaces/index.rst

    diff --git a/doc/en/reference/interfaces/index.rst b/doc/en/reference/interfaces/index.rst
    new file mode 100644
    - +  
     1Interpreter Interfaces
     2======================
     3
     4Sage provides a unified interface to the best computational
     5software. This is accomplished using both C-libraries (see
     6:ref:`ch:libraries`) and interpreter interfaces, which are
     7implemented using pseudo-tty's, system files, etc. This chapter is
     8about these interpreter interfaces.
     9
     10.. note::
     11
     12    Each interface requires that the corresponding software is
     13    installed on your computer. Sage includes GAP, PARI, Singular, and
     14    Maxima, but does not include Octave (very easy to install), MAGMA
     15    (non-free), Maple (non-free), or Mathematica (non-free).
     16
     17
     18    There is overhead associated with each call to one of these
     19    systems. For example, computing ``2+2`` thousands of times using
     20    the GAP interface will be slower than doing it directly in
     21    Sage. In contrast, the C-library interfaces of :ref:`ch:libraries`
     22    incur less overhead.
     23
     24
     25In addition to the commands described for each of the interfaces
     26below, you can also type e.g., ``%gap``,
     27``%magma``, etc., to directly interact with a given
     28interface in its state. Alternatively, if ``X`` is an
     29interface object, typing ``X.interact()`` allows you to
     30interact with it. This is completely different than
     31``X.console()`` which starts a complete new copy of
     32whatever program ``X`` interacts with. Note that the
     33input for ``X.interact()`` is handled by Sage, so the
     34history buffer is the same as for Sage, tab completion is as for
     35Sage (unfortunately!), and input that spans multiple lines must be
     36indicated using a backslash at the end of each line. You can pull
     37data into an interactive session with ``X`` using
     38``sage(expression)``.
     39
     40The console and interact methods of an interface do very different
     41things. For example, using gap as an example:
     42
     43
     44#. ``gap.console()``: You are completely using another
     45   program, e.g., gap/magma/gp Here Sage is serving as nothing more
     46   than a convenient program launcher, similar to bash.
     47
     48#. ``gap.interact()``: This is a convenient way to
     49   interact with a running gap instance that may be "full of" Sage
     50   objects. You can import Sage objects into this gap (even from the
     51   interactive interface), etc.
     52
     53
     54The console function is very useful on occasion, since you get the
     55exact actual program available (especially useful for tab completion
     56and testing to make sure nothing funny is going on).
     57
     58.. toctree::
     59   :maxdepth: 2
     60
     61   sage/interfaces/expect
     62   sage/interfaces/axiom
     63   sage/interfaces/gap
     64   sage/interfaces/gp
     65   sage/interfaces/gnuplot
     66   sage/interfaces/kash
     67   sage/interfaces/magma
     68   sage/interfaces/maple
     69   sage/interfaces/matlab
     70   sage/interfaces/maxima
     71   sage/interfaces/mathematica
     72   sage/interfaces/mwrank
     73   sage/interfaces/octave
     74   sage/interfaces/sage0
     75   sage/interfaces/singular
     76   sage/interfaces/tachyon
     77
     78
     79.. include:: ../footer.txt
  • deleted file doc/en/reference/lfunctions.rst

    diff --git a/doc/en/reference/lfunctions.rst b/doc/en/reference/lfunctions.rst
    deleted file mode 100644
    + -  
    1 L-Functions
    2 ===========
    3 
    4 Sage includes several standard open source packages for computing
    5 with :math:`L`-functions.
    6 
    7 .. toctree::
    8    :maxdepth: 2
    9 
    10    sage/lfunctions/lcalc
    11    sage/lfunctions/sympow
    12    sage/lfunctions/dokchitser
    13  No newline at end of file
  • new file doc/en/reference/lfunctions/conf.py

    diff --git a/doc/en/reference/lfunctions/conf.py b/doc/en/reference/lfunctions/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/lfunctions/index.rst

    diff --git a/doc/en/reference/lfunctions/index.rst b/doc/en/reference/lfunctions/index.rst
    new file mode 100644
    - +  
     1L-Functions
     2===========
     3
     4Sage includes several standard open source packages for computing
     5with :math:`L`-functions.
     6
     7.. toctree::
     8   :maxdepth: 2
     9
     10   sage/lfunctions/lcalc
     11   sage/lfunctions/sympow
     12   sage/lfunctions/dokchitser
     13
     14.. include:: ../footer.txt
  • deleted file doc/en/reference/libs.rst

    diff --git a/doc/en/reference/libs.rst b/doc/en/reference/libs.rst
    deleted file mode 100644
    + -  
    1 .. _ch:libraries:
    2 
    3 C/C++ Library Interfaces
    4 ========================
    5 
    6 An underlying philosophy in the development of Sage is that it
    7 should provide unified library-level access to the some of the best
    8 GPL'd C/C++ libraries. Currently Sage provides some access to
    9 MWRANK, NTL, PARI, and Hanke, each of which are included with
    10 Sage.
    11 
    12 The interfaces are implemented via shared libraries and data is
    13 moved between systems purely in memory. In particular, there is no
    14 interprocess interpreter parsing (e.g., ``expect``),
    15 since everything is linked together and run as a single process.
    16 This is much more robust and efficient than using
    17 ``expect``.
    18 
    19 Each of these interfaces is used by other parts of Sage. For
    20 example, mwrank is used by the elliptic curves module to compute
    21 ranks of elliptic curves, and PARI is used for computation of class
    22 groups. It is thus probably not necessary for a casual user of Sage
    23 to be aware of the modules described in this chapter.
    24 
    25 .. toctree::
    26    :maxdepth: 2
    27    
    28    sage/libs/pari/gen
    29    sage/libs/ntl/all
    30    sage/libs/mwrank/all
  • new file doc/en/reference/libs/conf.py

    diff --git a/doc/en/reference/libs/conf.py b/doc/en/reference/libs/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/libs/index.rst

    diff --git a/doc/en/reference/libs/index.rst b/doc/en/reference/libs/index.rst
    new file mode 100644
    - +  
     1C/C++ Library Interfaces
     2========================
     3
     4An underlying philosophy in the development of Sage is that it
     5should provide unified library-level access to the some of the best
     6GPL'd C/C++ libraries. Currently Sage provides some access to
     7MWRANK, NTL, PARI, and Hanke, each of which are included with
     8Sage.
     9
     10The interfaces are implemented via shared libraries and data is
     11moved between systems purely in memory. In particular, there is no
     12interprocess interpreter parsing (e.g., ``expect``),
     13since everything is linked together and run as a single process.
     14This is much more robust and efficient than using
     15``expect``.
     16
     17Each of these interfaces is used by other parts of Sage. For
     18example, mwrank is used by the elliptic curves module to compute
     19ranks of elliptic curves, and PARI is used for computation of class
     20groups. It is thus probably not necessary for a casual user of Sage
     21to be aware of the modules described in this chapter.
     22
     23.. toctree::
     24   :maxdepth: 2
     25   
     26   sage/libs/pari/gen
     27   sage/libs/ntl/all
     28   sage/libs/mwrank/all
     29
     30
     31.. include:: ../footer.txt
  • deleted file doc/en/reference/matrices.rst

    diff --git a/doc/en/reference/matrices.rst b/doc/en/reference/matrices.rst
    deleted file mode 100644
    + -  
    1 .. _ch:matrices:
    2 
    3 Matrices and Spaces of Matrices
    4 ===============================
    5 
    6 Sage provides native support for working with matrices over any
    7 commutative or noncommutative ring. The parent object for a matrix
    8 is a matrix space ``MatrixSpace(R, n, m)`` of all
    9 :math:`n\times
    10 m` matrices over a ring :math:`R`.
    11 
    12 To create a matrix, either use the ``matrix(...)``
    13 function or create a matrix space using the
    14 ``MatrixSpace`` command and coerce an object into it.
    15 
    16 Matrices also act on row vectors, which you create using the
    17 ``vector(...)`` command or by making a
    18 ``VectorSpace`` and coercing lists into it. The natural
    19 action of matrices on row vectors is from the right. Sage currently
    20 does not have a column vector class (on which matrices would act
    21 from the left), but this is planned.
    22 
    23 In addition to native Sage matrices, Sage also includes the
    24 following additional ways to compute with matrices:
    25 
    26 
    27 -  Several math software systems included with Sage have their own
    28    native matrix support, which can be used from Sage. E.g., PARI,
    29    GAP, Maxima, and Singular all have a notion of matrices.
    30 
    31 -  The GSL C-library is included with Sage, and can be used via
    32    Cython.
    33 
    34 -  The ``scipy`` module provides support for
    35    *sparse* numerical linear algebra, among many other things.
    36 
    37 -  The ``numpy`` module, which you load by typing
    38    ``import numpy`` is included standard with Sage. It
    39    contains a very sophisticated and well developed array class, plus
    40    optimized support for *numerical linear algebra*.  Sage's matrices
    41    over RDF and CDF (native floating-point real and complex numbers)
    42    use numpy.
    43 
    44 
    45 .. toctree::
    46    :maxdepth: 2
    47 
    48 
    49    sage/matrix/matrix_space
    50 
    51    sage/matrix/constructor
    52 
    53    sage/matrix/docs
    54 
    55    sage/matrix/matrix
    56 
    57    sage/matrix/matrix0
    58 
    59    sage/matrix/matrix1
    60 
    61    sage/matrix/matrix2
    62 
    63    sage/matrix/strassen
    64 
    65    sage/matrix/berlekamp_massey
    66 
    67    sage/matrix/matrix_dense
    68    sage/matrix/matrix_sparse
    69 
    70    sage/matrix/matrix_generic_dense
    71    sage/matrix/matrix_generic_sparse
    72 
    73    sage/matrix/matrix_modn_dense
    74    sage/matrix/matrix_modn_sparse
    75 
    76    sage/matrix/matrix_integer_dense
    77 
    78    sage/matrix/matrix_rational_dense
    79 
    80    sage/matrix/matrix_real_double_dense
    81 
    82    sage/matrix/matrix_complex_double_dense
  • new file doc/en/reference/matrices/conf.py

    diff --git a/doc/en/reference/matrices/conf.py b/doc/en/reference/matrices/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/matrices/index.rst

    diff --git a/doc/en/reference/matrices/index.rst b/doc/en/reference/matrices/index.rst
    new file mode 100644
    - +  
     1Matrices and Spaces of Matrices
     2===============================
     3
     4Sage provides native support for working with matrices over any
     5commutative or noncommutative ring. The parent object for a matrix
     6is a matrix space ``MatrixSpace(R, n, m)`` of all
     7:math:`n\times
     8m` matrices over a ring :math:`R`.
     9
     10To create a matrix, either use the ``matrix(...)``
     11function or create a matrix space using the
     12``MatrixSpace`` command and coerce an object into it.
     13
     14Matrices also act on row vectors, which you create using the
     15``vector(...)`` command or by making a
     16``VectorSpace`` and coercing lists into it. The natural
     17action of matrices on row vectors is from the right. Sage currently
     18does not have a column vector class (on which matrices would act
     19from the left), but this is planned.
     20
     21In addition to native Sage matrices, Sage also includes the
     22following additional ways to compute with matrices:
     23
     24
     25-  Several math software systems included with Sage have their own
     26   native matrix support, which can be used from Sage. E.g., PARI,
     27   GAP, Maxima, and Singular all have a notion of matrices.
     28
     29-  The GSL C-library is included with Sage, and can be used via
     30   Cython.
     31
     32-  The ``scipy`` module provides support for
     33   *sparse* numerical linear algebra, among many other things.
     34
     35-  The ``numpy`` module, which you load by typing
     36   ``import numpy`` is included standard with Sage. It
     37   contains a very sophisticated and well developed array class, plus
     38   optimized support for *numerical linear algebra*.  Sage's matrices
     39   over RDF and CDF (native floating-point real and complex numbers)
     40   use numpy.
     41
     42
     43.. toctree::
     44   :maxdepth: 2
     45
     46
     47   sage/matrix/matrix_space
     48
     49   sage/matrix/constructor
     50
     51   sage/matrix/docs
     52
     53   sage/matrix/matrix
     54
     55   sage/matrix/matrix0
     56
     57   sage/matrix/matrix1
     58
     59   sage/matrix/matrix2
     60
     61   sage/matrix/strassen
     62
     63   sage/matrix/berlekamp_massey
     64
     65   sage/matrix/matrix_dense
     66   sage/matrix/matrix_sparse
     67
     68   sage/matrix/matrix_generic_dense
     69   sage/matrix/matrix_generic_sparse
     70
     71   sage/matrix/matrix_modn_dense
     72   sage/matrix/matrix_modn_sparse
     73
     74   sage/matrix/matrix_integer_dense
     75
     76   sage/matrix/matrix_rational_dense
     77
     78   sage/matrix/matrix_real_double_dense
     79
     80   sage/matrix/matrix_complex_double_dense
     81
     82
     83.. include:: ../footer.txt
  • deleted file doc/en/reference/misc.rst

    diff --git a/doc/en/reference/misc.rst b/doc/en/reference/misc.rst
    deleted file mode 100644
    + -  
    1 .. _ch:misc:
    2 
    3 Miscellaneous
    4 =============
    5 
    6 .. toctree::
    7    :maxdepth: 2
    8 
    9    sage/misc/abstract_method
    10    sage/misc/misc
    11    sage/misc/bitset
    12    sage/misc/constant_function
    13    sage/misc/package
    14    sage/misc/explain_pickle
    15    sage/misc/getusage
    16    sage/misc/mrange
    17    sage/misc/dist
    18    sage/misc/hg
    19    sage/misc/functional
    20    sage/misc/latex
    21    sage/misc/latex_macros
    22    sage/misc/lazy_attribute
    23    sage/misc/log
    24    sage/misc/persist
    25    sage/misc/func_persist
    26    sage/misc/sage_eval
    27    sage/misc/random_testing
    28    sage/misc/sagedoc
    29    sage/rings/arith
  • new file doc/en/reference/misc/conf.py

    diff --git a/doc/en/reference/misc/conf.py b/doc/en/reference/misc/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/misc/index.rst

    diff --git a/doc/en/reference/misc/index.rst b/doc/en/reference/misc/index.rst
    new file mode 100644
    - +  
     1Miscellaneous
     2=============
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/misc/abstract_method
     8   sage/misc/misc
     9   sage/misc/bitset
     10   sage/misc/constant_function
     11   sage/misc/package
     12   sage/misc/explain_pickle
     13   sage/misc/getusage
     14   sage/misc/mrange
     15   sage/misc/dist
     16   sage/misc/hg
     17   sage/misc/functional
     18   sage/misc/latex
     19   sage/misc/latex_macros
     20   sage/misc/lazy_attribute
     21   sage/misc/log
     22   sage/misc/persist
     23   sage/misc/func_persist
     24   sage/misc/sage_eval
     25   sage/misc/random_testing
     26   sage/misc/sagedoc
     27   sage/rings/arith
     28
     29
     30.. include:: ../footer.txt
  • deleted file doc/en/reference/modabvar.rst

    diff --git a/doc/en/reference/modabvar.rst b/doc/en/reference/modabvar.rst
    deleted file mode 100644
    + -  
    1 .. _ch:modabvar:
    2 
    3 Modular Abelian Varieties
    4 =========================
    5 
    6 .. toctree::
    7    :maxdepth: 2
    8 
    9    sage/modular/abvar/constructor
    10    sage/modular/abvar/abvar
    11    sage/modular/abvar/abvar_ambient_jacobian
    12    sage/modular/abvar/finite_subgroup
    13    sage/modular/abvar/torsion_subgroup
    14    sage/modular/abvar/cuspidal_subgroup
    15    sage/modular/abvar/homology
    16    sage/modular/abvar/homspace
    17    sage/modular/abvar/morphism
    18    sage/modular/abvar/abvar_newform
    19    sage/modular/abvar/lseries
  • new file doc/en/reference/modabvar/conf.py

    diff --git a/doc/en/reference/modabvar/conf.py b/doc/en/reference/modabvar/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/modabvar/index.rst

    diff --git a/doc/en/reference/modabvar/index.rst b/doc/en/reference/modabvar/index.rst
    new file mode 100644
    - +  
     1Modular Abelian Varieties
     2=========================
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/modular/abvar/constructor
     8   sage/modular/abvar/abvar
     9   sage/modular/abvar/abvar_ambient_jacobian
     10   sage/modular/abvar/finite_subgroup
     11   sage/modular/abvar/torsion_subgroup
     12   sage/modular/abvar/cuspidal_subgroup
     13   sage/modular/abvar/homology
     14   sage/modular/abvar/homspace
     15   sage/modular/abvar/morphism
     16   sage/modular/abvar/abvar_newform
     17   sage/modular/abvar/lseries
     18
     19
     20.. include:: ../footer.txt
  • deleted file doc/en/reference/modfrm.rst

    diff --git a/doc/en/reference/modfrm.rst b/doc/en/reference/modfrm.rst
    deleted file mode 100644
    + -  
    1 .. _ch:modular:
    2 
    3 Modular Forms
    4 =============
    5 
    6 .. toctree::
    7    :maxdepth: 2
    8 
    9    sage/modular/modform/constructor
    10    sage/modular/modform/space
    11    sage/modular/modform/ambient
    12    sage/modular/modform/ambient_eps
    13    sage/modular/modform/ambient_g0
    14    sage/modular/modform/ambient_g1
    15    sage/modular/modform/ambient_R
    16    sage/modular/modform/submodule
    17    sage/modular/modform/cuspidal_submodule
    18    sage/modular/modform/eisenstein_submodule
    19    sage/modular/modform/eis_series
    20    sage/modular/modform/element
    21    sage/modular/modform/hecke_operator_on_qexp
    22    sage/modular/modform/numerical
    23    sage/modular/modform/vm_basis
    24    sage/modular/modform/ambient
    25    sage/modular/modform/half_integral
    26    sage/modular/modform/find_generators
    27    
  • new file doc/en/reference/modfrm/conf.py

    diff --git a/doc/en/reference/modfrm/conf.py b/doc/en/reference/modfrm/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/modfrm/index.rst

    diff --git a/doc/en/reference/modfrm/index.rst b/doc/en/reference/modfrm/index.rst
    new file mode 100644
    - +  
     1Modular Forms
     2=============
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/modular/modform/constructor
     8   sage/modular/modform/space
     9   sage/modular/modform/ambient
     10   sage/modular/modform/ambient_eps
     11   sage/modular/modform/ambient_g0
     12   sage/modular/modform/ambient_g1
     13   sage/modular/modform/ambient_R
     14   sage/modular/modform/submodule
     15   sage/modular/modform/cuspidal_submodule
     16   sage/modular/modform/eisenstein_submodule
     17   sage/modular/modform/eis_series
     18   sage/modular/modform/element
     19   sage/modular/modform/hecke_operator_on_qexp
     20   sage/modular/modform/numerical
     21   sage/modular/modform/vm_basis
     22   sage/modular/modform/ambient
     23   sage/modular/modform/half_integral
     24   sage/modular/modform/find_generators
     25   
     26
     27
     28.. include:: ../footer.txt
  • deleted file doc/en/reference/modmisc.rst

    diff --git a/doc/en/reference/modmisc.rst b/doc/en/reference/modmisc.rst
    deleted file mode 100644
    + -  
    1 .. _ch:modmisc:
    2 
    3 Miscellaneous Modular-Form-Related Modules
    4 ==========================================
    5 
    6 .. toctree::
    7    :maxdepth: 2
    8 
    9    sage/modular/dirichlet
    10    sage/modular/cusps
    11    sage/modular/dims
    12    sage/modular/buzzard
    13 
    14    sage/modular/etaproducts
    15    sage/modular/overconvergent/weightspace
    16    sage/modular/overconvergent/genus0
    17    sage/modular/ssmod/ssmod
    18    sage/modular/quatalg/brandt
  • new file doc/en/reference/modmisc/conf.py

    diff --git a/doc/en/reference/modmisc/conf.py b/doc/en/reference/modmisc/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/modmisc/index.rst

    diff --git a/doc/en/reference/modmisc/index.rst b/doc/en/reference/modmisc/index.rst
    new file mode 100644
    - +  
     1Miscellaneous Modular-Form-Related Modules
     2==========================================
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/modular/dirichlet
     8   sage/modular/cusps
     9   sage/modular/dims
     10   sage/modular/buzzard
     11
     12   sage/modular/etaproducts
     13   sage/modular/overconvergent/weightspace
     14   sage/modular/overconvergent/genus0
     15   sage/modular/ssmod/ssmod
     16   sage/modular/quatalg/brandt
     17
     18
     19.. include:: ../footer.txt
  • deleted file doc/en/reference/modsym.rst

    diff --git a/doc/en/reference/modsym.rst b/doc/en/reference/modsym.rst
    deleted file mode 100644
    + -  
    1 .. _ch:modsym:
    2 
    3 Modular Symbols
    4 ===============
    5 
    6 .. toctree::
    7    :maxdepth: 2
    8 
    9    sage/modular/modsym/modsym
    10 
    11    sage/modular/modsym/space
    12    sage/modular/modsym/ambient
    13    sage/modular/modsym/subspace
    14 
    15    sage/modular/modsym/element
    16    sage/modular/modsym/modular_symbols
    17    sage/modular/modsym/manin_symbols
    18 
    19    sage/modular/modsym/boundary
    20 
    21    sage/modular/modsym/heilbronn
    22 
    23    sage/modular/modsym/p1list
    24    sage/modular/modsym/g1list
    25    sage/modular/modsym/ghlist
    26 
    27    sage/modular/modsym/relation_matrix
    28 
    29    sage/modular/modsym/p1list_nf
    30 
  • new file doc/en/reference/modsym/conf.py

    diff --git a/doc/en/reference/modsym/conf.py b/doc/en/reference/modsym/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/modsym/index.rst

    diff --git a/doc/en/reference/modsym/index.rst b/doc/en/reference/modsym/index.rst
    new file mode 100644
    - +  
     1Modular Symbols
     2===============
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/modular/modsym/modsym
     8
     9   sage/modular/modsym/space
     10   sage/modular/modsym/ambient
     11   sage/modular/modsym/subspace
     12
     13   sage/modular/modsym/element
     14   sage/modular/modsym/modular_symbols
     15   sage/modular/modsym/manin_symbols
     16
     17   sage/modular/modsym/boundary
     18
     19   sage/modular/modsym/heilbronn
     20
     21   sage/modular/modsym/p1list
     22   sage/modular/modsym/g1list
     23   sage/modular/modsym/ghlist
     24
     25   sage/modular/modsym/relation_matrix
     26
     27   sage/modular/modsym/p1list_nf
     28
     29
     30
     31.. include:: ../footer.txt
  • deleted file doc/en/reference/modules.rst

    diff --git a/doc/en/reference/modules.rst b/doc/en/reference/modules.rst
    deleted file mode 100644
    + -  
    1 .. _ch:modules:
    2 
    3 Modules
    4 =======
    5 
    6 .. toctree::
    7    :maxdepth: 2
    8 
    9    sage/modules/module
    10    sage/modules/free_module
    11    sage/modules/free_module_element
    12 
    13    sage/modules/complex_double_vector
    14    sage/modules/real_double_vector
    15    
    16    sage/modules/free_module_homspace
    17    sage/modules/free_module_morphism
    18    
    19    sage/modules/matrix_morphism
    20 
    21    sage/modules/fg_pid/fgp_module
    22    sage/modules/fg_pid/fgp_element
    23    sage/modules/fg_pid/fgp_morphism
  • new file doc/en/reference/modules/conf.py

    diff --git a/doc/en/reference/modules/conf.py b/doc/en/reference/modules/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/modules/index.rst

    diff --git a/doc/en/reference/modules/index.rst b/doc/en/reference/modules/index.rst
    new file mode 100644
    - +  
     1Modules
     2=======
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/modules/module
     8   sage/modules/free_module
     9   sage/modules/free_module_element
     10
     11   sage/modules/complex_double_vector
     12   sage/modules/real_double_vector
     13   
     14   sage/modules/free_module_homspace
     15   sage/modules/free_module_morphism
     16   
     17   sage/modules/matrix_morphism
     18
     19   sage/modules/fg_pid/fgp_module
     20   sage/modules/fg_pid/fgp_element
     21   sage/modules/fg_pid/fgp_morphism
     22
     23
     24.. include:: ../footer.txt
  • deleted file doc/en/reference/monoids.rst

    diff --git a/doc/en/reference/monoids.rst b/doc/en/reference/monoids.rst
    deleted file mode 100644
    + -  
    1 .. _ch:monoids:
    2 
    3 Monoids
    4 =======
    5 
    6 Sage supports free monoids and free abelian monoids in any
    7 finite number of indeterminates.
    8 
    9 .. toctree::
    10    :maxdepth: 2
    11 
    12    sage/monoids/free_monoid
    13    sage/monoids/free_monoid_element
    14    sage/monoids/free_abelian_monoid
    15    sage/monoids/free_abelian_monoid_element
    16    sage/monoids/string_monoid_element
    17    sage/monoids/string_monoid
  • new file doc/en/reference/monoids/conf.py

    diff --git a/doc/en/reference/monoids/conf.py b/doc/en/reference/monoids/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/monoids/index.rst

    diff --git a/doc/en/reference/monoids/index.rst b/doc/en/reference/monoids/index.rst
    new file mode 100644
    - +  
     1Monoids
     2=======
     3
     4Sage supports free monoids and free abelian monoids in any
     5finite number of indeterminates.
     6
     7.. toctree::
     8   :maxdepth: 2
     9
     10   sage/monoids/free_monoid
     11   sage/monoids/free_monoid_element
     12   sage/monoids/free_abelian_monoid
     13   sage/monoids/free_abelian_monoid_element
     14   sage/monoids/string_monoid_element
     15   sage/monoids/string_monoid
     16
     17
     18.. include:: ../footer.txt
  • deleted file doc/en/reference/networking.rst

    diff --git a/doc/en/reference/networking.rst b/doc/en/reference/networking.rst
    deleted file mode 100644
    + -  
    1 Networking and Grid Computing
    2 =============================
    3 
    4 Sage includes custom highly-integrated support for coarse grain
    5 distributed (or "grid") computing. See the chapter below on
    6 ``dsage``.
    7 
    8 Sage includes the Moin Moin Wiki by default, which
    9 "is an advanced, easy to use and extensible WikiEngine with a large
    10 community of users. Said in a few words, it is about collaboration on
    11 easily editable web pages."
    12 
    13 The Twisted, an event-driven networking framework written in
    14 Python, is a networking library that is included with Sage. It is
    15 robust, mature, fast, and offers a vast range of networking
    16 functionality.
    17 
    18 The Sage Notebook (see Chapter :ref:`ch:notebook`) is another
    19 networking application included with Sage.
    20 
    21 .. toctree::
    22    :maxdepth: 2
    23 
    24    sage/server/wiki/moin
    25    dsage
  • new file doc/en/reference/networking/conf.py

    diff --git a/doc/en/reference/networking/conf.py b/doc/en/reference/networking/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/networking/index.rst

    diff --git a/doc/en/reference/networking/index.rst b/doc/en/reference/networking/index.rst
    new file mode 100644
    - +  
     1Networking and Grid Computing
     2=============================
     3
     4Sage includes custom highly-integrated support for coarse grain
     5distributed (or "grid") computing. See the chapter below on
     6``dsage``.
     7
     8Sage includes the Moin Moin Wiki by default, which
     9"is an advanced, easy to use and extensible WikiEngine with a large
     10community of users. Said in a few words, it is about collaboration on
     11easily editable web pages."
     12
     13The Twisted, an event-driven networking framework written in
     14Python, is a networking library that is included with Sage. It is
     15robust, mature, fast, and offers a vast range of networking
     16functionality.
     17
     18The Sage Notebook (see Chapter :ref:`ch:notebook`) is another
     19networking application included with Sage.
     20
     21.. toctree::
     22   :maxdepth: 2
     23
     24   sage/server/wiki/moin
     25   dsage
     26
     27
     28.. include:: ../footer.txt
  • deleted file doc/en/reference/notebook.rst

    diff --git a/doc/en/reference/notebook.rst b/doc/en/reference/notebook.rst
    deleted file mode 100644
    + -  
    1 .. _ch:notebook:
    2 
    3 The Sage Notebook
    4 =================
    5 
    6 .. toctree::
    7    :maxdepth: 2
    8 
    9    sagenb/notebook/config
    10    sagenb/notebook/interact
    11    sagenb/notebook/cell
    12    sagenb/notebook/worksheet
    13    sagenb/notebook/notebook
    14    sagenb/notebook/js
    15    sagenb/notebook/css
    16    sagenb/notebook/template
    17 
    18 Servers
    19 -------
    20 
    21 .. toctree::
    22    :maxdepth: 2
    23 
    24    sagenb/notebook/twist
    25    sagenb/simple/twist
    26    sage/server/trac/trac
    27    sagenb/notebook/challenge
    28 
    29 Miscellaneous
    30 -------------
    31 
    32 .. toctree::
    33    :maxdepth: 2
    34 
    35    sagenb/misc/misc
    36    sagenb/misc/support
    37    sagenb/misc/introspect
    38    sagenb/misc/sageinspect
    39    sagenb/misc/sphinxify
    40    sagenb/notebook/docHTMLProcessor
    41 
    42 Storage
    43 -------
    44 
    45 .. toctree::
    46    :maxdepth: 2
    47 
    48    sagenb/storage/abstract_storage
    49    sagenb/storage/filesystem_storage
    50 
    51 .. Commented out, for now.
    52 
    53    Interfaces
    54    ----------
    55 
    56    SKIP sagenb/interfaces/worksheet_process
    57    SKIP sagenb/interfaces/reference
    58    SKIP sagenb/interfaces/expect
  • new file doc/en/reference/notebook/conf.py

    diff --git a/doc/en/reference/notebook/conf.py b/doc/en/reference/notebook/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/notebook/index.rst

    diff --git a/doc/en/reference/notebook/index.rst b/doc/en/reference/notebook/index.rst
    new file mode 100644
    - +  
     1The Sage Notebook
     2=================
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sagenb/notebook/config
     8   sagenb/notebook/interact
     9   sagenb/notebook/cell
     10   sagenb/notebook/worksheet
     11   sagenb/notebook/notebook
     12   sagenb/notebook/js
     13   sagenb/notebook/css
     14   sagenb/notebook/template
     15
     16Servers
     17-------
     18
     19.. toctree::
     20   :maxdepth: 2
     21
     22   sagenb/notebook/twist
     23   sagenb/simple/twist
     24   sage/server/trac/trac
     25   sagenb/notebook/challenge
     26
     27Miscellaneous
     28-------------
     29
     30.. toctree::
     31   :maxdepth: 2
     32
     33   sagenb/misc/misc
     34   sagenb/misc/support
     35   sagenb/misc/introspect
     36   sagenb/misc/sageinspect
     37   sagenb/misc/sphinxify
     38   sagenb/notebook/docHTMLProcessor
     39
     40Storage
     41-------
     42
     43.. toctree::
     44   :maxdepth: 2
     45
     46   sagenb/storage/abstract_storage
     47   sagenb/storage/filesystem_storage
     48
     49.. Commented out, for now.
     50
     51   Interfaces
     52   ----------
     53
     54   SKIP sagenb/interfaces/worksheet_process
     55   SKIP sagenb/interfaces/reference
     56   SKIP sagenb/interfaces/expect
     57
     58
     59.. include:: ../footer.txt
  • deleted file doc/en/reference/number_fields.rst

    diff --git a/doc/en/reference/number_fields.rst b/doc/en/reference/number_fields.rst
    deleted file mode 100644
    + -  
    1 Algebraic Number Fields
    2 =======================
    3 
    4 .. toctree::
    5    :maxdepth: 2
    6 
    7    sage/rings/number_field/number_field
    8    sage/rings/number_field/number_field_rel
    9    sage/rings/number_field/number_field_element
    10    sage/rings/number_field/number_field_element_quadratic
    11    sage/rings/number_field/order
    12    sage/rings/number_field/number_field_ideal
    13    sage/rings/number_field/number_field_ideal_rel
    14    sage/rings/number_field/class_group
    15    sage/rings/number_field/galois_group
    16    sage/rings/number_field/unit_group
    17    sage/rings/number_field/small_primes_of_degree_one
    18    sage/rings/qqbar
  • new file doc/en/reference/number_fields/conf.py

    diff --git a/doc/en/reference/number_fields/conf.py b/doc/en/reference/number_fields/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/number_fields/index.rst

    diff --git a/doc/en/reference/number_fields/index.rst b/doc/en/reference/number_fields/index.rst
    new file mode 100644
    - +  
     1Algebraic Number Fields
     2=======================
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/rings/number_field/number_field
     8   sage/rings/number_field/number_field_rel
     9   sage/rings/number_field/number_field_element
     10   sage/rings/number_field/number_field_element_quadratic
     11   sage/rings/number_field/order
     12   sage/rings/number_field/number_field_ideal
     13   sage/rings/number_field/number_field_ideal_rel
     14   sage/rings/number_field/class_group
     15   sage/rings/number_field/galois_group
     16   sage/rings/number_field/unit_group
     17   sage/rings/number_field/small_primes_of_degree_one
     18   sage/rings/qqbar
     19
     20
     21.. include:: ../footer.txt
  • deleted file doc/en/reference/numerical.rst

    diff --git a/doc/en/reference/numerical.rst b/doc/en/reference/numerical.rst
    deleted file mode 100644
    + -  
    1 Numerical Optimization
    2 ======================
    3 
    4 .. toctree::
    5    :maxdepth: 2
    6 
    7    sage/numerical/knapsack
    8    sage/numerical/mip
    9    sage/numerical/optimize
  • new file doc/en/reference/numerical/conf.py

    diff --git a/doc/en/reference/numerical/conf.py b/doc/en/reference/numerical/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/numerical/index.rst

    diff --git a/doc/en/reference/numerical/index.rst b/doc/en/reference/numerical/index.rst
    new file mode 100644
    - +  
     1Numerical Optimization
     2======================
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/numerical/knapsack
     8   sage/numerical/mip
     9   sage/numerical/optimize
     10
     11
     12.. include:: ../footer.txt
  • deleted file doc/en/reference/options.rst

    diff --git a/doc/en/reference/options.rst b/doc/en/reference/options.rst
    deleted file mode 100644
    + -  
    1 Sage: Command Line Arguments
    2 ============================
    3 
    4 There are several flags you can pass to Sage via the command line:
    5 
    6 
    7 -  ``-h, -?`` Prints a help message.
    8 
    9 -  ``-notebook`` Starts the Sage notebook running in default mode.
    10    This does not open a browser; it just starts a Sage Notebook server
    11    running on http://localhost:8000 (or a subsequent port if that port
    12    is not available). Pressing {Control-c} stops the server.
    13 
    14 -  ``-i [packages]`` Installs the given Sage packages. If a package
    15    is listed at
    16    http://modular.math.washington.edu/sage/packages/optional/ and not
    17    available in your current directory, then Sage will try to download
    18    the package and install it.
    19 
    20 -  ``-optional`` Lists all optional packages that can be
    21    downloaded.
    22 
    23 -  ``-t <files|dir>`` Tests examples in .py, .pyx, .sage or .tex
    24    files.
    25 
    26 -  ``-testall`` Tests all examples in Sage.
    27 
    28 -  ``-upgrade`` Downloads the latest non-optional Sage packages
    29    from http://modular.math.washington.edu/sage/packages/standard/,
    30    then builds and installs them. In many cases this requires that
    31    your computer has the necessary software development tools (listed
    32    in the installation documentation). Optional packages have to
    33    upgraded manually using ``sage -i``. (There are no
    34    binary packages yet.)
    35 
    36 -  ``file1.sage file2.sage file.py ...`` Starts Sage, compiles any
    37    .sage files to .py files, and runs files.
    38 
    39 -  ``-advanced`` Displays additional options that can be passed to
    40    Sage.
    41 
    42 
    43 
    44 
  • new file doc/en/reference/options/conf.py

    diff --git a/doc/en/reference/options/conf.py b/doc/en/reference/options/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/options/index.rst

    diff --git a/doc/en/reference/options/index.rst b/doc/en/reference/options/index.rst
    new file mode 100644
    - +  
     1Sage: Command Line Arguments
     2============================
     3
     4There are several flags you can pass to Sage via the command line:
     5
     6
     7-  ``-h, -?`` Prints a help message.
     8
     9-  ``-notebook`` Starts the Sage notebook running in default mode.
     10   This does not open a browser; it just starts a Sage Notebook server
     11   running on http://localhost:8000 (or a subsequent port if that port
     12   is not available). Pressing {Control-c} stops the server.
     13
     14-  ``-i [packages]`` Installs the given Sage packages. If a package
     15   is listed at
     16   http://modular.math.washington.edu/sage/packages/optional/ and not
     17   available in your current directory, then Sage will try to download
     18   the package and install it.
     19
     20-  ``-optional`` Lists all optional packages that can be
     21   downloaded.
     22
     23-  ``-t <files|dir>`` Tests examples in .py, .pyx, .sage or .tex
     24   files.
     25
     26-  ``-testall`` Tests all examples in Sage.
     27
     28-  ``-upgrade`` Downloads the latest non-optional Sage packages
     29   from http://modular.math.washington.edu/sage/packages/standard/,
     30   then builds and installs them. In many cases this requires that
     31   your computer has the necessary software development tools (listed
     32   in the installation documentation). Optional packages have to
     33   upgraded manually using ``sage -i``. (There are no
     34   binary packages yet.)
     35
     36-  ``file1.sage file2.sage file.py ...`` Starts Sage, compiles any
     37   .sage files to .py files, and runs files.
     38
     39-  ``-advanced`` Displays additional options that can be passed to
     40   Sage.
     41
     42
     43
     44
     45
     46
     47.. include:: ../footer.txt
  • deleted file doc/en/reference/padics.rst

    diff --git a/doc/en/reference/padics.rst b/doc/en/reference/padics.rst
    deleted file mode 100644
    + -  
    1 p-Adics
    2 =======================
    3 
    4 .. toctree::
    5    :maxdepth: 2
    6 
    7    sage/rings/padics/tutorial
    8 
    9 
    10    sage/rings/padics/factory
    11 
    12 
    13    sage/rings/padics/local_generic
    14    sage/rings/padics/padic_generic
    15 
    16    sage/rings/padics/generic_nodes
    17    sage/rings/padics/padic_base_generic
    18    sage/rings/padics/padic_extension_generic
    19    sage/rings/padics/eisenstein_extension_generic 
    20    sage/rings/padics/unramified_extension_generic
    21 
    22    sage/rings/padics/padic_base_leaves
    23    sage/rings/padics/padic_extension_leaves
    24 
    25 
    26    sage/rings/padics/local_generic_element
    27    sage/rings/padics/padic_generic_element
    28 
    29    sage/rings/padics/padic_base_generic_element
    30    sage/rings/padics/padic_capped_relative_element
    31    sage/rings/padics/padic_capped_absolute_element
    32    sage/rings/padics/padic_fixed_mod_element
    33 
    34    sage/rings/padics/padic_ext_element
    35    sage/rings/padics/padic_ZZ_pX_element
    36    sage/rings/padics/padic_ZZ_pX_CR_element
    37    sage/rings/padics/padic_ZZ_pX_CA_element
    38    sage/rings/padics/padic_ZZ_pX_FM_element
    39 
    40 
    41    sage/rings/padics/pow_computer
    42    sage/rings/padics/pow_computer_ext
    43    sage/rings/padics/padic_printing
    44    sage/rings/padics/precision_error
    45    sage/rings/padics/misc
    46  No newline at end of file
  • new file doc/en/reference/padics/conf.py

    diff --git a/doc/en/reference/padics/conf.py b/doc/en/reference/padics/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/padics/index.rst

    diff --git a/doc/en/reference/padics/index.rst b/doc/en/reference/padics/index.rst
    new file mode 100644
    - +  
     1p-Adics
     2=======================
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/rings/padics/tutorial
     8
     9
     10   sage/rings/padics/factory
     11
     12
     13   sage/rings/padics/local_generic
     14   sage/rings/padics/padic_generic
     15
     16   sage/rings/padics/generic_nodes
     17   sage/rings/padics/padic_base_generic
     18   sage/rings/padics/padic_extension_generic
     19   sage/rings/padics/eisenstein_extension_generic 
     20   sage/rings/padics/unramified_extension_generic
     21
     22   sage/rings/padics/padic_base_leaves
     23   sage/rings/padics/padic_extension_leaves
     24
     25
     26   sage/rings/padics/local_generic_element
     27   sage/rings/padics/padic_generic_element
     28
     29   sage/rings/padics/padic_base_generic_element
     30   sage/rings/padics/padic_capped_relative_element
     31   sage/rings/padics/padic_capped_absolute_element
     32   sage/rings/padics/padic_fixed_mod_element
     33
     34   sage/rings/padics/padic_ext_element
     35   sage/rings/padics/padic_ZZ_pX_element
     36   sage/rings/padics/padic_ZZ_pX_CR_element
     37   sage/rings/padics/padic_ZZ_pX_CA_element
     38   sage/rings/padics/padic_ZZ_pX_FM_element
     39
     40
     41   sage/rings/padics/pow_computer
     42   sage/rings/padics/pow_computer_ext
     43   sage/rings/padics/padic_printing
     44   sage/rings/padics/precision_error
     45   sage/rings/padics/misc
     46
     47.. include:: ../footer.txt
  • deleted file doc/en/reference/plane_curves.rst

    diff --git a/doc/en/reference/plane_curves.rst b/doc/en/reference/plane_curves.rst
    deleted file mode 100644
    + -  
    1 .. _ch:plane-curves:
    2 
    3 Elliptic and Plane Curves
    4 =========================
    5 
    6 
    7 .. toctree::
    8    :maxdepth: 2
    9 
    10    sage/schemes/plane_curves/constructor
    11    sage/schemes/plane_curves/affine_curve
    12    sage/schemes/plane_curves/projective_curve
    13 
    14    sage/schemes/elliptic_curves/constructor
    15    sage/schemes/elliptic_curves/ell_generic
    16    sage/schemes/elliptic_curves/ell_field
    17    sage/schemes/elliptic_curves/ell_rational_field
    18    sage/schemes/elliptic_curves/ec_database
    19    sage/schemes/elliptic_curves/ell_number_field
    20    sage/schemes/elliptic_curves/ell_finite_field
    21    sage/schemes/elliptic_curves/ell_point
    22    sage/schemes/elliptic_curves/ell_torsion
    23    sage/schemes/elliptic_curves/ell_local_data
    24    sage/schemes/elliptic_curves/kodaira_symbol
    25    sage/schemes/elliptic_curves/weierstrass_morphism
    26    sage/schemes/elliptic_curves/ell_curve_isogeny
    27    sage/schemes/elliptic_curves/ell_wp
    28    sage/schemes/elliptic_curves/period_lattice
    29    sage/schemes/elliptic_curves/formal_group
    30    sage/schemes/elliptic_curves/ell_tate_curve
    31    sage/schemes/elliptic_curves/monsky_washnitzer
    32    sage/schemes/elliptic_curves/padic_lseries
    33    sage/schemes/elliptic_curves/ell_modular_symbols
    34    sage/schemes/elliptic_curves/sha_tate
    35    sage/schemes/elliptic_curves/padics
    36    sage/schemes/elliptic_curves/cm
    37 
    38 
    39 .. _ch:jacobians:
    40 
    41 Hyperelliptic Curves
    42 ====================
    43 
    44 .. toctree::
    45    :maxdepth: 2
    46 
    47    sage/schemes/hyperelliptic_curves/constructor
    48    sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field
    49    sage/schemes/hyperelliptic_curves/hyperelliptic_generic
    50 
    51    sage/schemes/hyperelliptic_curves/jacobian_constructor
    52    sage/schemes/hyperelliptic_curves/jacobian_g2
    53    sage/schemes/hyperelliptic_curves/jacobian_generic
    54    sage/schemes/hyperelliptic_curves/jacobian_homset
    55    sage/schemes/hyperelliptic_curves/jacobian_morphism
    56 
    57    sage/interfaces/genus2reduction
  • new file doc/en/reference/plane_curves/conf.py

    diff --git a/doc/en/reference/plane_curves/conf.py b/doc/en/reference/plane_curves/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/plane_curves/index.rst

    diff --git a/doc/en/reference/plane_curves/index.rst b/doc/en/reference/plane_curves/index.rst
    new file mode 100644
    - +  
     1Elliptic and Plane Curves
     2=========================
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/schemes/plane_curves/constructor
     8   sage/schemes/plane_curves/affine_curve
     9   sage/schemes/plane_curves/projective_curve
     10
     11   sage/schemes/elliptic_curves/constructor
     12   sage/schemes/elliptic_curves/ell_generic
     13   sage/schemes/elliptic_curves/ell_field
     14   sage/schemes/elliptic_curves/ell_rational_field
     15   sage/schemes/elliptic_curves/ec_database
     16   sage/schemes/elliptic_curves/ell_number_field
     17   sage/schemes/elliptic_curves/ell_finite_field
     18   sage/schemes/elliptic_curves/ell_point
     19   sage/schemes/elliptic_curves/ell_torsion
     20   sage/schemes/elliptic_curves/ell_local_data
     21   sage/schemes/elliptic_curves/kodaira_symbol
     22   sage/schemes/elliptic_curves/weierstrass_morphism
     23   sage/schemes/elliptic_curves/ell_curve_isogeny
     24   sage/schemes/elliptic_curves/ell_wp
     25   sage/schemes/elliptic_curves/period_lattice
     26   sage/schemes/elliptic_curves/formal_group
     27   sage/schemes/elliptic_curves/ell_tate_curve
     28   sage/schemes/elliptic_curves/monsky_washnitzer
     29   sage/schemes/elliptic_curves/padic_lseries
     30   sage/schemes/elliptic_curves/ell_modular_symbols
     31   sage/schemes/elliptic_curves/sha_tate
     32   sage/schemes/elliptic_curves/padics
     33   sage/schemes/elliptic_curves/cm
     34
     35
     36Hyperelliptic Curves
     37====================
     38
     39.. toctree::
     40   :maxdepth: 2
     41
     42   sage/schemes/hyperelliptic_curves/constructor
     43   sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field
     44   sage/schemes/hyperelliptic_curves/hyperelliptic_generic
     45
     46   sage/schemes/hyperelliptic_curves/jacobian_constructor
     47   sage/schemes/hyperelliptic_curves/jacobian_g2
     48   sage/schemes/hyperelliptic_curves/jacobian_generic
     49   sage/schemes/hyperelliptic_curves/jacobian_homset
     50   sage/schemes/hyperelliptic_curves/jacobian_morphism
     51
     52   sage/interfaces/genus2reduction
     53
     54
     55.. include:: ../footer.txt
  • deleted file doc/en/reference/plot3d.rst

    diff --git a/doc/en/reference/plot3d.rst b/doc/en/reference/plot3d.rst
    deleted file mode 100644
    + -  
    1 3D Graphics
    2 ===========
    3 
    4 .. toctree::
    5    :maxdepth: 2
    6 
    7    sage/plot/plot3d/examples
    8    sage/plot/plot3d/parametric_plot3d
    9    sage/plot/plot3d/plot_field3d
    10    sage/plot/plot3d/implicit_plot3d
    11    sage/plot/plot3d/list_plot3d
    12    sage/plot/plot3d/plot3d
    13    sage/plot/plot3d/platonic
    14    sage/plot/plot3d/shapes2
    15    sage/plot/plot3d/base
    16    sage/plot/plot3d/tachyon
  • new file doc/en/reference/plot3d/conf.py

    diff --git a/doc/en/reference/plot3d/conf.py b/doc/en/reference/plot3d/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/plot3d/index.rst

    diff --git a/doc/en/reference/plot3d/index.rst b/doc/en/reference/plot3d/index.rst
    new file mode 100644
    - +  
     13D Graphics
     2===========
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/plot/plot3d/examples
     8   sage/plot/plot3d/parametric_plot3d
     9   sage/plot/plot3d/plot_field3d
     10   sage/plot/plot3d/implicit_plot3d
     11   sage/plot/plot3d/list_plot3d
     12   sage/plot/plot3d/plot3d
     13   sage/plot/plot3d/platonic
     14   sage/plot/plot3d/shapes2
     15   sage/plot/plot3d/base
     16   sage/plot/plot3d/tachyon
     17
     18
     19.. include:: ../footer.txt
  • deleted file doc/en/reference/plotting.rst

    diff --git a/doc/en/reference/plotting.rst b/doc/en/reference/plotting.rst
    deleted file mode 100644
    + -  
    1 2D Graphics
    2 ===========
    3 
    4 .. toctree::
    5    :maxdepth: 2
    6 
    7    sage/plot/plot
    8    sage/plot/animate
    9    sage/plot/arrow
    10    sage/plot/bar_chart
    11    sage/plot/bezier_path
    12    sage/plot/circle
    13    sage/plot/complex_plot
    14    sage/plot/contour_plot
    15    sage/plot/density_plot
    16    sage/plot/disk
    17    sage/plot/line
    18    sage/plot/step
    19    sage/plot/matrix_plot
    20    sage/plot/plot_field
    21    sage/plot/point
    22    sage/plot/polygon
    23    sage/plot/primitive
    24    sage/plot/scatter_plot
    25    sage/plot/text
  • new file doc/en/reference/plotting/conf.py

    diff --git a/doc/en/reference/plotting/conf.py b/doc/en/reference/plotting/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/plotting/index.rst

    diff --git a/doc/en/reference/plotting/index.rst b/doc/en/reference/plotting/index.rst
    new file mode 100644
    - +  
     12D Graphics
     2===========
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/plot/plot
     8   sage/plot/animate
     9   sage/plot/arrow
     10   sage/plot/bar_chart
     11   sage/plot/bezier_path
     12   sage/plot/circle
     13   sage/plot/complex_plot
     14   sage/plot/contour_plot
     15   sage/plot/density_plot
     16   sage/plot/disk
     17   sage/plot/line
     18   sage/plot/step
     19   sage/plot/matrix_plot
     20   sage/plot/plot_field
     21   sage/plot/point
     22   sage/plot/polygon
     23   sage/plot/primitive
     24   sage/plot/scatter_plot
     25   sage/plot/text
     26
     27
     28.. include:: ../footer.txt
  • deleted file doc/en/reference/polynomial_rings.rst

    diff --git a/doc/en/reference/polynomial_rings.rst b/doc/en/reference/polynomial_rings.rst
    deleted file mode 100644
    + -  
    1 
    2 .. _ch:polynomial-rings:
    3 
    4 Polynomial Rings
    5 ================
    6 
    7 .. toctree::
    8    :maxdepth: 2
    9 
    10    sage/rings/polynomial/polynomial_ring_constructor
    11 
    12    polynomial_rings_univar
    13 
    14    polynomial_rings_multivar
    15  
    16    sage/rings/polynomial/laurent_polynomial_ring
    17    sage/rings/polynomial/laurent_polynomial
    18 
    19    sage/rings/polynomial/pbori
    20 
    21    sage/rings/polynomial/symmetric_ideal
    22    sage/rings/polynomial/symmetric_reduction
    23 
    24    sage/rings/polynomial/infinite_polynomial_ring
    25    sage/rings/polynomial/infinite_polynomial_element
    26 
    27    sage/rings/polynomial/toy_buchberger
    28    sage/rings/polynomial/toy_variety
    29    sage/rings/polynomial/toy_d_basis
    30 
    31 
    32    sage/rings/polynomial/convolution
    33    sage/rings/polynomial/cyclotomic
  • new file doc/en/reference/polynomial_rings/conf.py

    diff --git a/doc/en/reference/polynomial_rings/conf.py b/doc/en/reference/polynomial_rings/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/polynomial_rings/index.rst

    diff --git a/doc/en/reference/polynomial_rings/index.rst b/doc/en/reference/polynomial_rings/index.rst
    new file mode 100644
    - +  
     1Polynomial Rings
     2================
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/rings/polynomial/polynomial_ring_constructor
     8
     9   polynomial_rings_univar
     10
     11   polynomial_rings_multivar
     12 
     13   sage/rings/polynomial/laurent_polynomial_ring
     14   sage/rings/polynomial/laurent_polynomial
     15
     16   sage/rings/polynomial/pbori
     17
     18   sage/rings/polynomial/symmetric_ideal
     19   sage/rings/polynomial/symmetric_reduction
     20
     21   sage/rings/polynomial/infinite_polynomial_ring
     22   sage/rings/polynomial/infinite_polynomial_element
     23
     24   sage/rings/polynomial/toy_buchberger
     25   sage/rings/polynomial/toy_variety
     26   sage/rings/polynomial/toy_d_basis
     27
     28
     29   sage/rings/polynomial/convolution
     30   sage/rings/polynomial/cyclotomic
     31
     32
     33.. include:: ../footer.txt
  • deleted file doc/en/reference/polynomial_rings_multivar.rst

    diff --git a/doc/en/reference/polynomial_rings_multivar.rst b/doc/en/reference/polynomial_rings_multivar.rst
    deleted file mode 100644
    + -  
    1 
    2 Multivariate Polynomials and Polynomial Rings
    3 =============================================
    4 
    5 Sage implements multivariate polynomial rings through several
    6 backends. The most generic implementation uses the classes
    7 :class:`sage.rings.polynomial.polydict.PolyDict` and
    8 :class:`sage.rings.polynomial.polydict.ETuple` to construct a dictionary with
    9 exponent tuples as keys and coefficients as values.
    10 
    11 Additionally, specialized and optimized implementations over many
    12 specific coefficient rings are implemented via a shared library interface to
    13 SINGULAR; and polynomials in the boolean polynomial ring
    14 
    15 .. math::
    16 
    17     \GF{2}[x_1,...,x_n]/ \langle x_1^2+x_1,...,x_n^2+x_n \rangle.
    18 
    19 are implemented using the PolyBoRi library (cf. :mod:`sage.rings.polynomial.pbori`).
    20 
    21 
    22 .. toctree::
    23    :maxdepth: 2
    24    
    25    sage/rings/polynomial/term_order
    26 
    27    sage/rings/polynomial/multi_polynomial_ring_generic
    28    sage/rings/polynomial/multi_polynomial
    29 
    30    sage/rings/polynomial/multi_polynomial_ring
    31    sage/rings/polynomial/multi_polynomial_element
    32    sage/rings/polynomial/multi_polynomial_ideal
    33 
    34    sage/rings/polynomial/multi_polynomial_libsingular
    35    sage/rings/polynomial/multi_polynomial_ideal_libsingular
    36 
    37    sage/rings/polynomial/polydict
  • new file doc/en/reference/polynomial_rings_multivar/conf.py

    diff --git a/doc/en/reference/polynomial_rings_multivar/conf.py b/doc/en/reference/polynomial_rings_multivar/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/polynomial_rings_multivar/index.rst

    diff --git a/doc/en/reference/polynomial_rings_multivar/index.rst b/doc/en/reference/polynomial_rings_multivar/index.rst
    new file mode 100644
    - +  
     1
     2Multivariate Polynomials and Polynomial Rings
     3=============================================
     4
     5Sage implements multivariate polynomial rings through several
     6backends. The most generic implementation uses the classes
     7:class:`sage.rings.polynomial.polydict.PolyDict` and
     8:class:`sage.rings.polynomial.polydict.ETuple` to construct a dictionary with
     9exponent tuples as keys and coefficients as values.
     10
     11Additionally, specialized and optimized implementations over many
     12specific coefficient rings are implemented via a shared library interface to
     13SINGULAR; and polynomials in the boolean polynomial ring
     14
     15.. math::
     16
     17    \GF{2}[x_1,...,x_n]/ \langle x_1^2+x_1,...,x_n^2+x_n \rangle.
     18
     19are implemented using the PolyBoRi library (cf. :mod:`sage.rings.polynomial.pbori`).
     20
     21
     22.. toctree::
     23   :maxdepth: 2
     24   
     25   sage/rings/polynomial/term_order
     26
     27   sage/rings/polynomial/multi_polynomial_ring_generic
     28   sage/rings/polynomial/multi_polynomial
     29
     30   sage/rings/polynomial/multi_polynomial_ring
     31   sage/rings/polynomial/multi_polynomial_element
     32   sage/rings/polynomial/multi_polynomial_ideal
     33
     34   sage/rings/polynomial/multi_polynomial_libsingular
     35   sage/rings/polynomial/multi_polynomial_ideal_libsingular
     36
     37   sage/rings/polynomial/polydict
     38
     39
     40.. include:: ../footer.txt
  • deleted file doc/en/reference/polynomial_rings_univar.rst

    diff --git a/doc/en/reference/polynomial_rings_univar.rst b/doc/en/reference/polynomial_rings_univar.rst
    deleted file mode 100644
    + -  
    1 
    2 Univariate Polynomials and Polynomial Rings
    3 ===========================================
    4 
    5 Sage's architecture for polynomials 'under the hood' is complex, interfacing to
    6 a variety of C/C++ libraries for polynomials over specific rings. In practice,
    7 the user rarely has to worry about which backend is being used.
    8 
    9 The hierarchy of class inheritance is somewhat confusing, since most of the
    10 polynomial element classes are implemented as Cython extension types rather
    11 than pure Python classes and thus can only inherit from a single base class,
    12 whereas others have multiple bases.
    13 
    14 .. toctree::
    15    :maxdepth: 2
    16    
    17    sage/rings/polynomial/polynomial_ring
    18 
    19    sage/rings/polynomial/polynomial_element
    20    sage/rings/polynomial/polynomial_element_generic
    21    sage/rings/polynomial/polynomial_gf2x
    22    sage/rings/polynomial/polynomial_integer_dense_flint
    23    sage/rings/polynomial/polynomial_integer_dense_ntl
    24    sage/rings/polynomial/polynomial_zmod_flint
    25    sage/rings/polynomial/polynomial_modn_dense_ntl
    26    sage/rings/polynomial/polynomial_real_mpfr_dense
    27    sage/rings/polynomial/polynomial_singular_interface
    28    
    29    sage/rings/polynomial/real_roots
    30    sage/rings/polynomial/complex_roots
    31 
    32    sage/rings/polynomial/polynomial_quotient_ring
    33    sage/rings/polynomial/polynomial_quotient_ring_element
    34 
    35 
    36 
  • new file doc/en/reference/polynomial_rings_univar/conf.py

    diff --git a/doc/en/reference/polynomial_rings_univar/conf.py b/doc/en/reference/polynomial_rings_univar/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/polynomial_rings_univar/index.rst

    diff --git a/doc/en/reference/polynomial_rings_univar/index.rst b/doc/en/reference/polynomial_rings_univar/index.rst
    new file mode 100644
    - +  
     1
     2Univariate Polynomials and Polynomial Rings
     3===========================================
     4
     5Sage's architecture for polynomials 'under the hood' is complex, interfacing to
     6a variety of C/C++ libraries for polynomials over specific rings. In practice,
     7the user rarely has to worry about which backend is being used.
     8
     9The hierarchy of class inheritance is somewhat confusing, since most of the
     10polynomial element classes are implemented as Cython extension types rather
     11than pure Python classes and thus can only inherit from a single base class,
     12whereas others have multiple bases.
     13
     14.. toctree::
     15   :maxdepth: 2
     16   
     17   sage/rings/polynomial/polynomial_ring
     18
     19   sage/rings/polynomial/polynomial_element
     20   sage/rings/polynomial/polynomial_element_generic
     21   sage/rings/polynomial/polynomial_gf2x
     22   sage/rings/polynomial/polynomial_integer_dense_flint
     23   sage/rings/polynomial/polynomial_integer_dense_ntl
     24   sage/rings/polynomial/polynomial_zmod_flint
     25   sage/rings/polynomial/polynomial_modn_dense_ntl
     26   sage/rings/polynomial/polynomial_real_mpfr_dense
     27   sage/rings/polynomial/polynomial_singular_interface
     28   
     29   sage/rings/polynomial/real_roots
     30   sage/rings/polynomial/complex_roots
     31
     32   sage/rings/polynomial/polynomial_quotient_ring
     33   sage/rings/polynomial/polynomial_quotient_ring_element
     34
     35
     36
     37
     38
     39.. include:: ../footer.txt
  • deleted file doc/en/reference/power_series.rst

    diff --git a/doc/en/reference/power_series.rst b/doc/en/reference/power_series.rst
    deleted file mode 100644
    + -  
    1 .. _ch:power-series:
    2 
    3 Power Series Rings
    4 ==================
    5 
    6 .. toctree::
    7    :maxdepth: 2
    8    
    9    sage/rings/power_series_ring
    10    sage/rings/power_series_ring_element
    11 
    12    sage/rings/laurent_series_ring
    13    sage/rings/laurent_series_ring_element
    14  No newline at end of file
  • new file doc/en/reference/power_series/conf.py

    diff --git a/doc/en/reference/power_series/conf.py b/doc/en/reference/power_series/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/power_series/index.rst

    diff --git a/doc/en/reference/power_series/index.rst b/doc/en/reference/power_series/index.rst
    new file mode 100644
    - +  
     1Power Series Rings
     2==================
     3
     4.. toctree::
     5   :maxdepth: 2
     6   
     7   sage/rings/power_series_ring
     8   sage/rings/power_series_ring_element
     9
     10   sage/rings/laurent_series_ring
     11   sage/rings/laurent_series_ring_element
     12
     13
     14.. include:: ../footer.txt
  • deleted file doc/en/reference/probability.rst

    diff --git a/doc/en/reference/probability.rst b/doc/en/reference/probability.rst
    deleted file mode 100644
    + -  
    1 Probability
    2 ===========
    3 
    4 .. toctree::
    5    :maxdepth: 2
    6 
    7    sage/gsl/probability_distribution
    8    sage/probability/random_variable
  • new file doc/en/reference/probability/conf.py

    diff --git a/doc/en/reference/probability/conf.py b/doc/en/reference/probability/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/probability/index.rst

    diff --git a/doc/en/reference/probability/index.rst b/doc/en/reference/probability/index.rst
    new file mode 100644
    - +  
     1Probability
     2===========
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/gsl/probability_distribution
     8   sage/probability/random_variable
     9
     10
     11.. include:: ../footer.txt
  • deleted file doc/en/reference/quat_algebras.rst

    diff --git a/doc/en/reference/quat_algebras.rst b/doc/en/reference/quat_algebras.rst
    deleted file mode 100644
    + -  
    1 .. _ch:quat-algebras:
    2 
    3 Quaternion Algebras
    4 ===================
    5 
    6 .. toctree::
    7    :maxdepth: 2
    8 
    9    sage/algebras/quatalg/quaternion_algebra
    10    sage/algebras/quatalg/quaternion_algebra_element
    11 
  • new file doc/en/reference/quat_algebras/conf.py

    diff --git a/doc/en/reference/quat_algebras/conf.py b/doc/en/reference/quat_algebras/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/quat_algebras/index.rst

    diff --git a/doc/en/reference/quat_algebras/index.rst b/doc/en/reference/quat_algebras/index.rst
    new file mode 100644
    - +  
     1Quaternion Algebras
     2===================
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/algebras/quatalg/quaternion_algebra
     8   sage/algebras/quatalg/quaternion_algebra_element
     9
     10
     11
     12.. include:: ../footer.txt
  • deleted file doc/en/reference/rings.rst

    diff --git a/doc/en/reference/rings.rst b/doc/en/reference/rings.rst
    deleted file mode 100644
    + -  
    1 .. _ch:rings:
    2 
    3 General Rings, Ideals, and Morphisms
    4 ====================================
    5 
    6 .. toctree::
    7    :maxdepth: 2
    8 
    9    sage/rings/ring
    10    sage/rings/ideal
    11    sage/rings/ideal_monoid
    12    sage/rings/morphism
    13    sage/rings/homset
    14    sage/rings/infinity
    15    sage/rings/fraction_field
    16    sage/rings/fraction_field_element
    17    sage/rings/quotient_ring
    18    sage/rings/quotient_ring_element
  • new file doc/en/reference/rings/conf.py

    diff --git a/doc/en/reference/rings/conf.py b/doc/en/reference/rings/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/rings/index.rst

    diff --git a/doc/en/reference/rings/index.rst b/doc/en/reference/rings/index.rst
    new file mode 100644
    - +  
     1General Rings, Ideals, and Morphisms
     2====================================
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/rings/ring
     8   sage/rings/ideal
     9   sage/rings/ideal_monoid
     10   sage/rings/morphism
     11   sage/rings/homset
     12   sage/rings/infinity
     13   sage/rings/fraction_field
     14   sage/rings/fraction_field_element
     15   sage/rings/quotient_ring
     16   sage/rings/quotient_ring_element
     17
     18
     19.. include:: ../footer.txt
  • deleted file doc/en/reference/rings_numerical.rst

    diff --git a/doc/en/reference/rings_numerical.rst b/doc/en/reference/rings_numerical.rst
    deleted file mode 100644
    + -  
    1 Fixed and Arbitrary Precision Numerical Fields
    2 ==============================================
    3 
    4 Sage supports two optimized fixed precision fields for numerical
    5 computation, the real double (RealDoubleField) and complex double
    6 fields (ComplexDoubleField).
    7 Sage also supports arbitrary precision real (RealField) and
    8 complex fields (ComplexField), and real and complex
    9 interval arithmetic (RealIntervalField and ComplexIntervalField).
    10 
    11 
    12 Real and complex double elements are optimized implementations that
    13 use the GNU Scientific Library for arithmetic and some special
    14 functions.  Arbitrary precision real and complex numbers are
    15 implemented using the MPFR library, which builds on GMP.  (Note that
    16 Sage doesn't currently use the MPC library.)  The interval arithmetic
    17 field is implemented using the MPFI library.
    18 
    19 In many cases the PARI C-library is used to compute special functions
    20 when implementations aren't otherwise available.
    21 
    22 .. toctree::
    23    :maxdepth: 2
    24 
    25    sage/rings/real_double
    26    sage/rings/complex_double
    27    sage/rings/real_mpfr
    28    sage/rings/complex_field
    29    sage/rings/complex_number
    30    sage/rings/real_mpfi
    31  No newline at end of file
  • new file doc/en/reference/rings_numerical/conf.py

    diff --git a/doc/en/reference/rings_numerical/conf.py b/doc/en/reference/rings_numerical/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/rings_numerical/index.rst

    diff --git a/doc/en/reference/rings_numerical/index.rst b/doc/en/reference/rings_numerical/index.rst
    new file mode 100644
    - +  
     1Fixed and Arbitrary Precision Numerical Fields
     2==============================================
     3
     4Sage supports two optimized fixed precision fields for numerical
     5computation, the real double (RealDoubleField) and complex double
     6fields (ComplexDoubleField).
     7Sage also supports arbitrary precision real (RealField) and
     8complex fields (ComplexField), and real and complex
     9interval arithmetic (RealIntervalField and ComplexIntervalField).
     10
     11
     12Real and complex double elements are optimized implementations that
     13use the GNU Scientific Library for arithmetic and some special
     14functions.  Arbitrary precision real and complex numbers are
     15implemented using the MPFR library, which builds on GMP.  (Note that
     16Sage doesn't currently use the MPC library.)  The interval arithmetic
     17field is implemented using the MPFI library.
     18
     19In many cases the PARI C-library is used to compute special functions
     20when implementations aren't otherwise available.
     21
     22.. toctree::
     23   :maxdepth: 2
     24
     25   sage/rings/real_double
     26   sage/rings/complex_double
     27   sage/rings/real_mpfr
     28   sage/rings/complex_field
     29   sage/rings/complex_number
     30   sage/rings/real_mpfi
     31
     32.. include:: ../footer.txt
  • deleted file doc/en/reference/rings_standard.rst

    diff --git a/doc/en/reference/rings_standard.rst b/doc/en/reference/rings_standard.rst
    deleted file mode 100644
    + -  
    1 Standard Commutative Rings
    2 ==========================
    3 
    4 .. toctree::
    5    :maxdepth: 2
    6 
    7    sage/rings/integer_ring
    8    sage/rings/integer
    9 
    10    sage/rings/integer_mod_ring
    11    sage/rings/integer_mod
    12    
    13    sage/rings/rational_field
    14    sage/rings/rational
    15    
    16    sage/rings/finite_field
    17    sage/rings/finite_field_element
  • new file doc/en/reference/rings_standard/conf.py

    diff --git a/doc/en/reference/rings_standard/conf.py b/doc/en/reference/rings_standard/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/rings_standard/index.rst

    diff --git a/doc/en/reference/rings_standard/index.rst b/doc/en/reference/rings_standard/index.rst
    new file mode 100644
    - +  
     1Standard Commutative Rings
     2==========================
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/rings/integer_ring
     8   sage/rings/integer
     9
     10   sage/rings/integer_mod_ring
     11   sage/rings/integer_mod
     12   
     13   sage/rings/rational_field
     14   sage/rings/rational
     15   
     16   sage/rings/finite_field
     17   sage/rings/finite_field_element
     18
     19
     20.. include:: ../footer.txt
  • deleted file doc/en/reference/schemes.rst

    diff --git a/doc/en/reference/schemes.rst b/doc/en/reference/schemes.rst
    deleted file mode 100644
    + -  
    1 .. _ch:schemes:
    2 
    3 Schemes
    4 =======
    5 
    6 .. toctree::
    7    :maxdepth: 2
    8 
    9    sage/schemes/readme
    10 
    11    sage/schemes/generic/scheme
    12    sage/schemes/generic/spec
    13    sage/schemes/generic/glue
    14    sage/schemes/generic/point
    15 
    16    sage/schemes/generic/ambient_space
    17    sage/schemes/generic/affine_space
    18    sage/schemes/generic/projective_space
    19    sage/schemes/generic/algebraic_scheme
    20    sage/schemes/generic/hypersurface
    21 
    22    sage/schemes/generic/homset
    23    sage/schemes/generic/morphism
    24    sage/schemes/generic/divisor
    25 
  • new file doc/en/reference/schemes/conf.py

    diff --git a/doc/en/reference/schemes/conf.py b/doc/en/reference/schemes/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/schemes/index.rst

    diff --git a/doc/en/reference/schemes/index.rst b/doc/en/reference/schemes/index.rst
    new file mode 100644
    - +  
     1Schemes
     2=======
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/schemes/readme
     8
     9   sage/schemes/generic/scheme
     10   sage/schemes/generic/spec
     11   sage/schemes/generic/glue
     12   sage/schemes/generic/point
     13
     14   sage/schemes/generic/ambient_space
     15   sage/schemes/generic/affine_space
     16   sage/schemes/generic/projective_space
     17   sage/schemes/generic/algebraic_scheme
     18   sage/schemes/generic/hypersurface
     19
     20   sage/schemes/generic/homset
     21   sage/schemes/generic/morphism
     22   sage/schemes/generic/divisor
     23
     24
     25
     26.. include:: ../footer.txt
  • deleted file doc/en/reference/structure.rst

    diff --git a/doc/en/reference/structure.rst b/doc/en/reference/structure.rst
    deleted file mode 100644
    + -  
    1 Basic Structures
    2 ================
    3 
    4 .. toctree::
    5    :maxdepth: 2
    6 
    7    sage/structure/sage_object
    8    sage/structure/category_object
    9    sage/structure/parent_gens
    10    sage/structure/formal_sum
    11    sage/structure/factorization
    12    sage/structure/element
    13    sage/structure/unique_representation
    14    sage/structure/dynamic_class
    15    sage/structure/mutability
    16    sage/structure/sequence
    17    sage/structure/element_wrapper
    18 
    19    sage/sets/family
    20    sage/sets/set
    21    sage/sets/disjoint_union_enumerated_sets
    22    sage/sets/finite_enumerated_set
    23    sage/sets/non_negative_integers
    24    sage/sets/primes
    25 
    26    sage/structure/parent
    27    
  • new file doc/en/reference/structure/conf.py

    diff --git a/doc/en/reference/structure/conf.py b/doc/en/reference/structure/conf.py
    new file mode 100644
    - +  
     1# -*- coding: utf-8 -*-
     2# This file is execfile()d with the current directory set to its
     3# containing dir.
     4#
     5# The contents of this file are pickled, so don't put values in the
     6# namespace that aren't pickleable (module imports are okay, they're
     7# removed automatically).
     8#
     9# All configuration values have a default; values that are commented
     10# out serve to show the default.
     11
     12# See the parent directory's conf_sub module for details.
     13import sys
     14sys.path.append('..')
     15from conf_sub import *
  • new file doc/en/reference/structure/index.rst

    diff --git a/doc/en/reference/structure/index.rst b/doc/en/reference/structure/index.rst
    new file mode 100644
    - +  
     1Basic Structures
     2================
     3
     4.. toctree::
     5   :maxdepth: 2
     6
     7   sage/structure/sage_object
     8   sage/structure/category_object
     9   sage/structure/parent_gens
     10   sage/structure/formal_sum
     11   sage/structure/factorization
     12   sage/structure/element
     13   sage/structure/unique_representation
     14   sage/structure/dynamic_class
     15   sage/structure/mutability
     16   sage/structure/sequence
     17   sage/structure/element_wrapper
     18
     19   sage/sets/family
     20   sage/sets/set
     21   sage/sets/disjoint_union_enumerated_sets
     22   sage/sets/finite_enumerated_set
     23   sage/sets/non_negative_integers
     24   sage/sets/primes
     25
     26   sage/structure/parent
     27   
     28
     29
     30.. include:: ../footer.txt