passagemath-symbolics 10.8.1a1__cp311-cp311-macosx_13_0_arm64.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_symbolics/.dylibs/libgmp.10.dylib +0 -0
- passagemath_symbolics/__init__.py +3 -0
- passagemath_symbolics-10.8.1a1.dist-info/METADATA +186 -0
- passagemath_symbolics-10.8.1a1.dist-info/RECORD +182 -0
- passagemath_symbolics-10.8.1a1.dist-info/WHEEL +6 -0
- passagemath_symbolics-10.8.1a1.dist-info/top_level.txt +3 -0
- sage/all__sagemath_symbolics.py +17 -0
- sage/calculus/all.py +14 -0
- sage/calculus/calculus.py +2838 -0
- sage/calculus/desolvers.py +1864 -0
- sage/calculus/predefined.py +51 -0
- sage/calculus/tests.py +225 -0
- sage/calculus/var.cpython-311-darwin.so +0 -0
- sage/calculus/var.pyx +401 -0
- sage/dynamics/all__sagemath_symbolics.py +6 -0
- sage/dynamics/complex_dynamics/all.py +5 -0
- sage/dynamics/complex_dynamics/mandel_julia.py +765 -0
- sage/dynamics/complex_dynamics/mandel_julia_helper.cpython-311-darwin.so +0 -0
- sage/dynamics/complex_dynamics/mandel_julia_helper.pyx +1034 -0
- sage/ext/all__sagemath_symbolics.py +1 -0
- sage/ext_data/kenzo/CP2.txt +45 -0
- sage/ext_data/kenzo/CP3.txt +349 -0
- sage/ext_data/kenzo/CP4.txt +4774 -0
- sage/ext_data/kenzo/README.txt +49 -0
- sage/ext_data/kenzo/S4.txt +20 -0
- sage/ext_data/magma/latex/latex.m +1021 -0
- sage/ext_data/magma/latex/latex.spec +1 -0
- sage/ext_data/magma/sage/basic.m +356 -0
- sage/ext_data/magma/sage/sage.spec +1 -0
- sage/ext_data/magma/spec +9 -0
- sage/geometry/all__sagemath_symbolics.py +8 -0
- sage/geometry/hyperbolic_space/all.py +5 -0
- sage/geometry/hyperbolic_space/hyperbolic_coercion.py +755 -0
- sage/geometry/hyperbolic_space/hyperbolic_constants.py +5 -0
- sage/geometry/hyperbolic_space/hyperbolic_geodesic.py +2419 -0
- sage/geometry/hyperbolic_space/hyperbolic_interface.py +206 -0
- sage/geometry/hyperbolic_space/hyperbolic_isometry.py +1083 -0
- sage/geometry/hyperbolic_space/hyperbolic_model.py +1502 -0
- sage/geometry/hyperbolic_space/hyperbolic_point.py +621 -0
- sage/geometry/riemannian_manifolds/all.py +7 -0
- sage/geometry/riemannian_manifolds/parametrized_surface3d.py +1632 -0
- sage/geometry/riemannian_manifolds/surface3d_generators.py +461 -0
- sage/interfaces/all__sagemath_symbolics.py +1 -0
- sage/interfaces/magma.py +2991 -0
- sage/interfaces/magma_free.py +90 -0
- sage/interfaces/maple.py +1402 -0
- sage/interfaces/mathematica.py +1345 -0
- sage/interfaces/mathics.py +1312 -0
- sage/interfaces/sympy.py +1398 -0
- sage/interfaces/sympy_wrapper.py +197 -0
- sage/interfaces/tides.py +938 -0
- sage/libs/all__sagemath_symbolics.py +6 -0
- sage/manifolds/all.py +7 -0
- sage/manifolds/calculus_method.py +553 -0
- sage/manifolds/catalog.py +437 -0
- sage/manifolds/chart.py +4010 -0
- sage/manifolds/chart_func.py +3416 -0
- sage/manifolds/continuous_map.py +2183 -0
- sage/manifolds/continuous_map_image.py +155 -0
- sage/manifolds/differentiable/affine_connection.py +2475 -0
- sage/manifolds/differentiable/all.py +1 -0
- sage/manifolds/differentiable/automorphismfield.py +1383 -0
- sage/manifolds/differentiable/automorphismfield_group.py +604 -0
- sage/manifolds/differentiable/bundle_connection.py +1445 -0
- sage/manifolds/differentiable/characteristic_cohomology_class.py +1840 -0
- sage/manifolds/differentiable/chart.py +1241 -0
- sage/manifolds/differentiable/curve.py +1028 -0
- sage/manifolds/differentiable/de_rham_cohomology.py +541 -0
- sage/manifolds/differentiable/degenerate.py +559 -0
- sage/manifolds/differentiable/degenerate_submanifold.py +1668 -0
- sage/manifolds/differentiable/diff_form.py +1660 -0
- sage/manifolds/differentiable/diff_form_module.py +1062 -0
- sage/manifolds/differentiable/diff_map.py +1315 -0
- sage/manifolds/differentiable/differentiable_submanifold.py +291 -0
- sage/manifolds/differentiable/examples/all.py +1 -0
- sage/manifolds/differentiable/examples/euclidean.py +2517 -0
- sage/manifolds/differentiable/examples/real_line.py +897 -0
- sage/manifolds/differentiable/examples/sphere.py +1186 -0
- sage/manifolds/differentiable/examples/symplectic_space.py +187 -0
- sage/manifolds/differentiable/examples/symplectic_space_test.py +40 -0
- sage/manifolds/differentiable/integrated_curve.py +4035 -0
- sage/manifolds/differentiable/levi_civita_connection.py +841 -0
- sage/manifolds/differentiable/manifold.py +4254 -0
- sage/manifolds/differentiable/manifold_homset.py +1826 -0
- sage/manifolds/differentiable/metric.py +3032 -0
- sage/manifolds/differentiable/mixed_form.py +1507 -0
- sage/manifolds/differentiable/mixed_form_algebra.py +559 -0
- sage/manifolds/differentiable/multivector_module.py +800 -0
- sage/manifolds/differentiable/multivectorfield.py +1522 -0
- sage/manifolds/differentiable/poisson_tensor.py +268 -0
- sage/manifolds/differentiable/pseudo_riemannian.py +755 -0
- sage/manifolds/differentiable/pseudo_riemannian_submanifold.py +1839 -0
- sage/manifolds/differentiable/scalarfield.py +1343 -0
- sage/manifolds/differentiable/scalarfield_algebra.py +472 -0
- sage/manifolds/differentiable/symplectic_form.py +912 -0
- sage/manifolds/differentiable/symplectic_form_test.py +220 -0
- sage/manifolds/differentiable/tangent_space.py +412 -0
- sage/manifolds/differentiable/tangent_vector.py +616 -0
- sage/manifolds/differentiable/tensorfield.py +4665 -0
- sage/manifolds/differentiable/tensorfield_module.py +963 -0
- sage/manifolds/differentiable/tensorfield_paral.py +2450 -0
- sage/manifolds/differentiable/tensorfield_paral_test.py +16 -0
- sage/manifolds/differentiable/vector_bundle.py +1725 -0
- sage/manifolds/differentiable/vectorfield.py +1717 -0
- sage/manifolds/differentiable/vectorfield_module.py +2445 -0
- sage/manifolds/differentiable/vectorframe.py +1832 -0
- sage/manifolds/family.py +270 -0
- sage/manifolds/local_frame.py +1490 -0
- sage/manifolds/manifold.py +3090 -0
- sage/manifolds/manifold_homset.py +452 -0
- sage/manifolds/operators.py +359 -0
- sage/manifolds/point.py +994 -0
- sage/manifolds/scalarfield.py +3718 -0
- sage/manifolds/scalarfield_algebra.py +629 -0
- sage/manifolds/section.py +3111 -0
- sage/manifolds/section_module.py +831 -0
- sage/manifolds/structure.py +229 -0
- sage/manifolds/subset.py +2721 -0
- sage/manifolds/subsets/all.py +1 -0
- sage/manifolds/subsets/closure.py +131 -0
- sage/manifolds/subsets/pullback.py +883 -0
- sage/manifolds/topological_submanifold.py +891 -0
- sage/manifolds/trivialization.py +733 -0
- sage/manifolds/utilities.py +1348 -0
- sage/manifolds/vector_bundle.py +1347 -0
- sage/manifolds/vector_bundle_fiber.py +332 -0
- sage/manifolds/vector_bundle_fiber_element.py +111 -0
- sage/matrix/all__sagemath_symbolics.py +1 -0
- sage/matrix/matrix_symbolic_dense.cpython-311-darwin.so +0 -0
- sage/matrix/matrix_symbolic_dense.pxd +6 -0
- sage/matrix/matrix_symbolic_dense.pyx +1030 -0
- sage/matrix/matrix_symbolic_sparse.cpython-311-darwin.so +0 -0
- sage/matrix/matrix_symbolic_sparse.pxd +6 -0
- sage/matrix/matrix_symbolic_sparse.pyx +1038 -0
- sage/modules/all__sagemath_symbolics.py +1 -0
- sage/modules/vector_callable_symbolic_dense.py +105 -0
- sage/modules/vector_symbolic_dense.py +116 -0
- sage/modules/vector_symbolic_sparse.py +118 -0
- sage/rings/all__sagemath_symbolics.py +4 -0
- sage/rings/asymptotic/all.py +6 -0
- sage/rings/asymptotic/asymptotic_expansion_generators.py +1485 -0
- sage/rings/asymptotic/asymptotic_ring.py +4858 -0
- sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py +4106 -0
- sage/rings/asymptotic/growth_group.py +5373 -0
- sage/rings/asymptotic/growth_group_cartesian.py +1400 -0
- sage/rings/asymptotic/term_monoid.py +5205 -0
- sage/rings/function_field/all__sagemath_symbolics.py +2 -0
- sage/rings/polynomial/all__sagemath_symbolics.py +1 -0
- sage/symbolic/all.py +15 -0
- sage/symbolic/assumptions.py +987 -0
- sage/symbolic/benchmark.py +93 -0
- sage/symbolic/callable.py +456 -0
- sage/symbolic/callable.pyi +66 -0
- sage/symbolic/comparison_impl.pyi +38 -0
- sage/symbolic/complexity_measures.py +35 -0
- sage/symbolic/constants.py +1286 -0
- sage/symbolic/constants_c_impl.pyi +10 -0
- sage/symbolic/expression_conversion_algebraic.py +310 -0
- sage/symbolic/expression_conversion_sympy.py +317 -0
- sage/symbolic/expression_conversions.py +1727 -0
- sage/symbolic/function_factory.py +355 -0
- sage/symbolic/function_factory.pyi +41 -0
- sage/symbolic/getitem_impl.pyi +24 -0
- sage/symbolic/integration/all.py +1 -0
- sage/symbolic/integration/external.py +271 -0
- sage/symbolic/integration/integral.py +1075 -0
- sage/symbolic/maxima_wrapper.py +162 -0
- sage/symbolic/operators.py +267 -0
- sage/symbolic/operators.pyi +61 -0
- sage/symbolic/pynac_constant_impl.pyi +13 -0
- sage/symbolic/pynac_function_impl.pyi +8 -0
- sage/symbolic/random_tests.py +461 -0
- sage/symbolic/relation.py +2062 -0
- sage/symbolic/ring.cpython-311-darwin.so +0 -0
- sage/symbolic/ring.pxd +5 -0
- sage/symbolic/ring.pyi +110 -0
- sage/symbolic/ring.pyx +1393 -0
- sage/symbolic/series_impl.pyi +10 -0
- sage/symbolic/subring.py +1025 -0
- sage/symbolic/symengine.py +19 -0
- sage/symbolic/tests.py +40 -0
- sage/symbolic/units.py +1468 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-symbolics
|
|
2
|
+
r"""
|
|
3
|
+
Symplectic vector spaces
|
|
4
|
+
|
|
5
|
+
AUTHORS:
|
|
6
|
+
|
|
7
|
+
- Tobias Diez (2021): initial version
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
# *****************************************************************************
|
|
11
|
+
# Copyright (C) 2020 Tobias Diez
|
|
12
|
+
#
|
|
13
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
14
|
+
# as published by the Free Software Foundation; either version 2 of
|
|
15
|
+
# the License, or (at your option) any later version.
|
|
16
|
+
# https://www.gnu.org/licenses/
|
|
17
|
+
# *****************************************************************************
|
|
18
|
+
from __future__ import annotations
|
|
19
|
+
|
|
20
|
+
from typing import Optional
|
|
21
|
+
|
|
22
|
+
from sage.categories.manifolds import Manifolds
|
|
23
|
+
from sage.manifolds.differentiable.examples.euclidean import EuclideanSpace
|
|
24
|
+
from sage.manifolds.differentiable.symplectic_form import (
|
|
25
|
+
SymplecticForm,
|
|
26
|
+
SymplecticFormParal,
|
|
27
|
+
)
|
|
28
|
+
from sage.rings.real_mpfr import RR
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class StandardSymplecticSpace(EuclideanSpace):
|
|
32
|
+
r"""
|
|
33
|
+
The vector space `\RR^{2n}` equipped with its standard symplectic form.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
_symplectic_form: SymplecticForm
|
|
37
|
+
|
|
38
|
+
def __init__(
|
|
39
|
+
self,
|
|
40
|
+
dimension: int,
|
|
41
|
+
name: Optional[str] = None,
|
|
42
|
+
latex_name: Optional[str] = None,
|
|
43
|
+
coordinates: str = "Cartesian",
|
|
44
|
+
symbols: Optional[str] = None,
|
|
45
|
+
symplectic_name: Optional[str] = "omega",
|
|
46
|
+
symplectic_latex_name: Optional[str] = None,
|
|
47
|
+
start_index: int = 1,
|
|
48
|
+
base_manifold: Optional[StandardSymplecticSpace] = None,
|
|
49
|
+
names: Optional[tuple[str]] = None,
|
|
50
|
+
):
|
|
51
|
+
r"""
|
|
52
|
+
INPUT:
|
|
53
|
+
|
|
54
|
+
- ``dimension`` -- dimension of the space over the real field (has to be even)
|
|
55
|
+
- ``name`` -- name (symbol) given to the underlying vector space;
|
|
56
|
+
if ``None``, the name will be set to ``'Rn'``, where ``n`` is the ``dimension``
|
|
57
|
+
- ``latex_name`` -- LaTeX symbol to denote the underlying vector space;
|
|
58
|
+
if ``None``, it is set to ``name``
|
|
59
|
+
- ``coordinates`` -- (default: ``'Cartesian'``) the
|
|
60
|
+
type of coordinates to be initialized at the Euclidean space
|
|
61
|
+
creation; allowed values are
|
|
62
|
+
|
|
63
|
+
- ``'Cartesian'`` (canonical coordinates on `\RR^{2n}`)
|
|
64
|
+
- ``'polar'`` for ``dimension=2`` only (see
|
|
65
|
+
:meth:`~sage.manifolds.differentiable.examples.euclidean.EuclideanPlane.polar_coordinates`)
|
|
66
|
+
|
|
67
|
+
- ``symbols`` -- the coordinate text symbols and LaTeX symbols, with the same conventions as the
|
|
68
|
+
argument ``coordinates`` in :class:`~sage.manifolds.differentiable.chart.RealDiffChart`, namely
|
|
69
|
+
``symbols`` is a string of coordinate fields separated by a blank
|
|
70
|
+
space, where each field contains the coordinate's text symbol and
|
|
71
|
+
possibly the coordinate's LaTeX symbol (when the latter is different
|
|
72
|
+
from the text symbol), both symbols being separated by a colon
|
|
73
|
+
(``:``); if ``None``, the symbols will be automatically generated
|
|
74
|
+
according to the value of ``coordinates``
|
|
75
|
+
- ``symplectic_name`` -- name (symbol) given to the symplectic form
|
|
76
|
+
- ``symplectic_latex_name`` -- LaTeX symbol to denote the symplectic form;
|
|
77
|
+
if none is provided, it is set to ``symplectic_name``
|
|
78
|
+
- ``start_index`` -- lower value of the range of
|
|
79
|
+
indices used for "indexed objects" in the vector space, e.g.
|
|
80
|
+
coordinates of a chart
|
|
81
|
+
- ``base_manifold`` -- if not ``None``, the created object is then an open subset
|
|
82
|
+
of ``base_manifold``
|
|
83
|
+
- ``names`` -- (default: ``None``) unused argument, except if
|
|
84
|
+
``symbols`` is not provided; it must then be a tuple containing
|
|
85
|
+
the coordinate symbols (this is guaranteed if the shortcut operator
|
|
86
|
+
``<,>`` is used)
|
|
87
|
+
If ``names`` is specified, then ``dimension`` does not have to be specified.
|
|
88
|
+
|
|
89
|
+
EXAMPLES:
|
|
90
|
+
|
|
91
|
+
Standard symplectic form on `\RR^2`::
|
|
92
|
+
|
|
93
|
+
sage: M.<q, p> = manifolds.StandardSymplecticSpace(2, symplectic_name='omega')
|
|
94
|
+
sage: omega = M.symplectic_form()
|
|
95
|
+
sage: omega.display()
|
|
96
|
+
omega = -dq∧dp
|
|
97
|
+
|
|
98
|
+
An isomorphism of its tangent space (at any point) with an indefinite inner product space
|
|
99
|
+
with distinguished basis::
|
|
100
|
+
|
|
101
|
+
sage: Q_M_qp = omega[:]; Q_M_qp
|
|
102
|
+
[ 0 -1]
|
|
103
|
+
[ 1 0]
|
|
104
|
+
sage: W_M_qp = VectorSpace(RR, 2, inner_product_matrix=Q_M_qp); W_M_qp
|
|
105
|
+
Ambient quadratic space of dimension 2 over Real Field with 53 bits of precision
|
|
106
|
+
Inner product matrix:
|
|
107
|
+
[0.000000000000000 -1.00000000000000]
|
|
108
|
+
[ 1.00000000000000 0.000000000000000]
|
|
109
|
+
sage: T = M.tangent_space(M.point(), base_ring=RR); T
|
|
110
|
+
Tangent space at Point on the Standard symplectic space R2
|
|
111
|
+
sage: phi_M_qp = T.isomorphism_with_fixed_basis(T.default_basis(), codomain=W_M_qp); phi_M_qp
|
|
112
|
+
Generic morphism:
|
|
113
|
+
From: Tangent space at Point on the Standard symplectic space R2
|
|
114
|
+
To: Ambient quadratic space of dimension 2 over Real Field with 53 bits of precision
|
|
115
|
+
Inner product matrix:
|
|
116
|
+
[0.000000000000000 -1.00000000000000]
|
|
117
|
+
[ 1.00000000000000 0.000000000000000]
|
|
118
|
+
"""
|
|
119
|
+
# Check that manifold is even dimensional
|
|
120
|
+
if dimension % 2 == 1:
|
|
121
|
+
raise ValueError(
|
|
122
|
+
f"the dimension of the manifold must be even but it is {dimension}"
|
|
123
|
+
)
|
|
124
|
+
dim_half = dimension // 2
|
|
125
|
+
|
|
126
|
+
if names is not None and symbols is None:
|
|
127
|
+
symbols = " ".join(names)
|
|
128
|
+
|
|
129
|
+
if symbols is None:
|
|
130
|
+
if dim_half == 1:
|
|
131
|
+
symbols = r"q:q p:p"
|
|
132
|
+
else:
|
|
133
|
+
symbols_list = [
|
|
134
|
+
f"q{i}:q^{i} p{i}:p_{i}" for i in range(1, dim_half + 1)
|
|
135
|
+
]
|
|
136
|
+
symbols = " ".join(symbols_list)
|
|
137
|
+
|
|
138
|
+
if name is None:
|
|
139
|
+
name = f"R{dimension}"
|
|
140
|
+
|
|
141
|
+
category = Manifolds(RR).Smooth()
|
|
142
|
+
|
|
143
|
+
EuclideanSpace.__init__(
|
|
144
|
+
self,
|
|
145
|
+
dimension,
|
|
146
|
+
name,
|
|
147
|
+
latex_name=latex_name,
|
|
148
|
+
coordinates=coordinates,
|
|
149
|
+
symbols=symbols,
|
|
150
|
+
start_index=start_index,
|
|
151
|
+
base_manifold=base_manifold,
|
|
152
|
+
category=category,
|
|
153
|
+
init_coord_methods=None,
|
|
154
|
+
)
|
|
155
|
+
|
|
156
|
+
self._symplectic_form = SymplecticFormParal(
|
|
157
|
+
self, symplectic_name, symplectic_latex_name
|
|
158
|
+
)
|
|
159
|
+
for i in range(dim_half):
|
|
160
|
+
q_index = 2 * i + 1
|
|
161
|
+
self._symplectic_form.set_comp()[q_index, q_index + 1] = -1
|
|
162
|
+
|
|
163
|
+
def _repr_(self):
|
|
164
|
+
r"""
|
|
165
|
+
Return a string representation of ``self``.
|
|
166
|
+
|
|
167
|
+
EXAMPLES::
|
|
168
|
+
|
|
169
|
+
sage: V.<q, p> = manifolds.StandardSymplecticSpace(2, symplectic_name='omega'); V
|
|
170
|
+
Standard symplectic space R2
|
|
171
|
+
"""
|
|
172
|
+
return f"Standard symplectic space {self._name}"
|
|
173
|
+
|
|
174
|
+
def symplectic_form(self) -> SymplecticForm:
|
|
175
|
+
r"""
|
|
176
|
+
Return the symplectic form.
|
|
177
|
+
|
|
178
|
+
EXAMPLES:
|
|
179
|
+
|
|
180
|
+
Standard symplectic form on `\RR^2`::
|
|
181
|
+
|
|
182
|
+
sage: M.<q, p> = manifolds.StandardSymplecticSpace(2, symplectic_name='omega')
|
|
183
|
+
sage: omega = M.symplectic_form()
|
|
184
|
+
sage: omega.display()
|
|
185
|
+
omega = -dq∧dp
|
|
186
|
+
"""
|
|
187
|
+
return self._symplectic_form
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-symbolics
|
|
2
|
+
import pytest
|
|
3
|
+
|
|
4
|
+
import sage.all
|
|
5
|
+
from sage.manifolds.differentiable.examples.symplectic_space import (
|
|
6
|
+
StandardSymplecticSpace,
|
|
7
|
+
)
|
|
8
|
+
from sage.manifolds.differentiable.symplectic_form import SymplecticForm
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TestR2VectorSpace:
|
|
12
|
+
@pytest.fixture
|
|
13
|
+
def M(self):
|
|
14
|
+
return StandardSymplecticSpace(2, 'R2', symplectic_name='omega')
|
|
15
|
+
|
|
16
|
+
@pytest.fixture
|
|
17
|
+
def omega(self, M: StandardSymplecticSpace):
|
|
18
|
+
return M.symplectic_form()
|
|
19
|
+
|
|
20
|
+
def test_repr(self, M: StandardSymplecticSpace):
|
|
21
|
+
assert str(M) == "Standard symplectic space R2"
|
|
22
|
+
|
|
23
|
+
def test_display(self, omega: SymplecticForm):
|
|
24
|
+
assert str(omega.display()) == r"omega = -dq∧dp"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class TestR4VectorSpace:
|
|
28
|
+
@pytest.fixture
|
|
29
|
+
def M(self):
|
|
30
|
+
return StandardSymplecticSpace(4, 'R4', symplectic_name='omega')
|
|
31
|
+
|
|
32
|
+
@pytest.fixture
|
|
33
|
+
def omega(self, M: StandardSymplecticSpace):
|
|
34
|
+
return M.symplectic_form()
|
|
35
|
+
|
|
36
|
+
def test_repr(self, M: StandardSymplecticSpace):
|
|
37
|
+
assert str(M) == "Standard symplectic space R4"
|
|
38
|
+
|
|
39
|
+
def test_display(self, omega: SymplecticForm):
|
|
40
|
+
assert str(omega.display()) == r"omega = -dq1∧dp1 - dq2∧dp2"
|