Add DIMS_3 support and fix dim_diff for prime 11

This commit is contained in:
Michael Winter 2026-03-28 13:51:05 +01:00
parent 7dd7f23611
commit bb7a9ccb21
3 changed files with 11 additions and 5 deletions

View file

@ -3,3 +3,4 @@ DIMS_8 = (2, 3, 5, 7, 11, 13, 17, 19)
DIMS_7 = (2, 3, 5, 7, 11, 13, 17)
DIMS_5 = (2, 3, 5, 7, 11)
DIMS_4 = (2, 3, 5, 7)
DIMS_3 = (2, 3, 5)

View file

@ -325,7 +325,7 @@ def save_graph_to_cache(
def main():
"""Demo: Generate compact sets and build graph."""
import argparse
from .dims import DIMS_4, DIMS_5, DIMS_7, DIMS_8
from .dims import DIMS_3, DIMS_4, DIMS_5, DIMS_7, DIMS_8
from .harmonic_space import HarmonicSpace
from .pathfinder import PathFinder
@ -414,7 +414,10 @@ def main():
help="Make symdiff selection uniform across range (ignore weight differences)",
)
parser.add_argument(
"--dims", type=int, default=7, help="Number of prime dimensions (4, 5, 7, or 8)"
"--dims",
type=int,
default=7,
help="Number of prime dimensions (3, 4, 5, 7, or 8)",
)
parser.add_argument("--chord-size", type=int, default=3, help="Size of chords")
parser.add_argument("--max-path", type=int, default=50, help="Maximum path length")
@ -530,7 +533,9 @@ def main():
return # Exit after OSC playback
# Select dims
if args.dims == 4:
if args.dims == 3:
dims = DIMS_3
elif args.dims == 4:
dims = DIMS_4
elif args.dims == 5:
dims = DIMS_5

View file

@ -347,8 +347,8 @@ def _is_adjacent(hs1: tuple, hs2: tuple) -> bool:
def _compute_dim_diff(current: tuple, prev: tuple) -> int:
"""Compute dim_diff between two hs_arrays. Returns prime * direction."""
primes = [3, 5, 7]
for i in range(1, 4):
primes = [3, 5, 7, 11]
for i in range(1, 5):
diff = current[i] - prev[i]
if diff == 1:
return primes[i - 1]