1#![forbid(unsafe_code)]
2#![warn(missing_docs)]
3
4pub(crate) mod adjacency;
12pub mod atlas;
14pub mod atlas_wire;
16pub mod bifiltration;
18pub mod bipersistence;
20pub mod bipersistence_artifact;
22#[cfg(test)]
23mod bit_keys;
24pub(crate) mod budget;
25pub mod certificate;
27pub mod circular;
29pub mod circular_artifact;
31pub mod classes;
33pub mod cli;
35pub mod cohomology;
37pub mod cohomology_intervention;
39pub mod collapse;
40pub(crate) mod combinadic;
41pub mod correspondence;
43pub mod coverage;
45pub mod coverage_frontier;
47pub mod coverage_geometry;
49pub mod coverage_synthesis;
51pub mod distances;
53pub mod distributed;
55pub mod explicit_certificate;
57pub mod factorization;
59pub(crate) mod field;
60pub mod filtration;
62pub mod graded_certificate;
64pub mod index;
66pub mod index_proof;
68pub mod index_stream;
70pub mod intervention;
72pub mod io;
74pub mod kinetic;
76pub mod kinetic_zigzag_artifact;
78mod monotone_proof;
79mod monotone_search;
80pub mod oracle;
82pub(crate) mod parallel;
83pub mod persistent_class_artifact;
85pub mod persistent_coordinate_artifact;
87pub mod program;
89pub mod program_trace;
91pub mod program_wire;
93pub mod proof;
95pub(crate) mod reduce;
96pub mod relative_interface;
98pub(crate) mod simplex;
99pub(crate) mod solver;
100pub mod synthesis;
102pub mod trajectory;
104mod union_find;
105pub mod zigzag;
107
108pub use atlas::{
109 AtlasEvaluation, AtlasUpdate, ClassSensitivity, CoordinateDerivative, EdgeKey,
110 EndpointGradient, EvaluatedClassSpace, LineageId, PersistenceAtlas, PointAtlasUpdate,
111 PointClassSensitivity, PointEndpointGradient, PointPersistenceAtlas, TopologyEvent,
112 TopologyEventKind, UpdateMode,
113};
114pub use atlas_wire::{AtlasArtifact, AtlasArtifactError, AtlasArtifactRepair, AtlasDecodeLimits};
115pub use bifiltration::{
116 BifiltrationLimits, BifiltrationSlice, Bigrade, BirthAntichain, DegreeRipsBifiltration,
117 DegreeRipsParams, MulticriticalBifiltration, MulticriticalSimplex,
118};
119pub use bipersistence::{
120 BipersistenceLimits, BipersistenceMap, BipersistenceMapColumn, BipersistenceModule,
121 BipersistenceNode, BipersistenceRectangle, BipersistenceRegion, BipersistenceTerm,
122 CircularCoordinateFamily, CircularCoordinateFamilyEntry, CircularCoordinateFamilyStatus,
123 ClassExtension, ClassExtensionKind, ClassExtensionRegion, CohomologyClassAtlas,
124};
125pub use bipersistence_artifact::{
126 BipersistenceArtifact, BipersistenceArtifactLimits, BipersistenceArtifactSummary,
127 BipersistenceRectangleClaim, BipersistenceRegionClaim,
128};
129pub use certificate::{
130 CertificateError, CertificateLimits, CertificateTerm, CertifiedReductionRegion,
131 CertifiedRegionEvaluation, ChangeColumn, FiltrationSimplex, ReductionCertificate,
132 ReductionGuard, ReductionGuardKind, ReductionRepair, ReductionRepairMode, ReductionRepairWork,
133 RegionViolation, RegionViolationKind,
134};
135pub use circular::{
136 CircularClassTerm, CircularCoordinate, CircularCoordinateContinuation,
137 CircularCoordinateParams, IntegralCocycleTerm, circular_coordinate,
138 circular_coordinate_for_class, circular_coordinate_with_integral_lift,
139 cocycle_from_ripser_terms, continue_circular_coordinate,
140};
141pub use circular_artifact::{
142 CircularArtifactError, CircularArtifactSummary, CircularCoordinateArtifact,
143};
144pub use classes::{
145 BasisClassId, Cocycle, CocycleTerm, CriticalPair, CriticalSimplex, ExplainedDiagram,
146 IntervalGroupId, PersistentClass, PersistentClassProvenance, PersistentClassSpace,
147 lift_h1_classes, rips_persistence_with_classes_sparse,
148};
149pub use cohomology::{
150 CochainTerm, CohomologyClass, CohomologyClassId, CohomologyContinuation,
151 CohomologyContinuationKind, CohomologyLimits, CohomologyMapColumn, CohomologyMapTerm,
152 CohomologyRelation, CohomologyRelationTerm, CohomologyRelationVector, CohomologyRestriction,
153 CohomologySpace, CohomologySpaceId, CohomologySubspace, CohomologySubspaceGenerator,
154 CohomologySubspaceTerm, cohomology_continuation, cohomology_relation, cohomology_restriction,
155 cohomology_space,
156};
157pub use cohomology_intervention::{
158 CohomologyInterventionArtifact, CohomologyInterventionCandidate, CohomologyInterventionLimits,
159 CohomologyInterventionScenario, CohomologyInterventionStatus,
160};
161pub use correspondence::{
162 ClassCorrespondence, CorrespondenceTerm, CorrespondenceVector, class_correspondences,
163};
164pub use coverage::{
165 CoverageEvaluation, CoverageFence, CoverageLimits, CoverageTriangleTerm, PlanarCoverageModel,
166 evaluate_planar_coverage,
167};
168pub use coverage_frontier::{
169 CoverageComponentFrontier, CoverageComposition, CoverageCompositionStatus,
170 CoverageFrontierEntry, compose_coverage_frontiers,
171};
172pub use coverage_geometry::{
173 CoverageGeometry, CoverageGeometryLimits, GeometryBoundCoverageArtifact,
174 GeometryBoundCoverageDecodeLimits, PlanarPoint,
175};
176pub use coverage_synthesis::{
177 CoverageAction, CoverageComponent, CoverageCounterexample, CoveragePlanEvaluation,
178 CoverageSource, CoverageSpecification, CoverageState, CoverageSynthesisArtifact,
179 CoverageSynthesisLimits, CoverageSynthesisStatus, evaluate_coverage_plan,
180};
181pub use distances::{
182 DistanceMatrix, PointCloudGraph, PointCloudParams, PointCloudStats, PointCloudStrategy,
183 SparseDistanceMatrix,
184};
185pub use distributed::{
186 ArtifactId, DistributedInterfaceCommit, DistributedInterfaceError,
187 DistributedInterfaceManifest, DistributedInterfaceWork, DurableInterfaceStore,
188};
189pub use explicit_certificate::ExplicitReductionCertificate;
190pub use filtration::{
191 ComplexLimits, CoordinateProjection, FilteredSimplex, FilteredSimplicialComplex,
192 FiltrationError, FiltrationGrade, FlagComplexParams, LinearFiltrationGrade, ProductGrade,
193 ScalarGrade, ScalarProjection,
194};
195pub use graded_certificate::{
196 GradedDimensionWork, GradedReductionCertificate, GradedReductionRepair,
197 GradedReductionRepairWork,
198};
199pub use index::{
200 DiagramDelta, IndexBranch, IndexDiff, IndexEdit, IndexEvent, IndexEventKind, IndexParams,
201 IndexSummary, IndexTransition, IndexUpdateMode, IndexWork, InterfaceMode, InterfacePolicy,
202 InterfaceSummary, PersistenceIndex, TopologyPatch,
203};
204pub use index_proof::{IndexDeltaProof, IndexProofError, IndexProofSummary, IndexSnapshotProof};
205pub use index_stream::{IndexStream, IndexStreamProof, IndexStreamStep};
206pub use intervention::{
207 EdgeWeightEdit, H1Intervention, InterventionArtifact, InterventionBudget,
208 InterventionDecodeLimits, InterventionError, InterventionStatus, VerifiedIntervention,
209};
210pub use kinetic::{
211 KineticCohomologyEvent, KineticEdge, KineticEdgeKey, KineticEvent, KineticEventKind,
212 KineticFiltration, KineticGraphState, KineticGraphStateKind, KineticLimits, KineticSchedule,
213 KineticZigzag, KineticZigzagArrow, KineticZigzagNode, KineticZigzagNodeKind,
214};
215pub use kinetic_zigzag_artifact::{
216 KineticZigzagArtifact, KineticZigzagArtifactLimits, KineticZigzagArtifactSummary,
217 KineticZigzagIntervalClaim,
218};
219pub use persistent_class_artifact::{
220 PersistenceCycleTerm, PersistenceTriangleTerm, PersistentClassArtifact,
221};
222pub use persistent_coordinate_artifact::{
223 PersistentCoordinateArtifact, PersistentCoordinateArtifactError,
224 PersistentCoordinateArtifactSummary,
225};
226pub use program::{
227 BasisTransport, ClassContinuation, ContinuationKind, CorrespondenceMode, PersistenceProgram,
228 ProgramAtomInfo, ProgramBranch, ProgramCheckpoint, ProgramDiagramState, ProgramDiagramUpdate,
229 ProgramDiagramUpdateMode, ProgramEvaluation, ProgramEvent, ProgramEventKind, ProgramSummary,
230 ProgramUpdate, ProgramUpdateMode, ProgramWork,
231};
232pub use program_trace::{
233 ProgramTraceArtifact, ProgramTraceDecodeLimits, ProgramTraceError, ProgramTraceStep,
234 VerifiedProgramTrace, VerifiedProgramTraceStep,
235};
236pub use program_wire::{
237 ProgramArtifact, ProgramArtifactError, ProgramAtomArtifact, ProgramDecodeLimits,
238};
239pub use proof::{ProofArtifact, ProofArtifactError, ProofArtifactSummary};
240pub use relative_interface::{
241 InterfaceCancellation, InterfaceCell, InterfaceChainTerm, RelativeInterfaceCertificate,
242 RelativeInterfaceWork,
243};
244pub use synthesis::{
245 SynthesisAction, SynthesisArtifact, SynthesisComponent, SynthesisCoordinate, SynthesisLimits,
246 SynthesisSource, SynthesisState, SynthesisStatus, TopologicalSpecification,
247};
248pub use trajectory::{
249 TrajectoryArtifact, TrajectoryDecodeLimits, TrajectoryError, TrajectoryStep,
250 VerifiedTrajectory, VerifiedTrajectoryStep,
251};
252pub use zigzag::{
253 ZigzagBarcode, ZigzagDirection, ZigzagInterval, ZigzagIntervalId, ZigzagLimits, ZigzagMap,
254 ZigzagModule, ZigzagModuleId, ZigzagTerm,
255};
256
257pub const GIT_HASH: &str = env!("HOLOS_GIT_HASH");
259pub const VERSION: &str = env!("CARGO_PKG_VERSION");
261pub const BUILD_PROFILE: &str = env!("HOLOS_BUILD_PROFILE");
263
264mod scalar;
265
266pub(crate) use scalar::collapse_and_solve;
267pub use scalar::{
268 Bar, CollapseSchedule, DenseStorage, Diagram, Engine, Error, GraphFactorization, Result,
269 RipsParams, rips_persistence, rips_persistence_sparse, rips_persistence_with_classes,
270};