1#![warn(missing_docs)]
43
44pub mod anomaly;
45pub mod clustering;
46pub mod ensemble;
47pub mod explainability;
48pub mod federated;
49pub mod healthcare;
50pub mod messages;
51pub mod nlp;
52pub mod regression;
53pub mod ring_messages;
54pub mod streaming;
55pub mod types;
56
57pub mod prelude {
59 pub use crate::anomaly::*;
60 pub use crate::clustering::*;
61 pub use crate::ensemble::*;
62 pub use crate::explainability::*;
63 pub use crate::federated::*;
64 pub use crate::healthcare::*;
65 pub use crate::messages::*;
66 pub use crate::nlp::*;
67 pub use crate::regression::*;
68 pub use crate::ring_messages::*;
69 pub use crate::streaming::*;
70 pub use crate::types::*;
71}
72
73pub fn register_all(
75 registry: &rustkernel_core::registry::KernelRegistry,
76) -> rustkernel_core::error::Result<()> {
77 use rustkernel_core::traits::GpuKernel;
78
79 tracing::info!("Registering statistical ML kernels");
80
81 registry.register_metadata(clustering::KMeans::new().metadata().clone())?;
83 registry.register_metadata(clustering::DBSCAN::new().metadata().clone())?;
84 registry.register_metadata(clustering::HierarchicalClustering::new().metadata().clone())?;
85
86 registry.register_metadata(anomaly::IsolationForest::new().metadata().clone())?;
88 registry.register_metadata(anomaly::LocalOutlierFactor::new().metadata().clone())?;
89
90 registry.register_metadata(
92 streaming::StreamingIsolationForest::new()
93 .metadata()
94 .clone(),
95 )?;
96 registry.register_metadata(streaming::AdaptiveThreshold::new().metadata().clone())?;
97
98 registry.register_metadata(ensemble::EnsembleVoting::new().metadata().clone())?;
100
101 registry.register_metadata(regression::LinearRegression::new().metadata().clone())?;
103 registry.register_metadata(regression::RidgeRegression::new().metadata().clone())?;
104
105 registry.register_metadata(explainability::SHAPValues::new().metadata().clone())?;
107 registry.register_metadata(explainability::FeatureImportance::new().metadata().clone())?;
108
109 registry.register_metadata(nlp::EmbeddingGeneration::new().metadata().clone())?;
111 registry.register_metadata(nlp::SemanticSimilarity::new().metadata().clone())?;
112
113 registry.register_metadata(federated::SecureAggregation::new().metadata().clone())?;
115
116 registry.register_metadata(
118 healthcare::DrugInteractionPrediction::new()
119 .metadata()
120 .clone(),
121 )?;
122 registry.register_metadata(
123 healthcare::ClinicalPathwayConformance::new()
124 .metadata()
125 .clone(),
126 )?;
127
128 tracing::info!("Registered 17 statistical ML kernels");
129 Ok(())
130}
131
132#[cfg(test)]
133mod tests {
134 use super::*;
135 use rustkernel_core::registry::KernelRegistry;
136
137 #[test]
138 fn test_register_all() {
139 let registry = KernelRegistry::new();
140 register_all(®istry).expect("Failed to register ML kernels");
141 assert_eq!(registry.total_count(), 17);
142 }
143}