# GL6/Sp6: (i) the translate of type (0,0,0,0,0,-2) [lambda=(2,0,0,0,0,0)] on c1..c4;
# (ii) the in-box translates vanish on every other orbit with sum a = 2 (checked on
#      labels with an entry outside [-2,2]).
import sys, time
exec(open('/private/tmp/claude-501/-Users-miltonlin-Projects-Trees/f0f18b89-aa0d-4ce6-93d2-78c269eb7d7d/scratchpad/salvage/S1/engine.py').read())
p = int(sys.argv[1])
orbits = {'c1': (0, 0, 2), 'c2': (0, 1, 1), 'c3': (-1, 1, 2), 'c4': (-2, 2, 2)}
for name, a in orbits.items():
    cnt = count_types(a, p, lo=[-2]*6, hi=[0]*6, total_d=-sum(a), shift=2, prec=20)
    print('q=%d %s: lattices M containing O^6 of type (0,0,0,0,0,-2): %d   [pred c1: q(q+1)=%d]' % (p, name, cnt.get((0,0,0,0,0,-2), 0), p*(p+1)))
others = [(-1, 0, 3), (-2, 1, 3), (-3, 2, 3), (-1, -1, 4), (-4, 3, 3), (-2, 0, 4), (-3, 1, 4)]
for a in others:
    cnt = count_types(a, p, lo=[-1]*6, hi=[1]*6, total_d=-sum(a), shift=1, prec=14)
    inbox = {ty: c for ty, c in cnt.items() if max(ty) <= 1 and min(ty) >= -1}
    print('q=%d label a=%s: in-box self-dual lattices: %s' % (p, a, inbox if inbox else 'none'))
