use crate::optimization::pass_manager::OptimizationLevel;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EnhancedCrossCompilationConfig {
pub base_config: CrossCompilationConfig,
pub enable_ml_optimization: bool,
pub enable_multistage_compilation: bool,
pub enable_target_optimization: bool,
pub enable_realtime_monitoring: bool,
pub enable_comprehensive_validation: bool,
pub enable_visual_flow: bool,
pub source_frameworks: Vec<QuantumFramework>,
pub target_platforms: Vec<TargetPlatform>,
pub compilation_strategies: Vec<CompilationStrategy>,
pub optimization_passes: Vec<OptimizationPass>,
}
impl Default for EnhancedCrossCompilationConfig {
fn default() -> Self {
Self {
base_config: CrossCompilationConfig::default(),
enable_ml_optimization: true,
enable_multistage_compilation: true,
enable_target_optimization: true,
enable_realtime_monitoring: true,
enable_comprehensive_validation: true,
enable_visual_flow: true,
source_frameworks: vec![
QuantumFramework::QuantRS2,
QuantumFramework::Qiskit,
QuantumFramework::Cirq,
QuantumFramework::PennyLane,
],
target_platforms: vec![
TargetPlatform::IBMQuantum,
TargetPlatform::GoogleSycamore,
TargetPlatform::IonQ,
TargetPlatform::Rigetti,
],
compilation_strategies: vec![
CompilationStrategy::OptimizeDepth,
CompilationStrategy::OptimizeGateCount,
CompilationStrategy::OptimizeFidelity,
],
optimization_passes: vec![
OptimizationPass::GateFusion,
OptimizationPass::RotationMerging,
OptimizationPass::CommutationAnalysis,
],
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CrossCompilationConfig {
pub optimization_level: OptimizationLevel,
pub preserve_semantics: bool,
pub enable_error_correction: bool,
pub validation_threshold: f64,
}
impl Default for CrossCompilationConfig {
fn default() -> Self {
Self {
optimization_level: OptimizationLevel::Medium,
preserve_semantics: true,
enable_error_correction: true,
validation_threshold: 0.999,
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum QuantumFramework {
QuantRS2,
Qiskit,
Cirq,
PennyLane,
PyQuil,
QSharp,
Braket,
OpenQASM,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum TargetPlatform {
IBMQuantum,
GoogleSycamore,
IonQ,
Rigetti,
Honeywell,
AWSBraket,
AzureQuantum,
Simulator,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum CompilationStrategy {
OptimizeDepth,
OptimizeGateCount,
OptimizeFidelity,
OptimizeExecutionTime,
BalancedOptimization,
CustomStrategy,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum OptimizationPass {
GateFusion,
RotationMerging,
CommutationAnalysis,
TemplateMatching,
PeepholeOptimization,
GlobalPhaseOptimization,
NativeGateDecomposition,
LayoutOptimization,
}