Releases: chrono-metrics/metricchrono
Releases · chrono-metrics/metricchrono
v0.4.0
- Added:
CoverageMeter,progress_efficiency,classify_regime, and
OperatingRegimeinmetricchrono-core— a per-tier streaming coverage
read-out (greedy maximal epsilon-packing of the visited image, holding
representatives only) complementary to the per-step tick throughput.
Coverage is invariant under revisits and detects sub-threshold relocation
(creep) that per-step thresholding is silent on by design; jointly with
throughput it classifies windows into quiescent / progress / churn / creep. - Performance:
CoverageMeterstores pooled representatives (a sample
admitted at several tiers is cloned once and indexed per tier), memoizes
each representative's distance across tiers within one observation, scans
newest-first so locality-heavy streams short-circuit early (2.3x on the
2-D walk benchmark,benches/coverage_throughput.rs), and exposes the
allocation-freeobserve_into.representatives()now returns an
iterator over pooled entries and accessors no longer requireT: Clone. - Added: full binding parity for coverage. C ABI: opaque
MCCoverageMeter
(mc_coverage_meter_new/observe/counts/unique_representatives/tier_count/ free) over fixed-dimensiondoublestates with the existing metric ids,
plusmc_progress_efficiency,mc_classify_regime, and theMCRegime
enum, declared in both copies ofmetricchrono.hand exercised by the C
header smoke test. Python:CoverageMeter,OperatingRegime,
classify_regime,progress_efficiencyover the C ABI. JavaScript:
pure-JSCoverageMeter(pooled storage, per-observe distance memo,
newest-first scan, NaN-rejects semantics identical to Rust),
OperatingRegime,classifyRegime,progressEfficiency, with TypeScript
declarations and tests. - Added: custom distance callbacks for the C-ABI coverage meter.
mc_coverage_meter_new_with_callbacktakes anMCDistanceFn
(double (*)(const double *a, const double *b, size_t dim, void *user_data)),
so embedders can audit coverage under domain metrics without round-tripping
states; returning NaN rejects admission (the safe failure mode). The Python
CoverageMeteraccepts any Python callable as its metric (exceptions in the
callable are converted to NaN rather than unwinding into the C ABI); the
JavaScript binding already accepted arbitrary metric functions.
v0.3.0
- Added: Pre-built binary wheels on PyPI for Linux (manylinux x86_64 and
aarch64), macOS (Intel and Apple Silicon), and Windows (x86_64), so
pip install metricchronono longer requires a Rust toolchain on those
platforms. The source distribution still builds from source (and so still
requires Cargo). No API changes.