Ask Your Question

# 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

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

( 2020-02-07 11:52:55 -0600 )edit

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

( 2020-02-10 06:51:22 -0600 )edit

## 1 answer

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

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

( 2020-02-14 06:27:43 -0600 )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 04:43:48 -0600 )edit

## Your Answer

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

Add Answer

## Stats

Asked: 2020-02-04 13:01:35 -0600

Seen: 147 times

Last updated: Feb 10 '20