#![forbid(unsafe_code)]
#![warn(missing_docs)]
pub(crate) mod adjacency;
pub mod atlas;
pub mod atlas_wire;
pub mod bifiltration;
pub mod bipersistence;
pub mod bipersistence_artifact;
#[cfg(test)]
mod bit_keys;
pub(crate) mod budget;
pub mod certificate;
pub mod circular;
pub mod circular_artifact;
pub mod classes;
pub mod cli;
pub mod cohomology;
pub mod cohomology_intervention;
pub mod collapse;
pub(crate) mod combinadic;
pub mod correspondence;
pub mod coverage;
pub mod coverage_frontier;
pub mod coverage_geometry;
pub mod coverage_synthesis;
pub mod distances;
pub mod distributed;
pub mod explicit_certificate;
pub mod factorization;
pub(crate) mod field;
pub mod filtration;
pub mod graded_certificate;
pub mod index;
pub mod index_proof;
pub mod index_stream;
pub mod intervention;
pub mod io;
pub mod kinetic;
pub mod kinetic_zigzag_artifact;
mod monotone_proof;
mod monotone_search;
pub mod oracle;
pub(crate) mod parallel;
pub mod persistent_class_artifact;
pub mod persistent_coordinate_artifact;
pub mod program;
pub mod program_trace;
pub mod program_wire;
pub mod proof;
pub(crate) mod reduce;
pub mod relative_interface;
pub(crate) mod simplex;
pub(crate) mod solver;
pub mod synthesis;
pub mod trajectory;
mod union_find;
pub mod zigzag;
pub use atlas::{
AtlasEvaluation, AtlasUpdate, ClassSensitivity, CoordinateDerivative, EdgeKey,
EndpointGradient, EvaluatedClassSpace, LineageId, PersistenceAtlas, PointAtlasUpdate,
PointClassSensitivity, PointEndpointGradient, PointPersistenceAtlas, TopologyEvent,
TopologyEventKind, UpdateMode,
};
pub use atlas_wire::{AtlasArtifact, AtlasArtifactError, AtlasArtifactRepair, AtlasDecodeLimits};
pub use bifiltration::{
BifiltrationLimits, BifiltrationSlice, Bigrade, BirthAntichain, DegreeRipsBifiltration,
DegreeRipsParams, MulticriticalBifiltration, MulticriticalSimplex,
};
pub use bipersistence::{
BipersistenceLimits, BipersistenceMap, BipersistenceMapColumn, BipersistenceModule,
BipersistenceNode, BipersistenceRectangle, BipersistenceRegion, BipersistenceTerm,
CircularCoordinateFamily, CircularCoordinateFamilyEntry, CircularCoordinateFamilyStatus,
ClassExtension, ClassExtensionKind, ClassExtensionRegion, CohomologyClassAtlas,
};
pub use bipersistence_artifact::{
BipersistenceArtifact, BipersistenceArtifactLimits, BipersistenceArtifactSummary,
BipersistenceRectangleClaim, BipersistenceRegionClaim,
};
pub use certificate::{
CertificateError, CertificateLimits, CertificateTerm, CertifiedReductionRegion,
CertifiedRegionEvaluation, ChangeColumn, FiltrationSimplex, ReductionCertificate,
ReductionGuard, ReductionGuardKind, ReductionRepair, ReductionRepairMode, ReductionRepairWork,
RegionViolation, RegionViolationKind,
};
pub use circular::{
CircularClassTerm, CircularCoordinate, CircularCoordinateContinuation,
CircularCoordinateParams, IntegralCocycleTerm, circular_coordinate,
circular_coordinate_for_class, circular_coordinate_with_integral_lift,
cocycle_from_ripser_terms, continue_circular_coordinate,
};
pub use circular_artifact::{
CircularArtifactError, CircularArtifactSummary, CircularCoordinateArtifact,
};
pub use classes::{
BasisClassId, Cocycle, CocycleTerm, CriticalPair, CriticalSimplex, ExplainedDiagram,
IntervalGroupId, PersistentClass, PersistentClassProvenance, PersistentClassSpace,
lift_h1_classes, rips_persistence_with_classes_sparse,
};
pub use cohomology::{
CochainTerm, CohomologyClass, CohomologyClassId, CohomologyContinuation,
CohomologyContinuationKind, CohomologyLimits, CohomologyMapColumn, CohomologyMapTerm,
CohomologyRelation, CohomologyRelationTerm, CohomologyRelationVector, CohomologyRestriction,
CohomologySpace, CohomologySpaceId, CohomologySubspace, CohomologySubspaceGenerator,
CohomologySubspaceTerm, cohomology_continuation, cohomology_relation, cohomology_restriction,
cohomology_space,
};
pub use cohomology_intervention::{
CohomologyInterventionArtifact, CohomologyInterventionCandidate, CohomologyInterventionLimits,
CohomologyInterventionScenario, CohomologyInterventionStatus,
};
pub use correspondence::{
ClassCorrespondence, CorrespondenceTerm, CorrespondenceVector, class_correspondences,
};
pub use coverage::{
CoverageEvaluation, CoverageFence, CoverageLimits, CoverageTriangleTerm, PlanarCoverageModel,
evaluate_planar_coverage,
};
pub use coverage_frontier::{
CoverageComponentFrontier, CoverageComposition, CoverageCompositionStatus,
CoverageFrontierEntry, compose_coverage_frontiers,
};
pub use coverage_geometry::{
CoverageGeometry, CoverageGeometryLimits, GeometryBoundCoverageArtifact,
GeometryBoundCoverageDecodeLimits, PlanarPoint,
};
pub use coverage_synthesis::{
CoverageAction, CoverageComponent, CoverageCounterexample, CoveragePlanEvaluation,
CoverageSource, CoverageSpecification, CoverageState, CoverageSynthesisArtifact,
CoverageSynthesisLimits, CoverageSynthesisStatus, evaluate_coverage_plan,
};
pub use distances::{
DistanceMatrix, PointCloudGraph, PointCloudParams, PointCloudStats, PointCloudStrategy,
SparseDistanceMatrix,
};
pub use distributed::{
ArtifactId, DistributedInterfaceCommit, DistributedInterfaceError,
DistributedInterfaceManifest, DistributedInterfaceWork, DurableInterfaceStore,
};
pub use explicit_certificate::ExplicitReductionCertificate;
pub use filtration::{
ComplexLimits, CoordinateProjection, FilteredSimplex, FilteredSimplicialComplex,
FiltrationError, FiltrationGrade, FlagComplexParams, LinearFiltrationGrade, ProductGrade,
ScalarGrade, ScalarProjection,
};
pub use graded_certificate::{
GradedDimensionWork, GradedReductionCertificate, GradedReductionRepair,
GradedReductionRepairWork,
};
pub use index::{
DiagramDelta, IndexBranch, IndexDiff, IndexEdit, IndexEvent, IndexEventKind, IndexParams,
IndexSummary, IndexTransition, IndexUpdateMode, IndexWork, InterfaceMode, InterfacePolicy,
InterfaceSummary, PersistenceIndex, TopologyPatch,
};
pub use index_proof::{IndexDeltaProof, IndexProofError, IndexProofSummary, IndexSnapshotProof};
pub use index_stream::{IndexStream, IndexStreamProof, IndexStreamStep};
pub use intervention::{
EdgeWeightEdit, H1Intervention, InterventionArtifact, InterventionBudget,
InterventionDecodeLimits, InterventionError, InterventionStatus, VerifiedIntervention,
};
pub use kinetic::{
KineticCohomologyEvent, KineticEdge, KineticEdgeKey, KineticEvent, KineticEventKind,
KineticFiltration, KineticGraphState, KineticGraphStateKind, KineticLimits, KineticSchedule,
KineticZigzag, KineticZigzagArrow, KineticZigzagNode, KineticZigzagNodeKind,
};
pub use kinetic_zigzag_artifact::{
KineticZigzagArtifact, KineticZigzagArtifactLimits, KineticZigzagArtifactSummary,
KineticZigzagIntervalClaim,
};
pub use persistent_class_artifact::{
PersistenceCycleTerm, PersistenceTriangleTerm, PersistentClassArtifact,
};
pub use persistent_coordinate_artifact::{
PersistentCoordinateArtifact, PersistentCoordinateArtifactError,
PersistentCoordinateArtifactSummary,
};
pub use program::{
BasisTransport, ClassContinuation, ContinuationKind, CorrespondenceMode, PersistenceProgram,
ProgramAtomInfo, ProgramBranch, ProgramCheckpoint, ProgramDiagramState, ProgramDiagramUpdate,
ProgramDiagramUpdateMode, ProgramEvaluation, ProgramEvent, ProgramEventKind, ProgramSummary,
ProgramUpdate, ProgramUpdateMode, ProgramWork,
};
pub use program_trace::{
ProgramTraceArtifact, ProgramTraceDecodeLimits, ProgramTraceError, ProgramTraceStep,
VerifiedProgramTrace, VerifiedProgramTraceStep,
};
pub use program_wire::{
ProgramArtifact, ProgramArtifactError, ProgramAtomArtifact, ProgramDecodeLimits,
};
pub use proof::{ProofArtifact, ProofArtifactError, ProofArtifactSummary};
pub use relative_interface::{
InterfaceCancellation, InterfaceCell, InterfaceChainTerm, RelativeInterfaceCertificate,
RelativeInterfaceWork,
};
pub use synthesis::{
SynthesisAction, SynthesisArtifact, SynthesisComponent, SynthesisCoordinate, SynthesisLimits,
SynthesisSource, SynthesisState, SynthesisStatus, TopologicalSpecification,
};
pub use trajectory::{
TrajectoryArtifact, TrajectoryDecodeLimits, TrajectoryError, TrajectoryStep,
VerifiedTrajectory, VerifiedTrajectoryStep,
};
pub use zigzag::{
ZigzagBarcode, ZigzagDirection, ZigzagInterval, ZigzagIntervalId, ZigzagLimits, ZigzagMap,
ZigzagModule, ZigzagModuleId, ZigzagTerm,
};
pub const GIT_HASH: &str = env!("HOLOS_GIT_HASH");
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const BUILD_PROFILE: &str = env!("HOLOS_BUILD_PROFILE");
mod scalar;
pub(crate) use scalar::collapse_and_solve;
pub use scalar::{
Bar, CollapseSchedule, DenseStorage, Diagram, Engine, Error, GraphFactorization, Result,
RipsParams, rips_persistence, rips_persistence_sparse, rips_persistence_with_classes,
};