WitnessMetricSpace
The lazy witness complex's own 1-skeleton (De Silva & Carlsson 2004; JavaPlex's LazyWitnessStream), reified as a FiniteMetricSpace[Int] over LOCAL landmark indices so it slots directly into RipserCofaceSimplexStream unchanged (LazyWitnessSimplexStream below) -- the lazy witness complex IS, by definition, the flag/clique complex of this weighted graph (JavaPlex's own LazyWitnessStream derives from FlagComplexStream for exactly this reason), so distance(a,b) here doubles as both the edge filtration value AND (via the inherited MaximumDistanceFiltrationValue "max pairwise distance" formula) every higher simplex's filtration value too -- no filtrationValueOverride needed anywhere.
'''Not a real metric''': distance can be zero for two distinct landmarks (whenever some witness sees both within its own m_nu threshold) and need not obey the triangle inequality. NEVER hand this to JVPTree, SparseMetricSpace, RecursiveStackVietorisRipsSimplexStream, or anything in the alpha package -- only to EnumeratingCofaceSimplexStream/RipserCofaceSimplexStream's own combinatorial (not spatial) candidate generation, which assumes neither property.
nu (JavaPlex's own name) selects the per-witness threshold m_nu: 0 means no threshold (m = 0 everywhere -- the strictest/smallest complex), 1 the nearest-landmark distance, 2 (JavaPlex's own default) the 2nd-nearest. Capped at [0, 2], matching JavaPlex's own verifyLessThan(nu, 3) -- beyond nu = 2 the per-witness clamp stops being a no-op for every landmark pair, an unstudied regime this class deliberately doesn't offer (see .claude/WORKLOG-witness-complex.md).
Attributes
- Experimental
- true
- Graph
-
- Supertypes