Skip to main content

datasynth_core/diffusion/
mod.rs

1//! Diffusion model abstraction for statistical and neural data generation.
2//!
3//! Implements two diffusion backends behind a common [`DiffusionBackend`] trait:
4//!
5//! - **Statistical** (always available): pure-Rust Langevin-inspired denoising
6//!   guided by target means, stds, and Cholesky-decomposed correlations.
7//!
8//! - **Neural** (requires `neural` feature): learned score network trained via
9//!   denoising score matching. Captures nonlinear cross-column dependencies
10//!   that parametric models miss. Powered by `candle`.
11//!
12//! Both backends slot into [`HybridGenerator`] for blended rule+diffusion output.
13
14pub mod backend;
15pub mod hybrid;
16pub mod schedule;
17pub mod statistical;
18pub mod training;
19pub mod utils;
20
21#[cfg(feature = "neural")]
22pub mod gnn_generator;
23#[cfg(feature = "neural")]
24pub mod neural;
25#[cfg(feature = "neural")]
26pub mod neural_training;
27#[cfg(feature = "neural")]
28pub mod score_network;
29#[cfg(feature = "neural")]
30pub mod tabular_transformer;
31
32pub use backend::*;
33pub use hybrid::*;
34pub use schedule::*;
35pub use statistical::*;
36pub use training::*;
37pub use utils::*;
38
39#[cfg(feature = "neural")]
40pub use gnn_generator::{
41    GnnEdgePredictor, GnnGeneratorConfig, GnnGraphTrainer, GnnTrainingConfig, TrainedGnnGenerator,
42};
43#[cfg(feature = "neural")]
44pub use neural::{NeuralDiffusionBackend, NeuralDiffusionConfig};
45#[cfg(feature = "neural")]
46pub use neural_training::{NeuralDiffusionTrainer, NeuralTrainingConfig, TrainingReport};
47#[cfg(feature = "neural")]
48pub use score_network::ScoreNetworkConfig;
49#[cfg(feature = "neural")]
50pub use tabular_transformer::{
51    TabularTransformer, TabularTransformerConfig, TabularTransformerTrainer,
52    TabularTransformerTrainingConfig, TrainedTabularTransformer,
53};