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