class q(list):
def __init__(self,t,x,y,z):
self.t = t
self.x = x
self.y = y
self.z = z
self.qn = []
list.__init__(self,[t,x,y,z])
def __repr__(self):
return "The group U(1)."
def show(self):
print self.t, self.x, self.y, self.z
def vector(self):
return q(0, self.x, self.y, self.z)
def n_random(self, n):
self.qn[:]=[]
for i in range(n):
self.qn.append(q(2 * random() - 1, 2 * random() - 1, 2 * random() - 1, 2 * random() - 1))
return self
# exp(q) = (exp(t) cos(|R|), exp(t) sin(|R|) R/|R|)
def exp(self):
abs_vector = sqrt(self.x^2 + self.y^2 + self.z^2)
if abs_vector == 0:
return q(exp(self.t), 0, 0, 0)
k = exp(self.t) * sin(abs_vector) / abs_vector
return q(exp(self.t) * cos(abs_vector), k * self.x, k * self.y, k * self.z)
def su2(self):
return self.vector().exp()
#auto