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