1 from . import DifferentiableManifold, MatrixLieGroup, contract
5 ''' This class represents the tangent bundle of a matrix Lie group
6 using a tuble (base, v0), where v0 is in the algebra.
7
8 Compare with the generic TangentBundle that uses the representation
9 (base, vel) where vel is tangent at base (it holds that vel=base*v0).
10
11 (MatrixLieGroup has different representation)
12 '''
13
14
15
16
22
24 return "T%se" % self.base
25
26 @contract(x='tuple[2]')
30
32
33 raise ValueError('Not supported')
34
36
37 raise ValueError('Not supported')
38
39 @contract(a='belongs', b='belongs', returns='>=0')
41
42 raise ValueError('Not supported')
43
44 @contract(base='belongs', p='belongs', returns='belongs_ts')
46 raise ValueError('Not supported')
47
48 @contract(bv='belongs_ts', returns='belongs')
50 raise ValueError('Not supported')
51
52 @contract(returns='list(belongs)')
56
57 @contract(a='belongs')
59 '''
60 Returns a friendly description string for a point on the manifold.
61 '''
62 v = self.base.get_algebra().vector_from_algebra(a[1])
63 return "V(%s,%s)" % (self.base.friendly(a[0]), v.tolist())
64