passagemath-repl 10.4.17__tar.gz → 10.4.19__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/MANIFEST.in +9 -0
- {passagemath_repl-10.4.17/passagemath_repl.egg-info → passagemath_repl-10.4.19}/PKG-INFO +3 -3
- passagemath_repl-10.4.19/VERSION.txt +1 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-update-version +1 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-version.sh +3 -3
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/known-test-failures.json +17 -12
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19/passagemath_repl.egg-info}/PKG-INFO +3 -3
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/passagemath_repl.egg-info/SOURCES.txt +8 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/passagemath_repl.egg-info/requires.txt +2 -2
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/pyproject.toml +10 -2
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/pyproject.toml.m4 +8 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/rif_tol.py +1 -0
- passagemath_repl-10.4.19/sage/misc/benchmark.py +220 -0
- passagemath_repl-10.4.19/sage/misc/classgraph.py +130 -0
- passagemath_repl-10.4.19/sage/misc/copying.py +22 -0
- passagemath_repl-10.4.19/sage/misc/gperftools.py +382 -0
- passagemath_repl-10.4.19/sage/misc/messaging.py +86 -0
- passagemath_repl-10.4.19/sage/misc/python.py +70 -0
- passagemath_repl-10.4.19/sage/misc/remote_file.py +53 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/sage_eval.py +12 -3
- passagemath_repl-10.4.19/sage/misc/sh.py +38 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/interface_magic.py +4 -2
- passagemath_repl-10.4.17/VERSION.txt +0 -1
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/README.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/math-readline +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-cachegrind +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-callgrind +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-cleaner +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-coverage +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-cython +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-env +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-env-config.in +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-eval +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-fixdoctests +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-grep +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-grepdoc +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-inline-fortran +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-ipynb2rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-ipython +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-list-packages +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-massif +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-notebook +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-num-threads.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-omega +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-preparse +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-python +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-run +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-run-cython +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-runtests +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-src-env-config.in +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-startuptime.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-valgrind +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-venv-config +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/passagemath_repl.egg-info/dependency_links.txt +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/passagemath_repl.egg-info/top_level.txt +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/requirements-editable.txt.m4 +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/requirements.txt.m4 +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/all__sagemath_repl.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/__init__.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/__main__.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/all.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/check_tolerance.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/control.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/external.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/fixtures.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/forker.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/marked_output.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/parsing.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/parsing_test.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/reporting.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/sources.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/test.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/1second.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/99seconds.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/abort.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/atexit.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/fail_and_die.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/initial.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/interrupt.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/interrupt_diehard.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/keyboardinterrupt.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/longtime.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/nodoctest +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/random_seed.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/show_skipped.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/sig_on.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/simple_failure.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/sleep_and_raise.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/tolerance.rst +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/util.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/all__sagemath_repl.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/banner.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/cython.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/dev_tools.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/edit_module.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/explain_pickle.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/inline_fortran.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/pager.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/profiler.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/sage_input.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/sagedoc.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/trace.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/__init__.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/all.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/attach.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/configuration.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/display/__init__.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/display/fancy_repr.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/display/formatter.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/display/jsmol_iframe.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/display/pretty_print.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/display/util.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/image.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/inputhook.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/interpreter.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_extension.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/__init__.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/__main__.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/all_jupyter.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/install.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/interact.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/kernel.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/widgets.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/widgets_sagenb.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_tests.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/load.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/preparse.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/prompts.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/__init__.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/backend_base.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/backend_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/backend_emacs.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/backend_ipython.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/buffer.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/display_manager.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.avi +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.canvas3d +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.dvi +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.flv +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.gif +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.jpg +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.mkv +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.mov +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.mp4 +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.ogv +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.pdf +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.png +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.svg +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.webm +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.wmv +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example_jmol.spt.zip +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example_wavefront_scene.mtl +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example_wavefront_scene.obj +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/output_basic.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/output_browser.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/output_catalog.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/output_graphics.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/output_graphics3d.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/output_video.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/preferences.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/pretty_print.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/test_backend.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/user_globals.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/__init__.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/all.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/article_heuberger_krenn_kropf_fsm-in-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/arxiv_0812_2725.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/benchmark.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/book_schilling_zabrocki_kschur_primer.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/book_stein_ent.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/book_stein_modform.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/__init__.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/README +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/__init__.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/calculus_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/combinat_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/domaines_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/float_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/graphique_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/graphtheory_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/integration_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/linalg_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/linsolve_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/lp_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/mpoly_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/nonlinear_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/numbertheory_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/polynomes_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/premierspas_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/programmation_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/recequadiff_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/__init__.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/calculus_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/combinat_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/domaines_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/float_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/graphtheory_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/integration_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/linalg_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/linsolve_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/lp_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/mpoly_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/nonlinear_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/numbertheory_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/polynomes_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/recequadiff_doctest.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/__init__.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/actions-sage-exercises.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/actions-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/algcodes-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/boolean-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/cosets-sage-exercises.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/cosets-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/crypt-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/cyclic-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/domains-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/fields-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/finite-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/galois-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/groups-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/homomorph-sage-exercises.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/homomorph-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/integers-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/isomorph-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/normal-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/permute-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/poly-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/rings-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/sets-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/struct-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/sylow-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/vect-sage-exercises.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/vect-sage.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/cmdline.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/combinatorial_hopf_algebras.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/cython.pyx +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/finite_poset.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/functools_partial_src.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/gosper-sum.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/lazy_imports.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/memcheck/__init__.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/memcheck/run_tests.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/memcheck/run_tests_in_valgrind.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/memcheck/symbolic_expression.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/memcheck/verify_no_leak.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/modular_group_cohomology.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/numpy.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/parigp.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/startup.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/stl_vector.pyx +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/symbolic-series.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/sympy.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/test_deprecation.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/setup.cfg +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/setup.py +0 -0
- {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/tox.ini +0 -0
@@ -19,6 +19,15 @@ include sage/misc/pager.py
|
|
19
19
|
include sage/misc/cython.py
|
20
20
|
include sage/misc/inline_fortran.py
|
21
21
|
|
22
|
+
include sage/misc/benchmark.py
|
23
|
+
include sage/misc/classgraph.py
|
24
|
+
include sage/misc/copying.py
|
25
|
+
include sage/misc/gperftools.py
|
26
|
+
include sage/misc/messaging.py
|
27
|
+
include sage/misc/python.py
|
28
|
+
include sage/misc/remote_file.py
|
29
|
+
include sage/misc/sh.py
|
30
|
+
|
22
31
|
include VERSION.txt
|
23
32
|
|
24
33
|
global-exclude all__*.py
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: passagemath-repl
|
3
|
-
Version: 10.4.
|
3
|
+
Version: 10.4.19
|
4
4
|
Summary: passagemath: IPython kernel, Sage preparser, doctester
|
5
5
|
Author-email: The Sage Developers <sage-support@googlegroups.com>
|
6
6
|
License: GNU General Public License (GPL) v2 or later
|
@@ -25,8 +25,8 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
25
25
|
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
26
26
|
Requires-Python: <3.13,>=3.9
|
27
27
|
Description-Content-Type: text/x-rst
|
28
|
-
Requires-Dist: passagemath-objects~=10.4.
|
29
|
-
Requires-Dist: passagemath-environment~=10.4.
|
28
|
+
Requires-Dist: passagemath-objects~=10.4.19
|
29
|
+
Requires-Dist: passagemath-environment~=10.4.19
|
30
30
|
Requires-Dist: ipykernel>=5.2.1
|
31
31
|
Requires-Dist: ipython>=7.13.0
|
32
32
|
Requires-Dist: ipywidgets>=7.5.1
|
@@ -0,0 +1 @@
|
|
1
|
+
10.4.19
|
@@ -79,6 +79,7 @@ done
|
|
79
79
|
|
80
80
|
# Update Sage version file for Python in SAGE_SRC/sage
|
81
81
|
cat <<EOF > "$SAGE_SRC/sage/version.py"
|
82
|
+
# sage_setup: distribution = sagemath-environment
|
82
83
|
# Sage version information for Python scripts
|
83
84
|
# This file is auto-generated by the sage-update-version script, do not edit!
|
84
85
|
version = '$SAGE_VERSION'
|
@@ -4,6 +4,6 @@
|
|
4
4
|
# which stops "setup.py develop" from rewriting it as a Python file.
|
5
5
|
:
|
6
6
|
# This file is auto-generated by the sage-update-version script, do not edit!
|
7
|
-
SAGE_VERSION='10.4.
|
8
|
-
SAGE_RELEASE_DATE='2024-10-
|
9
|
-
SAGE_VERSION_BANNER='passagemath version 10.4.
|
7
|
+
SAGE_VERSION='10.4.19'
|
8
|
+
SAGE_RELEASE_DATE='2024-10-21'
|
9
|
+
SAGE_VERSION_BANNER='passagemath version 10.4.19, Release Date: 2024-10-21'
|
@@ -1,7 +1,14 @@
|
|
1
1
|
{
|
2
|
+
"sage.doctest.__main__": {
|
3
|
+
"ntests": 9
|
4
|
+
},
|
5
|
+
"sage.doctest.check_tolerance": {
|
6
|
+
"failed": true,
|
7
|
+
"ntests": 19
|
8
|
+
},
|
2
9
|
"sage.doctest.control": {
|
3
10
|
"failed": true,
|
4
|
-
"ntests":
|
11
|
+
"ntests": 228
|
5
12
|
},
|
6
13
|
"sage.doctest.external": {
|
7
14
|
"ntests": 40
|
@@ -11,11 +18,15 @@
|
|
11
18
|
},
|
12
19
|
"sage.doctest.forker": {
|
13
20
|
"failed": true,
|
14
|
-
"ntests":
|
21
|
+
"ntests": 413
|
22
|
+
},
|
23
|
+
"sage.doctest.marked_output": {
|
24
|
+
"failed": true,
|
25
|
+
"ntests": 21
|
15
26
|
},
|
16
27
|
"sage.doctest.parsing": {
|
17
28
|
"failed": true,
|
18
|
-
"ntests":
|
29
|
+
"ntests": 273
|
19
30
|
},
|
20
31
|
"sage.doctest.reporting": {
|
21
32
|
"ntests": 126
|
@@ -28,8 +39,7 @@
|
|
28
39
|
"ntests": 23
|
29
40
|
},
|
30
41
|
"sage.doctest.util": {
|
31
|
-
"
|
32
|
-
"ntests": 141
|
42
|
+
"ntests": 137
|
33
43
|
},
|
34
44
|
"sage.misc.sage_eval": {
|
35
45
|
"failed": true,
|
@@ -50,8 +60,7 @@
|
|
50
60
|
"ntests": 24
|
51
61
|
},
|
52
62
|
"sage.repl.display.formatter": {
|
53
|
-
"
|
54
|
-
"ntests": 47
|
63
|
+
"ntests": 46
|
55
64
|
},
|
56
65
|
"sage.repl.display.jsmol_iframe": {
|
57
66
|
"ntests": 24
|
@@ -63,10 +72,6 @@
|
|
63
72
|
"sage.repl.display.util": {
|
64
73
|
"ntests": 6
|
65
74
|
},
|
66
|
-
"sage.repl.image": {
|
67
|
-
"failed": true,
|
68
|
-
"ntests": 42
|
69
|
-
},
|
70
75
|
"sage.repl.inputhook": {
|
71
76
|
"ntests": 7
|
72
77
|
},
|
@@ -111,7 +116,7 @@
|
|
111
116
|
},
|
112
117
|
"sage.repl.preparse": {
|
113
118
|
"failed": true,
|
114
|
-
"ntests":
|
119
|
+
"ntests": 345
|
115
120
|
},
|
116
121
|
"sage.repl.rich_output.backend_base": {
|
117
122
|
"failed": true,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: passagemath-repl
|
3
|
-
Version: 10.4.
|
3
|
+
Version: 10.4.19
|
4
4
|
Summary: passagemath: IPython kernel, Sage preparser, doctester
|
5
5
|
Author-email: The Sage Developers <sage-support@googlegroups.com>
|
6
6
|
License: GNU General Public License (GPL) v2 or later
|
@@ -25,8 +25,8 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
25
25
|
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
26
26
|
Requires-Python: <3.13,>=3.9
|
27
27
|
Description-Content-Type: text/x-rst
|
28
|
-
Requires-Dist: passagemath-objects~=10.4.
|
29
|
-
Requires-Dist: passagemath-environment~=10.4.
|
28
|
+
Requires-Dist: passagemath-objects~=10.4.19
|
29
|
+
Requires-Dist: passagemath-environment~=10.4.19
|
30
30
|
Requires-Dist: ipykernel>=5.2.1
|
31
31
|
Requires-Dist: ipython>=7.13.0
|
32
32
|
Requires-Dist: ipywidgets>=7.5.1
|
@@ -81,16 +81,24 @@ sage/doctest/tests/sleep_and_raise.rst
|
|
81
81
|
sage/doctest/tests/tolerance.rst
|
82
82
|
sage/misc/all__sagemath_repl.py
|
83
83
|
sage/misc/banner.py
|
84
|
+
sage/misc/benchmark.py
|
85
|
+
sage/misc/classgraph.py
|
86
|
+
sage/misc/copying.py
|
84
87
|
sage/misc/cython.py
|
85
88
|
sage/misc/dev_tools.py
|
86
89
|
sage/misc/edit_module.py
|
87
90
|
sage/misc/explain_pickle.py
|
91
|
+
sage/misc/gperftools.py
|
88
92
|
sage/misc/inline_fortran.py
|
93
|
+
sage/misc/messaging.py
|
89
94
|
sage/misc/pager.py
|
90
95
|
sage/misc/profiler.py
|
96
|
+
sage/misc/python.py
|
97
|
+
sage/misc/remote_file.py
|
91
98
|
sage/misc/sage_eval.py
|
92
99
|
sage/misc/sage_input.py
|
93
100
|
sage/misc/sagedoc.py
|
101
|
+
sage/misc/sh.py
|
94
102
|
sage/misc/trace.py
|
95
103
|
sage/repl/__init__.py
|
96
104
|
sage/repl/all.py
|
@@ -10,8 +10,8 @@ build-backend = "setuptools.build_meta"
|
|
10
10
|
name = "passagemath-repl"
|
11
11
|
description = "passagemath: IPython kernel, Sage preparser, doctester"
|
12
12
|
dependencies = [
|
13
|
-
'passagemath-objects ~= 10.4.
|
14
|
-
'passagemath-environment ~= 10.4.
|
13
|
+
'passagemath-objects ~= 10.4.19',
|
14
|
+
'passagemath-environment ~= 10.4.19',
|
15
15
|
'ipykernel >=5.2.1',
|
16
16
|
'ipython >=7.13.0',
|
17
17
|
'ipywidgets >=7.5.1',
|
@@ -71,6 +71,14 @@ py-modules = [
|
|
71
71
|
"sage.misc.pager",
|
72
72
|
"sage.misc.cython",
|
73
73
|
"sage.misc.inline_fortran",
|
74
|
+
"sage.misc.benchmark",
|
75
|
+
"sage.misc.classgraph",
|
76
|
+
"sage.misc.copying",
|
77
|
+
"sage.misc.gperftools",
|
78
|
+
"sage.misc.messaging",
|
79
|
+
"sage.misc.python",
|
80
|
+
"sage.misc.remote_file",
|
81
|
+
"sage.misc.sh",
|
74
82
|
]
|
75
83
|
packages = [
|
76
84
|
"sage.doctest",
|
@@ -46,6 +46,14 @@ py-modules = [
|
|
46
46
|
"sage.misc.pager",
|
47
47
|
"sage.misc.cython",
|
48
48
|
"sage.misc.inline_fortran",
|
49
|
+
"sage.misc.benchmark",
|
50
|
+
"sage.misc.classgraph",
|
51
|
+
"sage.misc.copying",
|
52
|
+
"sage.misc.gperftools",
|
53
|
+
"sage.misc.messaging",
|
54
|
+
"sage.misc.python",
|
55
|
+
"sage.misc.remote_file",
|
56
|
+
"sage.misc.sh",
|
49
57
|
]
|
50
58
|
packages = [
|
51
59
|
"sage.doctest",
|
@@ -0,0 +1,220 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-repl
|
2
|
+
"Benchmarks"
|
3
|
+
|
4
|
+
from sage.misc.misc import cputime
|
5
|
+
|
6
|
+
from sage.all import *
|
7
|
+
|
8
|
+
|
9
|
+
def benchmark(n=-1):
|
10
|
+
"""
|
11
|
+
Run a well-chosen range of Sage commands and record the time it
|
12
|
+
takes for each to run.
|
13
|
+
|
14
|
+
INPUT:
|
15
|
+
|
16
|
+
- ``n`` -- integer (default: -1); the benchmark number; the default
|
17
|
+
of -1 runs all the benchmarks
|
18
|
+
|
19
|
+
OUTPUT:
|
20
|
+
|
21
|
+
list -- summary of timings for each benchmark.
|
22
|
+
int -- if n == -1, also return the total time
|
23
|
+
|
24
|
+
EXAMPLES::
|
25
|
+
|
26
|
+
sage: from sage.misc.benchmark import *
|
27
|
+
sage: _ = benchmark()
|
28
|
+
Running benchmark 0
|
29
|
+
Benchmark 0: Factor the following polynomial over
|
30
|
+
the rational numbers: (x^97+19*x+1)*(x^103-19*x^97+14)*(x^100-1)
|
31
|
+
Time: ... seconds
|
32
|
+
Running benchmark 1
|
33
|
+
Find the Mordell-Weil group of the elliptic curve 5077A using mwrank
|
34
|
+
Time: ... seconds
|
35
|
+
Running benchmark 2
|
36
|
+
Some basic arithmetic with very large Integer numbers: '3^1000001 * 19^100001
|
37
|
+
Time: ... seconds
|
38
|
+
Running benchmark 3
|
39
|
+
Some basic arithmetic with very large Rational numbers: '(2/3)^100001 * (17/19)^100001
|
40
|
+
Time: ... seconds
|
41
|
+
Running benchmark 4
|
42
|
+
Rational polynomial arithmetic using Sage. Compute (x^29+17*x-5)^200.
|
43
|
+
Time: ... seconds
|
44
|
+
Running benchmark 5
|
45
|
+
Rational polynomial arithmetic using Sage. Compute (x^19 - 18*x + 1)^50 one hundred times.
|
46
|
+
Time: ... seconds
|
47
|
+
Running benchmark 6
|
48
|
+
Compute the p-division polynomials of y^2 = x^3 + 37*x - 997 for primes p < 40.
|
49
|
+
Time: ... seconds
|
50
|
+
Running benchmark 7
|
51
|
+
Compute the Mordell-Weil group of y^2 = x^3 + 37*x - 997.
|
52
|
+
Time: ... seconds
|
53
|
+
Running benchmark 8
|
54
|
+
"""
|
55
|
+
|
56
|
+
if isinstance(n, list):
|
57
|
+
t = cputime()
|
58
|
+
v = [benchmark(m) for m in n]
|
59
|
+
return v, cputime(t)
|
60
|
+
|
61
|
+
if n != -1:
|
62
|
+
print("Running benchmark {}".format(n))
|
63
|
+
try:
|
64
|
+
desc, t = eval("bench{}()".format(n))
|
65
|
+
except NameError:
|
66
|
+
raise RuntimeError("no benchmark {}".format(n))
|
67
|
+
print(desc)
|
68
|
+
print("Time: {} seconds".format(t))
|
69
|
+
return (n, t, desc)
|
70
|
+
|
71
|
+
t = cputime()
|
72
|
+
m = 0
|
73
|
+
v = []
|
74
|
+
while True:
|
75
|
+
try:
|
76
|
+
v.append(benchmark(m))
|
77
|
+
m += 1
|
78
|
+
except RuntimeError:
|
79
|
+
break
|
80
|
+
return v, cputime(t)
|
81
|
+
|
82
|
+
|
83
|
+
def bench0():
|
84
|
+
"""
|
85
|
+
Run a benchmark.
|
86
|
+
|
87
|
+
BENCHMARK::
|
88
|
+
|
89
|
+
sage: from sage.misc.benchmark import *
|
90
|
+
sage: print(bench0()[0])
|
91
|
+
Benchmark 0: Factor the following polynomial over
|
92
|
+
the rational numbers: (x^97+19*x+1)*(x^103-19*x^97+14)*(x^100-1)
|
93
|
+
"""
|
94
|
+
desc = """Benchmark 0: Factor the following polynomial over
|
95
|
+
the rational numbers: (x^97+19*x+1)*(x^103-19*x^97+14)*(x^100-1)"""
|
96
|
+
x = polygen(QQ, "x")
|
97
|
+
f = (x**97+19*x+1)*(x**103-19*x**97+14)*(x**100-1)
|
98
|
+
t = cputime()
|
99
|
+
F = f.factor()
|
100
|
+
return (desc, cputime(t))
|
101
|
+
|
102
|
+
|
103
|
+
def bench1():
|
104
|
+
"""
|
105
|
+
Run a benchmark.
|
106
|
+
|
107
|
+
BENCHMARK::
|
108
|
+
|
109
|
+
sage: from sage.misc.benchmark import *
|
110
|
+
sage: print(bench1()[0])
|
111
|
+
Find the Mordell-Weil group of the elliptic curve 5077A using mwrank
|
112
|
+
"""
|
113
|
+
desc = """Find the Mordell-Weil group of the elliptic curve 5077A using mwrank"""
|
114
|
+
E = mwrank_EllipticCurve([0, 0, 1, -7, 6])
|
115
|
+
t = cputime()
|
116
|
+
g = E.gens()
|
117
|
+
return (desc, cputime(t))
|
118
|
+
|
119
|
+
|
120
|
+
def bench2():
|
121
|
+
"""
|
122
|
+
Run a benchmark.
|
123
|
+
|
124
|
+
BENCHMARK::
|
125
|
+
|
126
|
+
sage: from sage.misc.benchmark import *
|
127
|
+
sage: print(bench2()[0])
|
128
|
+
Some basic arithmetic with very large Integer numbers: '3^1000001 * 19^100001
|
129
|
+
"""
|
130
|
+
desc = """Some basic arithmetic with very large Integer numbers: '3^1000001 * 19^100001"""
|
131
|
+
t = cputime()
|
132
|
+
a = ZZ(3)**1000001 * ZZ(19)**100001
|
133
|
+
return (desc, cputime(t))
|
134
|
+
|
135
|
+
|
136
|
+
def bench3():
|
137
|
+
"""
|
138
|
+
Run a benchmark.
|
139
|
+
|
140
|
+
BENCHMARK::
|
141
|
+
|
142
|
+
sage: from sage.misc.benchmark import *
|
143
|
+
sage: print(bench3()[0])
|
144
|
+
Some basic arithmetic with very large Rational numbers: '(2/3)^100001 * (17/19)^100001
|
145
|
+
"""
|
146
|
+
desc = """Some basic arithmetic with very large Rational numbers: '(2/3)^100001 * (17/19)^100001"""
|
147
|
+
t = cputime()
|
148
|
+
a = QQ((2, 3))**100001 * QQ((17, 19))**100001
|
149
|
+
return (desc, cputime(t))
|
150
|
+
|
151
|
+
|
152
|
+
def bench4():
|
153
|
+
"""
|
154
|
+
Run a benchmark.
|
155
|
+
|
156
|
+
BENCHMARK::
|
157
|
+
|
158
|
+
sage: from sage.misc.benchmark import *
|
159
|
+
sage: print(bench4()[0])
|
160
|
+
Rational polynomial arithmetic using Sage. Compute (x^29+17*x-5)^200.
|
161
|
+
"""
|
162
|
+
desc = """Rational polynomial arithmetic using Sage. Compute (x^29+17*x-5)^200."""
|
163
|
+
x = PolynomialRing(QQ, 'x').gen()
|
164
|
+
t = cputime()
|
165
|
+
f = x**29 + 17*x-5
|
166
|
+
a = f**200
|
167
|
+
return (desc, cputime(t))
|
168
|
+
|
169
|
+
|
170
|
+
def bench5():
|
171
|
+
"""
|
172
|
+
Run a benchmark.
|
173
|
+
|
174
|
+
BENCHMARK::
|
175
|
+
|
176
|
+
sage: from sage.misc.benchmark import *
|
177
|
+
sage: print(bench5()[0])
|
178
|
+
Rational polynomial arithmetic using Sage. Compute (x^19 - 18*x + 1)^50 one hundred times.
|
179
|
+
"""
|
180
|
+
desc = """Rational polynomial arithmetic using Sage. Compute (x^19 - 18*x + 1)^50 one hundred times."""
|
181
|
+
x = PolynomialRing(QQ, 'x').gen()
|
182
|
+
t = cputime()
|
183
|
+
f = x**19 - 18*x + 1
|
184
|
+
w = [f**50 for _ in range(100)]
|
185
|
+
return (desc, cputime(t))
|
186
|
+
|
187
|
+
|
188
|
+
def bench6():
|
189
|
+
"""
|
190
|
+
Run a benchmark.
|
191
|
+
|
192
|
+
BENCHMARK::
|
193
|
+
|
194
|
+
sage: from sage.misc.benchmark import *
|
195
|
+
sage: print(bench6()[0])
|
196
|
+
Compute the p-division polynomials of y^2 = x^3 + 37*x - 997 for primes p < 40.
|
197
|
+
"""
|
198
|
+
desc = """Compute the p-division polynomials of y^2 = x^3 + 37*x - 997 for primes p < 40."""
|
199
|
+
E = EllipticCurve([0, 0, 0, 37, -997])
|
200
|
+
t = cputime()
|
201
|
+
for p in [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]:
|
202
|
+
f = E.division_polynomial(p)
|
203
|
+
return (desc, cputime(t))
|
204
|
+
|
205
|
+
|
206
|
+
def bench7():
|
207
|
+
"""
|
208
|
+
Run a benchmark.
|
209
|
+
|
210
|
+
BENCHMARK::
|
211
|
+
|
212
|
+
sage: from sage.misc.benchmark import *
|
213
|
+
sage: print(bench7()[0])
|
214
|
+
Compute the Mordell-Weil group of y^2 = x^3 + 37*x - 997.
|
215
|
+
"""
|
216
|
+
desc = """Compute the Mordell-Weil group of y^2 = x^3 + 37*x - 997."""
|
217
|
+
E = EllipticCurve([0, 0, 0, 37, -997])
|
218
|
+
t = cputime()
|
219
|
+
G = E.gens()
|
220
|
+
return (desc, cputime(t))
|
@@ -0,0 +1,130 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-repl
|
2
|
+
r"""
|
3
|
+
Class inheritance graphs
|
4
|
+
"""
|
5
|
+
# ****************************************************************************
|
6
|
+
# Copyright (C) 2007 William Stein <wstein@math.ucsd.edu>
|
7
|
+
# 2011 Nicolas M. Thiery <nthiery at users.sf.net>
|
8
|
+
#
|
9
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
10
|
+
# https://www.gnu.org/licenses/
|
11
|
+
# *****************************************************************************
|
12
|
+
|
13
|
+
import inspect
|
14
|
+
|
15
|
+
|
16
|
+
def class_graph(top, depth=5, name_filter=None, classes=None, as_graph=True):
|
17
|
+
"""
|
18
|
+
Return the class inheritance graph of a module, class, or object.
|
19
|
+
|
20
|
+
INPUT:
|
21
|
+
|
22
|
+
- ``top`` -- the module, class, or object to start with (e.g. ``sage``,
|
23
|
+
``Integer``, ``3``)
|
24
|
+
- ``depth`` -- maximal recursion depth within submodules (default: 5)
|
25
|
+
- ``name_filter`` -- e.g. 'sage.rings' to only consider classes in
|
26
|
+
:mod:`sage.rings`
|
27
|
+
- ``classes`` -- (optional) dictionary to be filled in (it is also returned)
|
28
|
+
- ``as_graph`` -- boolean (default: ``True``)
|
29
|
+
|
30
|
+
OUTPUT:
|
31
|
+
|
32
|
+
An oriented graph, with class names as vertices, and an edge
|
33
|
+
from each class to each of its bases.
|
34
|
+
|
35
|
+
EXAMPLES:
|
36
|
+
|
37
|
+
We construct the inheritance graph of the classes within a given module::
|
38
|
+
|
39
|
+
sage: from sage.rings.polynomial.padics import polynomial_padic_capped_relative_dense, polynomial_padic_flat
|
40
|
+
sage: G = class_graph(sage.rings.polynomial.padics); G
|
41
|
+
Digraph on 6 vertices
|
42
|
+
sage: G.vertices(sort=True)
|
43
|
+
['Polynomial',
|
44
|
+
'Polynomial_generic_cdv',
|
45
|
+
'Polynomial_generic_dense',
|
46
|
+
'Polynomial_padic',
|
47
|
+
'Polynomial_padic_capped_relative_dense',
|
48
|
+
'Polynomial_padic_flat']
|
49
|
+
sage: G.edges(sort=True, labels=False)
|
50
|
+
[('Polynomial_padic', 'Polynomial'),
|
51
|
+
('Polynomial_padic_capped_relative_dense', 'Polynomial_generic_cdv'),
|
52
|
+
('Polynomial_padic_capped_relative_dense', 'Polynomial_padic'),
|
53
|
+
('Polynomial_padic_flat', 'Polynomial_generic_dense'),
|
54
|
+
('Polynomial_padic_flat', 'Polynomial_padic')]
|
55
|
+
|
56
|
+
We construct the inheritance graph of a given class::
|
57
|
+
|
58
|
+
sage: class_graph(Parent).edges(sort=True, labels=False)
|
59
|
+
[('CategoryObject', 'SageObject'), ('Parent', 'CategoryObject'), ('SageObject', 'object')]
|
60
|
+
|
61
|
+
We construct the inheritance graph of the class of an object::
|
62
|
+
|
63
|
+
sage: class_graph([1,2,3]).edges(sort=True, labels=False)
|
64
|
+
[('list', 'object')]
|
65
|
+
|
66
|
+
.. warning:: the output of ``class_graph`` used to be a dictionary
|
67
|
+
mapping each class name to the list of names of its bases. This
|
68
|
+
can be emulated by setting the option ``as_graph`` to ``False``::
|
69
|
+
|
70
|
+
sage: class_graph(sage.rings.polynomial.padics, depth=2, as_graph=False)
|
71
|
+
{'Polynomial_padic': ['Polynomial'],
|
72
|
+
'Polynomial_padic_capped_relative_dense': ['Polynomial_generic_cdv',
|
73
|
+
'Polynomial_padic'],
|
74
|
+
'Polynomial_padic_flat': ['Polynomial_generic_dense', 'Polynomial_padic']}
|
75
|
+
|
76
|
+
.. NOTE:: the ``classes`` and ``as_graph`` options are mostly
|
77
|
+
intended for internal recursive use.
|
78
|
+
|
79
|
+
.. NOTE:: ``class_graph`` does not yet handle nested classes
|
80
|
+
|
81
|
+
TESTS::
|
82
|
+
|
83
|
+
sage: G = class_graph(sage.rings.polynomial.padics, depth=2); G
|
84
|
+
Digraph on 6 vertices
|
85
|
+
"""
|
86
|
+
# This function descends recursively down the submodules of the
|
87
|
+
# top module (if ``top`` is a module) and then down the hierarchy
|
88
|
+
# of classes. Along the way, the result is stored in the "global"
|
89
|
+
# dictionary ``classes`` which associates to each class the list
|
90
|
+
# of its bases.
|
91
|
+
|
92
|
+
# Termination
|
93
|
+
if depth < 0:
|
94
|
+
return classes
|
95
|
+
|
96
|
+
# (first recursive call)
|
97
|
+
if classes is None:
|
98
|
+
classes = {}
|
99
|
+
|
100
|
+
# Build the list ``children`` of submodules (resp. base classes)
|
101
|
+
# of ``top`` the function will recurse through
|
102
|
+
if inspect.ismodule(top):
|
103
|
+
if top.__name__.endswith('.all'): # Ignore sage.rings.all and friends
|
104
|
+
return classes
|
105
|
+
if name_filter is None:
|
106
|
+
name_filter = top.__name__
|
107
|
+
children = [item for item in top.__dict__.values()
|
108
|
+
if inspect.ismodule(item) or inspect.isclass(item)]
|
109
|
+
depth -= 1
|
110
|
+
elif inspect.isclass(top):
|
111
|
+
if name_filter is None:
|
112
|
+
name_filter = ""
|
113
|
+
if not top.__module__.startswith(name_filter):
|
114
|
+
return classes
|
115
|
+
children = top.__bases__
|
116
|
+
classes[top.__name__] = [e.__name__ for e in children]
|
117
|
+
else: # top is a plain Python object; inspect its class
|
118
|
+
children = [top.__class__]
|
119
|
+
|
120
|
+
# Recurse
|
121
|
+
for child in children:
|
122
|
+
class_graph(child, depth=depth, name_filter=name_filter,
|
123
|
+
classes=classes, as_graph=False)
|
124
|
+
|
125
|
+
# (first recursive call): construct the graph
|
126
|
+
if as_graph:
|
127
|
+
from sage.graphs.digraph import DiGraph
|
128
|
+
return DiGraph(classes)
|
129
|
+
else:
|
130
|
+
return classes
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-repl
|
2
|
+
"License"
|
3
|
+
|
4
|
+
import os
|
5
|
+
from sage.misc import pager
|
6
|
+
|
7
|
+
from sage.env import SAGE_ROOT
|
8
|
+
|
9
|
+
|
10
|
+
class License:
|
11
|
+
def __call__(self):
|
12
|
+
pager.pager()(str(self))
|
13
|
+
|
14
|
+
def __repr__(self):
|
15
|
+
return "Type license() to see the full license text."
|
16
|
+
|
17
|
+
def __str__(self):
|
18
|
+
with open(os.path.join(SAGE_ROOT, 'COPYING.txt')) as f:
|
19
|
+
return f.read()
|
20
|
+
|
21
|
+
|
22
|
+
license = License()
|