passagemath-repl 10.5.1__py3-none-any.whl
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.5.1.data/scripts/sage-cachegrind +25 -0
- passagemath_repl-10.5.1.data/scripts/sage-callgrind +16 -0
- passagemath_repl-10.5.1.data/scripts/sage-cleaner +230 -0
- passagemath_repl-10.5.1.data/scripts/sage-coverage +327 -0
- passagemath_repl-10.5.1.data/scripts/sage-eval +14 -0
- passagemath_repl-10.5.1.data/scripts/sage-fixdoctests +710 -0
- passagemath_repl-10.5.1.data/scripts/sage-inline-fortran +12 -0
- passagemath_repl-10.5.1.data/scripts/sage-ipynb2rst +50 -0
- passagemath_repl-10.5.1.data/scripts/sage-ipython +16 -0
- passagemath_repl-10.5.1.data/scripts/sage-massif +25 -0
- passagemath_repl-10.5.1.data/scripts/sage-notebook +267 -0
- passagemath_repl-10.5.1.data/scripts/sage-omega +25 -0
- passagemath_repl-10.5.1.data/scripts/sage-preparse +302 -0
- passagemath_repl-10.5.1.data/scripts/sage-run +27 -0
- passagemath_repl-10.5.1.data/scripts/sage-run-cython +10 -0
- passagemath_repl-10.5.1.data/scripts/sage-runtests +9 -0
- passagemath_repl-10.5.1.data/scripts/sage-startuptime.py +163 -0
- passagemath_repl-10.5.1.data/scripts/sage-valgrind +34 -0
- passagemath_repl-10.5.1.dist-info/METADATA +77 -0
- passagemath_repl-10.5.1.dist-info/RECORD +162 -0
- passagemath_repl-10.5.1.dist-info/WHEEL +5 -0
- passagemath_repl-10.5.1.dist-info/top_level.txt +1 -0
- sage/all__sagemath_repl.py +119 -0
- sage/doctest/__init__.py +4 -0
- sage/doctest/__main__.py +236 -0
- sage/doctest/all.py +4 -0
- sage/doctest/check_tolerance.py +261 -0
- sage/doctest/control.py +1727 -0
- sage/doctest/external.py +534 -0
- sage/doctest/fixtures.py +383 -0
- sage/doctest/forker.py +2665 -0
- sage/doctest/marked_output.py +102 -0
- sage/doctest/parsing.py +1708 -0
- sage/doctest/parsing_test.py +79 -0
- sage/doctest/reporting.py +733 -0
- sage/doctest/rif_tol.py +124 -0
- sage/doctest/sources.py +1657 -0
- sage/doctest/test.py +584 -0
- sage/doctest/tests/1second.rst +4 -0
- sage/doctest/tests/99seconds.rst +4 -0
- sage/doctest/tests/abort.rst +5 -0
- sage/doctest/tests/atexit.rst +7 -0
- sage/doctest/tests/fail_and_die.rst +6 -0
- sage/doctest/tests/initial.rst +15 -0
- sage/doctest/tests/interrupt.rst +7 -0
- sage/doctest/tests/interrupt_diehard.rst +14 -0
- sage/doctest/tests/keyboardinterrupt.rst +11 -0
- sage/doctest/tests/longtime.rst +5 -0
- sage/doctest/tests/nodoctest +5 -0
- sage/doctest/tests/random_seed.rst +4 -0
- sage/doctest/tests/show_skipped.rst +18 -0
- sage/doctest/tests/sig_on.rst +9 -0
- sage/doctest/tests/simple_failure.rst +8 -0
- sage/doctest/tests/sleep_and_raise.rst +106 -0
- sage/doctest/tests/tolerance.rst +31 -0
- sage/doctest/util.py +750 -0
- sage/interfaces/cleaner.py +48 -0
- sage/interfaces/quit.py +163 -0
- sage/misc/all__sagemath_repl.py +51 -0
- sage/misc/banner.py +235 -0
- sage/misc/benchmark.py +221 -0
- sage/misc/classgraph.py +134 -0
- sage/misc/copying.py +22 -0
- sage/misc/cython.py +694 -0
- sage/misc/dev_tools.py +745 -0
- sage/misc/edit_module.py +304 -0
- sage/misc/explain_pickle.py +3079 -0
- sage/misc/gperftools.py +361 -0
- sage/misc/inline_fortran.py +212 -0
- sage/misc/messaging.py +86 -0
- sage/misc/pager.py +21 -0
- sage/misc/profiler.py +179 -0
- sage/misc/python.py +70 -0
- sage/misc/remote_file.py +53 -0
- sage/misc/sage_eval.py +249 -0
- sage/misc/sage_input.py +3621 -0
- sage/misc/sagedoc.py +1742 -0
- sage/misc/sh.py +38 -0
- sage/misc/trace.py +90 -0
- sage/repl/__init__.py +16 -0
- sage/repl/all.py +15 -0
- sage/repl/attach.py +625 -0
- sage/repl/configuration.py +186 -0
- sage/repl/display/__init__.py +1 -0
- sage/repl/display/fancy_repr.py +354 -0
- sage/repl/display/formatter.py +318 -0
- sage/repl/display/jsmol_iframe.py +290 -0
- sage/repl/display/pretty_print.py +153 -0
- sage/repl/display/util.py +163 -0
- sage/repl/image.py +302 -0
- sage/repl/inputhook.py +91 -0
- sage/repl/interface_magic.py +298 -0
- sage/repl/interpreter.py +854 -0
- sage/repl/ipython_extension.py +593 -0
- sage/repl/ipython_kernel/__init__.py +1 -0
- sage/repl/ipython_kernel/__main__.py +4 -0
- sage/repl/ipython_kernel/all_jupyter.py +10 -0
- sage/repl/ipython_kernel/install.py +301 -0
- sage/repl/ipython_kernel/interact.py +278 -0
- sage/repl/ipython_kernel/kernel.py +217 -0
- sage/repl/ipython_kernel/widgets.py +466 -0
- sage/repl/ipython_kernel/widgets_sagenb.py +587 -0
- sage/repl/ipython_tests.py +163 -0
- sage/repl/load.py +326 -0
- sage/repl/preparse.py +2218 -0
- sage/repl/prompts.py +90 -0
- sage/repl/rich_output/__init__.py +4 -0
- sage/repl/rich_output/backend_base.py +648 -0
- sage/repl/rich_output/backend_doctest.py +316 -0
- sage/repl/rich_output/backend_emacs.py +151 -0
- sage/repl/rich_output/backend_ipython.py +596 -0
- sage/repl/rich_output/buffer.py +311 -0
- sage/repl/rich_output/display_manager.py +829 -0
- sage/repl/rich_output/example.avi +0 -0
- sage/repl/rich_output/example.canvas3d +1 -0
- sage/repl/rich_output/example.dvi +0 -0
- sage/repl/rich_output/example.flv +0 -0
- sage/repl/rich_output/example.gif +0 -0
- sage/repl/rich_output/example.jpg +0 -0
- sage/repl/rich_output/example.mkv +0 -0
- sage/repl/rich_output/example.mov +0 -0
- sage/repl/rich_output/example.mp4 +0 -0
- sage/repl/rich_output/example.ogv +0 -0
- sage/repl/rich_output/example.pdf +0 -0
- sage/repl/rich_output/example.png +0 -0
- sage/repl/rich_output/example.svg +54 -0
- sage/repl/rich_output/example.webm +0 -0
- sage/repl/rich_output/example.wmv +0 -0
- sage/repl/rich_output/example_jmol.spt.zip +0 -0
- sage/repl/rich_output/example_wavefront_scene.mtl +7 -0
- sage/repl/rich_output/example_wavefront_scene.obj +17 -0
- sage/repl/rich_output/output_basic.py +391 -0
- sage/repl/rich_output/output_browser.py +103 -0
- sage/repl/rich_output/output_catalog.py +54 -0
- sage/repl/rich_output/output_graphics.py +320 -0
- sage/repl/rich_output/output_graphics3d.py +345 -0
- sage/repl/rich_output/output_video.py +231 -0
- sage/repl/rich_output/preferences.py +432 -0
- sage/repl/rich_output/pretty_print.py +339 -0
- sage/repl/rich_output/test_backend.py +201 -0
- sage/repl/user_globals.py +214 -0
- sage/tests/all.py +0 -0
- sage/tests/all__sagemath_repl.py +3 -0
- sage/tests/article_heuberger_krenn_kropf_fsm-in-sage.py +630 -0
- sage/tests/arxiv_0812_2725.py +351 -0
- sage/tests/benchmark.py +1925 -0
- sage/tests/book_schilling_zabrocki_kschur_primer.py +795 -0
- sage/tests/book_stein_ent.py +651 -0
- sage/tests/book_stein_modform.py +558 -0
- sage/tests/cmdline.py +796 -0
- sage/tests/combinatorial_hopf_algebras.py +52 -0
- sage/tests/finite_poset.py +623 -0
- sage/tests/functools_partial_src.py +27 -0
- sage/tests/gosper-sum.py +218 -0
- sage/tests/lazy_imports.py +28 -0
- sage/tests/modular_group_cohomology.py +80 -0
- sage/tests/numpy.py +21 -0
- sage/tests/parigp.py +76 -0
- sage/tests/startup.py +27 -0
- sage/tests/symbolic-series.py +76 -0
- sage/tests/sympy.py +16 -0
- sage/tests/test_deprecation.py +31 -0
sage/doctest/rif_tol.py
ADDED
@@ -0,0 +1,124 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-repl
|
2
|
+
# sage.doctest: needs sage.rings.real_interval_field
|
3
|
+
"""
|
4
|
+
Helpers for tolerance checking in doctests
|
5
|
+
"""
|
6
|
+
|
7
|
+
# ****************************************************************************
|
8
|
+
# Copyright (C) 2012-2018 David Roe <roed.math@gmail.com>
|
9
|
+
# 2012 Robert Bradshaw <robertwb@gmail.com>
|
10
|
+
# 2012 William Stein <wstein@gmail.com>
|
11
|
+
# 2013 R. Andrew Ohana
|
12
|
+
# 2013 Volker Braun
|
13
|
+
# 2013-2018 Jeroen Demeyer <jdemeyer@cage.ugent.be>
|
14
|
+
# 2016-2021 Frédéric Chapoton
|
15
|
+
# 2017-2018 Erik M. Bray
|
16
|
+
# 2020 Marc Mezzarobba
|
17
|
+
# 2020-2023 Matthias Koeppe
|
18
|
+
# 2022 John H. Palmieri
|
19
|
+
# 2022 Sébastien Labbé
|
20
|
+
# 2023 Kwankyu Lee
|
21
|
+
#
|
22
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
23
|
+
# as published by the Free Software Foundation; either version 2 of
|
24
|
+
# the License, or (at your option) any later version.
|
25
|
+
# https://www.gnu.org/licenses/
|
26
|
+
# ****************************************************************************
|
27
|
+
|
28
|
+
from sage.doctest.marked_output import MarkedOutput
|
29
|
+
|
30
|
+
|
31
|
+
_RIFtol = None
|
32
|
+
|
33
|
+
|
34
|
+
def RIFtol(*args):
|
35
|
+
"""
|
36
|
+
Create an element of the real interval field used for doctest tolerances.
|
37
|
+
|
38
|
+
It allows large numbers like 1e1000, it parses strings with spaces
|
39
|
+
like ``RIF(" - 1 ")`` out of the box and it carries a lot of
|
40
|
+
precision. The latter is useful for testing libraries using
|
41
|
+
arbitrary precision but not guaranteed rounding such as PARI. We use
|
42
|
+
1044 bits of precision, which should be good to deal with tolerances
|
43
|
+
on numbers computed with 1024 bits of precision.
|
44
|
+
|
45
|
+
The interval approach also means that we do not need to worry about
|
46
|
+
rounding errors and it is also very natural to see a number with
|
47
|
+
tolerance as an interval.
|
48
|
+
|
49
|
+
EXAMPLES::
|
50
|
+
|
51
|
+
sage: from sage.doctest.parsing import RIFtol
|
52
|
+
sage: RIFtol(-1, 1)
|
53
|
+
0.?
|
54
|
+
sage: RIFtol(" - 1 ")
|
55
|
+
-1
|
56
|
+
sage: RIFtol("1e1000")
|
57
|
+
1.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?e1000
|
58
|
+
"""
|
59
|
+
global _RIFtol
|
60
|
+
if _RIFtol is None:
|
61
|
+
try:
|
62
|
+
# We need to import from sage.all to avoid circular imports.
|
63
|
+
from sage.rings.real_mpfi import RealIntervalField
|
64
|
+
except ImportError:
|
65
|
+
from warnings import warn
|
66
|
+
warn("RealIntervalField not available, ignoring all tolerance specifications in doctests")
|
67
|
+
|
68
|
+
def fake_RIFtol(*args):
|
69
|
+
return 0
|
70
|
+
_RIFtol = fake_RIFtol
|
71
|
+
else:
|
72
|
+
_RIFtol = RealIntervalField(1044)
|
73
|
+
return _RIFtol(*args)
|
74
|
+
|
75
|
+
|
76
|
+
def add_tolerance(wantval, want: MarkedOutput):
|
77
|
+
"""
|
78
|
+
Enlarge the real interval element ``wantval`` according to
|
79
|
+
the tolerance options in ``want``.
|
80
|
+
|
81
|
+
INPUT:
|
82
|
+
|
83
|
+
- ``wantval`` -- a real interval element
|
84
|
+
- ``want`` -- a :class:`MarkedOutput` describing the tolerance
|
85
|
+
|
86
|
+
OUTPUT: an interval element containing ``wantval``
|
87
|
+
|
88
|
+
EXAMPLES::
|
89
|
+
|
90
|
+
sage: from sage.doctest.parsing import MarkedOutput, SageOutputChecker
|
91
|
+
sage: from sage.doctest.rif_tol import add_tolerance
|
92
|
+
sage: want_tol = MarkedOutput().update(tol=0.0001)
|
93
|
+
sage: want_abs = MarkedOutput().update(abs_tol=0.0001)
|
94
|
+
sage: want_rel = MarkedOutput().update(rel_tol=0.0001)
|
95
|
+
sage: add_tolerance(RIF(pi.n(64)), want_tol).endpoints() # needs sage.symbolic
|
96
|
+
(3.14127849432443, 3.14190681285516)
|
97
|
+
sage: add_tolerance(RIF(pi.n(64)), want_abs).endpoints() # needs sage.symbolic
|
98
|
+
(3.14149265358979, 3.14169265358980)
|
99
|
+
sage: add_tolerance(RIF(pi.n(64)), want_rel).endpoints() # needs sage.symbolic
|
100
|
+
(3.14127849432443, 3.14190681285516)
|
101
|
+
sage: add_tolerance(RIF(1e1000), want_tol)
|
102
|
+
1.000?e1000
|
103
|
+
sage: add_tolerance(RIF(1e1000), want_abs)
|
104
|
+
1.000000000000000?e1000
|
105
|
+
sage: add_tolerance(RIF(1e1000), want_rel)
|
106
|
+
1.000?e1000
|
107
|
+
sage: add_tolerance(0, want_tol)
|
108
|
+
0.000?
|
109
|
+
sage: add_tolerance(0, want_abs)
|
110
|
+
0.000?
|
111
|
+
sage: add_tolerance(0, want_rel)
|
112
|
+
0
|
113
|
+
"""
|
114
|
+
if want.tol:
|
115
|
+
if wantval == 0:
|
116
|
+
return RIFtol(want.tol) * RIFtol(-1, 1)
|
117
|
+
else:
|
118
|
+
return wantval * (1 + RIFtol(want.tol) * RIFtol(-1, 1))
|
119
|
+
elif want.abs_tol:
|
120
|
+
return wantval + RIFtol(want.abs_tol) * RIFtol(-1, 1)
|
121
|
+
elif want.rel_tol:
|
122
|
+
return wantval * (1 + RIFtol(want.rel_tol) * RIFtol(-1, 1))
|
123
|
+
else:
|
124
|
+
return wantval
|