Ask Your Question
3

Find sphere points in a lattice

asked 2020-02-04 20:01:35 +0100

heluani gravatar image

updated 2020-02-04 22:50:02 +0100

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.

edit retag flag offensive close merge delete

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 ( 2020-02-07 18:52:55 +0100 )edit

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

heluani gravatar imageheluani ( 2020-02-10 13:51:22 +0100 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2020-02-10 19:00:08 +0100

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
edit flag offensive delete link more

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 ( 2020-02-14 13:27:43 +0100 )edit

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 ( 2020-03-01 11:43:48 +0100 )edit

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: 2020-02-04 20:01:35 +0100

Seen: 350 times

Last updated: Feb 10 '20