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