# Find sphere points in a lattice

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 close merge delete

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.

( 2020-02-07 18:52:55 +0200 )edit

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

( 2020-02-10 13:51:22 +0200 )edit

Sort by ยป oldest newest most voted

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)
....:     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

more

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).

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

( 2020-03-01 11:43:48 +0200 )edit