Skip to main content

antecedent_graph/
lib.rs

1//! Causal graph types, dense indexes, and traversal workspaces.
2//!
3//! Distinct concrete types ([`Dag`], [`Admg`], [`Cpdag`], [`Pag`], [`TemporalDag`], …)
4//! preserve edge semantics — they are not interchangeable aliases.
5//!
6//! ```
7//! use antecedent_core::CausalSchemaBuilder;
8//! use antecedent_graph::Dag;
9//!
10//! let schema = CausalSchemaBuilder::new()
11//!     .continuous("a")
12//!     .finish()
13//!     .continuous("b")
14//!     .finish()
15//!     .build()
16//!     .unwrap();
17//! let dag = Dag::from_named_edges(&schema, &[("a", "b")]).unwrap();
18//! assert_eq!(dag.node_count(), 2);
19//! ```
20//!
21//! SPDX-License-Identifier: MIT OR Apache-2.0
22
23#![forbid(unsafe_code)]
24#![deny(missing_docs)]
25
26pub mod admg;
27pub mod algo;
28pub mod ancestry;
29pub mod completion;
30pub mod cpdag;
31pub mod cpdag_completion;
32pub mod dag;
33pub mod dsep;
34pub mod error;
35pub mod marked_storage;
36pub mod msep;
37pub mod named;
38pub mod overlay;
39pub mod pag;
40pub mod projection;
41pub mod temporal;
42pub mod temporal_pag;
43pub mod types;
44pub mod unfold;
45pub mod workspace;
46
47pub use admg::Admg;
48pub use antecedent_core::NodeRef;
49pub use completion::{CompletionSampler, PagCompletion, is_mag_completion};
50pub use cpdag::{Cpdag, CpdagReview, TemporalCpdag};
51pub use cpdag_completion::{CpdagCompletion, CpdagCompletionSampler, is_mec_member};
52pub use dag::{Dag, DagReview};
53pub use dsep::{DSeparationWorkspace, PathStep, SeparationCertificate, SeparationResult};
54pub use error::GraphError;
55pub use overlay::{DagView, GraphOverlay};
56pub use pag::{DefiniteStatusPath, DefiniteStatusPathSearch, Pag, PagReview};
57pub use projection::{latent_project, projection_preserves_msep_sample};
58pub use temporal::TemporalDag;
59pub use temporal_pag::{TemporalPag, TemporalPagReview};
60pub use types::{DenseNodeId, Endpoint, MarkedEdge, MiddleMark};
61pub use unfold::{
62    LazyUnfoldedTemporalGraph, TemporalCpdagReview, TemporalGraphReview, UnfoldedTemporalGraph,
63    ensure_lagged,
64};
65pub use workspace::{BitSet, GraphWorkspace};