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 selection;
42pub mod temporal;
43pub mod temporal_pag;
44pub mod types;
45pub mod unfold;
46pub mod workspace;
47
48pub use admg::Admg;
49pub use antecedent_core::NodeRef;
50pub use completion::{
51    CompletionSampler, CompletionValidationReport, PagCompletion, is_mag_completion,
52    is_maximal_ancestral_graph,
53};
54pub use cpdag::{Cpdag, CpdagReview, TemporalCpdag};
55pub use cpdag_completion::{CpdagCompletion, CpdagCompletionSampler, is_mec_member};
56pub use dag::{Dag, DagReview};
57pub use dsep::{DSeparationWorkspace, PathStep, SeparationCertificate, SeparationResult};
58pub use error::GraphError;
59pub use overlay::{DagView, GraphOverlay};
60pub use pag::{DefiniteStatusPath, DefiniteStatusPathSearch, Pag, PagReview};
61pub use projection::{latent_project, projection_preserves_msep_sample};
62pub use selection::SelectionDiagram;
63pub use temporal::TemporalDag;
64pub use temporal_pag::{TemporalPag, TemporalPagReview};
65pub use types::{DenseNodeId, Endpoint, MarkedEdge, MiddleMark};
66pub use unfold::{
67    LazyUnfoldedTemporalGraph, TemporalCpdagReview, TemporalGraphReview, UnfoldedTemporalGraph,
68    ensure_lagged,
69};
70pub use workspace::{BitSet, GraphWorkspace};