Package geometry :: Package manifolds :: Module translation_algebra
[hide private]
[frames] | no frames]

Source Code for Module geometry.manifolds.translation_algebra

 1  from . import np, MatrixLieAlgebra, contract 
 2  from .. import extract_pieces, combine_pieces 
3 4 5 -class tran(MatrixLieAlgebra):
6 ''' 7 lie algebra for translation 8 ''' 9 10 @contract(n="1|2|3")
11 - def __init__(self, n):
12 MatrixLieAlgebra.__init__(self, n + 1, dimension=n)
13
14 - def norm(self, X):
15 W, v, zero, zero = extract_pieces(X) #@UnusedVariable 16 return np.linalg.norm(v)
17
18 - def project(self, X):
19 W, v, zero, zero = extract_pieces(X) #@UnusedVariable 20 return combine_pieces(W * 0, v, v * 0, 0)
21
22 - def __repr__(self):
23 return 'tr%s' % (self.n - 1)
24
25 - def interesting_points(self):
26 points = [] 27 points.append(self.zero()) 28 return points
29 30 @contract(a='belongs')
31 - def vector_from_algebra(self, a):
32 W, v, zero, zero = extract_pieces(a) #@UnusedVariable 33 if v.shape == (): 34 v = v.reshape(1) 35 assert v.size == self.n - 1 36 return v
37 38 @contract(returns='belongs', v='array[K]')
39 - def algebra_from_vector(self, v):
40 assert v.size == self.n - 1 41 return combine_pieces(np.zeros((self.n - 1, self.n - 1)), v, v * 0, 0)
42