passagemath-symbolics 10.6.37__cp314-cp314t-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.
Files changed (172) hide show
  1. passagemath_symbolics/.dylibs/libgmp.10.dylib +0 -0
  2. passagemath_symbolics/__init__.py +3 -0
  3. passagemath_symbolics-10.6.37.dist-info/METADATA +187 -0
  4. passagemath_symbolics-10.6.37.dist-info/RECORD +172 -0
  5. passagemath_symbolics-10.6.37.dist-info/WHEEL +6 -0
  6. passagemath_symbolics-10.6.37.dist-info/top_level.txt +3 -0
  7. sage/all__sagemath_symbolics.py +17 -0
  8. sage/calculus/all.py +14 -0
  9. sage/calculus/calculus.py +2826 -0
  10. sage/calculus/desolvers.py +1866 -0
  11. sage/calculus/predefined.py +51 -0
  12. sage/calculus/tests.py +225 -0
  13. sage/calculus/var.cpython-314t-darwin.so +0 -0
  14. sage/calculus/var.pyx +401 -0
  15. sage/dynamics/all__sagemath_symbolics.py +6 -0
  16. sage/dynamics/complex_dynamics/all.py +5 -0
  17. sage/dynamics/complex_dynamics/mandel_julia.py +765 -0
  18. sage/dynamics/complex_dynamics/mandel_julia_helper.cpython-314t-darwin.so +0 -0
  19. sage/dynamics/complex_dynamics/mandel_julia_helper.pyx +1035 -0
  20. sage/ext/all__sagemath_symbolics.py +1 -0
  21. sage/ext_data/kenzo/CP2.txt +45 -0
  22. sage/ext_data/kenzo/CP3.txt +349 -0
  23. sage/ext_data/kenzo/CP4.txt +4774 -0
  24. sage/ext_data/kenzo/README.txt +49 -0
  25. sage/ext_data/kenzo/S4.txt +20 -0
  26. sage/ext_data/magma/latex/latex.m +1021 -0
  27. sage/ext_data/magma/latex/latex.spec +1 -0
  28. sage/ext_data/magma/sage/basic.m +356 -0
  29. sage/ext_data/magma/sage/sage.spec +1 -0
  30. sage/ext_data/magma/spec +9 -0
  31. sage/geometry/all__sagemath_symbolics.py +8 -0
  32. sage/geometry/hyperbolic_space/all.py +5 -0
  33. sage/geometry/hyperbolic_space/hyperbolic_coercion.py +743 -0
  34. sage/geometry/hyperbolic_space/hyperbolic_constants.py +5 -0
  35. sage/geometry/hyperbolic_space/hyperbolic_geodesic.py +2409 -0
  36. sage/geometry/hyperbolic_space/hyperbolic_interface.py +206 -0
  37. sage/geometry/hyperbolic_space/hyperbolic_isometry.py +1082 -0
  38. sage/geometry/hyperbolic_space/hyperbolic_model.py +1502 -0
  39. sage/geometry/hyperbolic_space/hyperbolic_point.py +621 -0
  40. sage/geometry/riemannian_manifolds/all.py +7 -0
  41. sage/geometry/riemannian_manifolds/parametrized_surface3d.py +1632 -0
  42. sage/geometry/riemannian_manifolds/surface3d_generators.py +461 -0
  43. sage/interfaces/all__sagemath_symbolics.py +1 -0
  44. sage/interfaces/magma.py +3017 -0
  45. sage/interfaces/magma_free.py +92 -0
  46. sage/interfaces/maple.py +1397 -0
  47. sage/interfaces/mathematica.py +1345 -0
  48. sage/interfaces/mathics.py +1312 -0
  49. sage/interfaces/sympy.py +1398 -0
  50. sage/interfaces/sympy_wrapper.py +197 -0
  51. sage/interfaces/tides.py +938 -0
  52. sage/libs/all__sagemath_symbolics.py +6 -0
  53. sage/manifolds/all.py +7 -0
  54. sage/manifolds/calculus_method.py +555 -0
  55. sage/manifolds/catalog.py +437 -0
  56. sage/manifolds/chart.py +4019 -0
  57. sage/manifolds/chart_func.py +3419 -0
  58. sage/manifolds/continuous_map.py +2183 -0
  59. sage/manifolds/continuous_map_image.py +155 -0
  60. sage/manifolds/differentiable/affine_connection.py +2475 -0
  61. sage/manifolds/differentiable/all.py +1 -0
  62. sage/manifolds/differentiable/automorphismfield.py +1383 -0
  63. sage/manifolds/differentiable/automorphismfield_group.py +604 -0
  64. sage/manifolds/differentiable/bundle_connection.py +1445 -0
  65. sage/manifolds/differentiable/characteristic_cohomology_class.py +1840 -0
  66. sage/manifolds/differentiable/chart.py +1241 -0
  67. sage/manifolds/differentiable/curve.py +1028 -0
  68. sage/manifolds/differentiable/de_rham_cohomology.py +541 -0
  69. sage/manifolds/differentiable/degenerate.py +559 -0
  70. sage/manifolds/differentiable/degenerate_submanifold.py +1671 -0
  71. sage/manifolds/differentiable/diff_form.py +1658 -0
  72. sage/manifolds/differentiable/diff_form_module.py +1062 -0
  73. sage/manifolds/differentiable/diff_map.py +1315 -0
  74. sage/manifolds/differentiable/differentiable_submanifold.py +291 -0
  75. sage/manifolds/differentiable/examples/all.py +1 -0
  76. sage/manifolds/differentiable/examples/euclidean.py +2517 -0
  77. sage/manifolds/differentiable/examples/real_line.py +897 -0
  78. sage/manifolds/differentiable/examples/sphere.py +1186 -0
  79. sage/manifolds/differentiable/examples/symplectic_space.py +187 -0
  80. sage/manifolds/differentiable/examples/symplectic_space_test.py +40 -0
  81. sage/manifolds/differentiable/integrated_curve.py +4035 -0
  82. sage/manifolds/differentiable/levi_civita_connection.py +841 -0
  83. sage/manifolds/differentiable/manifold.py +4254 -0
  84. sage/manifolds/differentiable/manifold_homset.py +1826 -0
  85. sage/manifolds/differentiable/metric.py +3032 -0
  86. sage/manifolds/differentiable/mixed_form.py +1507 -0
  87. sage/manifolds/differentiable/mixed_form_algebra.py +559 -0
  88. sage/manifolds/differentiable/multivector_module.py +800 -0
  89. sage/manifolds/differentiable/multivectorfield.py +1520 -0
  90. sage/manifolds/differentiable/poisson_tensor.py +268 -0
  91. sage/manifolds/differentiable/pseudo_riemannian.py +755 -0
  92. sage/manifolds/differentiable/pseudo_riemannian_submanifold.py +1839 -0
  93. sage/manifolds/differentiable/scalarfield.py +1343 -0
  94. sage/manifolds/differentiable/scalarfield_algebra.py +472 -0
  95. sage/manifolds/differentiable/symplectic_form.py +910 -0
  96. sage/manifolds/differentiable/symplectic_form_test.py +220 -0
  97. sage/manifolds/differentiable/tangent_space.py +412 -0
  98. sage/manifolds/differentiable/tangent_vector.py +616 -0
  99. sage/manifolds/differentiable/tensorfield.py +4665 -0
  100. sage/manifolds/differentiable/tensorfield_module.py +963 -0
  101. sage/manifolds/differentiable/tensorfield_paral.py +2450 -0
  102. sage/manifolds/differentiable/tensorfield_paral_test.py +16 -0
  103. sage/manifolds/differentiable/vector_bundle.py +1728 -0
  104. sage/manifolds/differentiable/vectorfield.py +1717 -0
  105. sage/manifolds/differentiable/vectorfield_module.py +2445 -0
  106. sage/manifolds/differentiable/vectorframe.py +1832 -0
  107. sage/manifolds/family.py +270 -0
  108. sage/manifolds/local_frame.py +1490 -0
  109. sage/manifolds/manifold.py +3090 -0
  110. sage/manifolds/manifold_homset.py +452 -0
  111. sage/manifolds/operators.py +359 -0
  112. sage/manifolds/point.py +994 -0
  113. sage/manifolds/scalarfield.py +3718 -0
  114. sage/manifolds/scalarfield_algebra.py +629 -0
  115. sage/manifolds/section.py +3111 -0
  116. sage/manifolds/section_module.py +831 -0
  117. sage/manifolds/structure.py +229 -0
  118. sage/manifolds/subset.py +2764 -0
  119. sage/manifolds/subsets/all.py +1 -0
  120. sage/manifolds/subsets/closure.py +131 -0
  121. sage/manifolds/subsets/pullback.py +885 -0
  122. sage/manifolds/topological_submanifold.py +891 -0
  123. sage/manifolds/trivialization.py +733 -0
  124. sage/manifolds/utilities.py +1348 -0
  125. sage/manifolds/vector_bundle.py +1342 -0
  126. sage/manifolds/vector_bundle_fiber.py +332 -0
  127. sage/manifolds/vector_bundle_fiber_element.py +111 -0
  128. sage/matrix/all__sagemath_symbolics.py +1 -0
  129. sage/matrix/matrix_symbolic_dense.cpython-314t-darwin.so +0 -0
  130. sage/matrix/matrix_symbolic_dense.pxd +6 -0
  131. sage/matrix/matrix_symbolic_dense.pyx +1022 -0
  132. sage/matrix/matrix_symbolic_sparse.cpython-314t-darwin.so +0 -0
  133. sage/matrix/matrix_symbolic_sparse.pxd +6 -0
  134. sage/matrix/matrix_symbolic_sparse.pyx +1029 -0
  135. sage/modules/all__sagemath_symbolics.py +1 -0
  136. sage/modules/vector_callable_symbolic_dense.py +105 -0
  137. sage/modules/vector_symbolic_dense.py +116 -0
  138. sage/modules/vector_symbolic_sparse.py +118 -0
  139. sage/rings/all__sagemath_symbolics.py +4 -0
  140. sage/rings/asymptotic/all.py +6 -0
  141. sage/rings/asymptotic/asymptotic_expansion_generators.py +1485 -0
  142. sage/rings/asymptotic/asymptotic_ring.py +4858 -0
  143. sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py +4153 -0
  144. sage/rings/asymptotic/growth_group.py +5373 -0
  145. sage/rings/asymptotic/growth_group_cartesian.py +1400 -0
  146. sage/rings/asymptotic/term_monoid.py +5237 -0
  147. sage/rings/function_field/all__sagemath_symbolics.py +2 -0
  148. sage/rings/polynomial/all__sagemath_symbolics.py +1 -0
  149. sage/symbolic/all.py +15 -0
  150. sage/symbolic/assumptions.py +985 -0
  151. sage/symbolic/benchmark.py +93 -0
  152. sage/symbolic/callable.py +459 -0
  153. sage/symbolic/complexity_measures.py +35 -0
  154. sage/symbolic/constants.py +1287 -0
  155. sage/symbolic/expression_conversion_algebraic.py +310 -0
  156. sage/symbolic/expression_conversion_sympy.py +317 -0
  157. sage/symbolic/expression_conversions.py +1713 -0
  158. sage/symbolic/function_factory.py +355 -0
  159. sage/symbolic/integration/all.py +1 -0
  160. sage/symbolic/integration/external.py +270 -0
  161. sage/symbolic/integration/integral.py +1115 -0
  162. sage/symbolic/maxima_wrapper.py +162 -0
  163. sage/symbolic/operators.py +267 -0
  164. sage/symbolic/random_tests.py +462 -0
  165. sage/symbolic/relation.py +1907 -0
  166. sage/symbolic/ring.cpython-314t-darwin.so +0 -0
  167. sage/symbolic/ring.pxd +5 -0
  168. sage/symbolic/ring.pyx +1396 -0
  169. sage/symbolic/subring.py +1025 -0
  170. sage/symbolic/symengine.py +19 -0
  171. sage/symbolic/tests.py +40 -0
  172. sage/symbolic/units.py +1470 -0
