quantrs2_circuit/scirs2_cross_compilation_enhanced/
config.rs1use crate::optimization::pass_manager::OptimizationLevel;
7use serde::{Deserialize, Serialize};
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
11pub struct EnhancedCrossCompilationConfig {
12 pub base_config: CrossCompilationConfig,
14
15 pub enable_ml_optimization: bool,
17
18 pub enable_multistage_compilation: bool,
20
21 pub enable_target_optimization: bool,
23
24 pub enable_realtime_monitoring: bool,
26
27 pub enable_comprehensive_validation: bool,
29
30 pub enable_visual_flow: bool,
32
33 pub source_frameworks: Vec<QuantumFramework>,
35
36 pub target_platforms: Vec<TargetPlatform>,
38
39 pub compilation_strategies: Vec<CompilationStrategy>,
41
42 pub optimization_passes: Vec<OptimizationPass>,
44}
45
46impl Default for EnhancedCrossCompilationConfig {
47 fn default() -> Self {
48 Self {
49 base_config: CrossCompilationConfig::default(),
50 enable_ml_optimization: true,
51 enable_multistage_compilation: true,
52 enable_target_optimization: true,
53 enable_realtime_monitoring: true,
54 enable_comprehensive_validation: true,
55 enable_visual_flow: true,
56 source_frameworks: vec![
57 QuantumFramework::QuantRS2,
58 QuantumFramework::Qiskit,
59 QuantumFramework::Cirq,
60 QuantumFramework::PennyLane,
61 ],
62 target_platforms: vec![
63 TargetPlatform::IBMQuantum,
64 TargetPlatform::GoogleSycamore,
65 TargetPlatform::IonQ,
66 TargetPlatform::Rigetti,
67 ],
68 compilation_strategies: vec![
69 CompilationStrategy::OptimizeDepth,
70 CompilationStrategy::OptimizeGateCount,
71 CompilationStrategy::OptimizeFidelity,
72 ],
73 optimization_passes: vec![
74 OptimizationPass::GateFusion,
75 OptimizationPass::RotationMerging,
76 OptimizationPass::CommutationAnalysis,
77 ],
78 }
79 }
80}
81
82#[derive(Debug, Clone, Serialize, Deserialize)]
84pub struct CrossCompilationConfig {
85 pub optimization_level: OptimizationLevel,
87
88 pub preserve_semantics: bool,
90
91 pub enable_error_correction: bool,
93
94 pub validation_threshold: f64,
96}
97
98impl Default for CrossCompilationConfig {
99 fn default() -> Self {
100 Self {
101 optimization_level: OptimizationLevel::Medium,
102 preserve_semantics: true,
103 enable_error_correction: true,
104 validation_threshold: 0.999,
105 }
106 }
107}
108
109#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
111pub enum QuantumFramework {
112 QuantRS2,
113 Qiskit,
114 Cirq,
115 PennyLane,
116 PyQuil,
117 QSharp,
118 Braket,
119 OpenQASM,
120}
121
122#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
124pub enum TargetPlatform {
125 IBMQuantum,
126 GoogleSycamore,
127 IonQ,
128 Rigetti,
129 Honeywell,
130 AWSBraket,
131 AzureQuantum,
132 Simulator,
133}
134
135#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
137pub enum CompilationStrategy {
138 OptimizeDepth,
139 OptimizeGateCount,
140 OptimizeFidelity,
141 OptimizeExecutionTime,
142 BalancedOptimization,
143 CustomStrategy,
144}
145
146#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
148pub enum OptimizationPass {
149 GateFusion,
150 RotationMerging,
151 CommutationAnalysis,
152 TemplateMatching,
153 PeepholeOptimization,
154 GlobalPhaseOptimization,
155 NativeGateDecomposition,
156 LayoutOptimization,
157}