PackedRipserCohomologyContext
Attributes
- Experimental
- true
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
Members list
Type members
Classlikes
A simplex carried purely as (diameter, combinatorial index) -- see the class doc above for why equality deliberately ignores diameter. Not private: it's the actual Chain cell type persistentCohomology() returns bars over, so callers need to be able to name the type (e.g. to decode a bar's cells back to Simplex[Int] via SimplexIndexing.apply(index, size) for display or cross-validation).
A simplex carried purely as (diameter, combinatorial index) -- see the class doc above for why equality deliberately ignores diameter. Not private: it's the actual Chain cell type persistentCohomology() returns bars over, so callers need to be able to name the type (e.g. to decode a bar's cells back to Simplex[Int] via SimplexIndexing.apply(index, size) for display or cross-validation).
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Value members
Concrete methods
Packed analogue of RipserCohomologyContext.coboundaryOf: decodes sigma exactly ONCE (never decodes any tau -- each cofacet's diameter comes from insertionDiameter, its identity from the index CofacetCursor already produces). Guard mirrors the fixed maxDimension semantics: empty only past maxDimension + 1 (size - 1 > maxDimension, i.e. sigma's own dimension exceeds what's requested), not AT it -- see .claude/WORKLOG-maxdim-semantics-fix.md.
Packed analogue of RipserCohomologyContext.coboundaryOf: decodes sigma exactly ONCE (never decodes any tau -- each cofacet's diameter comes from insertionDiameter, its identity from the index CofacetCursor already produces). Guard mirrors the fixed maxDimension semantics: empty only past maxDimension + 1 (size - 1 > maxDimension, i.e. sigma's own dimension exceeds what's requested), not AT it -- see .claude/WORKLOG-maxdim-semantics-fix.md.
Built directly on CofacetCursor, not cofacetIteratorWithVertex: the latter allocates a fresh (Int, Long) tuple on every candidate vertex considered, once the largest identified allocation cost in this class.
Attributes
Concrete fields
Not private, as of TDA4j.scala routing engine="ripser" through this class instead of RipserCohomologyContext: a caller decoding a bar's DiameterIndex cells back to vertex arrays (e.g. PersistenceResult.cycleVertices) needs this same SimplexIndexing instance -- constructing a fresh one from metricSpace.size would work too (the class is a pure function of vertex count), but would rebuild binomialEntry's lazily-grown cache from scratch rather than reusing the one this context already populated during its own reduction.
Not private, as of TDA4j.scala routing engine="ripser" through this class instead of RipserCohomologyContext: a caller decoding a bar's DiameterIndex cells back to vertex arrays (e.g. PersistenceResult.cycleVertices) needs this same SimplexIndexing instance -- constructing a fresh one from metricSpace.size would work too (the class is a pure function of vertex count), but would rebuild binomialEntry's lazily-grown cache from scratch rather than reusing the one this context already populated during its own reduction.