rustkernel_temporal/
lib.rs1#![warn(missing_docs)]
24
25pub mod decomposition;
26pub mod detection;
27pub mod forecasting;
28pub mod messages;
29pub mod ring_messages;
30pub mod types;
31pub mod volatility;
32
33pub mod prelude {
35 pub use crate::decomposition::*;
36 pub use crate::detection::*;
37 pub use crate::forecasting::*;
38 pub use crate::messages::*;
39 pub use crate::ring_messages::*;
40 pub use crate::types::*;
41 pub use crate::volatility::*;
42}
43
44pub use decomposition::{SeasonalDecomposition, TrendExtraction};
46pub use detection::{ChangePointDetection, TimeSeriesAnomalyDetection};
47pub use forecasting::{ARIMAForecast, ProphetDecomposition};
48pub use volatility::VolatilityAnalysis;
49
50pub use types::{
52 ARIMAParams, ARIMAResult, AnomalyMethod, ChangePointMethod, ChangePointResult,
53 DecompositionResult, GARCHCoefficients, GARCHParams, ProphetResult, TimeSeries,
54 TimeSeriesAnomalyResult, TrendMethod, TrendResult, VolatilityResult,
55};
56
57pub fn register_all(
59 registry: &rustkernel_core::registry::KernelRegistry,
60) -> rustkernel_core::error::Result<()> {
61 use rustkernel_core::traits::GpuKernel;
62
63 tracing::info!("Registering temporal analysis kernels");
64
65 registry.register_metadata(forecasting::ARIMAForecast::new().metadata().clone())?;
67 registry.register_metadata(forecasting::ProphetDecomposition::new().metadata().clone())?;
68
69 registry.register_metadata(detection::ChangePointDetection::new().metadata().clone())?;
71 registry.register_metadata(
72 detection::TimeSeriesAnomalyDetection::new()
73 .metadata()
74 .clone(),
75 )?;
76
77 registry.register_metadata(
79 decomposition::SeasonalDecomposition::new()
80 .metadata()
81 .clone(),
82 )?;
83 registry.register_metadata(decomposition::TrendExtraction::new().metadata().clone())?;
84
85 registry.register_metadata(volatility::VolatilityAnalysis::new().metadata().clone())?;
87
88 tracing::info!("Registered 7 temporal analysis kernels");
89 Ok(())
90}
91
92#[cfg(test)]
93mod tests {
94 use super::*;
95 use rustkernel_core::registry::KernelRegistry;
96
97 #[test]
98 fn test_register_all() {
99 let registry = KernelRegistry::new();
100 register_all(®istry).expect("Failed to register temporal kernels");
101 assert_eq!(registry.total_count(), 7);
102 }
103}