A.<u,v,w>=QuaternionAlgebra(2,3)
Id=identity_matrix(2)
U=matrix([[sqrt(2),0],[0,-sqrt(2)]])
V=matrix([[0,1],[3,0]])
W=U*V
E0=Id
E1=U
E2=(1/2)*Id+(1/2)*U+(1/2)*V
E3=(1/2)*U+(1/2)*W
B=[E0,E1,E2,E3]
maxm = 5
L = []
for i in range(-max,max):
for j in range(-max,max):
for k in range(-max,max):
for l in range(-max,max):
temp = i*B[0] + j*B[1] + k*B[2] + l*B[3]
if temp.determinant() == 1:
L.append(temp)
print(str(len(L)) + " matrices are selected in L")
def coeff(F):
C=[]
C.append((F.coefficient({a:0,b:0})))
C.append((F.coefficient({a:1,b:0})))
C.append((F.coefficient({a:0,b:1})))
return C
ineqs=[]
for F in INEQS:
ineqs.append(coeff(F))
poly=Polyhedron(ieqs=ineqs,base_ring=AA)
print(poly)
print("\n Vertices are:")
for j in poly.Vrepresentation():
print("(" + str(j[0].radical_expression()) + " , " + str(j[1].radical_expression()) + ")")