1use quantrs2_circuit::prelude::Circuit;
15use std::collections::HashMap;
16use thiserror::Error;
17
18pub mod adaptive_compilation;
19pub mod advanced_benchmarking_suite;
20pub mod advanced_scheduling;
21pub mod aws;
25pub mod aws_device;
26pub mod azure;
27pub mod azure_device;
28pub mod backend_traits;
29pub mod benchmarking;
30pub mod calibration;
31pub mod characterization;
32pub mod circuit_integration;
33pub mod circuit_migration;
34pub mod cloud;
35pub mod continuous_variable;
36pub mod scirs2_calibration_enhanced;
37pub mod compiler_passes;
39pub mod cross_platform_benchmarking;
40pub mod crosstalk;
41pub mod distributed;
42pub mod dynamical_decoupling;
43pub mod hardware_parallelization;
44pub mod hybrid_quantum_classical;
45pub mod ibm;
46pub mod ibm_device;
47pub mod integrated_device_manager;
48pub mod job_scheduling;
49pub mod algorithm_marketplace;
51pub mod mid_circuit_measurements;
52pub mod ml_optimization;
53pub mod neutral_atom;
54pub mod noise_model;
55pub mod noise_modeling_scirs2;
56pub mod optimization;
57pub mod optimization_old;
58pub mod parametric;
59pub mod performance_analytics_dashboard;
60pub mod performance_dashboard;
61pub mod photonic;
62pub mod process_tomography;
63pub mod provider_capability_discovery;
64pub mod pulse;
65pub mod qec;
66pub mod quantum_ml;
67pub mod quantum_ml_integration;
68pub mod quantum_network;
69pub mod quantum_system_security;
70pub mod routing;
71pub mod routing_advanced;
72pub mod security;
76pub mod telemetry;
77pub mod topological;
78pub mod topology;
79pub mod topology_analysis;
80pub mod translation;
81pub mod transpiler;
82pub mod unified_benchmarking;
83pub mod unified_error_handling;
84pub mod vqa_support;
85pub mod zero_noise_extrapolation;
86
87#[cfg(test)]
89pub mod test_utils;
90
91#[cfg(feature = "aws")]
93pub mod aws_auth;
94
95#[cfg(feature = "aws")]
97pub mod aws_conversion;
98
99pub type DeviceResult<T> = Result<T, DeviceError>;
101
102#[derive(Error, Debug, Clone)]
104pub enum DeviceError {
105 #[error("Authentication error: {0}")]
106 Authentication(String),
107
108 #[error("Connection error: {0}")]
109 Connection(String),
110
111 #[error("API error: {0}")]
112 APIError(String),
113
114 #[error("Job submission error: {0}")]
115 JobSubmission(String),
116
117 #[error("Job execution error: {0}")]
118 JobExecution(String),
119
120 #[error("Execution failed: {0}")]
121 ExecutionFailed(String),
122
123 #[error("Timeout error: {0}")]
124 Timeout(String),
125
126 #[error("Deserialization error: {0}")]
127 Deserialization(String),
128
129 #[error("Device not supported: {0}")]
130 UnsupportedDevice(String),
131
132 #[error("Circuit conversion error: {0}")]
133 CircuitConversion(String),
134
135 #[error("Insufficient qubits: required {required}, available {available}")]
136 InsufficientQubits { required: usize, available: usize },
137
138 #[error("Routing error: {0}")]
139 RoutingError(String),
140
141 #[error("Unsupported operation: {0}")]
142 UnsupportedOperation(String),
143
144 #[error("Invalid input: {0}")]
145 InvalidInput(String),
146
147 #[error("Optimization error: {0}")]
148 OptimizationError(String),
149
150 #[error("Not implemented: {0}")]
151 NotImplemented(String),
152
153 #[error("Invalid mapping: {0}")]
154 InvalidMapping(String),
155
156 #[error("Graph analysis error: {0}")]
157 GraphAnalysisError(String),
158
159 #[error("Device not found: {0}")]
160 DeviceNotFound(String),
161
162 #[error("Device not initialized: {0}")]
163 DeviceNotInitialized(String),
164
165 #[error("Job execution failed: {0}")]
166 JobExecutionFailed(String),
167
168 #[error("Invalid response: {0}")]
169 InvalidResponse(String),
170
171 #[error("Unknown job status: {0}")]
172 UnknownJobStatus(String),
173
174 #[error("Resource exhaustion: {0}")]
175 ResourceExhaustion(String),
176}
177
178impl From<quantrs2_core::error::QuantRS2Error> for DeviceError {
180 fn from(err: quantrs2_core::error::QuantRS2Error) -> Self {
181 DeviceError::APIError(err.to_string())
182 }
183}
184
185impl From<String> for DeviceError {
187 fn from(err: String) -> Self {
188 DeviceError::APIError(err)
189 }
190}
191
192impl From<crate::ml_optimization::OptimizeError> for DeviceError {
194 fn from(err: crate::ml_optimization::OptimizeError) -> Self {
195 DeviceError::OptimizationError(err.to_string())
196 }
197}
198
199#[cfg(feature = "ibm")]
201#[async_trait::async_trait]
202pub trait QuantumDevice {
203 async fn is_available(&self) -> DeviceResult<bool>;
205
206 async fn qubit_count(&self) -> DeviceResult<usize>;
208
209 async fn properties(&self) -> DeviceResult<HashMap<String, String>>;
211
212 async fn is_simulator(&self) -> DeviceResult<bool>;
214}
215
216#[cfg(not(feature = "ibm"))]
217pub trait QuantumDevice {
218 fn is_available(&self) -> DeviceResult<bool>;
220
221 fn qubit_count(&self) -> DeviceResult<usize>;
223
224 fn properties(&self) -> DeviceResult<HashMap<String, String>>;
226
227 fn is_simulator(&self) -> DeviceResult<bool>;
229}
230
231#[cfg(feature = "ibm")]
233#[async_trait::async_trait]
234pub trait CircuitExecutor: QuantumDevice {
235 async fn execute_circuit<const N: usize>(
237 &self,
238 circuit: &Circuit<N>,
239 shots: usize,
240 ) -> DeviceResult<CircuitResult>;
241
242 async fn execute_circuits<const N: usize>(
244 &self,
245 circuits: Vec<&Circuit<N>>,
246 shots: usize,
247 ) -> DeviceResult<Vec<CircuitResult>>;
248
249 async fn can_execute_circuit<const N: usize>(&self, circuit: &Circuit<N>)
251 -> DeviceResult<bool>;
252
253 async fn estimated_queue_time<const N: usize>(
255 &self,
256 circuit: &Circuit<N>,
257 ) -> DeviceResult<std::time::Duration>;
258}
259
260#[cfg(not(feature = "ibm"))]
261pub trait CircuitExecutor: QuantumDevice {
262 fn execute_circuit<const N: usize>(
264 &self,
265 circuit: &Circuit<N>,
266 shots: usize,
267 ) -> DeviceResult<CircuitResult>;
268
269 fn execute_circuits<const N: usize>(
271 &self,
272 circuits: Vec<&Circuit<N>>,
273 shots: usize,
274 ) -> DeviceResult<Vec<CircuitResult>>;
275
276 fn can_execute_circuit<const N: usize>(&self, circuit: &Circuit<N>) -> DeviceResult<bool>;
278
279 fn estimated_queue_time<const N: usize>(
281 &self,
282 circuit: &Circuit<N>,
283 ) -> DeviceResult<std::time::Duration>;
284}
285
286#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
288pub struct CircuitResult {
289 pub counts: HashMap<String, usize>,
291
292 pub shots: usize,
294
295 pub metadata: HashMap<String, String>,
297}
298
299pub fn is_available() -> bool {
301 #[cfg(any(feature = "ibm", feature = "azure", feature = "aws"))]
302 {
303 return true;
304 }
305
306 #[cfg(not(any(feature = "ibm", feature = "azure", feature = "aws")))]
307 {
308 false
309 }
310}
311
312#[cfg(feature = "ibm")]
316pub fn create_ibm_client(token: &str) -> DeviceResult<ibm::IBMQuantumClient> {
317 ibm::IBMQuantumClient::new(token)
318}
319
320#[cfg(not(feature = "ibm"))]
324pub fn create_ibm_client(_token: &str) -> DeviceResult<()> {
325 Err(DeviceError::UnsupportedDevice(
326 "IBM Quantum support not enabled. Recompile with the 'ibm' feature.".to_string(),
327 ))
328}
329
330#[cfg(feature = "ibm")]
332pub async fn create_ibm_device(
333 token: &str,
334 backend_name: &str,
335 config: Option<ibm_device::IBMDeviceConfig>,
336) -> DeviceResult<impl QuantumDevice + CircuitExecutor> {
337 let client = create_ibm_client(token)?;
338 ibm_device::IBMQuantumDevice::new(client, backend_name, config).await
339}
340
341#[cfg(not(feature = "ibm"))]
345pub async fn create_ibm_device(
346 _token: &str,
347 _backend_name: &str,
348 _config: Option<()>,
349) -> DeviceResult<()> {
350 Err(DeviceError::UnsupportedDevice(
351 "IBM Quantum support not enabled. Recompile with the 'ibm' feature.".to_string(),
352 ))
353}
354
355#[cfg(feature = "azure")]
359pub fn create_azure_client(
360 token: &str,
361 subscription_id: &str,
362 resource_group: &str,
363 workspace: &str,
364 region: Option<&str>,
365) -> DeviceResult<azure::AzureQuantumClient> {
366 azure::AzureQuantumClient::new(token, subscription_id, resource_group, workspace, region)
367}
368
369#[cfg(not(feature = "azure"))]
373pub fn create_azure_client(
374 _token: &str,
375 _subscription_id: &str,
376 _resource_group: &str,
377 _workspace: &str,
378 _region: Option<&str>,
379) -> DeviceResult<()> {
380 Err(DeviceError::UnsupportedDevice(
381 "Azure Quantum support not enabled. Recompile with the 'azure' feature.".to_string(),
382 ))
383}
384
385#[cfg(feature = "azure")]
387pub async fn create_azure_device(
388 client: azure::AzureQuantumClient,
389 target_id: &str,
390 provider_id: Option<&str>,
391 config: Option<azure_device::AzureDeviceConfig>,
392) -> DeviceResult<impl QuantumDevice + CircuitExecutor> {
393 azure_device::AzureQuantumDevice::new(client, target_id, provider_id, config).await
394}
395
396#[cfg(not(feature = "azure"))]
400pub async fn create_azure_device(
401 _client: (),
402 _target_id: &str,
403 _provider_id: Option<&str>,
404 _config: Option<()>,
405) -> DeviceResult<()> {
406 Err(DeviceError::UnsupportedDevice(
407 "Azure Quantum support not enabled. Recompile with the 'azure' feature.".to_string(),
408 ))
409}
410
411#[cfg(feature = "aws")]
415pub fn create_aws_client(
416 access_key: &str,
417 secret_key: &str,
418 region: Option<&str>,
419 s3_bucket: &str,
420 s3_key_prefix: Option<&str>,
421) -> DeviceResult<aws::AWSBraketClient> {
422 aws::AWSBraketClient::new(access_key, secret_key, region, s3_bucket, s3_key_prefix)
423}
424
425#[cfg(not(feature = "aws"))]
429pub fn create_aws_client(
430 _access_key: &str,
431 _secret_key: &str,
432 _region: Option<&str>,
433 _s3_bucket: &str,
434 _s3_key_prefix: Option<&str>,
435) -> DeviceResult<()> {
436 Err(DeviceError::UnsupportedDevice(
437 "AWS Braket support not enabled. Recompile with the 'aws' feature.".to_string(),
438 ))
439}
440
441#[cfg(feature = "aws")]
443pub async fn create_aws_device(
444 client: aws::AWSBraketClient,
445 device_arn: &str,
446 config: Option<aws_device::AWSDeviceConfig>,
447) -> DeviceResult<impl QuantumDevice + CircuitExecutor> {
448 aws_device::AWSBraketDevice::new(client, device_arn, config).await
449}
450
451#[cfg(not(feature = "aws"))]
455pub async fn create_aws_device(
456 _client: (),
457 _device_arn: &str,
458 _config: Option<()>,
459) -> DeviceResult<()> {
460 Err(DeviceError::UnsupportedDevice(
461 "AWS Braket support not enabled. Recompile with the 'aws' feature.".to_string(),
462 ))
463}
464
465pub mod prelude {
467 pub use crate::advanced_benchmarking_suite::{
468 AdvancedBenchmarkConfig, AdvancedBenchmarkResult, AdvancedHardwareBenchmarkSuite,
469 AdvancedStatisticalResult, AdvancedStatsConfig, AnomalyDetectionConfig,
470 AnomalyDetectionResult, BenchmarkOptimizationConfig, MLAnalysisResult, MLBenchmarkConfig,
471 PredictionResult, PredictiveModelingConfig, RealtimeBenchmarkConfig,
472 };
473 pub use crate::backend_traits::{
474 google_gates, honeywell_gates, ibm_gates, ionq_gates, query_backend_capabilities,
475 rigetti_gates, BackendCapabilities, BackendFeatures, BackendPerformance, HardwareGate,
476 };
477 pub use crate::benchmarking::{
478 BenchmarkConfig, BenchmarkResult, BenchmarkSuite, GraphAnalysis, HardwareBenchmarkSuite,
479 NoiseAnalysis, PerformanceMetrics as BenchmarkingMetrics, StatisticalAnalysis,
480 };
481 pub use crate::calibration::{
482 create_ideal_calibration, CalibrationBuilder, CalibrationManager, CrosstalkMatrix,
483 DeviceCalibration, DeviceTopology, QubitCalibration, ReadoutCalibration,
484 SingleQubitGateCalibration, TwoQubitGateCalibration,
485 };
486 pub use crate::characterization::{
487 CrosstalkCharacterization as CharacterizationCrosstalk, DriftTracker, ProcessTomography,
488 RandomizedBenchmarking, StateTomography,
489 };
490 pub use crate::circuit_integration::{
491 create_high_performance_config, create_universal_interface, AnalyticsConfig, CacheConfig,
492 CircuitVariant, CostInfo, ExecutionAnalytics, ExecutionMetadata, ExecutionResult,
493 IntegrationConfig, OptimizationSettings, OptimizedCircuit,
494 PerformanceMetrics as CircuitPerformanceMetrics, PlatformAdapter, PlatformConfig,
495 PlatformMetrics, SelectionCriteria, UniversalCircuitInterface,
496 };
497 pub use crate::cloud::{
498 allocation::{AllocationAlgorithm, ResourceOptimizationObjective},
499 cost_management::CostOptimizationStrategy,
500 monitoring::CloudMonitoringConfig,
501 orchestration::{LoadBalancingStrategy, PerformanceOptimizationStrategy},
502 providers::{CloudProvider, MultiProviderConfig, ProviderSelectionStrategy},
503 };
504 pub use crate::compiler_passes::{
505 CompilationResult, CompilerConfig, HardwareAllocation, HardwareCompiler,
506 HardwareConstraints, OptimizationObjective, OptimizationStats, PassInfo,
507 PerformancePrediction,
508 };
509 pub use crate::continuous_variable::{
510 cluster_states::{
511 ClusterStateConfig, ClusterStateGenerator, ClusterStateType, ClusterStateValidation,
512 MBQCMeasurement, MBQCResult,
513 },
514 create_cluster_state_cv_device, create_gaussian_cv_device,
515 cv_gates::{CVGateLibrary, CVGateParams, CVGateSequence, CVGateType},
516 error_correction::{
517 CVErrorCorrectionCode, CVErrorCorrectionConfig, CVErrorCorrector, CVLogicalState,
518 CorrectionResult,
519 },
520 gaussian_states::GaussianState,
521 heterodyne::{
522 HeterodyneDetector, HeterodyneDetectorConfig, HeterodyneResult, HeterodyneStatistics,
523 },
524 homodyne::{HomodyneDetector, HomodyneDetectorConfig, HomodyneResult, HomodyneStatistics},
525 measurements::{
526 CVMeasurementConfig, CVMeasurementEngine, CVMeasurementScheme, MeasurementStatistics,
527 },
528 CVDeviceConfig, CVDeviceDiagnostics, CVEntanglementMeasures, CVMeasurementOutcome,
529 CVMeasurementResult, CVMeasurementType, CVModeState, CVQuantumDevice, CVSystemType,
530 Complex,
531 };
532 pub use crate::scirs2_calibration_enhanced::{
533 AnalysisOptions, CNOTData, CalibrationConfig, CalibrationFeedback, CalibrationInput,
534 CalibrationModel, CalibrationObjective, CalibrationPrediction, CalibrationProtocols,
535 CalibrationRecommendation, CalibrationReport, CalibrationState, CalibrationSummary,
536 CalibrationVisualizations, ChevronData, CoherenceTimes, CoherentError, CorrelatedError,
537 CrosstalkCharacterization as EnhancedCrosstalkCharacterization, CrosstalkParameters,
538 CrosstalkProtocols, DetailedResults, DiscriminationData, DiscriminationParameters,
539 DragData, DriftAnalysis, DriftDirection, DriftMeasurement, EnhancedCalibrationConfig,
540 EnhancedCalibrationSystem, ErrorAnalysis, ErrorCharacterization, ErrorData, ErrorModel,
541 ErrorModelTrait, GSTData, GateSet, HardwareSpec, IQData, IQParameters,
542 IdentificationMethod, IncoherentError, IncoherentErrorType, MLSystemParameters,
543 PerformanceMetrics, PerformanceThresholds, Priority, ProcessTomographyData, QualityMetrics,
544 QuantumOperation, QubitParameters, RBData, RabiData, RamseyData,
545 ReadoutCalibration as EnhancedReadoutCalibration, ReadoutParameters, ReadoutProtocols,
546 RecommendationCategory, SingleQubitCalibration, SingleQubitProtocols, SystemAnalysis,
547 SystemCalibrationResult, SystemModel, TwoQubitCalibration, TwoQubitParameters,
548 TwoQubitProtocols, ZZData,
549 };
550 pub use crate::crosstalk::{
562 CrosstalkAnalyzer, CrosstalkCharacterization, CrosstalkConfig, CrosstalkMechanism,
563 MitigationStrategy, SpatialCrosstalkAnalysis, SpectralCrosstalkAnalysis,
564 TemporalCrosstalkAnalysis,
565 };
566 pub use crate::distributed::{
567 AuthenticationMethod as DistributedAuthenticationMethod, CircuitDecompositionResult,
568 CommunicationProtocol, DistributedCommand, DistributedComputingConfig,
569 DistributedCostAnalysis, DistributedEvent, DistributedExecutionResult,
570 DistributedExecutionStatus, DistributedMonitoringConfig, DistributedOptimizationConfig,
571 DistributedOrchestratorConfig, DistributedPerformanceAnalytics,
572 DistributedQuantumOrchestrator, DistributedResourceConfig, DistributedResourceUtilization,
573 DistributedWorkflow, DistributedWorkflowType,
574 EncryptionAlgorithm as DistributedEncryptionAlgorithm, FaultToleranceConfig,
575 FaultToleranceMetrics, LoadBalancingAlgorithm, LoadBalancingConfig, NetworkConfig,
576 NetworkPerformanceMetrics, NetworkTopology, NodeCapabilities, NodeInfo, NodeStatus,
577 OptimizationObjective as DistributedOptimizationObjective, ReplicationStrategy,
578 SecurityAuditTrail, SecurityConfig as DistributedSecurityConfig,
579 WorkloadDistributionStrategy,
580 };
581 pub use crate::hardware_parallelization::{
582 ExecutionConstraints, ExecutionQualityMetrics, HardwareAwarenessConfig,
583 HardwareParallelizationEngine, LoadBalancingConfig as ParallelLoadBalancingConfig,
584 LoadBalancingResult, OptimizationSuggestion, ParallelCircuitTask, ParallelExecutionResult,
585 ParallelGateTask, ParallelResourceRequirements, ParallelSchedulingConfig,
586 ParallelizationConfig, ParallelizationStrategy,
587 PerformanceMetrics as ParallelPerformanceMetrics, PerformanceOptimizationConfig,
588 QualityRequirements, ResourceAllocationConfig, ResourceConstraints, ResourceUsage,
589 TaskPriority, TimingConstraints,
590 };
591 pub use crate::hybrid_quantum_classical::{
592 AdaptationAlgorithm, AdaptiveControlConfig, BackendSelectionConfig, BackoffStrategy,
593 CircuitOptimizationConfig, ClassicalComputationConfig, ClassicalComputationResult,
594 ConvergenceConfig, ConvergenceCriterion, ConvergenceReason, ConvergenceStatus,
595 ErrorHandlingConfig, ErrorRecoveryStrategy, FeedbackAlgorithm, FeedbackControlConfig,
596 HybridLoopConfig, HybridLoopResult, HybridLoopState, HybridLoopStrategy,
597 HybridOptimizationConfig, HybridOptimizer, HybridPerformanceConfig,
598 HybridQuantumClassicalExecutor, IterationResult, NoiseModelingConfig, OptimizationLevel,
599 OptimizationPass, OptimizationSummary, PerformanceMetrics as HybridPerformanceMetrics,
600 QualityMetrics as HybridQualityMetrics, QuantumExecutionConfig, QuantumExecutionResult,
601 RetryConfig, SelectionCriterion, StateEstimationMethod,
602 };
603 pub use crate::ibm::IBMCircuitConfig;
604 pub use crate::integrated_device_manager::{
605 DeviceInfo,
606 ExecutionStatus, IntegratedDeviceConfig,
609 IntegratedExecutionResult,
610 IntegratedQuantumDeviceManager,
611 };
612 pub use crate::job_scheduling::{
613 create_batch_job_config, create_high_priority_config, create_realtime_config,
614 AllocationStrategy as JobAllocationStrategy, BackendPerformance as JobBackendPerformance,
615 BackendStatus, ExecutionMetrics, JobConfig, JobExecution, JobId, JobPriority, JobStatus,
616 QuantumJob, QuantumJobScheduler, QueueAnalytics, ResourceRequirements, SchedulerEvent,
617 SchedulingParams, SchedulingStrategy,
618 };
619 pub use crate::algorithm_marketplace::{
625 APIConfig, ActiveDeployment, AlgorithmDeploymentManager, AlgorithmDiscoveryEngine,
626 AlgorithmInfo, AlgorithmOptimizationEngine, AlgorithmRegistration, AlgorithmRegistry,
627 AlgorithmValidationService, AlgorithmVersioningSystem, DeploymentRequest, DeploymentStatus,
628 DiscoveryCriteria, MarketplaceAPI, MarketplaceConfig, MonetizationSystem,
629 OptimizationConfig as MarketplaceOptimizationConfig, PaymentMethod, Permission,
630 PricingStrategy, QuantumAlgorithmMarketplace, SubscriptionModel, UserSession, UserType,
631 ValidationConfig as MarketplaceValidationConfig, VersioningConfig,
632 };
633 pub use crate::mid_circuit_measurements::{
634 ExecutionStats, HardwareOptimizations, MeasurementEvent, MidCircuitCapabilities,
635 MidCircuitConfig, MidCircuitDeviceExecutor, MidCircuitExecutionResult, MidCircuitExecutor,
636 PerformanceMetrics as MidCircuitPerformanceMetrics, ValidationConfig, ValidationResult,
637 };
638 pub use crate::noise_model::{
639 CalibrationNoiseModel, GateNoiseParams, NoiseModelBuilder, QubitNoiseParams,
640 ReadoutNoiseParams,
641 };
642 pub use crate::noise_modeling_scirs2::{SciRS2NoiseConfig, SciRS2NoiseModeler};
643 pub use crate::optimization::{
676 CalibrationOptimizer, FidelityEstimator, OptimizationConfig, OptimizationResult,
677 PulseOptimizer,
678 };
679 pub use crate::parametric::{
680 BatchExecutionRequest, BatchExecutionResult, Parameter, ParameterExpression,
681 ParameterOptimizer, ParametricCircuit, ParametricCircuitBuilder, ParametricExecutor,
682 ParametricGate, ParametricTemplates,
683 };
684 pub use crate::photonic::{
685 create_photonic_device,
686 gate_based::{
687 OpticalElement, PhotonicCircuitCompiler, PhotonicCircuitImplementation,
688 PhotonicGateImpl, PhotonicGates, PhotonicHardwareConstraints, PhotonicQubitEncoding,
689 PhotonicQubitState, PhotonicResourceRequirements,
690 },
691 gates::{
692 BeamsplitterGate, CrossKerrGate, DisplacementGate, KerrGate, PhaseRotationGate,
693 SqueezingGate, TwoModeSqueezingGate,
694 },
695 validate_photonic_config, PhotonicCircuitResult, PhotonicClient, PhotonicConfig,
696 PhotonicDeviceConfig, PhotonicExecutionMetadata, PhotonicMeasurementData, PhotonicMode,
697 PhotonicQuantumDevice, PhotonicSystemType,
698 };
699 pub use crate::provider_capability_discovery::{
700 create_high_performance_discovery_config, create_provider_discovery_system,
701 CachedCapability, CapabilityRequirements, ComparisonResults, ConnectivityRequirement,
702 DiscoveryCommand, DiscoveryConfig, DiscoveryEvent, DiscoveryStrategy, FilteringConfig,
703 ProviderCapabilities, ProviderCapabilityDiscoverySystem, ProviderFeature, ProviderInfo,
704 ProviderRanking, ProviderType, ReportType as DiscoveryReportType, TopologyType,
705 VerificationConfig, VerificationStatus,
706 };
707 pub use crate::pulse::{
708 ChannelType, MeasLevel, MeasurementData, PulseBackend, PulseBuilder, PulseCalibration,
709 PulseInstruction, PulseLibrary, PulseResult, PulseSchedule, PulseShape, PulseTemplates,
710 };
711 pub use crate::qec::{
712 AdaptiveQECConfig, ErrorMitigationConfig, QECCodeType, QECConfig, QECMLConfig,
713 QECMonitoringConfig, QECOptimizationConfig, QECStrategy, SyndromeDetectionConfig,
714 };
715 pub use crate::quantum_ml::{
716 create_qaoa_accelerator, create_vqc_accelerator,
717 gradients::{
718 create_finite_difference_calculator, create_parameter_shift_calculator, GradientConfig,
719 GradientUtils, Observable as QMLObservable, ObservableTerm, QuantumGradientCalculator,
720 },
721 optimization::{
722 create_gradient_free_optimizer, create_gradient_optimizer, GradientBasedOptimizer,
723 GradientFreeOptimizer, ObjectiveFunction as QMLObjectiveFunction,
724 OptimizationResult as QMLOptResult, OptimizationStep, OptimizerConfig,
725 QuantumOptimizer, VQEObjectiveFunction,
726 },
727 quantum_neural_networks::{
728 create_pqc_classifier, create_qcnn_classifier, ClassificationResult,
729 EntanglingStrategy, InputEncoding, OutputDecoding, PQCNetwork, QConvLayer,
730 QNNArchitecture, QNNType, QPoolingLayer, QPoolingType, QuantumNeuralNetwork, QCNN, VQC,
731 },
732 training::{
733 create_supervised_trainer, create_training_data, BatchObjectiveFunction,
734 CrossEntropyLoss, LossFunction as QMLLossFunction, MSELoss, QuantumTrainer,
735 TrainingData as QMLTrainingData, TrainingMetrics, TrainingResult as QMLTrainingResult,
736 },
737 variational_algorithms::{
738 create_molecular_vqe, AdamOptimizer, EntanglingGateType, Hamiltonian,
739 HardwareEfficientAnsatz, MolecularHamiltonian, ParameterizedQuantumCircuit,
740 PauliOperator, PauliTerm, QAOAConfig, QAOAResult, QAOASolution, QuantumGate,
741 QuantumState, VQEConfig, VQEResult, VariationalAnsatz, VariationalOptimizer, QAOA, VQE,
742 },
743 CircuitStructure, GradientMethod as QMLGradientMethod, InferenceData, InferenceResult,
744 ModelExportFormat, ModelRegistry, NoiseResilienceLevel,
745 OptimizationResult as QMLOptimizationResult, OptimizerType, QMLAccelerator, QMLConfig,
746 QMLDiagnostics, QMLModel, QMLModelType, TrainingData, TrainingEpoch, TrainingResult,
747 TrainingStatistics,
748 };
749 pub use crate::quantum_ml_integration::{
750 create_high_performance_qml_config, create_qml_integration_hub,
751 AnomalyType as QMLAnomalyType, FrameworkBridge, HybridMLOptimizer, LossFunction,
752 MLFramework, MLPerformanceAnalytics, QMLArchitecture, QMLDataBatch, QMLDataPipeline,
753 QMLDataset, QMLInferenceResult, QMLIntegrationConfig, QMLMonitoringConfig,
754 QMLOptimizationConfig, QMLResourceConfig, QMLResourceRequirements, QMLTrainingConfig,
755 QMLTrainingOrchestrator, QuantumEncodingType, QuantumMLIntegrationHub,
756 QuantumNeuralNetworkExecutor, TrainingPriority,
757 };
758 pub use crate::quantum_system_security::{
759 AuthenticationMethod as SecurityAuthenticationMethod, AuthorizationModel,
760 ComplianceStandard, EncryptionProtocol, PostQuantumAlgorithm, QuantumSecurityConfig,
761 QuantumSecurityExecutionResult, QuantumSecurityExecutionStatus,
762 QuantumSystemSecurityFramework, RegulatoryFramework,
763 SecurityAnalyticsEngine as SecurityAnalyticsEngineType, SecurityClassification,
764 SecurityMLModel, SecurityObjective, SecurityOperation, SecurityOperationType,
765 SecurityStandard, ThreatDetectionAlgorithm,
766 };
767 pub use crate::routing_advanced::{
768 AdvancedQubitRouter, AdvancedRoutingResult, AdvancedRoutingStrategy, RoutingMetrics,
769 SwapOperation,
770 };
771 pub use crate::telemetry::{
772 create_high_performance_telemetry_config, create_telemetry_system, Alert, AlertConfig,
773 AlertManager, AlertSeverity, AlertState, AnalyticsConfig as TelemetryAnalyticsConfig,
774 AnomalyDetector, AnomalyResult, AnomalyType as TelemetryAnomalyType, ExportConfig,
775 HealthStatus, Metric, MetricCollector, MetricConfig, MetricType, MonitoringConfig,
776 QuantumTelemetrySystem, RealTimeMonitor, ReportType, RetentionConfig, SystemHealth,
777 SystemStatus, TelemetryAnalytics, TelemetryCommand, TelemetryConfig, TelemetryEvent,
778 TelemetryReport, TelemetryStorage, TrendDirection,
779 };
780 pub use crate::topological::{
781 anyons::{AnyonFactory, AnyonTracker, ChargeAlgebra},
782 braiding::{BraidGroupElement, BraidingMatrixCalculator, BraidingOperationManager},
783 device::{
784 create_fibonacci_device, create_ising_device, EnhancedTopologicalDevice,
785 TopologicalDeviceConfig, TopologicalDeviceDiagnostics,
786 },
787 error_correction::{
788 ErrorCorrectionConfig, RealTimeErrorMonitor, TopologicalErrorCorrector,
789 },
790 fusion::{FSymbolCalculator, FusionOperationExecutor, FusionTree},
791 topological_codes::{
792 ColorCode, ErrorCorrection, SurfaceCode, SyndromeMeasurement, TopologicalCodeType,
793 TopologicalDecoder,
794 },
795 Anyon, BraidingDirection, BraidingOperation, BraidingResult, FusionRuleSet,
796 NonAbelianAnyonType, TopologicalCapabilities, TopologicalCharge, TopologicalDevice,
797 TopologicalError, TopologicalOperation, TopologicalQubit, TopologicalQubitState,
798 TopologicalResult, TopologicalSystemStatus, TopologicalSystemType,
799 };
800 pub use crate::topology_analysis::{
801 create_standard_topology, AllocationStrategy, HardwareMetrics, TopologyAnalysis,
802 TopologyAnalyzer,
803 };
804 pub use crate::translation::{
805 validate_native_circuit, DecomposedGate, GateTranslator, HardwareBackend, NativeGateSet,
806 OptimizationStrategy, TranslationMethod, TranslationOptimizer, TranslationRule,
807 TranslationStats,
808 };
809 pub use crate::unified_benchmarking::{
810 BaselineMetric, BaselineMetricValue, BenchmarkEvent, PerformanceBaseline,
811 QuantumPlatform as UnifiedQuantumPlatform, UnifiedBenchmarkConfig, UnifiedBenchmarkResult,
812 UnifiedQuantumBenchmarkSystem,
813 };
814 pub use crate::unified_error_handling::{
815 ErrorCategory, ErrorSeverity, RecoveryStrategy, UnifiedDeviceError, UnifiedErrorContext,
816 UnifiedErrorHandler, UnifiedRetryConfig,
817 };
818 pub use crate::vqa_support::{
819 analysis::ConvergenceAnalysis,
820 circuits::ParametricCircuit as VQAParametricCircuit,
821 config::{
822 AdaptiveShotConfig, ConvergenceCriterion as VQAConvergenceCriterion, GradientMethod,
823 MultiStartConfig, OptimizationTrajectory, ResourceUtilization, VQAAlgorithmType,
824 VQAConfig, VQAHardwareAnalysis, VQAHardwareConfig, VQANoiseMitigation,
825 VQAOptimizationConfig, VQAOptimizer, VQAStatisticalAnalysis, VQAStatisticalConfig,
826 VQAValidationConfig, VQAValidationResults, WarmRestartConfig,
827 },
828 executor::{VQAExecutor, VQAResult},
829 objectives::ObjectiveFunction,
830 };
831 pub use crate::zero_noise_extrapolation::{
832 CircuitFolder, ExtrapolationFitter, ExtrapolationMethod, NoiseScalingMethod, Observable,
833 ZNECapable, ZNEConfig, ZNEExecutor, ZNEResult,
834 };
835}