1#![allow(clippy::unnecessary_wraps)] #![allow(clippy::unused_self)] #![allow(clippy::unused_async)]
5#![allow(clippy::significant_drop_tightening)] #![allow(clippy::match_same_arms)] #![allow(clippy::option_if_let_else)] #![allow(clippy::return_self_not_must_use)] #![allow(clippy::needless_range_loop)] #![allow(clippy::branches_sharing_code)] #![allow(clippy::type_complexity)] #![allow(clippy::missing_const_for_fn)] #![allow(clippy::format_push_string)] #![allow(clippy::cast_possible_truncation)] #![allow(clippy::future_not_send)] #![allow(clippy::needless_pass_by_ref_mut)] #![allow(clippy::cast_precision_loss)] #![allow(clippy::uninlined_format_args)] #![allow(clippy::assigning_clones)] #![allow(clippy::zero_sized_map_values)] #![allow(clippy::used_underscore_binding)] #![allow(clippy::collection_is_never_read)] #![allow(clippy::wildcard_in_or_patterns)] #![allow(clippy::ptr_arg)] #![allow(clippy::implicit_hasher)] #![allow(clippy::ref_option)] #![allow(clippy::expect_fun_call)] #![allow(clippy::if_not_else)] #![allow(clippy::iter_on_single_items)] #![allow(clippy::trivially_copy_pass_by_ref)] #![allow(clippy::empty_line_after_doc_comments)] #![allow(clippy::manual_let_else)] #![allow(clippy::await_holding_lock)] #![allow(clippy::pedantic)]
40#![allow(clippy::nursery)]
41#![allow(clippy::cargo)]
42#![allow(clippy::large_enum_variant)]
44#![allow(clippy::borrowed_box)]
45#![allow(clippy::manual_map)]
46#![allow(clippy::non_send_fields_in_send_ty)]
47#![allow(clippy::if_same_then_else)]
48#![allow(clippy::manual_clamp)]
49#![allow(clippy::double_must_use)]
50#![allow(clippy::only_used_in_recursion)]
51#![allow(clippy::same_item_push)]
52#![allow(clippy::format_in_format_args)]
53#![allow(clippy::implied_bounds_in_impls)]
54#![allow(clippy::explicit_counter_loop)]
55#![allow(clippy::duplicated_attributes)]
56#![allow(clippy::new_ret_no_self)]
57#![allow(clippy::must_use_unit)]
58#![allow(clippy::redundant_pattern_matching)]
59#![allow(clippy::redundant_guards)]
60#![allow(clippy::wrong_self_convention)]
61#![allow(clippy::iter_next_slice)]
62#![allow(clippy::create_dir)]
63#![allow(clippy::enum_variant_names)]
64#![allow(clippy::should_implement_trait)] #![allow(clippy::upper_case_acronyms)] #![allow(clippy::unnecessary_map_or)] #![allow(clippy::derivable_impls)] #![allow(clippy::or_fun_call)] #![allow(clippy::cloned_ref_to_slice_refs)] #![allow(clippy::collapsible_match)]
72#![allow(clippy::len_without_is_empty)]
73#![allow(clippy::arc_with_non_send_sync)]
74#![allow(clippy::std_instead_of_core)] #![allow(clippy::match_like_matches_macro)] #![allow(clippy::suspicious_open_options)] #![allow(clippy::new_without_default)] #![allow(clippy::unwrap_or_default)] use quantrs2_circuit::prelude::Circuit;
97use std::collections::HashMap;
98use thiserror::Error;
99
100pub mod adaptive_compilation;
101pub mod advanced_benchmarking_suite;
102pub mod advanced_scheduling;
103pub mod aws;
107pub mod aws_device;
108pub mod azure;
109pub mod azure_device;
110pub mod backend_traits;
111pub mod benchmarking;
112pub mod calibration;
113pub mod characterization;
114pub mod circuit_integration;
115pub mod circuit_migration;
116pub mod cloud;
117pub mod continuous_variable;
118pub mod scirs2_calibration_enhanced;
119pub mod compiler_passes;
121pub mod cross_platform_benchmarking;
122pub mod crosstalk;
123pub mod distributed;
124pub mod dynamical_decoupling;
125pub mod hardware_parallelization;
126pub mod hybrid_quantum_classical;
127pub mod ibm;
128pub mod ibm_device;
129pub mod integrated_device_manager;
130pub mod job_scheduling;
131pub mod algorithm_marketplace;
133pub mod mid_circuit_measurements;
134pub mod ml_optimization;
135pub mod neutral_atom;
136pub mod noise_model;
137pub mod noise_modeling_scirs2;
138pub mod optimization;
139pub mod optimization_old;
140pub mod parametric;
141pub mod performance_analytics_dashboard;
142pub mod performance_dashboard;
143pub mod photonic;
144pub mod process_tomography;
145pub mod provider_capability_discovery;
146pub mod pulse;
147pub mod qec;
148pub mod quantum_ml;
149pub mod quantum_ml_integration;
150pub mod quantum_network;
151pub mod quantum_system_security;
152pub mod routing;
153pub mod routing_advanced;
154pub mod scirs2_hardware_benchmarks_enhanced;
156pub mod scirs2_noise_characterization_enhanced;
157pub mod security;
158pub mod telemetry;
159pub mod topological;
160pub mod topology;
161pub mod topology_analysis;
162pub mod translation;
163pub mod transpiler;
164pub mod unified_benchmarking;
165pub mod unified_error_handling;
166pub mod vqa_support;
167pub mod zero_noise_extrapolation;
168
169#[cfg(test)]
171pub mod test_utils;
172
173#[cfg(feature = "aws")]
175pub mod aws_auth;
176
177#[cfg(feature = "aws")]
179pub mod aws_conversion;
180
181pub type DeviceResult<T> = Result<T, DeviceError>;
183
184#[derive(Error, Debug, Clone)]
186pub enum DeviceError {
187 #[error("Authentication error: {0}")]
188 Authentication(String),
189
190 #[error("Connection error: {0}")]
191 Connection(String),
192
193 #[error("API error: {0}")]
194 APIError(String),
195
196 #[error("Job submission error: {0}")]
197 JobSubmission(String),
198
199 #[error("Job execution error: {0}")]
200 JobExecution(String),
201
202 #[error("Execution failed: {0}")]
203 ExecutionFailed(String),
204
205 #[error("Timeout error: {0}")]
206 Timeout(String),
207
208 #[error("Deserialization error: {0}")]
209 Deserialization(String),
210
211 #[error("Device not supported: {0}")]
212 UnsupportedDevice(String),
213
214 #[error("Circuit conversion error: {0}")]
215 CircuitConversion(String),
216
217 #[error("Insufficient qubits: required {required}, available {available}")]
218 InsufficientQubits { required: usize, available: usize },
219
220 #[error("Routing error: {0}")]
221 RoutingError(String),
222
223 #[error("Unsupported operation: {0}")]
224 UnsupportedOperation(String),
225
226 #[error("Invalid input: {0}")]
227 InvalidInput(String),
228
229 #[error("Optimization error: {0}")]
230 OptimizationError(String),
231
232 #[error("Not implemented: {0}")]
233 NotImplemented(String),
234
235 #[error("Invalid mapping: {0}")]
236 InvalidMapping(String),
237
238 #[error("Graph analysis error: {0}")]
239 GraphAnalysisError(String),
240
241 #[error("Device not found: {0}")]
242 DeviceNotFound(String),
243
244 #[error("Device not initialized: {0}")]
245 DeviceNotInitialized(String),
246
247 #[error("Job execution failed: {0}")]
248 JobExecutionFailed(String),
249
250 #[error("Invalid response: {0}")]
251 InvalidResponse(String),
252
253 #[error("Unknown job status: {0}")]
254 UnknownJobStatus(String),
255
256 #[error("Resource exhaustion: {0}")]
257 ResourceExhaustion(String),
258
259 #[error("Lock error: {0}")]
260 LockError(String),
261}
262
263impl From<quantrs2_core::error::QuantRS2Error> for DeviceError {
265 fn from(err: quantrs2_core::error::QuantRS2Error) -> Self {
266 Self::APIError(err.to_string())
267 }
268}
269
270impl From<String> for DeviceError {
272 fn from(err: String) -> Self {
273 Self::APIError(err)
274 }
275}
276
277impl From<crate::ml_optimization::OptimizeError> for DeviceError {
279 fn from(err: crate::ml_optimization::OptimizeError) -> Self {
280 Self::OptimizationError(err.to_string())
281 }
282}
283
284#[cfg(feature = "ibm")]
286#[async_trait::async_trait]
287pub trait QuantumDevice {
288 async fn is_available(&self) -> DeviceResult<bool>;
290
291 async fn qubit_count(&self) -> DeviceResult<usize>;
293
294 async fn properties(&self) -> DeviceResult<HashMap<String, String>>;
296
297 async fn is_simulator(&self) -> DeviceResult<bool>;
299}
300
301#[cfg(not(feature = "ibm"))]
302pub trait QuantumDevice {
303 fn is_available(&self) -> DeviceResult<bool>;
305
306 fn qubit_count(&self) -> DeviceResult<usize>;
308
309 fn properties(&self) -> DeviceResult<HashMap<String, String>>;
311
312 fn is_simulator(&self) -> DeviceResult<bool>;
314}
315
316#[cfg(feature = "ibm")]
318#[async_trait::async_trait]
319pub trait CircuitExecutor: QuantumDevice {
320 async fn execute_circuit<const N: usize>(
322 &self,
323 circuit: &Circuit<N>,
324 shots: usize,
325 ) -> DeviceResult<CircuitResult>;
326
327 async fn execute_circuits<const N: usize>(
329 &self,
330 circuits: Vec<&Circuit<N>>,
331 shots: usize,
332 ) -> DeviceResult<Vec<CircuitResult>>;
333
334 async fn can_execute_circuit<const N: usize>(&self, circuit: &Circuit<N>)
336 -> DeviceResult<bool>;
337
338 async fn estimated_queue_time<const N: usize>(
340 &self,
341 circuit: &Circuit<N>,
342 ) -> DeviceResult<std::time::Duration>;
343}
344
345#[cfg(not(feature = "ibm"))]
346pub trait CircuitExecutor: QuantumDevice {
347 fn execute_circuit<const N: usize>(
349 &self,
350 circuit: &Circuit<N>,
351 shots: usize,
352 ) -> DeviceResult<CircuitResult>;
353
354 fn execute_circuits<const N: usize>(
356 &self,
357 circuits: Vec<&Circuit<N>>,
358 shots: usize,
359 ) -> DeviceResult<Vec<CircuitResult>>;
360
361 fn can_execute_circuit<const N: usize>(&self, circuit: &Circuit<N>) -> DeviceResult<bool>;
363
364 fn estimated_queue_time<const N: usize>(
366 &self,
367 circuit: &Circuit<N>,
368 ) -> DeviceResult<std::time::Duration>;
369}
370
371#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
373pub struct CircuitResult {
374 pub counts: HashMap<String, usize>,
376
377 pub shots: usize,
379
380 pub metadata: HashMap<String, String>,
382}
383
384pub const fn is_available() -> bool {
386 #[cfg(any(feature = "ibm", feature = "azure", feature = "aws"))]
387 {
388 true
389 }
390
391 #[cfg(not(any(feature = "ibm", feature = "azure", feature = "aws")))]
392 {
393 false
394 }
395}
396
397#[cfg(feature = "ibm")]
401pub fn create_ibm_client(token: &str) -> DeviceResult<ibm::IBMQuantumClient> {
402 ibm::IBMQuantumClient::new(token)
403}
404
405#[cfg(not(feature = "ibm"))]
409pub fn create_ibm_client(_token: &str) -> DeviceResult<()> {
410 Err(DeviceError::UnsupportedDevice(
411 "IBM Quantum support not enabled. Recompile with the 'ibm' feature.".to_string(),
412 ))
413}
414
415#[cfg(feature = "ibm")]
417pub async fn create_ibm_device(
418 token: &str,
419 backend_name: &str,
420 config: Option<ibm_device::IBMDeviceConfig>,
421) -> DeviceResult<impl CircuitExecutor> {
422 let client = create_ibm_client(token)?;
423 ibm_device::IBMQuantumDevice::new(client, backend_name, config).await
424}
425
426#[cfg(not(feature = "ibm"))]
430pub async fn create_ibm_device(
431 _token: &str,
432 _backend_name: &str,
433 _config: Option<()>,
434) -> DeviceResult<()> {
435 Err(DeviceError::UnsupportedDevice(
436 "IBM Quantum support not enabled. Recompile with the 'ibm' feature.".to_string(),
437 ))
438}
439
440#[cfg(feature = "azure")]
444pub fn create_azure_client(
445 token: &str,
446 subscription_id: &str,
447 resource_group: &str,
448 workspace: &str,
449 region: Option<&str>,
450) -> DeviceResult<azure::AzureQuantumClient> {
451 azure::AzureQuantumClient::new(token, subscription_id, resource_group, workspace, region)
452}
453
454#[cfg(not(feature = "azure"))]
458pub fn create_azure_client(
459 _token: &str,
460 _subscription_id: &str,
461 _resource_group: &str,
462 _workspace: &str,
463 _region: Option<&str>,
464) -> DeviceResult<()> {
465 Err(DeviceError::UnsupportedDevice(
466 "Azure Quantum support not enabled. Recompile with the 'azure' feature.".to_string(),
467 ))
468}
469
470#[cfg(feature = "azure")]
472pub async fn create_azure_device(
473 client: azure::AzureQuantumClient,
474 target_id: &str,
475 provider_id: Option<&str>,
476 config: Option<azure_device::AzureDeviceConfig>,
477) -> DeviceResult<impl QuantumDevice + CircuitExecutor> {
478 azure_device::AzureQuantumDevice::new(client, target_id, provider_id, config).await
479}
480
481#[cfg(not(feature = "azure"))]
485pub async fn create_azure_device(
486 _client: (),
487 _target_id: &str,
488 _provider_id: Option<&str>,
489 _config: Option<()>,
490) -> DeviceResult<()> {
491 Err(DeviceError::UnsupportedDevice(
492 "Azure Quantum support not enabled. Recompile with the 'azure' feature.".to_string(),
493 ))
494}
495
496#[cfg(feature = "aws")]
500pub fn create_aws_client(
501 access_key: &str,
502 secret_key: &str,
503 region: Option<&str>,
504 s3_bucket: &str,
505 s3_key_prefix: Option<&str>,
506) -> DeviceResult<aws::AWSBraketClient> {
507 aws::AWSBraketClient::new(access_key, secret_key, region, s3_bucket, s3_key_prefix)
508}
509
510#[cfg(not(feature = "aws"))]
514pub fn create_aws_client(
515 _access_key: &str,
516 _secret_key: &str,
517 _region: Option<&str>,
518 _s3_bucket: &str,
519 _s3_key_prefix: Option<&str>,
520) -> DeviceResult<()> {
521 Err(DeviceError::UnsupportedDevice(
522 "AWS Braket support not enabled. Recompile with the 'aws' feature.".to_string(),
523 ))
524}
525
526#[cfg(feature = "aws")]
528pub async fn create_aws_device(
529 client: aws::AWSBraketClient,
530 device_arn: &str,
531 config: Option<aws_device::AWSDeviceConfig>,
532) -> DeviceResult<impl QuantumDevice + CircuitExecutor> {
533 aws_device::AWSBraketDevice::new(client, device_arn, config).await
534}
535
536#[cfg(not(feature = "aws"))]
540pub async fn create_aws_device(
541 _client: (),
542 _device_arn: &str,
543 _config: Option<()>,
544) -> DeviceResult<()> {
545 Err(DeviceError::UnsupportedDevice(
546 "AWS Braket support not enabled. Recompile with the 'aws' feature.".to_string(),
547 ))
548}
549
550pub mod prelude {
552 pub use crate::advanced_benchmarking_suite::{
553 AdvancedBenchmarkConfig, AdvancedBenchmarkResult, AdvancedHardwareBenchmarkSuite,
554 AdvancedStatisticalResult, AdvancedStatsConfig, AnomalyDetectionConfig,
555 AnomalyDetectionResult, BenchmarkOptimizationConfig, MLAnalysisResult, MLBenchmarkConfig,
556 PredictionResult, PredictiveModelingConfig, RealtimeBenchmarkConfig,
557 };
558 pub use crate::backend_traits::{
559 google_gates, honeywell_gates, ibm_gates, ionq_gates, query_backend_capabilities,
560 rigetti_gates, BackendCapabilities, BackendFeatures, BackendPerformance, HardwareGate,
561 };
562 pub use crate::benchmarking::{
563 BenchmarkConfig, BenchmarkResult, BenchmarkSuite, GraphAnalysis, HardwareBenchmarkSuite,
564 NoiseAnalysis, PerformanceMetrics as BenchmarkingMetrics, StatisticalAnalysis,
565 };
566 pub use crate::calibration::{
567 create_ideal_calibration, CalibrationBuilder, CalibrationManager, CrosstalkMatrix,
568 DeviceCalibration, DeviceTopology, QubitCalibration, ReadoutCalibration,
569 SingleQubitGateCalibration, TwoQubitGateCalibration,
570 };
571 pub use crate::characterization::{
572 CrosstalkCharacterization as CharacterizationCrosstalk, DriftTracker, ProcessTomography,
573 RandomizedBenchmarking, StateTomography,
574 };
575 pub use crate::circuit_integration::{
576 create_high_performance_config, create_universal_interface, AnalyticsConfig, CacheConfig,
577 CircuitVariant, CostInfo, ExecutionAnalytics, ExecutionMetadata, ExecutionResult,
578 IntegrationConfig, OptimizationSettings, OptimizedCircuit,
579 PerformanceMetrics as CircuitPerformanceMetrics, PlatformAdapter, PlatformConfig,
580 PlatformMetrics, SelectionCriteria, UniversalCircuitInterface,
581 };
582 pub use crate::cloud::{
583 allocation::{AllocationAlgorithm, ResourceOptimizationObjective},
584 cost_management::CostOptimizationStrategy,
585 monitoring::CloudMonitoringConfig,
586 orchestration::{LoadBalancingStrategy, PerformanceOptimizationStrategy},
587 providers::{CloudProvider, MultiProviderConfig, ProviderSelectionStrategy},
588 };
589 pub use crate::compiler_passes::{
590 CompilationResult, CompilerConfig, HardwareAllocation, HardwareCompiler,
591 HardwareConstraints, OptimizationObjective, OptimizationStats, PassInfo,
592 PerformancePrediction,
593 };
594 pub use crate::continuous_variable::{
595 cluster_states::{
596 ClusterStateConfig, ClusterStateGenerator, ClusterStateType, ClusterStateValidation,
597 MBQCMeasurement, MBQCResult,
598 },
599 create_cluster_state_cv_device, create_gaussian_cv_device,
600 cv_gates::{CVGateLibrary, CVGateParams, CVGateSequence, CVGateType},
601 error_correction::{
602 CVErrorCorrectionCode, CVErrorCorrectionConfig, CVErrorCorrector, CVLogicalState,
603 CorrectionResult,
604 },
605 gaussian_states::GaussianState,
606 heterodyne::{
607 HeterodyneDetector, HeterodyneDetectorConfig, HeterodyneResult, HeterodyneStatistics,
608 },
609 homodyne::{HomodyneDetector, HomodyneDetectorConfig, HomodyneResult, HomodyneStatistics},
610 measurements::{
611 CVMeasurementConfig, CVMeasurementEngine, CVMeasurementScheme, MeasurementStatistics,
612 },
613 CVDeviceConfig, CVDeviceDiagnostics, CVEntanglementMeasures, CVMeasurementOutcome,
614 CVMeasurementResult, CVMeasurementType, CVModeState, CVQuantumDevice, CVSystemType,
615 Complex,
616 };
617 pub use crate::scirs2_calibration_enhanced::{
618 AnalysisOptions, CNOTData, CalibrationConfig, CalibrationFeedback, CalibrationInput,
619 CalibrationModel, CalibrationObjective, CalibrationPrediction, CalibrationProtocols,
620 CalibrationRecommendation, CalibrationReport, CalibrationState, CalibrationSummary,
621 CalibrationVisualizations, ChevronData, CoherenceTimes, CoherentError, CorrelatedError,
622 CrosstalkCharacterization as EnhancedCrosstalkCharacterization, CrosstalkParameters,
623 CrosstalkProtocols, DetailedResults, DiscriminationData, DiscriminationParameters,
624 DragData, DriftAnalysis, DriftDirection, DriftMeasurement, EnhancedCalibrationConfig,
625 EnhancedCalibrationSystem, ErrorAnalysis, ErrorCharacterization, ErrorData, ErrorModel,
626 ErrorModelTrait, GSTData, GateSet, HardwareSpec, IQData, IQParameters,
627 IdentificationMethod, IncoherentError, IncoherentErrorType, MLSystemParameters,
628 PerformanceMetrics, PerformanceThresholds, Priority, ProcessTomographyData, QualityMetrics,
629 QuantumOperation, QubitParameters, RBData, RabiData, RamseyData,
630 ReadoutCalibration as EnhancedReadoutCalibration, ReadoutParameters, ReadoutProtocols,
631 RecommendationCategory, SingleQubitCalibration, SingleQubitProtocols, SystemAnalysis,
632 SystemCalibrationResult, SystemModel, TwoQubitCalibration, TwoQubitParameters,
633 TwoQubitProtocols, ZZData,
634 };
635 pub use crate::crosstalk::{
647 CrosstalkAnalyzer, CrosstalkCharacterization, CrosstalkConfig, CrosstalkMechanism,
648 MitigationStrategy, SpatialCrosstalkAnalysis, SpectralCrosstalkAnalysis,
649 TemporalCrosstalkAnalysis,
650 };
651 pub use crate::distributed::{
652 AuthenticationMethod as DistributedAuthenticationMethod, CircuitDecompositionResult,
653 CommunicationProtocol, DistributedCommand, DistributedComputingConfig,
654 DistributedCostAnalysis, DistributedEvent, DistributedExecutionResult,
655 DistributedExecutionStatus, DistributedMonitoringConfig, DistributedOptimizationConfig,
656 DistributedOrchestratorConfig, DistributedPerformanceAnalytics,
657 DistributedQuantumOrchestrator, DistributedResourceConfig, DistributedResourceUtilization,
658 DistributedWorkflow, DistributedWorkflowType,
659 EncryptionAlgorithm as DistributedEncryptionAlgorithm, FaultToleranceConfig,
660 FaultToleranceMetrics, LoadBalancingAlgorithm, LoadBalancingConfig, NetworkConfig,
661 NetworkPerformanceMetrics, NetworkTopology, NodeCapabilities, NodeInfo, NodeStatus,
662 OptimizationObjective as DistributedOptimizationObjective, ReplicationStrategy,
663 SecurityAuditTrail, SecurityConfig as DistributedSecurityConfig,
664 WorkloadDistributionStrategy,
665 };
666 pub use crate::hardware_parallelization::{
667 ExecutionConstraints, ExecutionQualityMetrics, HardwareAwarenessConfig,
668 HardwareParallelizationEngine, LoadBalancingConfig as ParallelLoadBalancingConfig,
669 LoadBalancingResult, OptimizationSuggestion, ParallelCircuitTask, ParallelExecutionResult,
670 ParallelGateTask, ParallelResourceRequirements, ParallelSchedulingConfig,
671 ParallelizationConfig, ParallelizationStrategy,
672 PerformanceMetrics as ParallelPerformanceMetrics, PerformanceOptimizationConfig,
673 QualityRequirements, ResourceAllocationConfig, ResourceConstraints, ResourceUsage,
674 TaskPriority, TimingConstraints,
675 };
676 pub use crate::hybrid_quantum_classical::{
677 AdaptationAlgorithm, AdaptiveControlConfig, BackendSelectionConfig, BackoffStrategy,
678 CircuitOptimizationConfig, ClassicalComputationConfig, ClassicalComputationResult,
679 ConvergenceConfig, ConvergenceCriterion, ConvergenceReason, ConvergenceStatus,
680 ErrorHandlingConfig, ErrorRecoveryStrategy, FeedbackAlgorithm, FeedbackControlConfig,
681 HybridLoopConfig, HybridLoopResult, HybridLoopState, HybridLoopStrategy,
682 HybridOptimizationConfig, HybridOptimizer, HybridPerformanceConfig,
683 HybridQuantumClassicalExecutor, IterationResult, NoiseModelingConfig, OptimizationLevel,
684 OptimizationPass, OptimizationSummary, PerformanceMetrics as HybridPerformanceMetrics,
685 QualityMetrics as HybridQualityMetrics, QuantumExecutionConfig, QuantumExecutionResult,
686 RetryConfig, SelectionCriterion, StateEstimationMethod,
687 };
688 pub use crate::ibm::IBMCircuitConfig;
689 pub use crate::integrated_device_manager::{
690 DeviceInfo,
691 ExecutionStatus, IntegratedDeviceConfig,
694 IntegratedExecutionResult,
695 IntegratedQuantumDeviceManager,
696 };
697 pub use crate::job_scheduling::{
698 create_batch_job_config, create_high_priority_config, create_realtime_config,
699 AllocationStrategy as JobAllocationStrategy, BackendPerformance as JobBackendPerformance,
700 BackendStatus, ExecutionMetrics, JobConfig, JobExecution, JobId, JobPriority, JobStatus,
701 QuantumJob, QuantumJobScheduler, QueueAnalytics, ResourceRequirements, SchedulerEvent,
702 SchedulingParams, SchedulingStrategy,
703 };
704 pub use crate::algorithm_marketplace::{
710 APIConfig, ActiveDeployment, AlgorithmDeploymentManager, AlgorithmDiscoveryEngine,
711 AlgorithmInfo, AlgorithmOptimizationEngine, AlgorithmRegistration, AlgorithmRegistry,
712 AlgorithmValidationService, AlgorithmVersioningSystem, DeploymentRequest, DeploymentStatus,
713 DiscoveryCriteria, MarketplaceAPI, MarketplaceConfig, MonetizationSystem,
714 OptimizationConfig as MarketplaceOptimizationConfig, PaymentMethod, Permission,
715 PricingStrategy, QuantumAlgorithmMarketplace, SubscriptionModel, UserSession, UserType,
716 ValidationConfig as MarketplaceValidationConfig, VersioningConfig,
717 };
718 pub use crate::mid_circuit_measurements::{
719 ExecutionStats, HardwareOptimizations, MeasurementEvent, MidCircuitCapabilities,
720 MidCircuitConfig, MidCircuitDeviceExecutor, MidCircuitExecutionResult, MidCircuitExecutor,
721 PerformanceMetrics as MidCircuitPerformanceMetrics, ValidationConfig, ValidationResult,
722 };
723 pub use crate::noise_model::{
724 CalibrationNoiseModel, GateNoiseParams, NoiseModelBuilder, QubitNoiseParams,
725 ReadoutNoiseParams,
726 };
727 pub use crate::noise_modeling_scirs2::{SciRS2NoiseConfig, SciRS2NoiseModeler};
728 pub use crate::optimization::{
729 CalibrationOptimizer, FidelityEstimator, OptimizationConfig, OptimizationResult,
730 PulseOptimizer,
731 };
732 pub use crate::parametric::{
733 BatchExecutionRequest, BatchExecutionResult, Parameter, ParameterExpression,
734 ParameterOptimizer, ParametricCircuit, ParametricCircuitBuilder, ParametricExecutor,
735 ParametricGate, ParametricTemplates,
736 };
737 pub use crate::photonic::{
738 create_photonic_device,
739 gate_based::{
740 OpticalElement, PhotonicCircuitCompiler, PhotonicCircuitImplementation,
741 PhotonicGateImpl, PhotonicGates, PhotonicHardwareConstraints, PhotonicQubitEncoding,
742 PhotonicQubitState, PhotonicResourceRequirements,
743 },
744 gates::{
745 BeamsplitterGate, CrossKerrGate, DisplacementGate, KerrGate, PhaseRotationGate,
746 SqueezingGate, TwoModeSqueezingGate,
747 },
748 validate_photonic_config, PhotonicCircuitResult, PhotonicClient, PhotonicConfig,
749 PhotonicDeviceConfig, PhotonicExecutionMetadata, PhotonicMeasurementData, PhotonicMode,
750 PhotonicQuantumDevice, PhotonicSystemType,
751 };
752 pub use crate::provider_capability_discovery::{
753 create_high_performance_discovery_config, create_provider_discovery_system,
754 CachedCapability, CapabilityRequirements, ComparisonResults, ConnectivityRequirement,
755 DiscoveryCommand, DiscoveryConfig, DiscoveryEvent, DiscoveryStrategy, FilteringConfig,
756 ProviderCapabilities, ProviderCapabilityDiscoverySystem, ProviderFeature, ProviderInfo,
757 ProviderRanking, ProviderType, ReportType as DiscoveryReportType, TopologyType,
758 VerificationConfig, VerificationStatus,
759 };
760 pub use crate::pulse::{
761 ChannelType, MeasLevel, MeasurementData, PulseBackend, PulseBuilder, PulseCalibration,
762 PulseInstruction, PulseLibrary, PulseResult, PulseSchedule, PulseShape, PulseTemplates,
763 };
764 pub use crate::qec::{
765 adaptive::AdaptiveQECConfig, codes::QECCodeType, detection::SyndromeDetectionConfig,
766 mitigation::ErrorMitigationConfig, QECConfig, QECMLConfig, QECMonitoringConfig,
767 QECOptimizationConfig, QECStrategy,
768 };
769 pub use crate::quantum_ml::{
770 create_qaoa_accelerator, create_vqc_accelerator,
771 gradients::{
772 create_finite_difference_calculator, create_parameter_shift_calculator, GradientConfig,
773 GradientUtils, Observable as QMLObservable, ObservableTerm, QuantumGradientCalculator,
774 },
775 optimization::{
776 create_gradient_free_optimizer, create_gradient_optimizer, GradientBasedOptimizer,
777 GradientFreeOptimizer, ObjectiveFunction as QMLObjectiveFunction,
778 OptimizationResult as QMLOptResult, OptimizationStep, OptimizerConfig,
779 QuantumOptimizer, VQEObjectiveFunction,
780 },
781 quantum_neural_networks::{
782 create_pqc_classifier, create_qcnn_classifier, ClassificationResult,
783 EntanglingStrategy, InputEncoding, OutputDecoding, PQCNetwork, QConvLayer,
784 QNNArchitecture, QNNType, QPoolingLayer, QPoolingType, QuantumNeuralNetwork, QCNN, VQC,
785 },
786 training::{
787 create_supervised_trainer, create_training_data, BatchObjectiveFunction,
788 CrossEntropyLoss, LossFunction as QMLLossFunction, MSELoss, QuantumTrainer,
789 TrainingData as QMLTrainingData, TrainingMetrics, TrainingResult as QMLTrainingResult,
790 },
791 variational_algorithms::{
792 create_molecular_vqe, AdamOptimizer, EntanglingGateType, Hamiltonian,
793 HardwareEfficientAnsatz, MolecularHamiltonian, ParameterizedQuantumCircuit,
794 PauliOperator, PauliTerm, QAOAConfig, QAOAResult, QAOASolution, QuantumGate,
795 QuantumState, VQEConfig, VQEResult, VariationalAnsatz, VariationalOptimizer, QAOA, VQE,
796 },
797 CircuitStructure, GradientMethod as QMLGradientMethod, InferenceData, InferenceResult,
798 ModelExportFormat, ModelRegistry, NoiseResilienceLevel,
799 OptimizationResult as QMLOptimizationResult, OptimizerType, QMLAccelerator, QMLConfig,
800 QMLDiagnostics, QMLModel, QMLModelType, TrainingData, TrainingEpoch, TrainingResult,
801 TrainingStatistics,
802 };
803 pub use crate::quantum_ml_integration::{
804 create_high_performance_qml_config, create_qml_integration_hub,
805 AnomalyType as QMLAnomalyType, FrameworkBridge, HybridMLOptimizer, LossFunction,
806 MLFramework, MLPerformanceAnalytics, QMLArchitecture, QMLDataBatch, QMLDataPipeline,
807 QMLDataset, QMLInferenceResult, QMLIntegrationConfig, QMLMonitoringConfig,
808 QMLOptimizationConfig, QMLResourceConfig, QMLResourceRequirements, QMLTrainingConfig,
809 QMLTrainingOrchestrator, QuantumEncodingType, QuantumMLIntegrationHub,
810 QuantumNeuralNetworkExecutor, TrainingPriority,
811 };
812 pub use crate::quantum_system_security::{
813 AuthenticationMethod as SecurityAuthenticationMethod, AuthorizationModel,
814 ComplianceStandard, EncryptionProtocol, PostQuantumAlgorithm, QuantumSecurityConfig,
815 QuantumSecurityExecutionResult, QuantumSecurityExecutionStatus,
816 QuantumSystemSecurityFramework, RegulatoryFramework,
817 SecurityAnalyticsEngine as SecurityAnalyticsEngineType, SecurityClassification,
818 SecurityMLModel, SecurityObjective, SecurityOperation, SecurityOperationType,
819 SecurityStandard, ThreatDetectionAlgorithm,
820 };
821 pub use crate::routing_advanced::{
822 AdvancedQubitRouter, AdvancedRoutingResult, AdvancedRoutingStrategy, RoutingMetrics,
823 SwapOperation,
824 };
825 pub use crate::scirs2_hardware_benchmarks_enhanced::{
826 AnalysisMethod, AnomalyType, BenchmarkConfig as EnhancedBenchmarkConfig2,
827 BenchmarkRecommendation, BenchmarkReport, BenchmarkSuite as EnhancedBenchmarkSuite,
828 BenchmarkSuiteResult, BenchmarkVisualizations, ChartType, ComparativeAnalysis,
829 ComparativeSummary, ComparisonChart, ComparisonDataSet, ComprehensiveBenchmarkResult,
830 ConfidenceInterval, CorrelationMatrix, DataSeries, DegradationEvent, DegradationThreshold,
831 DegradationTimeline, DegradationType, DeviceComparison, DeviceInfo as BenchmarkDeviceInfo,
832 EffortLevel, EnhancedBenchmarkConfig, EnhancedHardwareBenchmark, ExecutiveSummary,
833 ExportFormat as BenchmarkExportFormat, HeatmapVisualization, HistoricalAnomaly,
834 HistoricalComparison, ImpactLevel, IndustryPosition, IndustryTier,
835 MaintenanceRecommendation, MaintenanceType, MetricReport, MetricTrend, PerformanceMetric,
836 PerformancePredictions, PerformanceTrend, PlotType as BenchmarkPlotType,
837 PredictedPerformance, PredictionSummary, Priority as BenchmarkPriority, RadarChart,
838 RadarDataSet, RecommendationCategory as BenchmarkRecommendationCategory,
839 ReportingOptions as BenchmarkReportingOptions, Severity as BenchmarkSeverity,
840 SignificanceTest, StatisticalAnalysis as BenchmarkStatisticalAnalysis, StatisticalSummary,
841 SuiteReport, SuiteStatistics, TrendPlot,
842 };
843 pub use crate::scirs2_noise_characterization_enhanced::{
844 AlertType, AnalysisParameters, CorrelationAnalysis as NoiseCorrelationAnalysis,
845 EnhancedNoiseCharacterizer, EnhancedNoiseConfig, ExportFormat as NoiseExportFormat,
846 HeatmapData, Landscape3D, MLNoiseInsights, ModelAnalysis, NoiseAlert,
847 NoiseCharacterizationConfig, NoiseCharacterizationResult, NoiseClassification, NoiseModel,
848 NoisePredictions, NoiseReport, NoiseSummary, NoiseTrend, NoiseVisualizations, PlotData,
849 PlotMetadata, PlotType, PredictedNoisePoint, Priority as NoisePriority,
850 Recommendation as NoiseRecommendation, RecommendationType,
851 ReportingOptions as NoiseReportingOptions, Severity, SpectralAnalysis, StatisticalMethod,
852 SurfaceType, TemporalAnalysis, Visualization3DParams,
853 };
854 pub use crate::telemetry::{
855 create_high_performance_telemetry_config, create_telemetry_system, Alert, AlertConfig,
856 AlertManager, AlertSeverity, AlertState, AnalyticsConfig as TelemetryAnalyticsConfig,
857 AnomalyDetector, AnomalyResult, AnomalyType as TelemetryAnomalyType, ExportConfig,
858 HealthStatus, Metric, MetricCollector, MetricConfig, MetricType, MonitoringConfig,
859 QuantumTelemetrySystem, RealTimeMonitor, ReportType, RetentionConfig, SystemHealth,
860 SystemStatus, TelemetryAnalytics, TelemetryCommand, TelemetryConfig, TelemetryEvent,
861 TelemetryReport, TelemetryStorage, TrendDirection,
862 };
863 pub use crate::topological::{
864 anyons::{AnyonFactory, AnyonTracker, ChargeAlgebra},
865 braiding::{BraidGroupElement, BraidingMatrixCalculator, BraidingOperationManager},
866 device::{
867 create_fibonacci_device, create_ising_device, EnhancedTopologicalDevice,
868 TopologicalDeviceConfig, TopologicalDeviceDiagnostics,
869 },
870 error_correction::{
871 ErrorCorrectionConfig, RealTimeErrorMonitor, TopologicalErrorCorrector,
872 },
873 fusion::{FSymbolCalculator, FusionOperationExecutor, FusionTree},
874 topological_codes::{
875 ColorCode, ErrorCorrection, SurfaceCode, SyndromeMeasurement, TopologicalCodeType,
876 TopologicalDecoder,
877 },
878 Anyon, BraidingDirection, BraidingOperation, BraidingResult, FusionRuleSet,
879 NonAbelianAnyonType, TopologicalCapabilities, TopologicalCharge, TopologicalDevice,
880 TopologicalError, TopologicalOperation, TopologicalQubit, TopologicalQubitState,
881 TopologicalResult, TopologicalSystemStatus, TopologicalSystemType,
882 };
883 pub use crate::topology_analysis::{
884 create_standard_topology, AllocationStrategy, HardwareMetrics, TopologyAnalysis,
885 TopologyAnalyzer,
886 };
887 pub use crate::translation::{
888 validate_native_circuit, DecomposedGate, GateTranslator, HardwareBackend, NativeGateSet,
889 OptimizationStrategy, TranslationMethod, TranslationOptimizer, TranslationRule,
890 TranslationStats,
891 };
892 pub use crate::unified_benchmarking::{
893 BaselineMetric, BaselineMetricValue, BenchmarkEvent, PerformanceBaseline,
894 QuantumPlatform as UnifiedQuantumPlatform, UnifiedBenchmarkConfig, UnifiedBenchmarkResult,
895 UnifiedQuantumBenchmarkSystem,
896 };
897 pub use crate::unified_error_handling::{
898 ErrorCategory, ErrorSeverity, RecoveryStrategy, UnifiedDeviceError, UnifiedErrorContext,
899 UnifiedErrorHandler, UnifiedRetryConfig,
900 };
901 pub use crate::vqa_support::{
902 analysis::ConvergenceAnalysis,
903 circuits::ParametricCircuit as VQAParametricCircuit,
904 config::{
905 AdaptiveShotConfig, ConvergenceCriterion as VQAConvergenceCriterion, GradientMethod,
906 MultiStartConfig, OptimizationTrajectory, ResourceUtilization, VQAAlgorithmType,
907 VQAConfig, VQAHardwareAnalysis, VQAHardwareConfig, VQANoiseMitigation,
908 VQAOptimizationConfig, VQAOptimizer, VQAStatisticalAnalysis, VQAStatisticalConfig,
909 VQAValidationConfig, VQAValidationResults, WarmRestartConfig,
910 },
911 executor::{VQAExecutor, VQAResult},
912 objectives::ObjectiveFunction,
913 };
914 pub use crate::zero_noise_extrapolation::{
915 CircuitFolder, ExtrapolationFitter, ExtrapolationMethod, NoiseScalingMethod, Observable,
916 ZNECapable, ZNEConfig, ZNEExecutor, ZNEResult,
917 };
918}