@@ -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