What it solves
Large constrained search spaces are often implicit: materialising the tree or retaining every explored prefix exceeds embedded memory budgets.
How it works
1Prefix→2sufficient state→3bounded subtree count→4visit or skip subtree
Use it when
Traverse a modeled constrained space with fixed caller-owned workspace
Count a subtree before deciding whether to visit or skip it
Keep navigation state compact when equivalent prefixes have equivalent futures
Use sparse skip checks in a large deterministic exploration
Quick Start
#include "skipspace.h"
/* Configure the modeled transition table and caller-owned workspace. */
/* push() updates sufficient state; count()/can_skip() decide a subtree. */
/* No search tree is allocated or materialised. */Engineering evidence
- The portable C core has no Arduino or ESP-IDF dependency and no dynamic allocation
- V1 defines navigation, bounded/saturating count, can_skip and workspace sizing, with depth bounded at 1000
- An ESP32-S3 uint32_t, 31-state, K=32 profile is documented with approximately 227,834 visited nodes/s using sparse skip checks
Known limits
- It is not a general solver, AI framework, vector database or universal search engine
- The modeled transition table must preserve future-relevant behaviour in its sufficient state
- count/can_skip cost substantially more than push/pop; V1 does not put rank/unrank on the hot path