#![warn(missing_docs)]
pub mod anomaly;
pub mod clustering;
pub mod ensemble;
pub mod explainability;
pub mod federated;
pub mod healthcare;
pub mod messages;
pub mod nlp;
pub mod regression;
pub mod ring_messages;
pub mod streaming;
pub mod types;
pub mod prelude {
pub use crate::anomaly::*;
pub use crate::clustering::*;
pub use crate::ensemble::*;
pub use crate::explainability::*;
pub use crate::federated::*;
pub use crate::healthcare::*;
pub use crate::messages::*;
pub use crate::nlp::*;
pub use crate::regression::*;
pub use crate::ring_messages::*;
pub use crate::streaming::*;
pub use crate::types::*;
}
pub fn register_all(
registry: &rustkernel_core::registry::KernelRegistry,
) -> rustkernel_core::error::Result<()> {
tracing::info!("Registering statistical ML kernels");
registry.register_batch_typed(clustering::KMeans::new)?;
registry.register_batch_typed(clustering::DBSCAN::new)?;
registry.register_batch_typed(clustering::HierarchicalClustering::new)?;
registry.register_batch_metadata_from(anomaly::IsolationForest::new)?;
registry.register_batch_metadata_from(anomaly::LocalOutlierFactor::new)?;
registry.register_batch_metadata_from(streaming::StreamingIsolationForest::new)?;
registry.register_batch_metadata_from(streaming::AdaptiveThreshold::new)?;
registry.register_batch_metadata_from(ensemble::EnsembleVoting::new)?;
registry.register_batch_metadata_from(regression::LinearRegression::new)?;
registry.register_batch_metadata_from(regression::RidgeRegression::new)?;
registry.register_batch_metadata_from(explainability::SHAPValues::new)?;
registry.register_batch_metadata_from(explainability::FeatureImportance::new)?;
registry.register_batch_metadata_from(nlp::EmbeddingGeneration::new)?;
registry.register_batch_metadata_from(nlp::SemanticSimilarity::new)?;
registry.register_batch_metadata_from(federated::SecureAggregation::new)?;
registry.register_batch_metadata_from(healthcare::DrugInteractionPrediction::new)?;
registry.register_batch_metadata_from(healthcare::ClinicalPathwayConformance::new)?;
tracing::info!("Registered 17 statistical ML kernels");
Ok(())
}
#[cfg(test)]
mod tests {
use super::*;
use rustkernel_core::registry::KernelRegistry;
#[test]
fn test_register_all() {
let registry = KernelRegistry::new();
register_all(®istry).expect("Failed to register ML kernels");
assert_eq!(registry.total_count(), 17);
}
}