-
# HG changeset patch
# User J. H. Palmieri <palmieri@math.washington.edu>
# Date 1360122282 28800
# Node ID fe3626f8192d3f70bcb6b7a4e8e54bbb35dbc033
# Parent 349a0995be04da07f06a5621cdcffca42352638c
Break reference manual into manageable pieces.
* Rearrange the directory doc/en/reference: for each file like
algebras.rst, create a subdirectory algebras and move algebras.rst
to algebras/index.rst. Also create a file algebras/conf.py for the
build configuration. All of these new conf.py files are
identical. Deal with the contents of the directory reference/media
similarly, moving the pictures to the appropriate subdirectory.
* Modify reference/index.rst to point to these new files. Reorganize
reference/index.rst so it is arranged, at least somewhat, by topic.
Add intersphinx to conf.py — see below. Also add the new
subdirectories to the list exclude_trees. New file conf_sub.py,
configuration for the pieces of the documentation (as opposed to the
main conf.py, which is for building reference/index.rst). This file is
imported by each of the files SUBDIRECTORY/conf.py.
* Changes to doc/common/builder.py: add code to build the reference
manual in sections, and also to build the sections in parallel. The
reference manual ought to be built twice to resolve references now, so
typing "sage --docbuild all html" will build it twice (along with all
of the other documents, of course). "sage --docbuild reference html"
will just build it once. You can also run "sage --docbuild
reference/combinat html", for example, to just build one part of the
manual. The different parts of the manual are separate documents as
far as Sphinx is concerned, so allow them to reference each other
using the "intersphinx" extension. (This is why we need to build it
twice: the first pass assembles the intersphinx databases, the second
pass uses the databases to create the references correctly.) For
pdf format, since it now produces 30 different pdf files, write an
html file which links to each of them.
* doc/common/conf.py: add the intersphinx extension to the build process.
* doc/common/themes/sage/layout.html: fix a bug where clicking the
Sage logo in the upper left corner of the docs wouldn't take you
to the right place, at least in the local documentation.
* doc/common/themes/sageref/: add a new theme for the pieces of the
reference manual. This is almost identical to the "sage" theme,
except for a little tinkering to the links along the top and
bottom lines.
* In the main Sage library, change a few pathnames to media files in
the reference manual, since those files have been moved.
* Make the necessary changes to .hgignore and MANIFEST.in to deal with
the relocated files.
diff --git a/.hgignore b/.hgignore
a
|
b
|
|
60 | 60 | doc/output/ |
61 | 61 | doc/en/reference/sage/ |
62 | 62 | doc/en/reference/sagenb/ |
| 63 | doc/en/reference/.*/sage/ |
| 64 | doc/en/reference/.*/sagenb/ |
-
diff --git a/MANIFEST.in b/MANIFEST.in
a
|
b
|
|
34 | 34 | include doc/fr/a_tour_of_sage/sin_plot.png |
35 | 35 | include doc/tr/a_tour_of_sage/eigen_plot.png |
36 | 36 | include doc/tr/a_tour_of_sage/sin_plot.png |
37 | | graft doc/en/reference/media |
| 37 | graft doc/en/reference/*/media |
38 | 38 | graft doc/en/thematic_tutorials/media |
39 | 39 | graft doc/en/prep/media |
40 | 40 | prune doc/en/reference/sage |
-
diff --git a/doc/common/build_options.py b/doc/common/build_options.py
a
|
b
|
|
18 | 18 | ALLSPHINXOPTS = SPHINXOPTS + " " + PAPEROPTS + " " |
19 | 19 | WEBSITESPHINXOPTS = "" |
20 | 20 | |
| 21 | # Number of threads to use for parallel-building the documentation. |
| 22 | NUM_THREADS = int(os.environ.get('SAGE_NUM_THREADS', 1)) |
| 23 | |
21 | 24 | # Minimize GAP/libGAP RAM usage in the builder, docbuild already uses too much |
22 | 25 | from sage.interfaces.gap import set_gap_memory_pool_size |
23 | 26 | set_gap_memory_pool_size(0) # will be rounded up to 1M |
-
diff --git a/doc/common/builder.py b/doc/common/builder.py
a
|
b
|
|
11 | 11 | from sage.misc.cachefunc import cached_method |
12 | 12 | from sage.misc.misc import sage_makedirs as mkdir |
13 | 13 | |
14 | | # Read options |
| 14 | # Load the options, including |
| 15 | # SAGE_DOC, LANGUAGES, SPHINXOPTS, PAPER, OMIT, |
| 16 | # PAPEROPTS, ALLSPHINXOPTS, NUM_THREADS, WEBSITESPHINXOPTS |
| 17 | # from build_options.py. |
15 | 18 | execfile(os.path.join(os.getenv('SAGE_ROOT'), 'devel', 'sage', 'doc', 'common' , 'build_options.py')) |
16 | 19 | |
17 | 20 | ########################################## |
… |
… |
|
61 | 64 | raise shutil.Error(errors) |
62 | 65 | |
63 | 66 | |
| 67 | ########################################## |
| 68 | # Parallel Building Ref Manual # |
| 69 | ########################################## |
| 70 | def build_ref_doc(args): |
| 71 | doc = args[0] |
| 72 | lang = args[1] |
| 73 | format = args[2] |
| 74 | kwds = args[3] |
| 75 | args = args[4:] |
| 76 | getattr(ReferenceSubBuilder(doc, lang), format)(*args, **kwds) |
64 | 77 | |
65 | 78 | ########################################## |
66 | 79 | # Builders # |
67 | 80 | ########################################## |
| 81 | |
68 | 82 | def builder_helper(type): |
69 | 83 | """ |
70 | 84 | Returns a function which builds the documentation for |
… |
… |
|
103 | 117 | |
104 | 118 | - ``lang`` - (default "en") the language of the document. |
105 | 119 | """ |
106 | | if '/' in name: |
107 | | lang, name = name.split(os.path.sep) |
108 | | self.name = name |
| 120 | doc = name.split(os.path.sep) |
| 121 | |
| 122 | if doc[0] in LANGUAGES: |
| 123 | lang = doc[0] |
| 124 | doc.pop(0) |
| 125 | |
| 126 | self.name = os.path.join(*doc) |
109 | 127 | self.lang = lang |
110 | | self.dir = os.path.join(SAGE_DOC, lang, name) |
| 128 | self.dir = os.path.join(SAGE_DOC, self.lang, self.name) |
111 | 129 | |
112 | 130 | #Make sure the .static and .templates directories are there |
113 | 131 | mkdir(os.path.join(self.dir, "static")) |
… |
… |
|
126 | 144 | sage: b._output_dir('html') |
127 | 145 | '.../devel/sage/doc/output/html/en/tutorial' |
128 | 146 | """ |
| 147 | if type == "inventory": # put inventories in the html tree |
| 148 | type = "html" |
129 | 149 | d = os.path.join(SAGE_DOC, "output", type, self.lang, self.name) |
130 | 150 | mkdir(d) |
131 | 151 | return d |
… |
… |
|
156 | 176 | sage: import os, sys; sys.path.append(os.environ['SAGE_DOC']+'/common/'); import builder |
157 | 177 | sage: b = builder.DocBuilder('tutorial') |
158 | 178 | sage: b._output_formats() |
159 | | ['changes', 'html', 'htmlhelp', 'json', 'latex', 'linkcheck', 'pickle', 'web'] |
| 179 | ['changes', 'html', 'htmlhelp', 'inventory', 'json', 'latex', 'linkcheck', 'pickle', 'web'] |
160 | 180 | |
161 | 181 | """ |
162 | 182 | #Go through all the attributes of self and check to |
… |
… |
|
208 | 228 | latex = builder_helper('latex') |
209 | 229 | changes = builder_helper('changes') |
210 | 230 | linkcheck = builder_helper('linkcheck') |
| 231 | # import the customized builder for object.inv files |
| 232 | inventory = builder_helper('inventory') |
| 233 | |
| 234 | ########################################## |
| 235 | # Parallel Building Ref Manual # |
| 236 | ########################################## |
| 237 | def build_other_doc(args): |
| 238 | document = args[0] |
| 239 | name = args[1] |
| 240 | kwds = args[2] |
| 241 | args = args[3:] |
| 242 | logger.warning("\nBuilding %s.\n" % document) |
| 243 | getattr(get_builder(document), name)(*args, **kwds) |
211 | 244 | |
212 | 245 | class AllBuilder(object): |
213 | 246 | """ |
… |
… |
|
228 | 261 | This is the function which goes through all of the documents |
229 | 262 | and does the actual building. |
230 | 263 | """ |
231 | | for document in self.get_all_documents(): |
| 264 | import time |
| 265 | start = time.time() |
| 266 | docs = self.get_all_documents() |
| 267 | refs = [x for x in docs if x.endswith('reference')] |
| 268 | others = [x for x in docs if not x.endswith('reference')] |
| 269 | # Build the reference manual twice to resolve references. That is, |
| 270 | # build once with the inventory builder to construct the intersphinx |
| 271 | # inventory files, and then build the second time for real. So the |
| 272 | # first build should be as fast as possible; |
| 273 | logger.warning("\nBuilding reference manual, first pass.\n") |
| 274 | global ALLSPHINXOPTS |
| 275 | ALLSPHINXOPTS += ' -Q -D multidoc_first_pass=1' |
| 276 | for document in refs: |
| 277 | getattr(get_builder(document), 'inventory')(*args, **kwds) |
| 278 | logger.warning("Building reference manual, second pass.\n") |
| 279 | ALLSPHINXOPTS = ALLSPHINXOPTS.replace( |
| 280 | 'multidoc_first_pass=1', 'multidoc_first_pass=0') |
| 281 | ALLSPHINXOPTS = ALLSPHINXOPTS.replace('-Q', '-q') + ' ' |
| 282 | for document in refs: |
232 | 283 | getattr(get_builder(document), name)(*args, **kwds) |
233 | 284 | |
| 285 | # build the other documents in parallel |
| 286 | from multiprocessing import Pool |
| 287 | pool = Pool(NUM_THREADS) |
| 288 | L = [(doc, name, kwds) + args for doc in others] |
| 289 | # map_async, with get to provide a timeout, handles |
| 290 | # KeyboardInterrupt correctly. apply_async does not, so don't |
| 291 | # use it. |
| 292 | pool.map_async(build_other_doc, L).get(99999) |
| 293 | pool.close() |
| 294 | pool.join() |
| 295 | logger.warning("Elapsed time: %.1f seconds."%(time.time()-start)) |
| 296 | logger.warning("Done building the documentation!") |
| 297 | |
234 | 298 | def get_all_documents(self): |
235 | 299 | """ |
236 | 300 | Returns a list of all of the documents. A document is a directory within one of |
… |
… |
|
261 | 325 | |
262 | 326 | return documents |
263 | 327 | |
| 328 | |
264 | 329 | class WebsiteBuilder(DocBuilder): |
265 | 330 | def html(self): |
266 | 331 | """ |
… |
… |
|
292 | 357 | |
293 | 358 | DocBuilder.clean(self) |
294 | 359 | |
295 | | class ReferenceBuilder(DocBuilder): |
| 360 | |
| 361 | class ReferenceBuilder(AllBuilder): |
296 | 362 | """ |
297 | | This the class used to build the reference manual. It is |
| 363 | This class builds the reference manual. It uses DocBuilder to |
| 364 | build the top-level page and ReferenceSubBuilder for each |
| 365 | sub-component. |
| 366 | """ |
| 367 | def __init__(self, name, lang='en'): |
| 368 | """ |
| 369 | Records the reference manual's name, in case it's not |
| 370 | identical to 'reference'. |
| 371 | """ |
| 372 | AllBuilder.__init__(self) |
| 373 | doc = name.split(os.path.sep) |
| 374 | |
| 375 | if doc[0] in LANGUAGES: |
| 376 | lang = doc[0] |
| 377 | doc.pop(0) |
| 378 | |
| 379 | self.name = doc[0] |
| 380 | self.lang = lang |
| 381 | |
| 382 | def _output_dir(self, type, lang='en'): |
| 383 | """ |
| 384 | Returns the directory where the output of type type is stored. |
| 385 | If the directory does not exist, then it will automatically be |
| 386 | created. |
| 387 | |
| 388 | EXAMPLES:: |
| 389 | |
| 390 | sage: import os, sys; sys.path.append(os.environ['SAGE_DOC']+'/common/'); import builder |
| 391 | sage: b = builder.ReferenceBuilder('reference') |
| 392 | sage: b._output_dir('html') |
| 393 | '.../devel/sage/doc/output/html/en/reference' |
| 394 | """ |
| 395 | if type == "inventory": # put inventories in the html tree |
| 396 | type = "html" |
| 397 | d = os.path.join(SAGE_DOC, "output", type, lang, self.name) |
| 398 | mkdir(d) |
| 399 | return d |
| 400 | |
| 401 | def _wrapper(self, format, *args, **kwds): |
| 402 | """ |
| 403 | Builds reference manuals. For each language, it builds the |
| 404 | top-level document and its components. |
| 405 | """ |
| 406 | for lang in LANGUAGES: |
| 407 | refdir = os.path.join(SAGE_DOC, lang, self.name) |
| 408 | if not os.path.exists(refdir): |
| 409 | continue |
| 410 | output_dir = self._output_dir(format, lang) |
| 411 | from multiprocessing import Pool |
| 412 | pool = Pool(NUM_THREADS) |
| 413 | L = [(doc, lang, format, kwds) + args for doc in self.get_all_documents(refdir)] |
| 414 | # (See comment in AllBuilder._wrapper about using map_async |
| 415 | # instead of apply_async.) |
| 416 | pool.map_async(build_ref_doc, L).get(99999) |
| 417 | pool.close() |
| 418 | pool.join() |
| 419 | # The html refman must be build at the end to ensure correct |
| 420 | # merging of indexes and inventories. |
| 421 | getattr(DocBuilder(self.name, lang), format)(*args, **kwds) |
| 422 | |
| 423 | # PDF: we need to build master index file which lists all |
| 424 | # of the PDF file. So we create an html file, based on |
| 425 | # the file index.html from the "website" target. |
| 426 | if format == 'pdf': |
| 427 | import re |
| 428 | # First build the website page. (This only takes a |
| 429 | # few seconds.) |
| 430 | getattr(get_builder('website'), 'html')() |
| 431 | # Copy the relevant pieces of |
| 432 | # output/html/en/website/_static to output_dir. |
| 433 | # (Don't copy all of _static to save some space: we |
| 434 | # don't need all of the MathJax stuff, and in |
| 435 | # particular we don't need the fonts.) |
| 436 | website_dir = os.path.join(SAGE_DOC, 'output', 'html', |
| 437 | 'en', 'website') |
| 438 | static_files = ['COPYING.txt', 'basic.css', 'blank.gif', |
| 439 | 'default.css', 'doctools.js', 'favicon.ico', |
| 440 | 'file.png', 'jquery.js', 'minus.png', |
| 441 | 'pdf.png', 'plus.png', 'pygments.css', |
| 442 | 'sage.css', 'sageicon.png', 'sagelogo.png', |
| 443 | 'searchtools.js', 'sidebar.js', 'underscore.js'] |
| 444 | mkdir(os.path.join(output_dir, '_static')) |
| 445 | for f in static_files: |
| 446 | try: |
| 447 | shutil.copyfile(os.path.join(website_dir, '_static', f), |
| 448 | os.path.join(output_dir, '_static', f)) |
| 449 | except IOError: # original file does not exist |
| 450 | pass |
| 451 | # Now modify website's index.html page and write it |
| 452 | # to output_dir. |
| 453 | f = open(os.path.join(website_dir, 'index.html')) |
| 454 | html = f.read().replace('Documentation', 'Reference') |
| 455 | f.close() |
| 456 | html_output_dir = os.path.dirname(website_dir) |
| 457 | html = html.replace('http://www.sagemath.org', |
| 458 | os.path.join(html_output_dir, 'index.html')) |
| 459 | # From index.html, we want the preamble and the tail. |
| 460 | html_end_preamble = html.find('<h1>Sage Reference') |
| 461 | html_bottom = html.rfind('</table>') + len('</table>') |
| 462 | # For the content, we modify doc/en/reference/index.rst, |
| 463 | # which has two parts: the body and the table of contents. |
| 464 | f = open(os.path.join(SAGE_DOC, lang, 'reference', 'index.rst')) |
| 465 | rst = f.read() |
| 466 | f.close() |
| 467 | # Replace rst links with html links. There are two forms: |
| 468 | # |
| 469 | # `blah`__ followed by __ LINK |
| 470 | # |
| 471 | # :doc:`blah <module/index>` |
| 472 | # |
| 473 | # Change the first form to |
| 474 | # |
| 475 | # <a href="LINK">blah</a> |
| 476 | # |
| 477 | # Change the second form to |
| 478 | # |
| 479 | # <a href="module/module.pdf">blah <img src="_static/pdf.png" /></a> |
| 480 | # |
| 481 | rst = re.sub('`([^`]*)`__\.\n\n__ (.*)', |
| 482 | r'<a href="\2">\1</a>.', rst) |
| 483 | rst = re.sub(r':doc:`([^<]*?)\s+<(.*)/index>`', |
| 484 | r'<a href="\2/\2.pdf">\1 <img src="_static/pdf.png" /></a>', |
| 485 | rst) |
| 486 | # Get rid of todolist and miscellaneous rst markup. |
| 487 | rst = rst.replace('.. toctree::', '') |
| 488 | rst = rst.replace(':maxdepth: 2', '') |
| 489 | rst = rst.replace('todolist', '') |
| 490 | start = rst.find('=\n') + 1 |
| 491 | end = rst.find('Table of Contents') |
| 492 | # Body: add paragraph <p> markup. |
| 493 | rst_body = rst[start:end] |
| 494 | rst_body = rst_body.replace('\n\n', '</p>\n<p>') |
| 495 | start = rst.find('Table of Contents') + 2*len('Table of Contents') + 1 |
| 496 | # Don't include the indices. |
| 497 | end = rst.find('Indices and Tables') |
| 498 | # TOC: change * to <li>, change rst headers to html headers. |
| 499 | rst_toc = rst[start:end] |
| 500 | rst_toc = rst_toc.replace('*', '<li>') |
| 501 | rst_toc = re.sub('\n([A-Z][a-zA-Z, ]*)\n-*\n', |
| 502 | '</ul>\n\n\n<h2>\\1</h2>\n\n<ul>\n', rst_toc) |
| 503 | # Now write the file. |
| 504 | new_index = open(os.path.join(output_dir, 'index.html'), 'w') |
| 505 | new_index.write(html[:html_end_preamble]) |
| 506 | new_index.write('<h1>' + rst[:rst.find('\n')] + |
| 507 | ' (PDF version)'+ '</h1>') |
| 508 | new_index.write(rst_body) |
| 509 | new_index.write('<h2>Table of Contents</h2>\n\n<ul>') |
| 510 | new_index.write(rst_toc) |
| 511 | new_index.write('</ul>\n\n') |
| 512 | new_index.write(html[html_bottom:]) |
| 513 | new_index.close() |
| 514 | logger.warning(''' |
| 515 | PDF documents have been created in subdirectories of |
| 516 | |
| 517 | %s |
| 518 | |
| 519 | Alternatively, you can open |
| 520 | |
| 521 | %s |
| 522 | |
| 523 | for a webpage listing all of the documents.''' % (output_dir, |
| 524 | os.path.join(output_dir, |
| 525 | 'index.html'))) |
| 526 | |
| 527 | def get_all_documents(self, refdir): |
| 528 | """ |
| 529 | Returns a list of all reference manual components to build. |
| 530 | We add a component name if it's a subdirectory of the manual's |
| 531 | directory and contains a file named 'index.rst'. |
| 532 | |
| 533 | EXAMPLES:: |
| 534 | |
| 535 | sage: import os, sys; sys.path.append(os.environ['SAGE_DOC']+'/common/'); import builder |
| 536 | sage: b = builder.ReferenceBuilder('reference') |
| 537 | sage: refdir = os.path.join(os.environ['SAGE_DOC'], 'en', b.name) |
| 538 | sage: b.get_all_documents(refdir) |
| 539 | ['reference/algebras', 'reference/arithgroup', ..., 'reference/tensor'] |
| 540 | """ |
| 541 | documents = [] |
| 542 | |
| 543 | for doc in os.listdir(refdir): |
| 544 | if os.path.exists(os.path.join(refdir, doc, 'index.rst')): |
| 545 | documents.append(os.path.join(self.name, doc)) |
| 546 | |
| 547 | return sorted(documents) |
| 548 | |
| 549 | |
| 550 | class ReferenceSubBuilder(DocBuilder): |
| 551 | """ |
| 552 | This class builds sub-components of the reference manual. It is |
298 | 553 | resposible for making sure the auto generated ReST files for the |
299 | 554 | Sage library are up to date. |
300 | 555 | |
… |
… |
|
424 | 679 | except IOError as err: |
425 | 680 | logger.debug("Failed to open Sphinx environment: %s", err) |
426 | 681 | pass |
427 | | |
| 682 | |
428 | 683 | def update_mtimes(self): |
429 | 684 | """ |
430 | 685 | Updates the modification times for ReST files in the Sphinx |
… |
… |
|
593 | 848 | |
594 | 849 | sage: import os, sys; sys.path.append(os.environ['SAGE_DOC']+'/common/'); import builder |
595 | 850 | sage: import builder |
596 | | sage: builder.ReferenceBuilder("reference").auto_rest_filename("sage.combinat.partition") |
| 851 | sage: builder.ReferenceSubBuilder("reference").auto_rest_filename("sage.combinat.partition") |
597 | 852 | '.../devel/sage/doc/en/reference/sage/combinat/partition.rst' |
598 | 853 | """ |
599 | 854 | return self.dir + os.path.sep + module_name.replace('.',os.path.sep) + '.rst' |
… |
… |
|
705 | 960 | |
706 | 961 | def get_builder(name): |
707 | 962 | """ |
708 | | Returns a either a AllBuilder or DocBuilder object depending |
709 | | on whether ``name`` is 'all' or not. These are the objects |
710 | | which do all the real work in building the documentation. |
| 963 | Returns an appropriate *Builder object for the document ``name``. |
| 964 | DocBuilder and its subclasses do all the real work in building the |
| 965 | documentation. |
711 | 966 | """ |
712 | 967 | if name == 'all': |
713 | 968 | return AllBuilder() |
714 | 969 | elif name.endswith('reference'): |
715 | 970 | return ReferenceBuilder(name) |
| 971 | elif 'reference' in name: |
| 972 | return ReferenceSubBuilder(name) |
716 | 973 | elif name.endswith('website'): |
717 | 974 | return WebsiteBuilder(name) |
718 | 975 | elif name in get_documents() or name in AllBuilder().get_all_documents(): |
… |
… |
|
802 | 1059 | shortcut 'all' for all documents, available to the Sage |
803 | 1060 | documentation builder. |
804 | 1061 | """ |
| 1062 | docs = get_documents() |
805 | 1063 | s += "DOCUMENTs:\n" |
806 | | s += format_columns(get_documents() + ['all (!)']) |
807 | | s += "(!) Builds everything.\n" |
| 1064 | s += format_columns(docs + ['all (!)']) |
| 1065 | s += "(!) Builds everything.\n\n" |
| 1066 | if 'reference' in docs: |
| 1067 | s+= "Other valid document names take the form 'reference/DIR', where\n" |
| 1068 | s+= "DIR is a subdirectory of SAGE_ROOT/devel/sage/doc/en/reference/.\n" |
| 1069 | s+= "This builds just the specified part of the reference manual.\n" |
808 | 1070 | return s |
809 | 1071 | |
810 | 1072 | def get_formats(): |
-
diff --git a/doc/common/conf.py b/doc/common/conf.py
a
|
b
|
|
19 | 19 | |
20 | 20 | # Add any Sphinx extension module names here, as strings. They can be extensions |
21 | 21 | # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. |
22 | | extensions = ['sage_autodoc', 'sphinx.ext.graphviz', |
| 22 | extensions = ['inventory_builder', 'multidocs', |
| 23 | 'sage_autodoc', 'sphinx.ext.graphviz', |
23 | 24 | 'sphinx.ext.inheritance_diagram', 'sphinx.ext.todo', |
24 | 25 | 'sphinx.ext.extlinks'] |
25 | 26 | # We do *not* fully initialize intersphinx since we call it by hand |
… |
… |
|
213 | 214 | # If false, no module index is generated. |
214 | 215 | #html_use_modindex = True |
215 | 216 | |
| 217 | # A list of prefixes that are ignored for sorting the Python module index ( if |
| 218 | # this is set to ['foo.'], then foo.bar is shown under B, not F). Works only |
| 219 | # for the HTML builder currently. |
| 220 | modindex_common_prefix = ['sage.'] |
| 221 | |
216 | 222 | # If false, no index is generated. |
217 | 223 | #html_use_index = True |
218 | 224 | |
-
diff --git a/doc/common/inventory_builder.py b/doc/common/inventory_builder.py
new file mode 100644
-
|
+
|
|
| 1 | # -*- coding: utf-8 -*- |
| 2 | """ |
| 3 | inventory builder |
| 4 | ~~~~~~~~~~~~~~~~~ |
| 5 | |
| 6 | A customized HTML builder which only generates intersphinx "object.inv" |
| 7 | inventory files and pickle files. The documentation files are not written. |
| 8 | """ |
| 9 | from sphinx.builders.html import StandaloneHTMLBuilder |
| 10 | from sphinx.util.console import bold |
| 11 | |
| 12 | class InventoryBuilder(StandaloneHTMLBuilder): |
| 13 | """ |
| 14 | A customized HTML builder which only generates intersphinx "object.inv" |
| 15 | inventory files and pickle files. The documentation files are not written. |
| 16 | """ |
| 17 | name = "inventory" |
| 18 | |
| 19 | def write_doc(self, docname, doctree): |
| 20 | """ |
| 21 | Don't write any doc |
| 22 | """ |
| 23 | |
| 24 | def finish(self): |
| 25 | """ |
| 26 | Only write the inventory files. |
| 27 | """ |
| 28 | self.write_buildinfo() |
| 29 | self.dump_inventory() |
| 30 | |
| 31 | def removed_method_error(self): |
| 32 | """ |
| 33 | Raise an error if this method is called. |
| 34 | |
| 35 | This is just for making sure that some writer methods are indeed |
| 36 | deactivated. |
| 37 | """ |
| 38 | raise RuntimeError, "This function shouldn't be called in \"%s\" builder"%(self.name) |
| 39 | |
| 40 | copy_image_files = removed_method_error |
| 41 | copy_download_files = removed_method_error |
| 42 | copy_static_files = removed_method_error |
| 43 | handle_finish = removed_method_error |
| 44 | |
| 45 | def setup(app): |
| 46 | app.add_builder(InventoryBuilder) |
| 47 | |
-
diff --git a/doc/common/multidocs.py b/doc/common/multidocs.py
new file mode 100644
-
|
+
|
|
| 1 | # -*- coding: utf-8 -*- |
| 2 | """ |
| 3 | multi documentation in Sphinx |
| 4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 5 | |
| 6 | The goal of this extension is to manage a multi documentation in Sphinx. |
| 7 | To be able to compile Sage's huge documentation in parallel, the |
| 8 | documentation is cut into a bunch of independent documentations called |
| 9 | "subdocs", which are compiled separately. There is a master document which |
| 10 | points to all the subdocs. The intersphinx extension ensures that the |
| 11 | cross-link between the subdocs are correctly resolved. However some work |
| 12 | is needed to build a global index. This is the goal of multidocs. |
| 13 | |
| 14 | More precisely this extension ensures the correct merging of |
| 15 | - the todo list if this extension is activated; |
| 16 | - the python indexes; |
| 17 | - the list of python modules; |
| 18 | - the javascript index; |
| 19 | - the citations. |
| 20 | """ |
| 21 | import cPickle, os, sys |
| 22 | import sphinx |
| 23 | from sphinx.util.console import bold |
| 24 | |
| 25 | |
| 26 | CITE_FILENAME = 'citations.pickle' |
| 27 | |
| 28 | |
| 29 | def merge_environment(app, env): |
| 30 | """ |
| 31 | Merges the following attributes of the sub-docs environment into the main |
| 32 | environment: |
| 33 | - todo_all_todos # ToDo's |
| 34 | - indexentries # global python index |
| 35 | - all_docs # needed by the js index |
| 36 | - citations # citations |
| 37 | |
| 38 | - domaindata['py']['modules'] # list of python modules |
| 39 | """ |
| 40 | app.info(bold('Merging environment/index files...')) |
| 41 | for curdoc in app.env.config.multidocs_subdoc_list: |
| 42 | app.info(" %s:"%curdoc, nonl=1) |
| 43 | docenv = get_env(app, curdoc) |
| 44 | if docenv is not None: |
| 45 | fixpath = lambda path: os.path.join(curdoc, path) |
| 46 | app.info(" %s todos, %s index, %s citations"%( |
| 47 | len(docenv.todo_all_todos), |
| 48 | len(docenv.indexentries), |
| 49 | len(docenv.citations) |
| 50 | ), nonl=1) |
| 51 | |
| 52 | # merge the todo links |
| 53 | for dct in docenv.todo_all_todos: |
| 54 | dct['docname']=fixpath(dct['docname']) |
| 55 | env.todo_all_todos += docenv.todo_all_todos |
| 56 | # merge the html index links |
| 57 | newindex = {} |
| 58 | for ind in docenv.indexentries: |
| 59 | if ind.startswith('sage/'): |
| 60 | newind = fixpath(ind) |
| 61 | newindex[newind] = docenv.indexentries[ind] |
| 62 | else: |
| 63 | newindex[ind] = docenv.indexentries[ind] |
| 64 | env.indexentries.update(newindex) |
| 65 | # merge the all_docs links, needed by the js index |
| 66 | newalldoc = {} |
| 67 | for ind in docenv.all_docs: |
| 68 | newalldoc[fixpath(ind)]=docenv.all_docs[ind] |
| 69 | env.all_docs.update(newalldoc) |
| 70 | # needed by env.check_consistency (sphinx.environement, line 1734) |
| 71 | for ind in newalldoc: |
| 72 | env.metadata[ind] = {} |
| 73 | # merge the citations |
| 74 | newcite = {} |
| 75 | for ind, (path, tag) in docenv.citations.iteritems(): |
| 76 | # TODO: Warn on conflicts |
| 77 | newcite[ind]=(fixpath(path), tag) |
| 78 | env.citations.update(newcite) |
| 79 | # merge the py:module indexes |
| 80 | newmodules = {} |
| 81 | for ind,(modpath,v1,v2,v3) in ( |
| 82 | docenv.domaindata['py']['modules'].iteritems()): |
| 83 | newmodules[ind] = (fixpath(modpath),v1,v2,v3) |
| 84 | env.domaindata['py']['modules'].update(newmodules) |
| 85 | app.info(", %s modules"%(len(newmodules))) |
| 86 | app.info('... done (%s todos, %s index, %s citations, %s modules)'%( |
| 87 | len(env.todo_all_todos), |
| 88 | len(env.indexentries), |
| 89 | len(env.citations), |
| 90 | len(env.domaindata['py']['modules']))) |
| 91 | write_citations(app, env.citations) |
| 92 | |
| 93 | def get_env(app, curdoc): |
| 94 | """ |
| 95 | Get the environment of a sub-doc from the pickle |
| 96 | """ |
| 97 | from sphinx.application import ENV_PICKLE_FILENAME |
| 98 | filename = os.path.join( |
| 99 | app.env.doctreedir, curdoc, ENV_PICKLE_FILENAME) |
| 100 | try: |
| 101 | f = open(filename, 'rb') |
| 102 | except IOError: |
| 103 | app.info("") |
| 104 | app.warn("Unable to fetch %s "%filename) |
| 105 | return None |
| 106 | docenv = cPickle.load(f) |
| 107 | f.close() |
| 108 | return docenv |
| 109 | |
| 110 | def merge_js_index(app): |
| 111 | """ |
| 112 | Merge the JS indexes of the sub-docs into the main JS index |
| 113 | """ |
| 114 | app.info('') |
| 115 | app.info(bold('Merging js index files...')) |
| 116 | mapping = app.builder.indexer._mapping |
| 117 | for curdoc in app.env.config.multidocs_subdoc_list: |
| 118 | app.info(" %s:"%curdoc, nonl=1) |
| 119 | fixpath = lambda path: os.path.join(curdoc, path) |
| 120 | index = get_js_index(app, curdoc) |
| 121 | if index is not None: |
| 122 | # merge the mappings |
| 123 | app.info(" %s js index entries"%(len(index._mapping))) |
| 124 | for (ref, locs) in index._mapping.iteritems(): |
| 125 | newmapping = set(map(fixpath, locs)) |
| 126 | if ref in mapping: |
| 127 | newmapping = mapping[ref] | newmapping |
| 128 | mapping[unicode(ref)] = newmapping |
| 129 | # merge the titles |
| 130 | titles = app.builder.indexer._titles |
| 131 | for (res, title) in index._titles.iteritems(): |
| 132 | titles[fixpath(res)] = title |
| 133 | # TODO: merge indexer._objtypes, indexer._objnames as well |
| 134 | |
| 135 | # Setup source symbolic links |
| 136 | dest = os.path.join(app.outdir, "_sources", curdoc) |
| 137 | if not os.path.exists(dest): |
| 138 | os.symlink(os.path.join("..", curdoc, "_sources"), dest) |
| 139 | app.info('... done (%s js index entries)'%(len(mapping))) |
| 140 | app.info(bold('Writing js search indexes...'), nonl=1) |
| 141 | return [] # no extra page to setup |
| 142 | |
| 143 | def get_js_index(app, curdoc): |
| 144 | """ |
| 145 | Get the JS index of a sub-doc from the file |
| 146 | """ |
| 147 | from sphinx.search import IndexBuilder, languages |
| 148 | # FIXME: find the correct lang |
| 149 | indexer = IndexBuilder(app.env, 'en', |
| 150 | app.config.html_search_options) |
| 151 | indexfile = os.path.join(app.outdir, curdoc, 'searchindex.js') |
| 152 | try: |
| 153 | f = open(indexfile, 'rb') |
| 154 | except IOError: |
| 155 | app.info("") |
| 156 | app.warn("Unable to fetch %s "%indexfile) |
| 157 | return None |
| 158 | indexer.load(f, sphinx.search.js_index) |
| 159 | f.close() |
| 160 | return indexer |
| 161 | |
| 162 | |
| 163 | mustbefixed = ['search', 'genindex', 'genindex-all' |
| 164 | 'py-modindex', 'searchindex.js'] |
| 165 | def fix_path_html(app, pagename, templatename, ctx, event_arg): |
| 166 | """ |
| 167 | Fixes the context so that the files |
| 168 | - search.html |
| 169 | - genindex.html |
| 170 | - py-modindex.html |
| 171 | point to the right place, that is in |
| 172 | reference/ |
| 173 | instead of |
| 174 | reference/subdocument |
| 175 | """ |
| 176 | # sphinx/builder/html.py line 702 |
| 177 | # def pathto(otheruri, resource=False, |
| 178 | # baseuri=self.get_target_uri(pagename)): |
| 179 | old_pathto = ctx['pathto'] |
| 180 | def sage_pathto(otheruri, *args, **opts): |
| 181 | if otheruri in mustbefixed: |
| 182 | otheruri = os.path.join("..", otheruri) |
| 183 | return old_pathto(otheruri, *args, **opts) |
| 184 | ctx['pathto'] = sage_pathto |
| 185 | |
| 186 | |
| 187 | def write_citations(app, citations): |
| 188 | """ |
| 189 | Pickle the citation in a file |
| 190 | """ |
| 191 | import cPickle |
| 192 | file = open(os.path.join(app.outdir, CITE_FILENAME), 'wb') |
| 193 | cPickle.dump(citations, file) |
| 194 | file.close() |
| 195 | app.info("Saved pickle file: %s"%CITE_FILENAME) |
| 196 | |
| 197 | |
| 198 | def fetch_citation(app, env): |
| 199 | """ |
| 200 | Fetch the global citation index from the refman to allow for cross |
| 201 | references. |
| 202 | """ |
| 203 | app.builder.info(bold('loading cross citations... '), nonl=1) |
| 204 | filename = os.path.join(app.outdir, '..', CITE_FILENAME) |
| 205 | if not os.path.exists(filename): |
| 206 | return |
| 207 | import cPickle |
| 208 | file = open(filename, 'rb') |
| 209 | try: |
| 210 | cache = cPickle.load(file) |
| 211 | except: |
| 212 | app.warn("Cache file '%s' is corrupted; ignoring it..."% filename) |
| 213 | return |
| 214 | else: |
| 215 | app.builder.info("done (%s citations)."%len(cache)) |
| 216 | finally: |
| 217 | file.close() |
| 218 | cite = env.citations |
| 219 | for ind, (path, tag) in cache.iteritems(): |
| 220 | if ind not in cite: # don't override local citation |
| 221 | cite[ind]=(os.path.join("..", path), tag) |
| 222 | |
| 223 | def init_subdoc(app): |
| 224 | """ |
| 225 | Init the merger depending on if we are compiling a subdoc or the master |
| 226 | doc itself. |
| 227 | """ |
| 228 | if app.config.multidocs_is_master: |
| 229 | app.info(bold("Compiling the master document")) |
| 230 | app.connect('env-updated', merge_environment) |
| 231 | app.connect('html-collect-pages', merge_js_index) |
| 232 | else: |
| 233 | app.info(bold("Compiling a sub-document")) |
| 234 | app.connect('env-updated', fetch_citation) |
| 235 | app.connect('html-page-context', fix_path_html) |
| 236 | |
| 237 | # Monkey patch copy_static_files to make a symlink to "../" |
| 238 | def link_static_files(): |
| 239 | """ |
| 240 | Instead of copying static files, make a link to the master static file. |
| 241 | See sphinx/builder/html.py line 536:: |
| 242 | |
| 243 | class StandaloneHTMLBuilder(Builder): |
| 244 | [...] |
| 245 | def copy_static_files(self): |
| 246 | [...] |
| 247 | """ |
| 248 | app.builder.info(bold('linking _static directory.')) |
| 249 | static_dir = os.path.join(app.builder.outdir, '_static') |
| 250 | master_static_dir = os.path.join('..', '_static') |
| 251 | if not os.path.isdir(static_dir): |
| 252 | os.symlink(master_static_dir, static_dir) |
| 253 | |
| 254 | app.builder.copy_static_files = link_static_files |
| 255 | |
| 256 | if app.config.multidoc_first_pass == 1: |
| 257 | app.config.intersphinx_mapping = {} |
| 258 | |
| 259 | |
| 260 | def setup(app): |
| 261 | app.add_config_value('multidocs_is_master', True, True) |
| 262 | app.add_config_value('multidocs_subdoc_list', [], True) |
| 263 | app.add_config_value('multidoc_first_pass', 0, False) # 1 = deactivate the loading of the inventory |
| 264 | app.connect('builder-inited', init_subdoc) |
-
diff --git a/doc/common/themes/sage/layout.html b/doc/common/themes/sage/layout.html
a
|
b
|
|
7 | 7 | {% if pathto(master_doc).endswith('.html') %} |
8 | 8 | <a href="{{ '../' + pathto(master_doc) }}"><img src="{{ pathto('_static/sagelogo.png', 1) }}" style="vertical-align: middle" title="Sage Logo"></a> |
9 | 9 | {% else %} |
10 | | <a href="{{ '../' + pathto(master_doc) + 'index.html' }}"><img src="{{ pathto('_static/sagelogo.png', 1) }}" style="vertical-align: middle" title="Sage Logo"></a> |
| 10 | <a href="{{ '../' + pathto(master_doc, 1) + '.html' }}"><img src="{{ pathto('_static/sagelogo.png', 1) }}" style="vertical-align: middle" title="Sage Logo"></a> |
11 | 11 | {% endif %} |
12 | 12 | {% endif %} |
13 | 13 | {{ super() }} |
-
diff --git a/doc/common/themes/sageref/layout.html b/doc/common/themes/sageref/layout.html
new file mode 100644
-
|
+
|
|
| 1 | {% extends "basic/layout.html" %} |
| 2 | |
| 3 | {% block rootrellink %} |
| 4 | {% if docstitle.startswith('Sage Documentation') %} |
| 5 | <a href="http://www.sagemath.org"><img src="{{ pathto('_static/sagelogo.png', 1) }}" style="vertical-align: middle" title="Sage Logo"></a> |
| 6 | {% else %} |
| 7 | {% if pathto(master_doc).endswith('.html') %} |
| 8 | <a href="{{ '../../' + pathto(master_doc) }}"><img src="{{ pathto('_static/sagelogo.png', 1) }}" style="vertical-align: middle" title="Sage Logo"></a> |
| 9 | {% else %} |
| 10 | <a href="{{ '../../' + pathto(master_doc,1) + '.html' }}"><img src="{{ pathto('_static/sagelogo.png', 1) }}" style="vertical-align: middle" title="Sage Logo"></a> |
| 11 | <a href="{{ '../' + 'index.html' }}"> Sage Reference Manual </a> » |
| 12 | {% endif %} |
| 13 | {% endif %} |
| 14 | {{ super() }} |
| 15 | {% endblock %} |
| 16 | |
| 17 | {% block extrahead %} |
| 18 | <link rel="icon" href="{{ pathto('_static/sageicon.png', 1) }}" type="image/x-icon" /> |
| 19 | {% endblock %} |
| 20 | |
| 21 | {%- block footer %} |
| 22 | {{ super() }} |
| 23 | <script type="text/javascript"> |
| 24 | /*global jQuery, window */ |
| 25 | /* Sphinx sidebar toggle. Putting this code at the end of the body |
| 26 | * enables the toggle for the live, static, and offline docs. Note: |
| 27 | * sage.misc.html.math_parse() eats jQuery's dollar-sign shortcut. */ |
| 28 | var jq = jQuery; |
| 29 | jq(document).ready(function () { |
| 30 | var bar, bod, bg, fg, key, tog, wid_old, wid_new, resize, get_state, set_state; |
| 31 | bod = jq('div.bodywrapper'); |
| 32 | bar = jq('div.sphinxsidebar'); |
| 33 | tog = jq('<div class="sphinxsidebartoggle"></div>'); |
| 34 | |
| 35 | /* Delayed resize helper. Not perfect but good enough. */ |
| 36 | resize = function () { |
| 37 | setTimeout(function () { |
| 38 | tog.height(bod.height()); |
| 39 | }, 100); |
| 40 | }; |
| 41 | jq(window).resize(function () { |
| 42 | resize(); |
| 43 | }); |
| 44 | |
| 45 | /* Setup and add the toggle. See Sphinx v0.5.1 default.css. */ |
| 46 | fg = jq('div.sphinxsidebar p a').css('color') || 'rgb(152, 219, 204)'; |
| 47 | bg = jq('div.document').css('background-color') || 'rgb(28, 78, 99)'; |
| 48 | wid_old = '230px'; |
| 49 | wid_new = '5px'; |
| 50 | tog.css('background-color', bg) |
| 51 | .css('border-width', '0px') |
| 52 | .css('border-right', wid_new + ' ridge ' + bg) |
| 53 | .css('cursor', 'pointer') |
| 54 | .css('position', 'absolute') |
| 55 | .css('left', '-' + wid_new) |
| 56 | .css('top', '0px') |
| 57 | .css('width', wid_new); |
| 58 | bod.css('position', 'relative'); |
| 59 | bod.prepend(tog); |
| 60 | resize(); |
| 61 | |
| 62 | /* Cookie helpers. */ |
| 63 | key = 'sphinxsidebar='; |
| 64 | set_state = function (s) { |
| 65 | var date = new Date(); |
| 66 | /* Expiry in 7 days. */ |
| 67 | date.setTime(date.getTime() + (7 * 24 * 3600 * 1000)); |
| 68 | document.cookie = key + encodeURIComponent(s) + '; expires=' + |
| 69 | date.toUTCString() + '; path=/'; |
| 70 | }; |
| 71 | get_state = function () { |
| 72 | var i, c, crumbs = document.cookie.split(';'); |
| 73 | for (i = 0; i < crumbs.length; i += 1) { |
| 74 | c = crumbs[i].replace(/^\s+/, ''); |
| 75 | if (c.indexOf(key) === 0) { |
| 76 | return decodeURIComponent(c.substring(key.length, c.length)); |
| 77 | } |
| 78 | } |
| 79 | return null; |
| 80 | }; |
| 81 | |
| 82 | /* Event handlers. */ |
| 83 | tog.mouseover(function (ev) { |
| 84 | tog.css('border-right-color', fg); |
| 85 | }).mouseout(function (ev) { |
| 86 | tog.css('border-right-color', bg); |
| 87 | }).click(function (ev) { |
| 88 | if (bod.hasClass('wide')) { |
| 89 | bod.removeClass('wide'); |
| 90 | bod.css('margin-left', wid_old); |
| 91 | bar.css('width', wid_old); |
| 92 | bar.show(); |
| 93 | set_state('visible'); |
| 94 | } else { |
| 95 | set_state('hidden'); |
| 96 | bar.hide(); |
| 97 | bar.css('width', '0px'); |
| 98 | bod.css('margin-left', wid_new); |
| 99 | bod.addClass('wide'); |
| 100 | } |
| 101 | resize(); |
| 102 | }); |
| 103 | |
| 104 | /* Hide the normally visible sidebar? */ |
| 105 | if (get_state() === 'hidden') { |
| 106 | tog.trigger('click'); |
| 107 | } else { |
| 108 | set_state('visible'); |
| 109 | } |
| 110 | }); |
| 111 | </script> |
| 112 | {%- endblock %} |
| 113 | |
| 114 | <!-- This macro block for the sidebar is heavily borrowed from the basic --> |
| 115 | <!-- theme of Sphinx 0.6.3. In particular, we borrowed from the file --> |
| 116 | <!-- themes/basic/layout.html distributed with Sphinx 0.6.3. --> |
| 117 | {%- macro sidebar() %} |
| 118 | {%- if not embedded %}{% if not theme_nosidebar|tobool %} |
| 119 | <div class="sphinxsidebar"> |
| 120 | <div class="sphinxsidebarwrapper"> |
| 121 | {%- block sidebarlogo %} |
| 122 | {%- if logo %} |
| 123 | <p class="logo"><a href="{{ pathto(master_doc) }}"> |
| 124 | <img class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/> |
| 125 | </a></p> |
| 126 | {%- endif %} |
| 127 | {%- endblock %} |
| 128 | {%- block sidebartoc %} |
| 129 | {%- if display_toc %} |
| 130 | <h3><a href="{{ pathto(master_doc) }}">{{ _('Table Of Contents') }}</a></h3> |
| 131 | {{ toc }} |
| 132 | {%- endif %} |
| 133 | {%- endblock %} |
| 134 | {%- block sidebarrel %} |
| 135 | {%- if prev %} |
| 136 | <h4>{{ _('Previous topic') }}</h4> |
| 137 | <p class="topless"><a href="{{ prev.link|e }}" |
| 138 | title="{{ _('previous chapter') }}">{{ prev.title }}</a></p> |
| 139 | {%- endif %} |
| 140 | {%- if next %} |
| 141 | <h4>{{ _('Next topic') }}</h4> |
| 142 | <p class="topless"><a href="{{ next.link|e }}" |
| 143 | title="{{ _('next chapter') }}">{{ next.title }}</a></p> |
| 144 | {%- endif %} |
| 145 | {%- endblock %} |
| 146 | {%- block sidebarsourcelink %} |
| 147 | {%- if show_source and has_source and sourcename %} |
| 148 | <h3>{{ _('This Page') }}</h3> |
| 149 | <ul class="this-page-menu"> |
| 150 | <li><a href="{{ pathto('_sources/' + sourcename, true)|e }}" |
| 151 | rel="nofollow">{{ _('Show Source') }}</a></li> |
| 152 | </ul> |
| 153 | {%- endif %} |
| 154 | {%- endblock %} |
| 155 | {%- if customsidebar %} |
| 156 | {% include customsidebar %} |
| 157 | {%- endif %} |
| 158 | {%- block sidebarsearch %} |
| 159 | {%- if pagename != "search" %} |
| 160 | <div id="searchbox" style="display: none"> |
| 161 | <h3>{{ _('Quick search') }}</h3> |
| 162 | <form class="search" action="{{ pathto('search') }}" method="get"> |
| 163 | <input type="text" name="q" size="18" /> |
| 164 | <!-- The shading of the "Go" button should be consistent --> |
| 165 | <!-- with the colour of the header and footer. See the file --> |
| 166 | <!-- doc/common/themes/sage/theme.conf for colours used by --> |
| 167 | <!-- the Sage theme. --> |
| 168 | <input type="submit" style="background-color: #B8B9F6" value="{{ _('Go') }}" /> |
| 169 | <input type="hidden" name="check_keywords" value="yes" /> |
| 170 | <input type="hidden" name="area" value="default" /> |
| 171 | </form> |
| 172 | <p class="searchtip" style="font-size: 90%"> |
| 173 | {{ _('Enter search terms or a module, class or function name.') }} |
| 174 | </p> |
| 175 | </div> |
| 176 | <script type="text/javascript">$('#searchbox').show(0);</script> |
| 177 | {%- endif %} |
| 178 | {%- endblock %} |
| 179 | </div> |
| 180 | </div> |
| 181 | {%- endif %}{% endif %} |
| 182 | {%- endmacro %} |
-
diff --git a/doc/common/themes/sageref/static/favicon.ico b/doc/common/themes/sageref/static/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..51775bc542a5d8653935c5223b9ecd616cb1e085
GIT binary patch
literal 1150
zc$}q^KT88a5XI-z_zxqeVh|AtA|eQ4DMCcCv$3+X(Mmr+K(M%gtyrWLECfYJC)n9o
z2^L9_A}A@u;z;mAoNv5$FsyefxZxKzGy7&|XC@*ZKE5ybF3Mq_NI^sv0Zg#O_OAtB
zD<6}rC<s1McmwC)IK%%FZEyfIb}twP^NdybMf(mm!6+C31yBduU=`%R7<kFhuY(c@
zK^06pv2TH&@vdF41-j<^lyjy7YM^LruRLe92?LB{ZA~y^YH<lXzD>`sfF0)Ou?8KZ
z*SC#>vU5*`xjcdku*4oHdG;Ux&%D26^mB}B^IT)x9^S9I1uzSSm|L4?m%)+Imd)F>
zkN3vcWo{FuUUy)F`|Bv4n+AVtE%uE5lzMk=^bHTx){O6l_0s(l_ij%Vozs4B=Ga5V
z)c?dJ>+5Pm*280*EA~0@YrS-4PExc9nw!q&KHsNz4KgR~VJ`YUUw=XG)ETR$`Q@MM
E6WVp2FaQ7m
-
diff --git a/doc/common/themes/sageref/static/mathjax_sage.js_t b/doc/common/themes/sageref/static/mathjax_sage.js_t
new file mode 100644
-
|
+
|
|
| 1 | MathJax.Hub.Config({ |
| 2 | imageFont: null, |
| 3 | tex2jax: { |
| 4 | inlineMath: [['$','$'],['\\(','\\)']], |
| 5 | processEscapes: true, |
| 6 | }, |
| 7 | styles: { |
| 8 | ".MathJax .mo, .MathJax .mi": { |
| 9 | color: "inherit ! important" |
| 10 | } |
| 11 | }, |
| 12 | TeX: { |
| 13 | Macros: { |
| 14 | {{ theme_mathjax_macros|join(',\n') }} |
| 15 | } |
| 16 | } |
| 17 | }); |
| 18 | |
| 19 | // This path is a little funny because we have to load our local |
| 20 | // config file as '../mathjax_sage' in the theme conf.py |
| 21 | MathJax.Ajax.loadComplete("[MathJax]/config/../mathjax_sage.js") |
-
diff --git a/doc/common/themes/sageref/static/sage.css_t b/doc/common/themes/sageref/static/sage.css_t
new file mode 100644
-
|
+
|
|
| 1 | /** |
| 2 | * Sage stylesheet theme. This stylesheet is heavily borrowed from the |
| 3 | * Sphinx stylesheet default theme distributed as the file |
| 4 | * themes/default/static/default.css_t in Sphinx 0.6.3. |
| 5 | */ |
| 6 | |
| 7 | @import url("basic.css"); |
| 8 | |
| 9 | /* -- page layout ----------------------------------------------------------- */ |
| 10 | |
| 11 | body { |
| 12 | font-family: {{ theme_bodyfont }}; |
| 13 | font-size: 100%; |
| 14 | background-color: {{ theme_footerbgcolor }}; |
| 15 | color: #000; |
| 16 | margin: 0; |
| 17 | padding: 0; |
| 18 | } |
| 19 | |
| 20 | div.document { |
| 21 | background-color: {{ theme_sidebarbgcolor }}; |
| 22 | } |
| 23 | |
| 24 | div.documentwrapper { |
| 25 | float: left; |
| 26 | width: 100%; |
| 27 | } |
| 28 | |
| 29 | div.bodywrapper { |
| 30 | margin: 0 0 0 230px; |
| 31 | } |
| 32 | |
| 33 | div.body { |
| 34 | background-color: {{ theme_bgcolor }}; |
| 35 | color: {{ theme_textcolor }}; |
| 36 | padding: 0 20px 30px 20px; |
| 37 | } |
| 38 | |
| 39 | {%- if theme_rightsidebar|tobool %} |
| 40 | div.bodywrapper { |
| 41 | margin: 0 230px 0 0; |
| 42 | } |
| 43 | {%- endif %} |
| 44 | |
| 45 | div.footer { |
| 46 | color: {{ theme_footertextcolor }}; |
| 47 | width: 100%; |
| 48 | padding: 9px 0 9px 0; |
| 49 | text-align: center; |
| 50 | font-size: 75%; |
| 51 | } |
| 52 | |
| 53 | div.footer a { |
| 54 | color: {{ theme_footertextcolor }}; |
| 55 | text-decoration: underline; |
| 56 | } |
| 57 | |
| 58 | div.related { |
| 59 | background-color: {{ theme_relbarbgcolor }}; |
| 60 | line-height: 30px; |
| 61 | color: {{ theme_relbartextcolor }}; |
| 62 | } |
| 63 | |
| 64 | div.related a { |
| 65 | color: {{ theme_relbarlinkcolor }}; |
| 66 | } |
| 67 | |
| 68 | div.sphinxsidebar { |
| 69 | {%- if theme_stickysidebar|tobool %} |
| 70 | top: 30px; |
| 71 | margin: 0; |
| 72 | position: fixed; |
| 73 | overflow: auto; |
| 74 | height: 100%; |
| 75 | {%- endif %} |
| 76 | {%- if theme_rightsidebar|tobool %} |
| 77 | float: right; |
| 78 | {%- if theme_stickysidebar|tobool %} |
| 79 | right: 0; |
| 80 | {%- endif %} |
| 81 | {%- endif %} |
| 82 | } |
| 83 | |
| 84 | {%- if theme_stickysidebar|tobool %} |
| 85 | /* this is nice, but it it leads to hidden headings when jumping |
| 86 | to an anchor */ |
| 87 | /* |
| 88 | div.related { |
| 89 | position: fixed; |
| 90 | } |
| 91 | |
| 92 | div.documentwrapper { |
| 93 | margin-top: 30px; |
| 94 | } |
| 95 | */ |
| 96 | {%- endif %} |
| 97 | |
| 98 | div.sphinxsidebar h3 { |
| 99 | font-family: {{ theme_headfont }}; |
| 100 | color: {{ theme_sidebartextcolor }}; |
| 101 | font-size: 1.4em; |
| 102 | font-weight: normal; |
| 103 | margin: 0; |
| 104 | padding: 0; |
| 105 | } |
| 106 | |
| 107 | div.sphinxsidebar h3 a { |
| 108 | color: {{ theme_sidebartextcolor }}; |
| 109 | } |
| 110 | |
| 111 | div.sphinxsidebar h4 { |
| 112 | font-family: {{ theme_headfont }}; |
| 113 | color: {{ theme_sidebartextcolor }}; |
| 114 | font-size: 1.3em; |
| 115 | font-weight: normal; |
| 116 | margin: 5px 0 0 0; |
| 117 | padding: 0; |
| 118 | } |
| 119 | |
| 120 | div.sphinxsidebar p { |
| 121 | color: {{ theme_sidebartextcolor }}; |
| 122 | } |
| 123 | |
| 124 | div.sphinxsidebar p.topless { |
| 125 | margin: 5px 10px 10px 10px; |
| 126 | } |
| 127 | |
| 128 | div.sphinxsidebar ul { |
| 129 | margin: 10px; |
| 130 | padding: 0; |
| 131 | color: {{ theme_sidebartextcolor }}; |
| 132 | } |
| 133 | |
| 134 | div.sphinxsidebar a { |
| 135 | color: {{ theme_sidebarlinkcolor }}; |
| 136 | } |
| 137 | |
| 138 | div.sphinxsidebar input { |
| 139 | border: 1px solid {{ theme_sidebarlinkcolor }}; |
| 140 | font-family: sans-serif; |
| 141 | font-size: 1em; |
| 142 | } |
| 143 | |
| 144 | /* -- body styles ----------------------------------------------------------- */ |
| 145 | |
| 146 | a { |
| 147 | color: {{ theme_linkcolor }}; |
| 148 | text-decoration: none; |
| 149 | } |
| 150 | |
| 151 | a:hover { |
| 152 | text-decoration: underline; |
| 153 | } |
| 154 | |
| 155 | div.body p, div.body dd, div.body li { |
| 156 | text-align: justify; |
| 157 | line-height: 130%; |
| 158 | } |
| 159 | |
| 160 | div.body h1, |
| 161 | div.body h2, |
| 162 | div.body h3, |
| 163 | div.body h4, |
| 164 | div.body h5, |
| 165 | div.body h6 { |
| 166 | font-family: {{ theme_headfont }}; |
| 167 | background-color: {{ theme_headbgcolor }}; |
| 168 | font-weight: normal; |
| 169 | color: {{ theme_headtextcolor }}; |
| 170 | border-bottom: 1px solid #ccc; |
| 171 | margin: 20px -20px 10px -20px; |
| 172 | padding: 3px 0 3px 10px; |
| 173 | } |
| 174 | |
| 175 | div.body h1 { margin-top: 0; font-size: 200%; } |
| 176 | div.body h2 { font-size: 160%; } |
| 177 | div.body h3 { font-size: 140%; } |
| 178 | div.body h4 { font-size: 120%; } |
| 179 | div.body h5 { font-size: 110%; } |
| 180 | div.body h6 { font-size: 100%; } |
| 181 | |
| 182 | a.headerlink { |
| 183 | color: {{ theme_headlinkcolor }}; |
| 184 | font-size: 0.8em; |
| 185 | padding: 0 4px 0 4px; |
| 186 | text-decoration: none; |
| 187 | } |
| 188 | |
| 189 | a.headerlink:hover { |
| 190 | background-color: {{ theme_headlinkcolor }}; |
| 191 | color: white; |
| 192 | } |
| 193 | |
| 194 | div.body p, div.body dd, div.body li { |
| 195 | text-align: justify; |
| 196 | line-height: 130%; |
| 197 | } |
| 198 | |
| 199 | div.admonition p.admonition-title + p { |
| 200 | display: inline; |
| 201 | } |
| 202 | |
| 203 | div.note { |
| 204 | background-color: #eee; |
| 205 | border: 1px solid #ccc; |
| 206 | } |
| 207 | |
| 208 | div.seealso { |
| 209 | background-color: #ffc; |
| 210 | border: 1px solid #ff6; |
| 211 | } |
| 212 | |
| 213 | div.topic { |
| 214 | background-color: #eee; |
| 215 | } |
| 216 | |
| 217 | div.warning { |
| 218 | background-color: #ffe4e4; |
| 219 | border: 1px solid #f66; |
| 220 | } |
| 221 | |
| 222 | p.admonition-title { |
| 223 | display: inline; |
| 224 | } |
| 225 | |
| 226 | p.admonition-title:after { |
| 227 | content: ":"; |
| 228 | } |
| 229 | |
| 230 | /** |
| 231 | * Code block. |
| 232 | * The border colour should be a darker shade of the background colour. |
| 233 | * The hex code #E8D898 used below is a pale, light grayish amber. |
| 234 | */ |
| 235 | pre { |
| 236 | padding: 5px; |
| 237 | background-color: {{ theme_codebgcolor }}; |
| 238 | color: {{ theme_codetextcolor }}; |
| 239 | line-height: 120%; |
| 240 | border: 1px solid #E8D898; |
| 241 | border-left: none; |
| 242 | border-right: none; |
| 243 | } |
| 244 | |
| 245 | /** |
| 246 | * Commands or code within text. The hex code #EAEAF8 used below is a |
| 247 | * pale, light grayish blue. |
| 248 | */ |
| 249 | tt { |
| 250 | background-color: #EAEAF8; |
| 251 | padding: 0 1px 0 1px; |
| 252 | font-size: 0.95em; |
| 253 | } |
-
diff --git a/doc/common/themes/sageref/theme.conf b/doc/common/themes/sageref/theme.conf
new file mode 100644
-
|
+
|
|
| 1 | [theme] |
| 2 | inherit = default |
| 3 | stylesheet = sage.css |
| 4 | pygments_style = sphinx |
| 5 | |
| 6 | [options] |
| 7 | # Custom Sage theme options |
| 8 | |
| 9 | # MathJax settings filled in by conf.py |
| 10 | mathjax_macros = |
| 11 | |
| 12 | # Sphinx default theme options |
| 13 | |
| 14 | #nosidebar = false |
| 15 | #rightsidebar = false |
| 16 | #stickysidebar = false |
| 17 | |
| 18 | # Background color for the footer line: pale, light grayish blue (CSS color): |
| 19 | footerbgcolor = #B8B9F6 |
| 20 | # Text color for the footer line: black (CSS color): |
| 21 | footertextcolor = #000000 |
| 22 | # Background color for the sidebar: light bluish gray (CSS color): |
| 23 | sidebarbgcolor = #EAEAF8 |
| 24 | # Text color for the sidebar: black (CSS color): |
| 25 | sidebartextcolor = #000000 |
| 26 | # Link color for the sidebar: dark blue (CSS color): |
| 27 | sidebarlinkcolor = #090999 |
| 28 | # Background color for the relation bar: pale, light grayish blue (CSS color): |
| 29 | relbarbgcolor = #B8B9F6 |
| 30 | # Text color for the relation bar: black (CSS color): |
| 31 | relbartextcolor = #000000 |
| 32 | # Link color for the relation bar: dark blue (CSS color): |
| 33 | relbarlinkcolor = #090999 |
| 34 | # Body background color (CSS color): |
| 35 | #bgcolor = #ffffff |
| 36 | # Body text color: black (CSS color): |
| 37 | textcolor = #000000 |
| 38 | # Background color for headings: light bluish gray (CSS color): |
| 39 | headbgcolor = #EAEAF8 |
| 40 | # Text color for headings (CSS color): |
| 41 | #headtextcolor = #20435c |
| 42 | # Link color for headings (CSS color): |
| 43 | #headlinkcolor = #c60f0f |
| 44 | # Body link color: dark greenish blue (CSS color): |
| 45 | linkcolor = #45529B |
| 46 | # Background color for code blocks: very pale yellow (CSS color): |
| 47 | codebgcolor = #FFFFE5 |
| 48 | # Default text color for code blocks, if not set differently by the highlighting style (CSS color): |
| 49 | #codetextcolor = #333333 |
| 50 | |
| 51 | # Font for normal text (CSS font-family): |
| 52 | #bodyfont = sans-serif |
| 53 | # Font for headings (CSS font-family): |
| 54 | #headfont = 'Trebuchet MS', sans-serif |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/algebras.rst b/doc/en/reference/algebras/index.rst
rename from doc/en/reference/algebras.rst
rename to doc/en/reference/algebras/index.rst
old
|
new
|
|
1 | | .. _ch:algebras: |
2 | | |
3 | 1 | Algebras |
4 | 2 | ======== |
5 | 3 | |
… |
… |
|
22 | 20 | sage/algebras/steenrod/steenrod_algebra_bases |
23 | 21 | sage/algebras/steenrod/steenrod_algebra_misc |
24 | 22 | sage/algebras/steenrod/steenrod_algebra_mult |
| 23 | |
| 24 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/arithgroup.rst b/doc/en/reference/arithgroup/index.rst
rename from doc/en/reference/arithgroup.rst
rename to doc/en/reference/arithgroup/index.rst
old
|
new
|
|
1 | | .. _ch:arithgroup: |
2 | | |
3 | | Arithmetic Subgroups of `{\rm SL}_2(\ZZ)` |
4 | | ================================================ |
| 1 | Arithmetic Subgroups of `{\rm SL}_2({\bf Z})` |
| 2 | ============================================= |
5 | 3 | |
6 | 4 | This chapter describes the basic functionality for finite index subgroups of |
7 | 5 | the modular group `{\rm SL}_2(\ZZ)`. |
… |
… |
|
19 | 17 | sage/modular/arithgroup/congroup_gamma |
20 | 18 | sage/modular/arithgroup/congroup_sl2z |
21 | 19 | sage/modular/arithgroup/farey_symbol |
| 20 | |
| 21 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/media/modular/arithgroup/pairing.png b/doc/en/reference/arithgroup/media/pairing.png
rename from doc/en/reference/media/modular/arithgroup/pairing.png
rename to doc/en/reference/arithgroup/media/pairing.png
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/calculus.rst b/doc/en/reference/calculus/index.rst
rename from doc/en/reference/calculus.rst
rename to doc/en/reference/calculus/index.rst
old
|
new
|
|
23 | 23 | sage/calculus/riemann |
24 | 24 | sage/gsl/interpolation |
25 | 25 | sage/calculus/interpolators |
| 26 | |
| 27 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/categories.rst b/doc/en/reference/categories/index.rst
rename from doc/en/reference/categories.rst
rename to doc/en/reference/categories/index.rst
old
|
new
|
|
1 | | .. _ch:categories: |
2 | | |
3 | 1 | Category Theory |
4 | 2 | =============== |
5 | 3 | |
… |
… |
|
171 | 169 | :maxdepth: 2 |
172 | 170 | |
173 | 171 | sage/categories/action |
| 172 | |
| 173 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/environ.rst b/doc/en/reference/cmd/environ.rst
rename from doc/en/reference/environ.rst
rename to doc/en/reference/cmd/environ.rst
diff --git a/doc/en/reference/cmd.rst b/doc/en/reference/cmd/index.rst
rename from doc/en/reference/cmd.rst
rename to doc/en/reference/cmd/index.rst
old
|
new
|
|
1 | | .. _ch:cmdline: |
2 | | |
3 | 1 | The Sage Command Line |
4 | 2 | ===================== |
5 | 3 | |
… |
… |
|
14 | 12 | sage/misc/readline_extra_commands |
15 | 13 | |
16 | 14 | For more details about how to use the Sage command line once it starts up, see the Sage tutorial and the documentation for IPython. |
| 15 | |
| 16 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/options.rst b/doc/en/reference/cmd/options.rst
rename from doc/en/reference/options.rst
rename to doc/en/reference/cmd/options.rst
diff --git a/doc/en/reference/startup.rst b/doc/en/reference/cmd/startup.rst
rename from doc/en/reference/startup.rst
rename to doc/en/reference/cmd/startup.rst
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/coding.rst b/doc/en/reference/coding/index.rst
rename from doc/en/reference/coding.rst
rename to doc/en/reference/coding/index.rst
old
|
new
|
|
9 | 9 | sage/coding/sd_codes |
10 | 10 | sage/coding/code_bounds |
11 | 11 | sage/coding/source_coding/huffman |
| 12 | |
| 13 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/coercion.rst b/doc/en/reference/coercion/index.rst
rename from doc/en/reference/coercion.rst
rename to doc/en/reference/coercion/index.rst
old
|
new
|
|
651 | 651 | sage/structure/coerce_actions |
652 | 652 | sage/structure/coerce_maps |
653 | 653 | |
| 654 | |
| 655 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/combinat/index.rst b/doc/en/reference/combinat/index.rst
a
|
b
|
|
4 | 4 | .. toctree:: |
5 | 5 | :maxdepth: 2 |
6 | 6 | |
7 | | ../sage/combinat/tutorial |
8 | | ../sage/combinat/combinat |
9 | | ../sage/combinat/sloane_functions |
10 | | ../sage/combinat/expnums |
11 | | ../sage/combinat/alternating_sign_matrix |
12 | | ../sage/combinat/cartesian_product |
13 | | ../sage/combinat/combination |
14 | | ../sage/combinat/composition_signed |
15 | | ../sage/combinat/composition |
16 | | ../sage/combinat/core |
17 | | ../sage/combinat/debruijn_sequence |
18 | | ../sage/combinat/degree_sequences |
19 | | ../sage/combinat/dlx |
20 | | ../sage/combinat/matrices/dlxcpp |
21 | | ../sage/combinat/dyck_word |
22 | | ../sage/combinat/tamari_lattices |
23 | | ../sage/combinat/e_one_star |
24 | | ../sage/combinat/finite_class |
25 | | ../sage/combinat/integer_list |
26 | | ../sage/combinat/integer_matrices |
27 | | ../sage/combinat/integer_vector |
28 | | ../sage/combinat/integer_vector_weighted |
29 | | ../sage/combinat/integer_vectors_mod_permgroup |
30 | | ../sage/combinat/enumeration_mod_permgroup |
31 | | ../sage/combinat/restricted_growth |
32 | | ../sage/combinat/yamanouchi |
33 | | ../sage/combinat/graph_path |
34 | | ../sage/combinat/matrices/latin |
35 | | ../sage/combinat/lyndon_word |
36 | | ../sage/combinat/necklace |
37 | | ../sage/combinat/non_decreasing_parking_function |
38 | | ../sage/combinat/partition |
39 | | ../sage/combinat/partition_tuple |
40 | | ../sage/combinat/permutation |
41 | | ../sage/combinat/perfect_matching |
42 | | ../sage/combinat/q_analogues |
43 | | ../sage/combinat/sidon_sets |
44 | | ../sage/combinat/set_partition_ordered |
45 | | ../sage/combinat/set_partition |
46 | | ../sage/combinat/skew_partition |
47 | | ../sage/combinat/subset |
48 | | ../sage/combinat/subsets_pairwise |
49 | | ../sage/combinat/subword |
50 | | ../sage/combinat/tiling |
51 | | ../sage/combinat/tuple |
| 7 | sage/combinat/tutorial |
| 8 | sage/combinat/combinat |
| 9 | sage/combinat/sloane_functions |
| 10 | sage/combinat/expnums |
| 11 | sage/combinat/alternating_sign_matrix |
| 12 | sage/combinat/cartesian_product |
| 13 | sage/combinat/combination |
| 14 | sage/combinat/composition_signed |
| 15 | sage/combinat/composition |
| 16 | sage/combinat/core |
| 17 | sage/combinat/debruijn_sequence |
| 18 | sage/combinat/degree_sequences |
| 19 | sage/combinat/dlx |
| 20 | sage/combinat/matrices/dlxcpp |
| 21 | sage/combinat/dyck_word |
| 22 | sage/combinat/tamari_lattices |
| 23 | sage/combinat/e_one_star |
| 24 | sage/combinat/finite_class |
| 25 | sage/combinat/integer_list |
| 26 | sage/combinat/integer_matrices |
| 27 | sage/combinat/integer_vector |
| 28 | sage/combinat/integer_vector_weighted |
| 29 | sage/combinat/integer_vectors_mod_permgroup |
| 30 | sage/combinat/enumeration_mod_permgroup |
| 31 | sage/combinat/restricted_growth |
| 32 | sage/combinat/yamanouchi |
| 33 | sage/combinat/graph_path |
| 34 | sage/combinat/matrices/latin |
| 35 | sage/combinat/lyndon_word |
| 36 | sage/combinat/necklace |
| 37 | sage/combinat/non_decreasing_parking_function |
| 38 | sage/combinat/partition |
| 39 | sage/combinat/partition_tuple |
| 40 | sage/combinat/permutation |
| 41 | sage/combinat/perfect_matching |
| 42 | sage/combinat/q_analogues |
| 43 | sage/combinat/sidon_sets |
| 44 | sage/combinat/set_partition_ordered |
| 45 | sage/combinat/set_partition |
| 46 | sage/combinat/skew_partition |
| 47 | sage/combinat/subset |
| 48 | sage/combinat/subsets_pairwise |
| 49 | sage/combinat/subword |
| 50 | sage/combinat/tiling |
| 51 | sage/combinat/tuple |
52 | 52 | cluster_algebras |
53 | 53 | |
54 | 54 | algebra |
… |
… |
|
57 | 57 | ncsf_qsym |
58 | 58 | root_systems |
59 | 59 | |
60 | | ../sage/combinat/kazhdan_lusztig |
| 60 | sage/combinat/kazhdan_lusztig |
61 | 61 | |
62 | 62 | crystals |
63 | 63 | posets |
… |
… |
|
68 | 68 | words |
69 | 69 | iet |
70 | 70 | |
71 | | ../sage/combinat/dict_addition |
72 | | ../sage/combinat/misc |
73 | | ../sage/combinat/combinatorial_map |
| 71 | sage/combinat/dict_addition |
| 72 | sage/combinat/misc |
| 73 | sage/combinat/combinatorial_map |
74 | 74 | |
| 75 | |
| 76 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/media/combinat/a_poset.png b/doc/en/reference/combinat/media/a_poset.png
rename from doc/en/reference/media/combinat/a_poset.png
rename to doc/en/reference/combinat/media/a_poset.png
diff --git a/doc/en/reference/media/combinat/complete-binary-trees-4.pdf b/doc/en/reference/combinat/media/complete-binary-trees-4.pdf
rename from doc/en/reference/media/combinat/complete-binary-trees-4.pdf
rename to doc/en/reference/combinat/media/complete-binary-trees-4.pdf
diff --git a/doc/en/reference/media/combinat/complete-binary-trees-4.png b/doc/en/reference/combinat/media/complete-binary-trees-4.png
rename from doc/en/reference/media/combinat/complete-binary-trees-4.png
rename to doc/en/reference/combinat/media/complete-binary-trees-4.png
diff --git a/doc/en/reference/media/combinat/graphs-5.pdf b/doc/en/reference/combinat/media/graphs-5.pdf
rename from doc/en/reference/media/combinat/graphs-5.pdf
rename to doc/en/reference/combinat/media/graphs-5.pdf
diff --git a/doc/en/reference/media/combinat/graphs-5.png b/doc/en/reference/combinat/media/graphs-5.png
rename from doc/en/reference/media/combinat/graphs-5.png
rename to doc/en/reference/combinat/media/graphs-5.png
diff --git a/doc/en/reference/media/combinat/polytope.png b/doc/en/reference/combinat/media/polytope.png
rename from doc/en/reference/media/combinat/polytope.png
rename to doc/en/reference/combinat/media/polytope.png
diff --git a/doc/en/reference/media/combinat/prefix-tree-graphs-4.pdf b/doc/en/reference/combinat/media/prefix-tree-graphs-4.pdf
rename from doc/en/reference/media/combinat/prefix-tree-graphs-4.pdf
rename to doc/en/reference/combinat/media/prefix-tree-graphs-4.pdf
diff --git a/doc/en/reference/media/combinat/prefix-tree-graphs-4.png b/doc/en/reference/combinat/media/prefix-tree-graphs-4.png
rename from doc/en/reference/media/combinat/prefix-tree-graphs-4.png
rename to doc/en/reference/combinat/media/prefix-tree-graphs-4.png
diff --git a/doc/en/reference/media/combinat/prefix-tree-graphs-4.tikz b/doc/en/reference/combinat/media/prefix-tree-graphs-4.tikz
rename from doc/en/reference/media/combinat/prefix-tree-graphs-4.tikz
rename to doc/en/reference/combinat/media/prefix-tree-graphs-4.tikz
diff --git a/doc/en/reference/media/combinat/prefix-tree-partitions-5.pdf b/doc/en/reference/combinat/media/prefix-tree-partitions-5.pdf
rename from doc/en/reference/media/combinat/prefix-tree-partitions-5.pdf
rename to doc/en/reference/combinat/media/prefix-tree-partitions-5.pdf
diff --git a/doc/en/reference/media/combinat/prefix-tree-partitions-5.png b/doc/en/reference/combinat/media/prefix-tree-partitions-5.png
rename from doc/en/reference/media/combinat/prefix-tree-partitions-5.png
rename to doc/en/reference/combinat/media/prefix-tree-partitions-5.png
diff --git a/doc/en/reference/media/combinat/prefix-tree-partitions-5.tikz b/doc/en/reference/combinat/media/prefix-tree-partitions-5.tikz
rename from doc/en/reference/media/combinat/prefix-tree-partitions-5.tikz
rename to doc/en/reference/combinat/media/prefix-tree-partitions-5.tikz
diff --git a/doc/en/reference/conf.py b/doc/en/reference/conf.py
a
|
b
|
|
15 | 15 | sys.path.append(os.environ['SAGE_DOC']) |
16 | 16 | from common.conf import * |
17 | 17 | |
| 18 | # settings for the intersphinx extension: |
| 19 | |
| 20 | ref_src = os.path.join(SAGE_DOC, 'en', 'reference') |
| 21 | ref_out = os.path.join(SAGE_DOC, 'output', 'html', 'en', 'reference') |
| 22 | intersphinx_mapping[ref_out] = None |
| 23 | |
| 24 | for doc in os.listdir(ref_src): |
| 25 | if os.path.exists(os.path.join(ref_src, doc, 'index.rst')): |
| 26 | intersphinx_mapping[os.path.join(ref_out, doc)] = None |
| 27 | |
18 | 28 | # General information about the project. |
19 | 29 | project = u"Sage Reference Manual" |
20 | 30 | name = "reference" |
… |
… |
|
50 | 60 | |
51 | 61 | #Ignore all .rst in the _sage subdirectory |
52 | 62 | exclude_trees = exclude_trees + ['_sage'] |
| 63 | |
| 64 | multidocs_is_master = True |
| 65 | |
| 66 | # List of subdocs |
| 67 | multidocs_subdoc_list = [ |
| 68 | 'algebras', |
| 69 | 'arithgroup', |
| 70 | 'calculus', |
| 71 | 'categories', |
| 72 | 'cmd', |
| 73 | 'coding', |
| 74 | 'coercion', |
| 75 | 'combinat', |
| 76 | 'constants', |
| 77 | 'cryptography', |
| 78 | 'databases', |
| 79 | 'finance', |
| 80 | 'function_fields', |
| 81 | 'functions', |
| 82 | 'games', |
| 83 | 'geometry', |
| 84 | 'graphs', |
| 85 | 'groups', |
| 86 | 'hecke', |
| 87 | 'history_and_license', |
| 88 | 'homology', |
| 89 | 'interfaces', |
| 90 | 'lfunctions', |
| 91 | 'libs', |
| 92 | 'logic', |
| 93 | 'matrices', |
| 94 | 'misc', |
| 95 | 'modabvar', |
| 96 | 'modfrm', |
| 97 | 'modmisc', |
| 98 | 'modsym', |
| 99 | 'modules', |
| 100 | 'monoids', |
| 101 | 'notebook', |
| 102 | 'number_fields', |
| 103 | 'numerical', |
| 104 | 'padics', |
| 105 | 'parallel', |
| 106 | 'plane_curves', |
| 107 | 'plot3d', |
| 108 | 'plotting', |
| 109 | 'polynomial_rings', |
| 110 | 'power_series', |
| 111 | 'probability', |
| 112 | 'quadratic_forms', |
| 113 | 'quat_algebras', |
| 114 | 'rings', |
| 115 | 'rings_numerical', |
| 116 | 'rings_standard', |
| 117 | 'schemes', |
| 118 | 'semirings', |
| 119 | 'stats', |
| 120 | 'structure', |
| 121 | 'tensor' |
| 122 | ] |
| 123 | |
| 124 | # List of directories, relative to source directory, that shouldn't be |
| 125 | # searched for source files. |
| 126 | exclude_trees += multidocs_subdoc_list + [ |
| 127 | 'sage', 'sagenb', 'options' |
| 128 | ] |
-
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 | |
| 14 | import sys, os |
| 15 | sys.path.append(os.environ['SAGE_DOC']) |
| 16 | from common.conf import * |
| 17 | |
| 18 | # settings for the intersphinx extension: |
| 19 | |
| 20 | ref_src = os.path.join(SAGE_DOC, 'en', 'reference') |
| 21 | ref_out = os.path.join(SAGE_DOC, 'output', 'html', 'en', 'reference') |
| 22 | intersphinx_mapping[ref_out] = None |
| 23 | |
| 24 | for doc in os.listdir(ref_src): |
| 25 | if os.path.exists(os.path.join(ref_src, doc, 'index.rst')): |
| 26 | intersphinx_mapping[os.path.join(ref_out, doc)] = None |
| 27 | |
| 28 | # We use the main document's title, if we can find it. |
| 29 | rst_file = open('index.rst', 'r') |
| 30 | rst_lines = rst_file.read().splitlines() |
| 31 | rst_file.close() |
| 32 | |
| 33 | title = u'' |
| 34 | for i in xrange(len(rst_lines)): |
| 35 | if rst_lines[i].startswith('==') and i > 0: |
| 36 | title = rst_lines[i-1].strip() |
| 37 | break |
| 38 | |
| 39 | # Otherwise, we use this directory's name. |
| 40 | name = os.path.basename(os.path.abspath('.')) |
| 41 | if not title: |
| 42 | title = name.capitalize() |
| 43 | title = title.replace(u'`', u'$') |
| 44 | |
| 45 | # General information about the project. |
| 46 | project = u'Sage Reference Manual: ' + title |
| 47 | |
| 48 | # The name for this set of Sphinx documents. If None, it defaults to |
| 49 | # "<project> v<release> documentation". |
| 50 | html_title = u'Sage Reference Manual v' + release + ': ' + title |
| 51 | |
| 52 | # A shorter title for the navigation bar. Default is the same as html_title. |
| 53 | html_short_title = title |
| 54 | |
| 55 | # HTML theme (e.g., 'default', 'sphinxdoc'). The pages for the |
| 56 | # reference manual use a custom theme, a slight variant on the 'sage' |
| 57 | # theme, to set the links in the top line. |
| 58 | html_theme = 'sageref' |
| 59 | |
| 60 | # Output file base name for HTML help builder. |
| 61 | htmlhelp_basename = name |
| 62 | |
| 63 | # Grouping the document tree into LaTeX files. List of tuples (source |
| 64 | # start file, target name, title, author, document class |
| 65 | # [howto/manual]). |
| 66 | latex_documents = [ |
| 67 | ('index', name + '.tex', project, u'The Sage Development Team', 'manual') |
| 68 | ] |
| 69 | |
| 70 | #Ignore all .rst in the _sage subdirectory |
| 71 | exclude_trees = exclude_trees + ['_sage'] |
| 72 | |
| 73 | multidocs_is_master = False |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/constants.rst b/doc/en/reference/constants/index.rst
rename from doc/en/reference/constants.rst
rename to doc/en/reference/constants/index.rst
old
|
new
|
|
6 | 6 | |
7 | 7 | sage/symbolic/constants |
8 | 8 | sage/symbolic/constants_c |
| 9 | |
| 10 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/cryptography.rst b/doc/en/reference/cryptography/index.rst
rename from doc/en/reference/cryptography.rst
rename to doc/en/reference/cryptography/index.rst
old
|
new
|
|
27 | 27 | sage/crypto/mq/sbox |
28 | 28 | |
29 | 29 | sage/crypto/lattice |
| 30 | |
| 31 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/databases.rst b/doc/en/reference/databases/index.rst
rename from doc/en/reference/databases.rst
rename to doc/en/reference/databases/index.rst
old
|
new
|
|
1 | | .. _ch:databases: |
2 | | |
3 | 1 | Databases |
4 | 2 | ========= |
5 | 3 | |
… |
… |
|
60 | 58 | sage/databases/conway |
61 | 59 | sage/databases/odlyzko |
62 | 60 | sage/databases/symbolic_data |
| 61 | |
| 62 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/finance/conf.py b/doc/en/reference/finance/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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/finance.rst b/doc/en/reference/finance/index.rst
rename from doc/en/reference/finance.rst
rename to doc/en/reference/finance/index.rst
old
|
new
|
|
9 | 9 | sage/finance/fractal |
10 | 10 | sage/finance/markov_multifractal |
11 | 11 | |
| 12 | |
| 13 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/footer.txt b/doc/en/reference/footer.txt
new file mode 100644
-
|
+
|
|
| 1 | Indices and Tables |
| 2 | ================== |
| 3 | |
| 4 | * `Index <../genindex.html>`_ |
| 5 | * `Module Index <../py-modindex.html>`_ |
| 6 | * `Search Page <../search.html>`_ |
-
diff --git a/doc/en/reference/function_fields/conf.py b/doc/en/reference/function_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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/function_fields.rst b/doc/en/reference/function_fields/index.rst
rename from doc/en/reference/function_fields.rst
rename to doc/en/reference/function_fields/index.rst
old
|
new
|
|
10 | 10 | sage/rings/function_field/function_field_ideal |
11 | 11 | sage/rings/function_field/maps |
12 | 12 | sage/rings/function_field/constructor |
| 13 | |
| 14 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/functions.rst b/doc/en/reference/functions/index.rst
rename from doc/en/reference/functions.rst
rename to doc/en/reference/functions/index.rst
old
|
new
|
|
15 | 15 | sage/functions/wigner |
16 | 16 | sage/functions/generalized |
17 | 17 | sage/functions/prime_pi |
| 18 | |
| 19 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/games.rst b/doc/en/reference/games/index.rst
rename from doc/en/reference/games.rst
rename to doc/en/reference/games/index.rst
old
|
new
|
|
2 | 2 | ===== |
3 | 3 | |
4 | 4 | Sage includes a sophisticated Sudoku solver. It also has a |
5 | | Rubik's cube solver (see :ref:`Rubik's Cube Group <sec-rubik>`). |
| 5 | Rubik's cube solver (see |
| 6 | `Rubik's Cube Group <../groups/sage/groups/perm_gps/cubegroup.html>`_). |
6 | 7 | |
7 | 8 | .. toctree:: |
8 | 9 | :maxdepth: 2 |
9 | 10 | |
10 | 11 | sage/games/sudoku |
11 | 12 | sage/games/quantumino |
| 13 | |
| 14 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/geometry.rst b/doc/en/reference/geometry/index.rst
rename from doc/en/reference/geometry.rst
rename to doc/en/reference/geometry/index.rst
old
|
new
|
|
36 | 36 | sage/geometry/triangulation/base |
37 | 37 | sage/geometry/triangulation/element |
38 | 38 | |
| 39 | |
| 40 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/graphs.rst b/doc/en/reference/graphs/index.rst
rename from doc/en/reference/graphs.rst
rename to doc/en/reference/graphs/index.rst
old
|
new
|
|
65 | 65 | sage/graphs/graph_latex |
66 | 66 | sage/graphs/graph_list |
67 | 67 | sage/graphs/hyperbolicity |
| 68 | |
| 69 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/media/graphs/cycle.png b/doc/en/reference/graphs/media/cycle.png
rename from doc/en/reference/media/graphs/cycle.png
rename to doc/en/reference/graphs/media/cycle.png
diff --git a/doc/en/reference/media/graphs/heawood-graph-latex.png b/doc/en/reference/graphs/media/heawood-graph-latex.png
rename from doc/en/reference/media/graphs/heawood-graph-latex.png
rename to doc/en/reference/graphs/media/heawood-graph-latex.png
diff --git a/doc/en/reference/media/graphs/square.png b/doc/en/reference/graphs/media/square.png
rename from doc/en/reference/media/graphs/square.png
rename to doc/en/reference/graphs/media/square.png
diff --git a/doc/en/reference/media/graphs/structure.png b/doc/en/reference/graphs/media/structure.png
rename from doc/en/reference/media/graphs/structure.png
rename to doc/en/reference/graphs/media/structure.png
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/groups.rst b/doc/en/reference/groups/index.rst
rename from doc/en/reference/groups.rst
rename to doc/en/reference/groups/index.rst
old
|
new
|
|
1 | | .. _ch:groups: |
2 | | |
3 | 1 | Groups |
4 | 2 | ====== |
5 | 3 | |
… |
… |
|
40 | 38 | sage/groups/misc_gps/misc_groups |
41 | 39 | |
42 | 40 | |
| 41 | |
| 42 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/hecke.rst b/doc/en/reference/hecke/index.rst
rename from doc/en/reference/hecke.rst
rename to doc/en/reference/hecke/index.rst
old
|
new
|
|
1 | | .. _ch:hecke: |
2 | | |
3 | 1 | General Hecke Algebras and Hecke Modules |
4 | 2 | ======================================== |
5 | 3 | |
6 | 4 | This chapter describes the basic functionality for modules over Hecke |
7 | 5 | 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`. |
| 6 | examples of Hecke algebras that use this functionality see `Modular |
| 7 | Symbols <../modsym/index.html>`_ and `Modular Forms |
| 8 | <../modfrm/index.html>`_. |
10 | 9 | |
11 | 10 | .. toctree:: |
12 | 11 | :maxdepth: 2 |
… |
… |
|
22 | 21 | |
23 | 22 | sage/modular/hecke/algebra |
24 | 23 | sage/modular/hecke/hecke_operator |
| 24 | |
| 25 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/history_and_license.rst b/doc/en/reference/history_and_license/index.rst
rename from doc/en/reference/history_and_license.rst
rename to doc/en/reference/history_and_license/index.rst
old
|
new
|
|
391 | 391 | to do, use the GNU Library General Public License instead of this |
392 | 392 | License. |
393 | 393 | |
| 394 | |
| 395 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/homology.rst b/doc/en/reference/homology/index.rst
rename from doc/en/reference/homology.rst
rename to doc/en/reference/homology/index.rst
old
|
new
|
|
22 | 22 | sage/homology/cubical_complex |
23 | 23 | sage/homology/cell_complex |
24 | 24 | sage/interfaces/chomp |
| 25 | |
| 26 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/media/homology/klein.png b/doc/en/reference/homology/media/klein.png
rename from doc/en/reference/media/homology/klein.png
rename to doc/en/reference/homology/media/klein.png
diff --git a/doc/en/reference/media/homology/rp2.png b/doc/en/reference/homology/media/rp2.png
rename from doc/en/reference/media/homology/rp2.png
rename to doc/en/reference/homology/media/rp2.png
diff --git a/doc/en/reference/media/homology/simplices.png b/doc/en/reference/homology/media/simplices.png
rename from doc/en/reference/media/homology/simplices.png
rename to doc/en/reference/homology/media/simplices.png
diff --git a/doc/en/reference/media/homology/torus.png b/doc/en/reference/homology/media/torus.png
rename from doc/en/reference/media/homology/torus.png
rename to doc/en/reference/homology/media/torus.png
diff --git a/doc/en/reference/media/homology/torus_labelled.png b/doc/en/reference/homology/media/torus_labelled.png
rename from doc/en/reference/media/homology/torus_labelled.png
rename to doc/en/reference/homology/media/torus_labelled.png
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. |
4 | | |
5 | | .. _ch:intro: |
6 | | |
7 | 1 | Welcome to Sage's Reference Manual! |
8 | 2 | ================================================= |
9 | 3 | |
… |
… |
|
20 | 14 | Sage, and should produce exactly the same output as in this manual, |
21 | 15 | except for line breaks. |
22 | 16 | |
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. |
| 17 | The Sage command line is briefly described in :doc:`The Sage Command Line |
| 18 | <cmd/index>`, which lists the command line options. For more |
| 19 | details about the command line, see the Sage tutorial. |
26 | 20 | |
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. |
| 21 | The Sage graphical user interface is described in :doc:`The Sage Notebook |
| 22 | <notebook/index>`. This graphical user interface is unusual in |
| 23 | that it operates via your web browser. It provides you with Sage |
| 24 | worksheets that you can edit and evaluate, which contain scalable |
| 25 | typeset mathematics and beautiful antialiased images. |
32 | 26 | |
33 | 27 | This work is licensed under a `Creative Commons Attribution-Share Alike |
34 | 28 | 3.0 License`__. |
… |
… |
|
37 | 31 | |
38 | 32 | Enjoy Sage! |
39 | 33 | |
| 34 | Table of Contents |
| 35 | ================= |
| 36 | |
| 37 | * :doc:`The Sage Command Line <cmd/index>` |
| 38 | * :doc:`The Sage Notebook <notebook/index>` |
| 39 | |
| 40 | Calculus, Plotting |
| 41 | ------------------ |
| 42 | |
| 43 | * :doc:`Symbolic Calculus <calculus/index>` |
| 44 | * :doc:`Constants <constants/index>` |
| 45 | * :doc:`Functions <functions/index>` |
| 46 | * :doc:`2D Graphics <plotting/index>` |
| 47 | * :doc:`3D Graphics <plot3d/index>` |
| 48 | |
| 49 | Combinatorics, Discrete Mathematics |
| 50 | ----------------------------------- |
| 51 | |
| 52 | * :doc:`Combinatorics <combinat/index>` |
| 53 | * :doc:`Graph Theory <graphs/index>` |
| 54 | |
| 55 | Structures, Coercion, Categories |
| 56 | -------------------------------- |
| 57 | |
| 58 | * :doc:`Basic Structures <structure/index>` |
| 59 | * :doc:`Coercion <coercion/index>` |
| 60 | * :doc:`Category Theory and Categories <categories/index>` |
| 61 | |
| 62 | Rings, Fields, Algebras |
| 63 | ----------------------- |
| 64 | |
| 65 | * :doc:`General Rings, Ideals, and Morphisms <rings/index>` |
| 66 | * :doc:`Standard Commutative Rings <rings_standard/index>` |
| 67 | * :doc:`Fixed and Arbitrary Precision Numerical Fields <rings_numerical/index>` |
| 68 | * :doc:`Algebraic Number Fields <number_fields/index>` |
| 69 | * :doc:`Function Fields <function_fields/index>` |
| 70 | * :doc:`p-Adics <padics/index>` |
| 71 | * :doc:`Polynomial Rings <polynomial_rings/index>` |
| 72 | * :doc:`Power Series Rings <power_series/index>` |
| 73 | * :doc:`Standard Semirings <semirings/index>` |
| 74 | * :doc:`Algebras <algebras/index>` |
| 75 | * :doc:`Quaternion Algebras <quat_algebras/index>` |
| 76 | |
| 77 | Groups, Monoids, Matrices, Modules |
| 78 | ---------------------------------- |
| 79 | |
| 80 | * :doc:`Groups <groups/index>` |
| 81 | * :doc:`Monoids <monoids/index>` |
| 82 | * :doc:`Matrices and Spaces of Matrices <matrices/index>` |
| 83 | * :doc:`Modules <modules/index>` |
| 84 | |
| 85 | Geometry and Topology |
| 86 | --------------------- |
| 87 | |
| 88 | * :doc:`Combinatorial Geometry <geometry/index>` |
| 89 | * :doc:`Cell Complexes and their Homology <homology/index>` |
| 90 | * :doc:`Differential Forms <tensor/index>` |
| 91 | |
| 92 | Number Theory, Algebraic Geometry |
| 93 | --------------------------------- |
| 94 | |
| 95 | * :doc:`Quadratic Forms <quadratic_forms/index>` |
| 96 | * :doc:`L-Functions <lfunctions/index>` |
| 97 | * :doc:`Schemes <schemes/index>` |
| 98 | * :doc:`Elliptic, Plane, and Hyperelliptic Curves <plane_curves/index>` |
| 99 | * :doc:`Arithmetic Subgroups of SL_2(Z) <arithgroup/index>` |
| 100 | * :doc:`General Hecke Algebras and Hecke Modules <hecke/index>` |
| 101 | * :doc:`Modular Symbols <modsym/index>` |
| 102 | * :doc:`Modular Forms <modfrm/index>` |
| 103 | * :doc:`Modular Abelian Varieties <modabvar/index>` |
| 104 | * :doc:`Miscellaneous Modular-Form-Related Modules <modmisc/index>` |
| 105 | |
| 106 | Miscellaneous Mathematics |
| 107 | ------------------------- |
| 108 | |
| 109 | * :doc:`Games <games/index>` |
| 110 | * :doc:`Symbolic Logic <logic/index>` |
| 111 | * :doc:`SAT solvers <sat/index>` |
| 112 | * :doc:`Cryptography <cryptography/index>` |
| 113 | * :doc:`Numerical Optimization <numerical/index>` |
| 114 | * :doc:`Probability <probability/index>` |
| 115 | * :doc:`Statistics <stats/index>` |
| 116 | * :doc:`Quantitative Finance <finance/index>` |
| 117 | * :doc:`Coding Theory <coding/index>` |
| 118 | |
| 119 | Interfaces, Databases, Miscellany |
| 120 | --------------------------------- |
| 121 | |
| 122 | * :doc:`Interpreter Interfaces <interfaces/index>` |
| 123 | * :doc:`C/C++ Library Interfaces <libs/index>` |
| 124 | * :doc:`Databases <databases/index>` |
| 125 | * :doc:`Parallel Computing <parallel/index>` |
| 126 | * :doc:`Miscellaneous <misc/index>` |
| 127 | |
| 128 | Other |
| 129 | ----- |
| 130 | |
40 | 131 | .. toctree:: |
41 | 132 | :maxdepth: 2 |
42 | 133 | |
43 | | cmd |
44 | | notebook |
45 | | calculus |
46 | | plotting |
47 | | plot3d |
48 | | games |
49 | | graphs |
50 | | constants |
51 | | functions |
52 | | parallel |
53 | | structure |
54 | | coercion |
55 | | misc |
56 | | databases |
57 | | interfaces |
58 | | libs |
59 | | cryptography |
60 | | logic |
61 | | sat |
62 | | combinat/index |
63 | | numerical |
64 | | probability |
65 | | stats |
66 | | finance |
67 | | categories |
68 | | monoids |
69 | | groups |
70 | | rings |
71 | | rings_standard |
72 | | rings_numerical |
73 | | number_fields |
74 | | function_fields |
75 | | padics |
76 | | polynomial_rings |
77 | | power_series |
78 | | semirings |
79 | | algebras |
80 | | quadratic_forms |
81 | | quat_algebras |
82 | | matrices |
83 | | modules |
84 | | geometry |
85 | | homology |
86 | | lfunctions |
87 | | schemes |
88 | | plane_curves |
89 | | coding |
90 | | arithgroup |
91 | | hecke |
92 | | modsym |
93 | | modfrm |
94 | | modabvar |
95 | | modmisc |
96 | | tensor |
97 | | |
98 | 134 | todolist |
99 | 135 | |
100 | | history_and_license |
| 136 | * :doc:`History and License <history_and_license/index>` |
101 | 137 | |
102 | | Indices and tables |
103 | | ================== |
| 138 | Indices and Tables |
| 139 | ------------------ |
104 | 140 | |
105 | 141 | * :ref:`genindex` |
106 | 142 | * :ref:`modindex` |
107 | 143 | * :ref:`search` |
108 | | |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/interfaces.rst b/doc/en/reference/interfaces/index.rst
rename from doc/en/reference/interfaces.rst
rename to doc/en/reference/interfaces/index.rst
old
|
new
|
|
1 | | .. _ch:interfaces: |
2 | | |
3 | 1 | Interpreter Interfaces |
4 | 2 | ====================== |
5 | 3 | |
6 | 4 | Sage provides a unified interface to the best computational |
7 | 5 | software. This is accomplished using both C-libraries (see |
8 | | :ref:`ch:libraries`) and interpreter interfaces, which are |
| 6 | `C/C++ Library Interfaces <../libs/index.html>`_) |
| 7 | and interpreter interfaces, which are |
9 | 8 | implemented using pseudo-tty's, system files, etc. This chapter is |
10 | 9 | about these interpreter interfaces. |
11 | 10 | |
… |
… |
|
20 | 19 | There is overhead associated with each call to one of these |
21 | 20 | systems. For example, computing ``2+2`` thousands of times using |
22 | 21 | the GAP interface will be slower than doing it directly in |
23 | | Sage. In contrast, the C-library interfaces of :ref:`ch:libraries` |
| 22 | Sage. In contrast, the C-library interfaces of |
| 23 | `C/C++ Library Interfaces <../libs/index.html>`_ |
24 | 24 | incur less overhead. |
25 | 25 | |
26 | 26 | |
… |
… |
|
81 | 81 | sage/interfaces/singular |
82 | 82 | sage/interfaces/tachyon |
83 | 83 | sage/interfaces/jmoldata |
| 84 | |
| 85 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/lfunctions.rst b/doc/en/reference/lfunctions/index.rst
rename from doc/en/reference/lfunctions.rst
rename to doc/en/reference/lfunctions/index.rst
old
|
new
|
|
9 | 9 | |
10 | 10 | sage/lfunctions/lcalc |
11 | 11 | sage/lfunctions/sympow |
12 | | sage/lfunctions/dokchitser |
13 | | No newline at end of file |
| 12 | sage/lfunctions/dokchitser |
| 13 | |
| 14 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/libs.rst b/doc/en/reference/libs/index.rst
rename from doc/en/reference/libs.rst
rename to doc/en/reference/libs/index.rst
old
|
new
|
|
1 | | .. _ch:libraries: |
2 | | |
3 | 1 | C/C++ Library Interfaces |
4 | 2 | ======================== |
5 | 3 | |
… |
… |
|
38 | 36 | sage/libs/singular/function |
39 | 37 | sage/libs/singular/option |
40 | 38 | sage/libs/ppl |
| 39 | |
| 40 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/logic/conf.py b/doc/en/reference/logic/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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/logic.rst b/doc/en/reference/logic/index.rst
rename from doc/en/reference/logic.rst
rename to doc/en/reference/logic/index.rst
old
|
new
|
|
6 | 6 | |
7 | 7 | sage/logic/propcalc |
8 | 8 | sage/logic/booleval |
| 9 | |
| 10 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/matrices.rst b/doc/en/reference/matrices/index.rst
rename from doc/en/reference/matrices.rst
rename to doc/en/reference/matrices/index.rst
old
|
new
|
|
1 | | .. _ch:matrices: |
2 | | |
3 | 1 | Matrices and Spaces of Matrices |
4 | 2 | =============================== |
5 | 3 | |
… |
… |
|
90 | 88 | sage/matrix/operation_table |
91 | 89 | |
92 | 90 | sage/matrix/benchmark |
| 91 | |
| 92 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/misc.rst b/doc/en/reference/misc/index.rst
rename from doc/en/reference/misc.rst
rename to doc/en/reference/misc/index.rst
old
|
new
|
|
1 | | .. _ch:misc: |
2 | | |
3 | 1 | Miscellaneous |
4 | 2 | ============= |
5 | 3 | |
… |
… |
|
58 | 56 | .. toctree:: |
59 | 57 | :maxdepth: 2 |
60 | 58 | |
61 | | other/sagetex |
| 59 | sagetex |
62 | 60 | sage/misc/latex |
63 | 61 | sage/misc/latex_macros |
64 | 62 | |
… |
… |
|
71 | 69 | sage/misc/lazy_attribute |
72 | 70 | sage/misc/lazy_format |
73 | 71 | sage/misc/lazy_import |
| 72 | |
| 73 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/other/sagetex.rst b/doc/en/reference/misc/sagetex.rst
rename from doc/en/reference/other/sagetex.rst
rename to doc/en/reference/misc/sagetex.rst
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/modabvar.rst b/doc/en/reference/modabvar/index.rst
rename from doc/en/reference/modabvar.rst
rename to doc/en/reference/modabvar/index.rst
old
|
new
|
|
1 | | .. _ch:modabvar: |
2 | | |
3 | 1 | Modular Abelian Varieties |
4 | 2 | ========================= |
5 | 3 | |
… |
… |
|
17 | 15 | sage/modular/abvar/morphism |
18 | 16 | sage/modular/abvar/abvar_newform |
19 | 17 | sage/modular/abvar/lseries |
| 18 | |
| 19 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/modfrm.rst b/doc/en/reference/modfrm/index.rst
rename from doc/en/reference/modfrm.rst
rename to doc/en/reference/modfrm/index.rst
old
|
new
|
|
1 | | .. _ch:modular: |
2 | | |
3 | 1 | Modular Forms |
4 | 2 | ============= |
5 | 3 | |
… |
… |
|
26 | 24 | sage/modular/modform/half_integral |
27 | 25 | sage/modular/modform/find_generators |
28 | 26 | |
| 27 | |
| 28 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/modmisc.rst b/doc/en/reference/modmisc/index.rst
rename from doc/en/reference/modmisc.rst
rename to doc/en/reference/modmisc/index.rst
old
|
new
|
|
1 | | .. _ch:modmisc: |
2 | | |
3 | 1 | Miscellaneous Modular-Form-Related Modules |
4 | 2 | ========================================== |
5 | 3 | |
… |
… |
|
25 | 23 | |
26 | 24 | sage/modular/cusps_nf |
27 | 25 | |
| 26 | |
| 27 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/modsym.rst b/doc/en/reference/modsym/index.rst
rename from doc/en/reference/modsym.rst
rename to doc/en/reference/modsym/index.rst
old
|
new
|
|
1 | | .. _ch:modsym: |
2 | | |
3 | 1 | Modular Symbols |
4 | 2 | =============== |
5 | 3 | |
… |
… |
|
28 | 26 | |
29 | 27 | sage/modular/modsym/p1list_nf |
30 | 28 | |
| 29 | |
| 30 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/modules.rst b/doc/en/reference/modules/index.rst
rename from doc/en/reference/modules.rst
rename to doc/en/reference/modules/index.rst
old
|
new
|
|
1 | | .. _ch:modules: |
2 | | |
3 | 1 | Modules |
4 | 2 | ======= |
5 | 3 | |
… |
… |
|
25 | 23 | sage/modules/fg_pid/fgp_module |
26 | 24 | sage/modules/fg_pid/fgp_element |
27 | 25 | sage/modules/fg_pid/fgp_morphism |
| 26 | |
| 27 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/monoids.rst b/doc/en/reference/monoids/index.rst
rename from doc/en/reference/monoids.rst
rename to doc/en/reference/monoids/index.rst
old
|
new
|
|
1 | | .. _ch:monoids: |
2 | | |
3 | 1 | Monoids |
4 | 2 | ======= |
5 | 3 | |
… |
… |
|
16 | 14 | sage/monoids/free_abelian_monoid_element |
17 | 15 | sage/monoids/string_monoid_element |
18 | 16 | sage/monoids/string_monoid |
| 17 | |
| 18 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/notebook.rst b/doc/en/reference/notebook/index.rst
rename from doc/en/reference/notebook.rst
rename to doc/en/reference/notebook/index.rst
old
|
new
|
|
1 | | .. _ch:notebook: |
2 | | |
3 | 1 | The Sage Notebook |
4 | 2 | ================= |
5 | 3 | |
… |
… |
|
55 | 53 | SKIP sagenb/interfaces/worksheet_process |
56 | 54 | SKIP sagenb/interfaces/reference |
57 | 55 | SKIP sagenb/interfaces/expect |
| 56 | |
| 57 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/number_fields.rst b/doc/en/reference/number_fields/index.rst
rename from doc/en/reference/number_fields.rst
rename to doc/en/reference/number_fields/index.rst
old
|
new
|
|
22 | 22 | sage/rings/number_field/totallyreal |
23 | 23 | sage/rings/number_field/totallyreal_rel |
24 | 24 | sage/rings/qqbar |
| 25 | |
| 26 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/numerical.rst b/doc/en/reference/numerical/index.rst
rename from doc/en/reference/numerical.rst
rename to doc/en/reference/numerical/index.rst
old
|
new
|
|
23 | 23 | Programming |
24 | 24 | <http://www.sagemath.org/doc/thematic_tutorials/linear_programming.html>`_. |
25 | 25 | |
| 26 | |
| 27 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/padics.rst b/doc/en/reference/padics/index.rst
rename from doc/en/reference/padics.rst
rename to doc/en/reference/padics/index.rst
old
|
new
|
|
42 | 42 | sage/rings/padics/pow_computer_ext |
43 | 43 | sage/rings/padics/padic_printing |
44 | 44 | sage/rings/padics/precision_error |
45 | | sage/rings/padics/misc |
46 | | No newline at end of file |
| 45 | sage/rings/padics/misc |
| 46 | |
| 47 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/parallel/conf.py b/doc/en/reference/parallel/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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/parallel.rst b/doc/en/reference/parallel/index.rst
rename from doc/en/reference/parallel.rst
rename to doc/en/reference/parallel/index.rst
old
|
new
|
|
1 | | .. _ch:parallel: |
2 | | |
3 | 1 | Parallel Computing |
4 | 2 | ================== |
5 | 3 | |
… |
… |
|
11 | 9 | sage/parallel/use_fork |
12 | 10 | sage/parallel/multiprocessing_sage |
13 | 11 | sage/parallel/ncpus |
| 12 | |
| 13 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/plane_curves.rst b/doc/en/reference/plane_curves/index.rst
rename from doc/en/reference/plane_curves.rst
rename to doc/en/reference/plane_curves/index.rst
old
|
new
|
|
1 | | .. _ch:plane-curves: |
2 | | |
3 | 1 | Elliptic and Plane Curves |
4 | 2 | ========================= |
5 | 3 | |
… |
… |
|
46 | 44 | sage/schemes/elliptic_curves/cm |
47 | 45 | |
48 | 46 | |
49 | | .. _ch:jacobians: |
| 47 | |
50 | 48 | |
51 | 49 | Hyperelliptic Curves |
52 | 50 | ==================== |
… |
… |
|
65 | 63 | sage/schemes/hyperelliptic_curves/jacobian_morphism |
66 | 64 | |
67 | 65 | sage/interfaces/genus2reduction |
| 66 | |
| 67 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/plot3d.rst b/doc/en/reference/plot3d/index.rst
rename from doc/en/reference/plot3d.rst
rename to doc/en/reference/plot3d/index.rst
old
|
new
|
|
17 | 17 | sage/plot/plot3d/base |
18 | 18 | sage/plot/plot3d/tachyon |
19 | 19 | sage/plot/plot3d/texture |
| 20 | |
| 21 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/plotting.rst b/doc/en/reference/plotting/index.rst
rename from doc/en/reference/plotting.rst
rename to doc/en/reference/plotting/index.rst
old
|
new
|
|
30 | 30 | sage/plot/colors |
31 | 31 | sage/plot/hyperbolic_arc |
32 | 32 | sage/plot/hyperbolic_triangle |
| 33 | |
| 34 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/polynomial_rings.rst b/doc/en/reference/polynomial_rings/index.rst
rename from doc/en/reference/polynomial_rings.rst
rename to doc/en/reference/polynomial_rings/index.rst
old
|
new
|
|
1 | | |
2 | | .. _ch:polynomial-rings: |
3 | | |
4 | 1 | Polynomial Rings |
5 | 2 | ================ |
6 | 3 | |
… |
… |
|
23 | 20 | |
24 | 21 | sage/rings/polynomial/convolution |
25 | 22 | sage/rings/polynomial/cyclotomic |
| 23 | |
| 24 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/polynomial_rings_infinite.rst b/doc/en/reference/polynomial_rings/polynomial_rings_infinite.rst
rename from doc/en/reference/polynomial_rings_infinite.rst
rename to doc/en/reference/polynomial_rings/polynomial_rings_infinite.rst
diff --git a/doc/en/reference/polynomial_rings_laurent.rst b/doc/en/reference/polynomial_rings/polynomial_rings_laurent.rst
rename from doc/en/reference/polynomial_rings_laurent.rst
rename to doc/en/reference/polynomial_rings/polynomial_rings_laurent.rst
diff --git a/doc/en/reference/polynomial_rings_multivar.rst b/doc/en/reference/polynomial_rings/polynomial_rings_multivar.rst
rename from doc/en/reference/polynomial_rings_multivar.rst
rename to doc/en/reference/polynomial_rings/polynomial_rings_multivar.rst
diff --git a/doc/en/reference/polynomial_rings_toy_implementations.rst b/doc/en/reference/polynomial_rings/polynomial_rings_toy_implementations.rst
rename from doc/en/reference/polynomial_rings_toy_implementations.rst
rename to doc/en/reference/polynomial_rings/polynomial_rings_toy_implementations.rst
diff --git a/doc/en/reference/polynomial_rings_univar.rst b/doc/en/reference/polynomial_rings/polynomial_rings_univar.rst
rename from doc/en/reference/polynomial_rings_univar.rst
rename to doc/en/reference/polynomial_rings/polynomial_rings_univar.rst
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/power_series.rst b/doc/en/reference/power_series/index.rst
rename from doc/en/reference/power_series.rst
rename to doc/en/reference/power_series/index.rst
old
|
new
|
|
1 | | .. _ch:power-series: |
2 | | |
3 | 1 | Power Series Rings |
4 | 2 | ================== |
5 | 3 | |
… |
… |
|
15 | 13 | |
16 | 14 | sage/rings/laurent_series_ring |
17 | 15 | sage/rings/laurent_series_ring_element |
| 16 | |
| 17 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/probability.rst b/doc/en/reference/probability/index.rst
rename from doc/en/reference/probability.rst
rename to doc/en/reference/probability/index.rst
old
|
new
|
|
6 | 6 | |
7 | 7 | sage/gsl/probability_distribution |
8 | 8 | sage/probability/random_variable |
| 9 | |
| 10 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/quadratic_forms/conf.py b/doc/en/reference/quadratic_forms/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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/quadratic_forms.rst b/doc/en/reference/quadratic_forms/index.rst
rename from doc/en/reference/quadratic_forms.rst
rename to doc/en/reference/quadratic_forms/index.rst
old
|
new
|
|
1 | | .. _ch:quadratic_forms: |
2 | | |
3 | 1 | Quadratic Forms |
4 | 2 | =============== |
5 | 3 | |
… |
… |
|
12 | 10 | sage/quadratic_forms/random_quadraticform |
13 | 11 | sage/quadratic_forms/special_values |
14 | 12 | sage/quadratic_forms/count_local_2 |
| 13 | |
| 14 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/quat_algebras.rst b/doc/en/reference/quat_algebras/index.rst
rename from doc/en/reference/quat_algebras.rst
rename to doc/en/reference/quat_algebras/index.rst
old
|
new
|
|
1 | | .. _ch:quat-algebras: |
2 | | |
3 | 1 | Quaternion Algebras |
4 | 2 | =================== |
5 | 3 | |
… |
… |
|
9 | 7 | sage/algebras/quatalg/quaternion_algebra |
10 | 8 | sage/algebras/quatalg/quaternion_algebra_element |
11 | 9 | |
| 10 | |
| 11 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/rings.rst b/doc/en/reference/rings/index.rst
rename from doc/en/reference/rings.rst
rename to doc/en/reference/rings/index.rst
old
|
new
|
|
1 | | .. _ch:rings: |
2 | | |
3 | 1 | General Rings, Ideals, and Morphisms |
4 | 2 | ==================================== |
5 | 3 | |
… |
… |
|
18 | 16 | sage/rings/quotient_ring |
19 | 17 | sage/rings/quotient_ring_element |
20 | 18 | sage/rings/invariant_theory |
| 19 | |
| 20 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/rings_numerical.rst b/doc/en/reference/rings_numerical/index.rst
rename from doc/en/reference/rings_numerical.rst
rename to doc/en/reference/rings_numerical/index.rst
old
|
new
|
|
29 | 29 | sage/rings/complex_number |
30 | 30 | sage/rings/complex_mpc |
31 | 31 | sage/rings/real_mpfi |
| 32 | |
| 33 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/rings_standard.rst b/doc/en/reference/rings_standard/index.rst
rename from doc/en/reference/rings_standard.rst
rename to doc/en/reference/rings_standard/index.rst
old
|
new
|
|
17 | 17 | sage/rings/finite_rings/element_base |
18 | 18 | |
19 | 19 | sage/rings/universal_cyclotomic_field/universal_cyclotomic_field |
| 20 | |
| 21 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/sat/conf.py b/doc/en/reference/sat/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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/sat.rst b/doc/en/reference/sat/index.rst
rename from doc/en/reference/sat.rst
rename to doc/en/reference/sat/index.rst
old
|
new
|
|
136 | 136 | .. [CMS] http://www.msoos.org/cryptominisat2/ |
137 | 137 | |
138 | 138 | .. [SG09] http://www.satcompetition.org/2009/format-benchmarks2009.html |
| 139 | |
| 140 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/schemes.rst b/doc/en/reference/schemes/index.rst
rename from doc/en/reference/schemes.rst
rename to doc/en/reference/schemes/index.rst
old
|
new
|
|
1 | | .. _ch:schemes: |
2 | | |
3 | 1 | Schemes |
4 | 2 | ======= |
5 | 3 | |
… |
… |
|
34 | 32 | sage/schemes/toric/ideal |
35 | 33 | sage/schemes/toric/morphism |
36 | 34 | |
| 35 | |
| 36 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/semirings/conf.py b/doc/en/reference/semirings/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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/semirings.rst b/doc/en/reference/semirings/index.rst
rename from doc/en/reference/semirings.rst
rename to doc/en/reference/semirings/index.rst
old
|
new
|
|
5 | 5 | :maxdepth: 2 |
6 | 6 | |
7 | 7 | sage/rings/semirings/non_negative_integer_semiring |
| 8 | |
| 9 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/stats/conf.py b/doc/en/reference/stats/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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/stats.rst b/doc/en/reference/stats/index.rst
rename from doc/en/reference/stats.rst
rename to doc/en/reference/stats/index.rst
old
|
new
|
|
11 | 11 | sage/stats/hmm/distributions |
12 | 12 | sage/stats/hmm/util |
13 | 13 | |
| 14 | |
| 15 | .. include:: ../footer.txt |
-
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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/structure.rst b/doc/en/reference/structure/index.rst
rename from doc/en/reference/structure.rst
rename to doc/en/reference/structure/index.rst
old
|
new
|
|
37 | 37 | |
38 | 38 | sage/structure/parent |
39 | 39 | |
| 40 | |
| 41 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/tensor/conf.py b/doc/en/reference/tensor/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. |
| 13 | import sys |
| 14 | sys.path.append('..') |
| 15 | from conf_sub import * |
-
diff --git a/doc/en/reference/tensor.rst b/doc/en/reference/tensor/index.rst
rename from doc/en/reference/tensor.rst
rename to doc/en/reference/tensor/index.rst
old
|
new
|
|
8 | 8 | sage/tensor/differential_forms |
9 | 9 | sage/tensor/differential_form_element |
10 | 10 | |
| 11 | |
| 12 | .. include:: ../footer.txt |
-
diff --git a/doc/en/reference/todolist.rst b/doc/en/reference/todolist.rst
a
|
b
|
|
15 | 15 | Rewrite the hand-written TODOs by using the correct ``.. todo::`` |
16 | 16 | markup. |
17 | 17 | |
| 18 | The combined to do list is only available in the html version of the reference manual. |
| 19 | |
18 | 20 | .. todolist:: |
-
diff --git a/doc/en/website/templates/index.html b/doc/en/website/templates/index.html
a
|
b
|
|
137 | 137 | <a class="biglink" href="reference/index.html"> |
138 | 138 | Reference Manual |
139 | 139 | </a> |
140 | | <a title="Download PDF" class="pdf" href="../../pdf/en/reference/reference.pdf"> |
| 140 | <a title="Link to PDF" class="pdf" href="../../pdf/en/reference/index.html"> |
141 | 141 | <img class="icon" src="_static/pdf.png"></img> |
142 | 142 | </a> |
143 | 143 | <br> |
-
diff --git a/sage/combinat/tutorial.py b/sage/combinat/tutorial.py
a
|
b
|
|
209 | 209 | |
210 | 210 | .. _figure-examples-catalan-trees: |
211 | 211 | |
212 | | .. figure:: ../../media/combinat/complete-binary-trees-4.png |
| 212 | .. figure:: ../../media/complete-binary-trees-4.png |
213 | 213 | :scale: 150 % |
214 | 214 | |
215 | 215 | Figure: The five complete binary trees with four leaves |
… |
… |
|
866 | 866 | |
867 | 867 | sage: C.unrank(20).plot() |
868 | 868 | |
869 | | .. image:: ../../media/combinat/a_poset.png |
| 869 | .. image:: ../../media/a_poset.png |
870 | 870 | |
871 | 871 | One can iterate through all graphs up to isomorphism. For example, |
872 | 872 | there are 34 simple graphs with 5 vertices:: |
… |
… |
|
878 | 878 | |
879 | 879 | sage: show(graphs(5, lambda G: G.size() <= 4)) |
880 | 880 | |
881 | | .. image:: ../../media/combinat/graphs-5.png |
| 881 | .. image:: ../../media/graphs-5.png |
882 | 882 | |
883 | 883 | However, the *set* ``C`` of these graphs is not yet available in |
884 | 884 | ``Sage``; as a result, the following commands are not yet |
… |
… |
|
1609 | 1609 | |
1610 | 1610 | .. _figure-prefix-tree-partitions: |
1611 | 1611 | |
1612 | | .. figure:: ../../media/combinat/prefix-tree-partitions-5.png |
| 1612 | .. figure:: ../../media/prefix-tree-partitions-5.png |
1613 | 1613 | :scale: 150% |
1614 | 1614 | |
1615 | 1615 | Figure: The prefix tree of the partitions of 5. |
… |
… |
|
1674 | 1674 | |
1675 | 1675 | .. _figure-polytope: |
1676 | 1676 | |
1677 | | .. figure:: ../../media/combinat/polytope.png |
| 1677 | .. figure:: ../../media/polytope.png |
1678 | 1678 | :scale: 75% |
1679 | 1679 | |
1680 | 1680 | Figure: The polytope `L` and its integer points, in cross-eyed stereographic perspective. |
… |
… |
|
1840 | 1840 | the ones that are still canonical [4]_. Recursively, one obtains all |
1841 | 1841 | the canonical graphs. |
1842 | 1842 | |
1843 | | .. figure:: ../../media/combinat/prefix-tree-graphs-4.png |
| 1843 | .. figure:: ../../media/prefix-tree-graphs-4.png |
1844 | 1844 | |
1845 | 1845 | Figure: The generation tree of simple graphs with `4` vertices. |
1846 | 1846 | |
-
diff --git a/sage/graphs/base/static_sparse_graph.pyx b/sage/graphs/base/static_sparse_graph.pyx
a
|
b
|
|
24 | 24 | Data structure |
25 | 25 | -------------- |
26 | 26 | |
27 | | .. image:: ../../../media/graphs/structure.png |
| 27 | .. image:: ../../../media/structure.png |
28 | 28 | |
29 | 29 | The data structure is actually pretty simple and compact. ``short_digraph`` has |
30 | 30 | three fields |
-
diff --git a/sage/graphs/graph_decompositions/graph_products.pyx b/sage/graphs/graph_decompositions/graph_products.pyx
a
|
b
|
|
64 | 64 | |
65 | 65 | A contradiction indeed. |
66 | 66 | |
67 | | .. image:: ../../../media/graphs/cycle.png |
| 67 | .. image:: ../../../media/cycle.png |
68 | 68 | |
69 | 69 | That means that, for instance, the edges of a triangle necessarily have the |
70 | 70 | same color. |
… |
… |
|
76 | 76 | In this situation, opposed edges necessarily have the same colors because of |
77 | 77 | the previous remark. |
78 | 78 | |
79 | | .. image:: ../../../media/graphs/square.png |
| 79 | .. image:: ../../../media/square.png |
80 | 80 | |
81 | 81 | **1st criterion** : As a corollary, we know that: |
82 | 82 | |
-
diff --git a/sage/graphs/graph_latex.py b/sage/graphs/graph_latex.py
a
|
b
|
|
16 | 16 | LaTeX Versions of Graphs |
17 | 17 | ------------------------------------- |
18 | 18 | |
19 | | .. image:: ../../media/graphs/heawood-graph-latex.png |
| 19 | .. image:: ../../media/heawood-graph-latex.png |
20 | 20 | :align: center |
21 | 21 | |
22 | 22 | Many mathematical objects in Sage have LaTeX representations, and graphs are no exception. For a graph ``g``, the command ``view(g)``, issued at the Sage command line or in the notebook, will create a graphic version of ``g``. Similarly, ``latex(g)`` will return a (long) string that is a representation of the graph in LaTeX. Other ways of employing LaTeX in Sage, such as ``%latex`` in a notebook cell, or the Typeset checkbox in the notebook, will handle ``g`` appropriately. |
-
diff --git a/sage/graphs/graph_plot.py b/sage/graphs/graph_plot.py
a
|
b
|
|
106 | 106 | settings from ``DEFAULT_SHOW_OPTIONS`` only affects ``G.show()``. |
107 | 107 | |
108 | 108 | * In order to define a default value permanently, you can add a couple of |
109 | | lines to :doc:`Sage's startup scripts <../../startup>`. Example :: |
| 109 | lines to `Sage's startup scripts <../../../cmd/startup.html>`_. Example :: |
110 | 110 | |
111 | 111 | sage: import sage.graphs.graph_plot |
112 | 112 | sage: sage.graphs.graph_plot.DEFAULT_SHOW_OPTIONS['figsize'] = [4,4] |
-
diff --git a/sage/homology/delta_complex.py b/sage/homology/delta_complex.py
a
|
b
|
|
149 | 149 | first in the prescribed way. The three edges each start and end |
150 | 150 | at the single vertex, ``Simplex(0)``. |
151 | 151 | |
152 | | .. image:: ../../media/homology/torus_labelled.png |
| 152 | .. image:: ../../media/torus_labelled.png |
153 | 153 | |
154 | 154 | - ``data`` may be nested lists or tuples. The nth entry in the |
155 | 155 | list is a list of the n-simplices in the complex, and each |
… |
… |
|
178 | 178 | If one draws two triangles and identifies them according to this |
179 | 179 | description, the result is the real projective plane. |
180 | 180 | |
181 | | .. image:: ../../media/homology/rp2.png |
| 181 | .. image:: ../../media/rp2.png |
182 | 182 | |
183 | 183 | :: |
184 | 184 | |
… |
… |
|
1483 | 1483 | A `\Delta`-complex representation of the torus, consisting of one |
1484 | 1484 | vertex, three edges, and two triangles. |
1485 | 1485 | |
1486 | | .. image:: ../../media/homology/torus.png |
| 1486 | .. image:: ../../media/torus.png |
1487 | 1487 | |
1488 | 1488 | EXAMPLES:: |
1489 | 1489 | |
… |
… |
|
1497 | 1497 | A `\Delta`-complex representation of the real projective plane, |
1498 | 1498 | consisting of two vertices, three edges, and two triangles. |
1499 | 1499 | |
1500 | | .. image:: ../../media/homology/rp2.png |
| 1500 | .. image:: ../../media/rp2.png |
1501 | 1501 | |
1502 | 1502 | EXAMPLES:: |
1503 | 1503 | |
… |
… |
|
1518 | 1518 | A `\Delta`-complex representation of the Klein bottle, consisting |
1519 | 1519 | of one vertex, three edges, and two triangles. |
1520 | 1520 | |
1521 | | .. image:: ../../media/homology/klein.png |
| 1521 | .. image:: ../../media/klein.png |
1522 | 1522 | |
1523 | 1523 | EXAMPLES:: |
1524 | 1524 | |
-
diff --git a/sage/homology/simplicial_complex.py b/sage/homology/simplicial_complex.py
a
|
b
|
|
34 | 34 | denote both the simplicial complex and the associated topological |
35 | 35 | space. |
36 | 36 | |
37 | | .. image:: ../../media/homology/simplices.png |
| 37 | .. image:: ../../media/simplices.png |
38 | 38 | |
39 | 39 | For any simplicial complex `K` and any commutative ring `R` there is |
40 | 40 | an associated chain complex, with differential of degree `-1`. The |
-
diff --git a/sage/misc/sagedoc.py b/sage/misc/sagedoc.py
a
|
b
|
|
18 | 18 | Check that argspecs of extension function/methods appear correctly, |
19 | 19 | see :trac:`12849`:: |
20 | 20 | |
21 | | sage: docfilename = os.path.join(SAGE_ROOT, 'devel', 'sage', 'doc', 'output', 'html', 'en', 'reference', 'sage', 'symbolic', 'expression.html') |
| 21 | sage: docfilename = os.path.join(SAGE_ROOT, 'devel', 'sage', 'doc', 'output', 'html', 'en', 'reference', 'calculus', 'sage', 'symbolic', 'expression.html') |
22 | 22 | sage: for line in open(docfilename): |
23 | 23 | ... if "#sage.symbolic.expression.Expression.N" in line: |
24 | 24 | ... print line |
-
diff --git a/sage/modular/arithgroup/farey_symbol.pyx b/sage/modular/arithgroup/farey_symbol.pyx
a
|
b
|
|
419 | 419 | Farey symbol of the arithmetic group. The sides of the |
420 | 420 | hyperbolic polygon are numbered 0, 1, ... from left to right. |
421 | 421 | |
422 | | .. image:: ../../../media/modular/arithgroup/pairing.png |
| 422 | .. image:: ../../../media/pairing.png |
423 | 423 | |
424 | 424 | EXAMPLES:: |
425 | 425 | |