A simple method for finding large
Shells of evenly spaced lattice points:
To generate evenly spaced sets of non-random points on spheres:
firstan n-sphere,save some time by doing start with the positive octant P only:
find P > 0 permutations of the size you want, and mirror 2^ndim copies(removing duplicates){ 0 1 1 .
In your case we want |P| = 3^10 / 2^8 ~ 2^8.. 2 2 .
Take shells .. },then make 2^n flips of points with integer coordinates >= 0that.For example, all at in 4-space start with the same distance from 12 permutations of { 0 ,then normalize them1 1 2 }.This Each point is fast√6 from the origin,using a table dist4[ and each has 4 tuples ]neighbours √2 away (+1 here, dist8 = dist4[] + dist4[].
280 8-tuples <= 2 have sum2 19-1 there):[[0 0 1 1 20 2 1 11 0 1 21 1 0 2Make 2^4 sign-flipped copies of this,336 8-tuples <= 3 have sum2 50: [[0 multiply by { 1 2 3 3 3 3 3] 1 1 1 } ...280 8-tuples <= 4 have sum2 95: [[2 3 3 3 4 4 4 4] . ..
How does "evenness" vary as the shells get larger ?The pairwise distances, sort(pdist){ -1 -1 -1 -1 }except where there's a 0.This gives a shell of 96 points, look like this:
max 0 1 1 2 pdist: .. 0 0.32 2100 0.46 7980 0.56 -1 -1 -2.Each is √6 from the origin,and each now has 6 neighbours √2 away...
max 4 pdist:
For the 8-sphere, start with the 280 permutations of { 0 0.15 2100 0.21 7980 0.25 1 1 1 1 2 2 2 }.which suggests that Each has of course the max-2 tuples are good enoughsame distance from the origin,and each has 12 neighbours √2 away— a nice, regular graph.
(Bytheway I use Python / numpy The shell of 280 * 2^7 = 35840 sign-flipped pointsis not Matlabquite 3^10, but.
(I'd appreciate links to papers or you could have the code.programs on such graphs.)

