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