@@ -0,0 +1,332 @@
1
+ # sage_setup: distribution = sagemath-symbolics
2
+ r"""
3
+ Vector Bundle Fibers
4
+
5
+ The class :class:`VectorBundleFiber` implements fibers over a vector bundle.
6
+
7
+ AUTHORS:
8
+
9
+ - Michael Jung (2019): initial version
10
+ """
11
+
12
+ #******************************************************************************
13
+ # Copyright (C) 2019 Michael Jung <micjung at uni-potsdam.de>
14
+ #
15
+ # Distributed under the terms of the GNU General Public License (GPL)
16
+ # as published by the Free Software Foundation; either version 2 of
17
+ # the License, or (at your option) any later version.
18
+ # http://www.gnu.org/licenses/
19
+ #******************************************************************************
20
+
21
+ from sage.manifolds.vector_bundle_fiber_element import VectorBundleFiberElement
22
+ from sage.symbolic.ring import SR
23
+ from sage.tensor.modules.finite_rank_free_module import FiniteRankFreeModule
24
+
25
+
26
+ class VectorBundleFiber(FiniteRankFreeModule):
27
+ r"""
28
+ Fiber of a given vector bundle at a given point.
29
+
30
+ Let `\pi: E \to M` be a vector bundle of rank `n` over the field `K`
31
+ (see :class:`~sage.manifolds.vector_bundle.TopologicalVectorBundle`) and
32
+ `p \in M`. The fiber `E_p` at `p` is defined via `E_p := \pi^{-1}(p)` and
33
+ takes the structure of an `n`-dimensional vector space over the field `K`.
34
+
35
+ INPUT:
36
+
37
+ - ``vector_bundle`` -- :class:`~sage.manifolds.vector_bundle.TopologicalVectorBundle`;
38
+ vector bundle `E` on which the fiber is defined
39
+ - ``point`` -- :class:`~sage.manifolds.point.ManifoldPoint`;
40
+ point `p` at which the fiber is defined
41
+
42
+ EXAMPLES:
43
+
44
+ A vector bundle fiber in a trivial rank 2 vector bundle over a
45
+ 4-dimensional topological manifold::
46
+
47
+ sage: M = Manifold(4, 'M', structure='top')
48
+ sage: X.<x,y,z,t> = M.chart()
49
+ sage: p = M((0,0,0,0), name='p')
50
+ sage: E = M.vector_bundle(2, 'E')
51
+ sage: e = E.local_frame('e')
52
+ sage: Ep = E.fiber(p); Ep
53
+ Fiber of E at Point p on the 4-dimensional topological manifold M
54
+
55
+ Fibers are free modules of finite rank over
56
+ :class:`~sage.symbolic.ring.SymbolicRing`
57
+ (actually vector spaces of finite dimension over the vector bundle
58
+ field `K`, here `K=\RR`)::
59
+
60
+ sage: Ep.base_ring()
61
+ Symbolic Ring
62
+ sage: Ep.category()
63
+ Category of finite dimensional vector spaces over Symbolic Ring
64
+ sage: Ep.rank()
65
+ 2
66
+ sage: dim(Ep)
67
+ 2
68
+
69
+ The fiber is automatically endowed with bases deduced from the local frames
70
+ around the point::
71
+
72
+ sage: Ep.bases()
73
+ [Basis (e_0,e_1) on the Fiber of E at Point p on the 4-dimensional
74
+ topological manifold M]
75
+ sage: E.frames()
76
+ [Local frame (E|_M, (e_0,e_1))]
77
+
78
+ At this stage, only one basis has been defined in the fiber, but new bases
79
+ can be added from local frames on the vector bundle by means of the method
80
+ :meth:`~sage.manifolds.local_frame.LocalFrame.at`::
81
+
82
+ sage: aut = E.section_module().automorphism()
83
+ sage: aut[:] = [[-1, x], [y, 2]]
84
+ sage: f = e.new_frame(aut, 'f')
85
+ sage: fp = f.at(p); fp
86
+ Basis (f_0,f_1) on the Fiber of E at Point p on the 4-dimensional
87
+ topological manifold M
88
+ sage: Ep.bases()
89
+ [Basis (e_0,e_1) on the Fiber of E at Point p on the 4-dimensional
90
+ topological manifold M,
91
+ Basis (f_0,f_1) on the Fiber of E at Point p on the 4-dimensional
92
+ topological manifold M]
93
+
94
+ The changes of bases are applied to the fibers::
95
+
96
+ sage: f[1].display(e) # second component of frame f
97
+ f_1 = x e_0 + 2 e_1
98
+ sage: ep = e.at(p)
99
+ sage: fp[1].display(ep) # second component of frame f at p
100
+ f_1 = 2 e_1
101
+
102
+ All the bases defined on ``Ep`` are on the same footing. Accordingly the
103
+ fiber is not in the category of modules with a distinguished basis::
104
+
105
+ sage: Ep in ModulesWithBasis(SR)
106
+ False
107
+
108
+ It is simply in the category of modules::
109
+
110
+ sage: Ep in Modules(SR)
111
+ True
112
+
113
+ Since the base ring is a field, it is actually in the category of
114
+ vector spaces::
115
+
116
+ sage: Ep in VectorSpaces(SR)
117
+ True
118
+
119
+ A typical element::
120
+
121
+ sage: v = Ep.an_element(); v
122
+ Vector in the fiber of E at Point p on the 4-dimensional topological
123
+ manifold M
124
+ sage: v.display()
125
+ e_0 + 2 e_1
126
+ sage: v.parent()
127
+ Fiber of E at Point p on the 4-dimensional topological manifold M
128
+
129
+ The zero vector::
130
+
131
+ sage: Ep.zero()
132
+ Vector zero in the fiber of E at Point p on the 4-dimensional
133
+ topological manifold M
134
+ sage: Ep.zero().display()
135
+ zero = 0
136
+ sage: Ep.zero().parent()
137
+ Fiber of E at Point p on the 4-dimensional topological manifold M
138
+
139
+ Fibers are unique::
140
+
141
+ sage: E.fiber(p) is Ep
142
+ True
143
+ sage: p1 = M.point((0,0,0,0))
144
+ sage: E.fiber(p1) is Ep
145
+ True
146
+
147
+ even if points are different instances::
148
+
149
+ sage: p1 is p
150
+ False
151
+
152
+ but ``p1`` and ``p`` share the same fiber because they compare equal::
153
+
154
+ sage: p1 == p
155
+ True
156
+
157
+ .. SEEALSO::
158
+
159
+ :class:`~sage.tensor.modules.finite_rank_free_module.FiniteRankFreeModule`
160
+ for more documentation.
161
+ """
162
+ Element = VectorBundleFiberElement
163
+
164
+ def __init__(self, vector_bundle, point):
165
+ r"""
166
+ Construct a fiber of a vector bundle.
167
+
168
+ TESTS::
169
+
170
+ sage: M = Manifold(3, 'M', structure='top')
171
+ sage: X.<x,y,z> = M.chart()
172
+ sage: p = M((0,0,0), name='p')
173
+ sage: E = M.vector_bundle(2, 'E')
174
+ sage: e = E.local_frame('e')
175
+ sage: Ep = E.fiber(p)
176
+ sage: TestSuite(Ep).run()
177
+ """
178
+ if point._manifold is not vector_bundle._base_space:
179
+ raise ValueError("Point must be an element "
180
+ "of {}".format(vector_bundle._manifold))
181
+ name = "{}_{}".format(vector_bundle._name, point._name)
182
+ latex_name = r'{}_{{{}}}'.format(vector_bundle._latex_name,
183
+ point._latex_name)
184
+ self._rank = vector_bundle._rank
185
+ self._vbundle = vector_bundle
186
+ self._point = point
187
+ self._base_space = point._manifold
188
+ FiniteRankFreeModule.__init__(self, SR, self._rank, name=name,
189
+ latex_name=latex_name,
190
+ start_index=self._base_space._sindex)
191
+ ###
192
+ # Construct basis
193
+ self._frame_bases = {} # dictionary of bases of the vector bundle fiber
194
+ # derived from local frames around the point
195
+ # (keys: local frames)
196
+ self._def_basis = None
197
+ for frame in vector_bundle._frames:
198
+ # the frame is used to construct a basis of the vector bundle fiber
199
+ # only if it is a frame for the given point:
200
+ if point in frame.domain():
201
+ coframe = frame.coframe()
202
+ basis = self.basis(frame._symbol,
203
+ latex_symbol=frame._latex_symbol,
204
+ indices=frame._indices,
205
+ latex_indices=frame._latex_indices,
206
+ symbol_dual=coframe._symbol,
207
+ latex_symbol_dual=coframe._latex_symbol)
208
+ self._frame_bases[frame] = basis
209
+ if self._def_basis is None:
210
+ self._def_basis = basis # Declare the first basis as default
211
+ # Initialization of the changes of bases from the existing changes of
212
+ # frames around the point:
213
+ for frame_pair, automorph in self._vbundle._frame_changes.items():
214
+ if point in automorph._fmodule.domain():
215
+ frame1, frame2 = frame_pair[0], frame_pair[1]
216
+ fr1, fr2 = None, None
217
+ for frame in self._frame_bases:
218
+ if frame1 in frame._subframes:
219
+ fr1 = frame
220
+ break
221
+ for frame in self._frame_bases:
222
+ if frame2 in frame._subframes:
223
+ fr2 = frame
224
+ break
225
+ if fr1 is not None and fr2 is not None:
226
+ basis1 = self._frame_bases[fr1]
227
+ basis2 = self._frame_bases[fr2]
228
+ auto = self.automorphism()
229
+ for frame, comp in automorph._components.items():
230
+ try:
231
+ basis = None
232
+ if frame is frame1:
233
+ basis = basis1
234
+ if frame is frame2:
235
+ basis = basis2
236
+ if basis is not None:
237
+ cauto = auto.add_comp(basis)
238
+ for ind, val in comp._comp.items():
239
+ cauto._comp[ind] = val(point)
240
+ except ValueError:
241
+ pass
242
+ self._basis_changes[(basis1, basis2)] = auto
243
+
244
+ def construction(self):
245
+ r"""
246
+ TESTS::
247
+
248
+ sage: M = Manifold(3, 'M', structure='top')
249
+ sage: X.<x,y,z> = M.chart()
250
+ sage: p = M((0,0,0), name='p')
251
+ sage: E = M.vector_bundle(2, 'E')
252
+ sage: E.fiber(p).construction() is None
253
+ True
254
+ """
255
+ return None
256
+
257
+ def _repr_(self):
258
+ r"""
259
+ String representation of ``self``.
260
+
261
+ TESTS::
262
+
263
+ sage: M = Manifold(3, 'M', structure='top')
264
+ sage: X.<x,y,z> = M.chart()
265
+ sage: p = M((0,0,0), name='p')
266
+ sage: E = M.vector_bundle(2, 'E')
267
+ sage: E.fiber(p)._repr_()
268
+ 'Fiber of E at Point p on the 3-dimensional topological manifold M'
269
+ """
270
+ return "Fiber of {} at {}".format(self._vbundle._name,
271
+ self._point)
272
+
273
+ def dimension(self):
274
+ r"""
275
+ Return the vector space dimension of ``self``.
276
+
277
+ EXAMPLES::
278
+
279
+ sage: M = Manifold(3, 'M', structure='top')
280
+ sage: X.<x,y,z> = M.chart()
281
+ sage: p = M((0,0,0), name='p')
282
+ sage: E = M.vector_bundle(2, 'E')
283
+ sage: Ep = E.fiber(p)
284
+ sage: Ep.dim()
285
+ 2
286
+ """
287
+ # The dimension is the rank of self as a free module:
288
+ return self._rank
289
+
290
+ dim = dimension
291
+
292
+ def _an_element_(self):
293
+ r"""
294
+ Construct some (unnamed) vector in ``self``.
295
+
296
+ EXAMPLES::
297
+
298
+ sage: M = Manifold(2, 'M', structure='top')
299
+ sage: X.<x,y> = M.chart()
300
+ sage: E = M.vector_bundle(2, 'E')
301
+ sage: e = E.local_frame('e')
302
+ sage: p = M.point((3,-2), name='p')
303
+ sage: Ep = E.fiber(p)
304
+ sage: Ep._an_element_()
305
+ Vector in the fiber of E at Point p on the 2-dimensional topological
306
+ manifold M
307
+ sage: Ep._an_element_().display()
308
+ e_0 + 2 e_1
309
+ """
310
+ resu = self.element_class(self)
311
+ if self._def_basis is not None:
312
+ resu.set_comp()[:] = range(1, self._rank + 1)
313
+ return resu
314
+
315
+ def base_point(self):
316
+ r"""
317
+ Return the manifold point over which ``self`` is defined.
318
+
319
+ EXAMPLES::
320
+
321
+ sage: M = Manifold(2, 'M', structure='top')
322
+ sage: X.<x,y> = M.chart()
323
+ sage: E = M.vector_bundle(2, 'E')
324
+ sage: e = E.local_frame('e')
325
+ sage: p = M.point((3,-2), name='p')
326
+ sage: Ep = E.fiber(p)
327
+ sage: Ep.base_point()
328
+ Point p on the 2-dimensional topological manifold M
329
+ sage: p is Ep.base_point()
330
+ True
331
+ """
332
+ return self._point
@@ -0,0 +1,111 @@
1
+ # sage_setup: distribution = sagemath-symbolics
2
+ r"""
3
+ Vector Bundle Fiber Elements
4
+
5
+ The class :class:`VectorBundleFiberElement` implements vectors in the fiber of
6
+ a vector bundle.
7
+
8
+ AUTHORS:
9
+
10
+ - Michael Jung (2019): initial version
11
+ """
12
+
13
+ #******************************************************************************
14
+ # Copyright (C) 2019 Michael Jung <micjung at uni-potsdam.de>
15
+ #
16
+ # Distributed under the terms of the GNU General Public License (GPL)
17
+ # as published by the Free Software Foundation; either version 2 of
18
+ # the License, or (at your option) any later version.
19
+ # http://www.gnu.org/licenses/
20
+ #******************************************************************************
21
+
22
+ from sage.tensor.modules.free_module_element import FiniteRankFreeModuleElement
23
+
24
+
25
+ class VectorBundleFiberElement(FiniteRankFreeModuleElement):
26
+ r"""
27
+ Vector in a fiber of a vector bundle at the given point.
28
+
29
+ INPUT:
30
+
31
+ - ``parent`` -- :class:`~sage.manifolds.vector_bundle_fiber.VectorBundleFiber`;
32
+ the fiber to which the vector belongs
33
+ - ``name`` -- (default: ``None``) string; symbol given to the vector
34
+ - ``latex_name`` -- (default: ``None``) string; LaTeX symbol to denote
35
+ the vector; if ``None``, ``name`` will be used
36
+
37
+ EXAMPLES:
38
+
39
+ A vector `v` in a fiber of a rank 2 vector bundle::
40
+
41
+ sage: M = Manifold(2, 'M', structure='top')
42
+ sage: X.<x,y> = M.chart()
43
+ sage: p = M((1,-1), name='p')
44
+ sage: E = M.vector_bundle(2, 'E')
45
+ sage: e = E.local_frame('e')
46
+ sage: Ep = E.fiber(p)
47
+ sage: v = Ep((-2,1), name='v'); v
48
+ Vector v in the fiber of E at Point p on the 2-dimensional topological
49
+ manifold M
50
+ sage: v.display()
51
+ v = -2 e_0 + e_1
52
+ sage: v.parent()
53
+ Fiber of E at Point p on the 2-dimensional topological manifold M
54
+ sage: v in Ep
55
+ True
56
+
57
+ .. SEEALSO::
58
+
59
+ :class:`~sage.tensor.modules.free_module_element.FiniteRankFreeModuleElement`
60
+ for more documentation.
61
+ """
62
+ def __init__(self, parent, name=None, latex_name=None):
63
+ r"""
64
+ Construct a vector in the given fiber of a given vector bundle.
65
+
66
+ TESTS::
67
+
68
+ sage: M = Manifold(2, 'M', structure='top')
69
+ sage: X.<x,y> = M.chart()
70
+ sage: p = M((1,-1), name='p')
71
+ sage: E = M.vector_bundle(2, 'E')
72
+ sage: e = E.local_frame('e')
73
+ sage: Ep = E.fiber(p)
74
+ sage: v = Ep.element_class(Ep, name='v') ; v
75
+ Vector v in the fiber of E at Point p on the 2-dimensional
76
+ topological manifold M
77
+ sage: v[:] = 5, -3/2
78
+ sage: TestSuite(v).run()
79
+ """
80
+ FiniteRankFreeModuleElement.__init__(self, parent, name=name,
81
+ latex_name=latex_name)
82
+ # Extra data (with respect to FiniteRankFreeModuleElement):
83
+ self._point = parent._point
84
+ self._vbundle = parent._vbundle
85
+
86
+ def _repr_(self):
87
+ r"""
88
+ String representation of ``self``.
89
+
90
+ TESTS::
91
+
92
+ sage: M = Manifold(2, 'M', structure='top')
93
+ sage: X.<x,y> = M.chart()
94
+ sage: p = M((1,-1), name='p')
95
+ sage: E = M.vector_bundle(2, 'E')
96
+ sage: e = E.local_frame('e')
97
+ sage: Ep = E.fiber(p)
98
+ sage: v = Ep([-3,2], name='v')
99
+ sage: v._repr_()
100
+ 'Vector v in the fiber of E at Point p on the 2-dimensional
101
+ topological manifold M'
102
+ sage: repr(v) # indirect doctest
103
+ 'Vector v in the fiber of E at Point p on the 2-dimensional
104
+ topological manifold M'
105
+ """
106
+ desc = "Vector "
107
+ if self._name:
108
+ desc += str(self._name) + " "
109
+ desc += "in the fiber of {} at {}".format(self._vbundle._name,
110
+ self._point)
111
+ return desc
@@ -0,0 +1 @@
1
+ # sage_setup: distribution = sagemath-symbolics
@@ -0,0 +1,6 @@
1
+ # sage_setup: distribution = sagemath-symbolics
2
+ from sage.matrix.matrix_generic_dense cimport Matrix_generic_dense
3
+
4
+
5
+ cdef class Matrix_symbolic_dense(Matrix_generic_dense):
6
+ pass