scirs2_vision/integration_modules/data_structures.rs
1//! Data Structures for Advanced Integration
2//!
3//! This module provides data structures and result types for advanced
4//! cross-module processing and integration.
5
6use scirs2_core::ndarray::{Array1, Array2, Array3};
7use std::time::Instant;
8
9/// Advanced input data structure supporting multiple module types,
10/// allowing for flexible cross-module coordination and processing.
11#[derive(Debug, Default)]
12pub struct AdvancedInputData {
13 /// Image or vision processing data (height, width, channels)
14 pub vision_data: Option<Array3<f64>>,
15 /// Data for clustering algorithms
16 pub clustering_data: Option<Array2<f64>>,
17 /// Spatial processing data
18 pub spatial_data: Option<Array2<f64>>,
19 /// Neural network input data
20 pub neural_data: Option<Array2<f64>>,
21}
22
23/// Result of cross-module Advanced processing with comprehensive metrics
24///
25/// Contains the fused results from multiple modules along with performance
26/// metrics and efficiency measurements.
27#[derive(Debug)]
28pub struct CrossModuleAdvancedProcessingResult {
29 /// Fused results from all participating modules
30 pub fused_result: CrossModuleFusedResult,
31 /// Detailed performance metrics for the processing session
32 pub performance_metrics: AdvancedPerformanceMetrics,
33 /// Synergy factor achieved between modules (1.0 = baseline)
34 pub cross_module_synergy: f64,
35 /// Resource utilization efficiency (0.0-1.0)
36 pub resource_efficiency: f64,
37 /// Meta-learning improvement factor over baseline
38 pub meta_learning_improvement: f64,
39 /// Total processing time in seconds
40 pub processing_time: f64,
41}
42
43/// Fused output data from multiple processing modules
44///
45/// Contains the processed outputs from different modules along with
46/// fusion confidence and methodology information.
47#[derive(Debug)]
48pub struct CrossModuleFusedResult {
49 /// Processed vision/image data output
50 pub vision_output: Option<Array3<f64>>,
51 /// Clustering results (cluster assignments)
52 pub clustering_output: Option<Array1<usize>>,
53 /// Spatial processing results
54 pub spatial_output: Option<Array2<f64>>,
55 /// Neural network processing output
56 pub neural_output: Option<Array2<f64>>,
57 /// Confidence in the fusion process (0.0-1.0)
58 pub fusion_confidence: f64,
59 /// Description of the fusion methodology used
60 pub fusion_method: String,
61}
62
63/// Comprehensive performance metrics for Advanced mode processing
64///
65/// Tracks performance across all modules and processing paradigms
66/// including quantum, neuromorphic, and AI optimization metrics.
67#[derive(Debug, Clone)]
68pub struct AdvancedPerformanceMetrics {
69 /// Overall system performance score (normalized 0.0-1.0)
70 pub overall_performance: f64,
71 /// Vision processing module performance score
72 pub vision_performance: f64,
73 /// Clustering module performance score
74 pub clustering_performance: f64,
75 /// Spatial processing module performance score
76 pub spatial_performance: f64,
77 /// Neural network module performance score
78 pub neural_performance: f64,
79 /// Quantum coherence measure for quantum-inspired algorithms
80 pub quantum_coherence: f64,
81 /// Neuromorphic adaptation efficiency measure
82 pub neuromorphic_adaptation: f64,
83 /// AI optimization performance gain factor
84 pub ai_optimization_gain: f64,
85}
86
87/// Current status of Advanced mode across all modules
88///
89/// Provides a comprehensive view of the current state of Advanced
90/// processing capabilities and their activation status.
91#[derive(Debug)]
92pub struct AdvancedModeStatus {
93 /// Whether Advanced mode is currently active
94 pub active: bool,
95 /// List of modules currently using Advanced features
96 pub active_modules: Vec<String>,
97 /// Overall system performance under Advanced mode
98 pub system_performance: f64,
99 /// Estimated performance improvement over baseline
100 pub performance_improvement: f64,
101 /// Resource utilization under Advanced mode
102 pub resource_utilization: f64,
103 /// Time since Advanced mode was activated
104 pub time_active: f64,
105 /// Current quantum coherence levels
106 pub quantum_coherence: f64,
107 /// Current neuromorphic adaptation efficiency
108 pub neuromorphic_efficiency: f64,
109 /// AI optimization effectiveness
110 pub ai_optimization_effectiveness: f64,
111}
112
113/// Quantum processing metrics
114///
115/// Tracks quantum-inspired algorithm performance and coherence measures.
116#[derive(Debug, Clone)]
117pub struct QuantumProcessingMetrics {
118 /// Quantum coherence measure (0.0-1.0)
119 pub coherence: f64,
120 /// Entanglement strength in fusion operations
121 pub entanglement_strength: f64,
122 /// Quantum advantage factor over classical methods
123 pub quantum_advantage: f64,
124 /// Decoherence rate
125 pub decoherence_rate: f64,
126 /// Number of quantum operations performed
127 pub quantum_operations: usize,
128}
129
130/// Neuromorphic processing metrics
131///
132/// Tracks neuromorphic adaptation and learning performance.
133#[derive(Debug, Clone)]
134pub struct NeuromorphicProcessingMetrics {
135 /// Adaptation efficiency (0.0-1.0)
136 pub adaptation_efficiency: f64,
137 /// Learning rate convergence
138 pub learning_convergence: f64,
139 /// Plasticity measure
140 pub plasticity: f64,
141 /// Spike timing precision
142 pub spike_timing_precision: f64,
143 /// Energy efficiency compared to traditional neural networks
144 pub energy_efficiency: f64,
145}
146
147/// Fusion quality indicators
148///
149/// Measures the quality and effectiveness of multi-paradigm fusion.
150#[derive(Debug, Clone)]
151pub struct FusionQualityIndicators {
152 /// Overall fusion quality score (0.0-1.0)
153 pub overall_quality: f64,
154 /// Coherence between different processing paradigms
155 pub paradigm_coherence: f64,
156 /// Information preservation during fusion
157 pub information_preservation: f64,
158 /// Fusion stability over time
159 pub temporal_stability: f64,
160 /// Complementarity measure between approaches
161 pub complementarity: f64,
162}
163
164/// Emergent behavior detection
165///
166/// Tracks and analyzes emergent behaviors in the Advanced system.
167#[derive(Debug, Clone)]
168pub struct EmergentBehaviorDetection {
169 /// Number of emergent patterns detected
170 pub patterns_detected: usize,
171 /// Novelty score of detected behaviors
172 pub novelty_score: f64,
173 /// Complexity increase measure
174 pub complexity_increase: f64,
175 /// Behavioral stability
176 pub stability: f64,
177 /// Potential for system evolution
178 pub evolution_potential: f64,
179}
180
181/// Advanced Advanced Processing Result
182///
183/// Comprehensive result structure for individual Advanced processing operations.
184#[derive(Debug)]
185pub struct AdvancedAdvancedProcessingResult {
186 /// Success status of the operation
187 pub success: bool,
188 /// Detailed processing metrics
189 pub metrics: AdvancedPerformanceMetrics,
190 /// Quantum processing specifics
191 pub quantum_metrics: QuantumProcessingMetrics,
192 /// Neuromorphic processing specifics
193 pub neuromorphic_metrics: NeuromorphicProcessingMetrics,
194 /// Fusion quality assessment
195 pub fusion_quality: FusionQualityIndicators,
196 /// Emergent behavior analysis
197 pub emergent_behavior: EmergentBehaviorDetection,
198 /// Processing time breakdown
199 pub timing_breakdown: ProcessingTimingBreakdown,
200 /// Resource usage statistics
201 pub resource_usage: ResourceUsageStatistics,
202 /// Quality assurance metrics
203 pub quality_assurance: QualityAssuranceMetrics,
204}
205
206/// Processing timing breakdown
207#[derive(Debug, Clone)]
208pub struct ProcessingTimingBreakdown {
209 /// Total processing time
210 pub total_time: f64,
211 /// Quantum processing time
212 pub quantum_time: f64,
213 /// Neuromorphic processing time
214 pub neuromorphic_time: f64,
215 /// Classical processing time
216 pub classical_time: f64,
217 /// Fusion operation time
218 pub fusion_time: f64,
219 /// Overhead time
220 pub overhead_time: f64,
221}
222
223/// Resource usage statistics
224#[derive(Debug, Clone)]
225pub struct ResourceUsageStatistics {
226 /// CPU utilization percentage
227 pub cpu_utilization: f64,
228 /// Memory usage in MB
229 pub memory_usage: f64,
230 /// GPU utilization percentage
231 pub gpu_utilization: f64,
232 /// Energy consumption in joules
233 pub energy_consumption: f64,
234 /// Network bandwidth used
235 pub network_bandwidth: f64,
236}
237
238/// Quality assurance metrics
239#[derive(Debug, Clone)]
240pub struct QualityAssuranceMetrics {
241 /// Output quality score
242 pub output_quality: f64,
243 /// Consistency measure
244 pub consistency: f64,
245 /// Reliability score
246 pub reliability: f64,
247 /// Error rate
248 pub error_rate: f64,
249 /// Confidence interval
250 pub confidence_interval: (f64, f64),
251}
252
253/// Performance metrics structure
254///
255/// Simplified performance tracking for individual operations.
256#[derive(Debug, Clone)]
257pub struct PerformanceMetrics {
258 /// Processing accuracy
259 pub accuracy: f64,
260 /// Processing speed (operations per second)
261 pub speed: f64,
262 /// Resource efficiency
263 pub efficiency: f64,
264 /// Quality score
265 pub quality: f64,
266 /// Latency in milliseconds
267 pub latency: f64,
268}
269
270/// Uncertainty quantification for Advanced results
271///
272/// Provides uncertainty measures and confidence intervals for Advanced processing results.
273#[derive(Debug, Clone)]
274pub struct UncertaintyQuantification {
275 /// Overall confidence level (0.0-1.0)
276 pub confidence_level: f64,
277 /// Uncertainty in results
278 pub result_uncertainty: f64,
279 /// Model uncertainty
280 pub model_uncertainty: f64,
281 /// Data uncertainty
282 pub data_uncertainty: f64,
283 /// Confidence intervals for key metrics
284 pub confidence_intervals: std::collections::HashMap<String, (f64, f64)>,
285}
286
287impl AdvancedInputData {
288 /// Create new advanced input data with vision data
289 pub fn with_vision_data(vision_data: Array3<f64>) -> Self {
290 Self {
291 vision_data: Some(vision_data),
292 clustering_data: None,
293 spatial_data: None,
294 neural_data: None,
295 }
296 }
297
298 /// Create new advanced input data with clustering data
299 pub fn with_clustering_data(clustering_data: Array2<f64>) -> Self {
300 Self {
301 vision_data: None,
302 clustering_data: Some(clustering_data),
303 spatial_data: None,
304 neural_data: None,
305 }
306 }
307
308 /// Check if any data is available
309 pub fn has_data(&self) -> bool {
310 self.vision_data.is_some()
311 || self.clustering_data.is_some()
312 || self.spatial_data.is_some()
313 || self.neural_data.is_some()
314 }
315
316 /// Get the number of available data sources
317 pub fn data_source_count(&self) -> usize {
318 let mut count = 0;
319 if self.vision_data.is_some() {
320 count += 1;
321 }
322 if self.clustering_data.is_some() {
323 count += 1;
324 }
325 if self.spatial_data.is_some() {
326 count += 1;
327 }
328 if self.neural_data.is_some() {
329 count += 1;
330 }
331 count
332 }
333}
334
335impl Default for CrossModuleFusedResult {
336 fn default() -> Self {
337 Self {
338 vision_output: None,
339 clustering_output: None,
340 spatial_output: None,
341 neural_output: None,
342 fusion_confidence: 0.0,
343 fusion_method: "none".to_string(),
344 }
345 }
346}
347
348impl Default for AdvancedPerformanceMetrics {
349 fn default() -> Self {
350 Self {
351 overall_performance: 0.0,
352 vision_performance: 0.0,
353 clustering_performance: 0.0,
354 spatial_performance: 0.0,
355 neural_performance: 0.0,
356 quantum_coherence: 0.0,
357 neuromorphic_adaptation: 0.0,
358 ai_optimization_gain: 0.0,
359 }
360 }
361}
362
363impl Default for QuantumProcessingMetrics {
364 fn default() -> Self {
365 Self {
366 coherence: 0.0,
367 entanglement_strength: 0.0,
368 quantum_advantage: 1.0,
369 decoherence_rate: 0.0,
370 quantum_operations: 0,
371 }
372 }
373}
374
375impl Default for NeuromorphicProcessingMetrics {
376 fn default() -> Self {
377 Self {
378 adaptation_efficiency: 0.0,
379 learning_convergence: 0.0,
380 plasticity: 0.0,
381 spike_timing_precision: 0.0,
382 energy_efficiency: 1.0,
383 }
384 }
385}
386
387impl Default for ProcessingTimingBreakdown {
388 fn default() -> Self {
389 Self {
390 total_time: 0.0,
391 quantum_time: 0.0,
392 neuromorphic_time: 0.0,
393 classical_time: 0.0,
394 fusion_time: 0.0,
395 overhead_time: 0.0,
396 }
397 }
398}
399
400impl Default for ResourceUsageStatistics {
401 fn default() -> Self {
402 Self {
403 cpu_utilization: 0.0,
404 memory_usage: 0.0,
405 gpu_utilization: 0.0,
406 energy_consumption: 0.0,
407 network_bandwidth: 0.0,
408 }
409 }
410}