quantrs2_device/qec/
mod.rs

1//! Quantum Error Correction Integration with SciRS2 Analytics
2//!
3//! This module provides comprehensive quantum error correction (QEC) capabilities
4//! integrated with SciRS2's advanced analytics, optimization, and machine learning
5//! for adaptive error correction on quantum hardware.
6//!
7//! # Module Structure
8//!
9//! - `traits`: Core trait definitions for QEC operations
10//! - `types`: Basic types and data structures
11//! - `implementations`: QEC code implementations (Steane, Shor, Surface, Toric)
12//! - `config`: Configuration types for QEC system
13//! - `corrector`: Main QuantumErrorCorrector implementation
14//! - `results`: Result types for QEC operations
15//! - `adaptive`: Adaptive QEC strategies
16//! - `benchmarking`: QEC benchmarking tools
17//! - `codes`: QEC code definitions and utilities
18//! - `detection`: Syndrome detection and analysis
19//! - `mitigation`: Error mitigation strategies
20
21// Fallback implementations when SciRS2 is not available
22#[cfg(not(feature = "scirs2"))]
23mod fallback_scirs2 {
24    use scirs2_core::ndarray::{Array1, Array2, ArrayView1, ArrayView2};
25
26    pub fn mean(_data: &ArrayView1<f64>) -> Result<f64, String> {
27        Ok(0.0)
28    }
29    pub fn std(_data: &ArrayView1<f64>, _ddof: i32) -> Result<f64, String> {
30        Ok(1.0)
31    }
32    pub fn corrcoef(_data: &ArrayView2<f64>) -> Result<Array2<f64>, String> {
33        Ok(Array2::eye(2))
34    }
35    pub fn pca(
36        _data: &ArrayView2<f64>,
37        _n_components: usize,
38    ) -> Result<(Array2<f64>, Array1<f64>), String> {
39        Ok((Array2::zeros((2, 2)), Array1::zeros(2)))
40    }
41
42    pub struct OptimizeResult {
43        pub x: Array1<f64>,
44        pub fun: f64,
45        pub success: bool,
46        pub nit: usize,
47        pub nfev: usize,
48        pub message: String,
49    }
50
51    pub fn minimize(
52        _func: fn(&Array1<f64>) -> f64,
53        _x0: &Array1<f64>,
54        _method: &str,
55    ) -> Result<OptimizeResult, String> {
56        Ok(OptimizeResult {
57            x: Array1::zeros(2),
58            fun: 0.0,
59            success: true,
60            nit: 0,
61            nfev: 0,
62            message: "Fallback optimization".to_string(),
63        })
64    }
65}
66
67#[cfg(not(feature = "scirs2"))]
68use fallback_scirs2::*;
69
70// Module declarations - core internal modules
71mod config;
72mod corrector;
73mod implementations;
74mod results;
75mod traits;
76mod types;
77
78// Module declarations - public feature modules
79pub mod adaptive;
80pub mod benchmarking;
81pub mod codes;
82pub mod detection;
83pub mod mitigation;
84
85// Re-export core types and traits
86pub use traits::{ErrorCorrector, QECResult, QuantumErrorCode, SyndromeDetector};
87
88pub use types::{
89    AdaptiveQECSystem, CorrectionOperation, CorrectionType, DeviceState, ErrorModel,
90    ExecutionContext, LogicalOperator, LogicalOperatorType, PauliOperator, QECPerformanceMetrics,
91    QECPerformanceTracker, StabilizerGroup, StabilizerType, SyndromePattern, SyndromeResult,
92    SyndromeType, TrendAnalysis,
93};
94
95pub use implementations::{ShorCode, SteaneCode, SurfaceCode, ToricCode};
96
97pub use config::{
98    AdaptiveThresholds, CachedOptimization, CorrectionMetrics, ErrorCorrectionCycleResult,
99    ErrorStatistics, MLModel, OptimizationResult, QECConfig, QECMLConfig, QECMonitoringConfig,
100    QECOptimizationConfig, QECStrategy, ResourceRequirements, ResourceUtilization, SpatialPattern,
101    TemporalPattern,
102};
103
104pub use corrector::QuantumErrorCorrector;
105
106pub use results::{
107    CorrectedCircuitResult, CorrectionPerformance, CorrelationAnalysisData, ErrorPatternAnalysis,
108    GateMitigationResult, HistoricalCorrelation, MitigationResult, PatternRecognitionResult,
109    PredictedPattern, ReadoutCorrectedResult, StatisticalAnalysisResult,
110    SymmetryVerificationResult, SyndromeAnalysisResult, SyndromeMeasurements, SyndromeStatistics,
111    TrendAnalysisData, VirtualDistillationResult, ZNEResult,
112};