openresearch
|
d9e465fb91
|
feat: pipeline_core.py — module-swappable six-stage engine
Standard Filter interface: each stage is apply(configs, ctx) → configs.
Stages swappable without rewriting the pipeline. No floats (Q16_16 raw).
No native_decide.
Default stages:
BraidStorm(k) → TreeBraid → AngrySphinx(budget) →
MultisurfacePacker(surfaces) → COUCHFilter → SidonFilter
Swappable Sidon filters:
- SidonFilter: CRT sum-based (chiral-invariant, proven)
- DualQuaternionSidonFilter: dual quaternion product-based
(chiral-discriminating — multiplication is NOT negation-invariant)
Usage:
pipe = Pipeline([BraidStorm(k=8), TreeBraid(), ...,
DualQuaternionSidonFilter()])
result = pipe.run(labels, S, moduli)
Or via CLI:
python3 pipeline_core.py --filter crt # CRT sum filter
python3 pipeline_core.py --filter dq # Dual quaternion filter
To add custom filter:
class MyFilter(Filter):
def apply(self, configs, ctx): ...
@property
def name(self): return 'MyFilter'
|
2026-07-04 20:43:27 +00:00 |
|