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