Processing math: 100%
Ask Your Question
3

Find sphere points in a lattice

asked 5 years ago

heluani gravatar image

updated 5 years ago

Hello, say I have a lattice as in

Q = RootSystem('E8').weight_lattice()

with it's canonical bilinear form. How do I find the vectors v such that (v,v)=n for a positive integer n?

Edit: it would be even better if there's a way to get the points inside a cone, say the principal chamber in the above example.

Preview: (hide)

Comments

Could you explain what is meant by "canonical bilinear form", the one coming from the geometric representation?

This will affect how to give you a better answer.

jipilab gravatar imagejipilab ( 5 years ago )

The one coming from the Killing for on the Cartan algebra.

heluani gravatar imageheluani ( 5 years ago )

1 Answer

Sort by » oldest newest most voted
1

answered 5 years ago

jipilab gravatar image

Here is a snippet of code that should do:

sage: Q = RootSystem('E8').weight_lattice()
sage: B = Q.basis()
sage: the_set = set()
sage: finished = False
sage: i = 1
sage: value = 4
sage: while not finished:
....:     smaller_or_eq_values = False
....:     int_vectors = IntegerVectors(n=i,k=8)
....:     for vect in int_vectors:
....:         weight = sum(vect[j]*B[j+1] for j in range(8)) # Create the weight
....:         wns = weight.norm_squared()
....:         if wns <= value:
....:             smaller_or_eq_values = True
....:             if wns == value:
....:                 print(weight)
....:                 the_set.add(weight)
....:     if not smaller_or_eq_values:
....:         finished = True
....:     i += 1

You will get a set the_set which above contains all the (positive) weights that have the norm squared to be equal to value=4.

The norm squared seem to deliver the same as the symmetric form:

sage: B[1]+B[2]
Lambda[1] + Lambda[2]
sage: a_weight = B[1]+B[2]
sage: a_weight.symmetric_form(a_weight)
22
sage: a_weight.norm_squared()
22
Preview: (hide)
link

Comments

Thanks, that' works, but it's a bit less efficient that what I'm using now. This tests for all vectors in a box. You can use a ball which in higher dimensions is much smaller, and you can even account for the fact that in a root lattice case it's an ellipsoid. What I was wandering was if this was already implemented within Sage (which has the advantage of having precompiled cython code for example).

heluani gravatar imageheluani ( 5 years ago )

I see. If it is in Sage I would suspect that it is closer to the number theory and quadratic forms code, but I am not aware of it...

jipilab gravatar imagejipilab ( 5 years ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 5 years ago

Seen: 362 times

Last updated: Feb 10 '20