Skip to content
This repository was archived by the owner on Jan 30, 2023. It is now read-only.

Commit a6961c6

Browse files
author
Matthias Koeppe
committed
VectorFieldFreeModule: Update methods exterior_power, dual_exterior_power, tensor_module for changed FiniteRankFreeModule.__init__
1 parent 2ac26d7 commit a6961c6

File tree

1 file changed

+32
-16
lines changed

1 file changed

+32
-16
lines changed

src/sage/manifolds/differentiable/vectorfield_module.py

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1700,11 +1700,17 @@ def tensor_module(self, k, l):
17001700
for more examples and documentation.
17011701
17021702
"""
1703-
from sage.manifolds.differentiable.tensorfield_module import \
1703+
try:
1704+
return self._tensor_modules[(k,l)]
1705+
except KeyError:
1706+
if (k, l) == (1, 0):
1707+
T = self
1708+
else:
1709+
from sage.manifolds.differentiable.tensorfield_module import \
17041710
TensorFieldFreeModule
1705-
if (k,l) not in self._tensor_modules:
1706-
self._tensor_modules[(k,l)] = TensorFieldFreeModule(self, (k,l))
1707-
return self._tensor_modules[(k,l)]
1711+
T = TensorFieldFreeModule(self, (k,l))
1712+
self._tensor_modules[(k,l)] = T
1713+
return T
17081714

17091715
def exterior_power(self, p):
17101716
r"""
@@ -1754,13 +1760,19 @@ def exterior_power(self, p):
17541760
for more examples and documentation.
17551761
17561762
"""
1757-
from sage.manifolds.differentiable.multivector_module import \
1763+
try:
1764+
return self._exterior_powers[p]
1765+
except KeyError:
1766+
if p == 0:
1767+
L = self._ring
1768+
elif p == 1:
1769+
L = self
1770+
else:
1771+
from sage.manifolds.differentiable.multivector_module import \
17581772
MultivectorFreeModule
1759-
if p == 0:
1760-
return self._ring
1761-
if p not in self._exterior_powers:
1762-
self._exterior_powers[p] = MultivectorFreeModule(self, p)
1763-
return self._exterior_powers[p]
1773+
L = MultivectorFreeModule(self, p)
1774+
self._exterior_powers[p] = L
1775+
return L
17641776

17651777
def dual_exterior_power(self, p):
17661778
r"""
@@ -1808,13 +1820,17 @@ def dual_exterior_power(self, p):
18081820
for more examples and documentation.
18091821
18101822
"""
1811-
from sage.manifolds.differentiable.diff_form_module import \
1823+
try:
1824+
return self._dual_exterior_powers[p]
1825+
except KeyError:
1826+
if p == 0:
1827+
L = self._ring
1828+
else:
1829+
from sage.manifolds.differentiable.diff_form_module import \
18121830
DiffFormFreeModule
1813-
if p == 0:
1814-
return self._ring
1815-
if p not in self._dual_exterior_powers:
1816-
self._dual_exterior_powers[p] = DiffFormFreeModule(self, p)
1817-
return self._dual_exterior_powers[p]
1831+
L = DiffFormFreeModule(self, p)
1832+
self._dual_exterior_powers[p] = L
1833+
return L
18181834

18191835
def general_linear_group(self):
18201836
r"""

0 commit comments

Comments
 (0)