Skip to main content

quantrs2_core/
lib.rs

1//! # quantrs2-core
2//!
3//! Core types and traits for the QuantRS2 quantum computing framework.
4//!
5//! This crate is part of the [QuantRS2](https://github.com/cool-japan/quantrs) quantum computing
6//! framework. It provides the foundational types and traits used throughout the QuantRS2 ecosystem,
7//! including qubit identifiers, quantum gates, register representations, and error types.
8//!
9//! ## Key Features
10//!
11//! - **Qubit Types**: [`qubit::QubitId`] and register primitives for type-safe circuit construction
12//! - **Gate Library**: Comprehensive quantum gate set — Pauli, Clifford, rotation, and multi-qubit gates
13//! - **Error Handling**: Unified [`error::QuantRS2Error`] type with rich context
14//! - **Platform-Aware Optimization**: Automatic detection of CPU/GPU capabilities for optimal performance
15//! - **SIMD Acceleration**: Vectorized quantum operations via `scirs2_core::simd_ops`
16//! - **GPU Support**: CUDA, OpenCL, and Metal (macOS) backends
17//! - **Adaptive Algorithms**: Runtime selection of optimal implementations based on hardware capabilities
18//!
19//! ## Quick Start
20//!
21//! ```rust
22//! use quantrs2_core::qubit::QubitId;
23//!
24//! // Create qubit identifiers for a 2-qubit register
25//! let q0 = QubitId::new(0);
26//! let q1 = QubitId::new(1);
27//! assert!(q0 < q1);
28//! println!("Qubits: {q0:?} and {q1:?}");
29//! ```
30
31#![allow(clippy::ptr_eq)]
32#![warn(clippy::all)]
33#![allow(dead_code)]
34#![allow(clippy::type_complexity)]
35#![allow(clippy::needless_range_loop)]
36#![allow(clippy::assign_op_pattern)]
37#![allow(clippy::manual_range_contains)]
38#![allow(clippy::should_implement_trait)]
39#![allow(clippy::new_without_default)]
40#![allow(clippy::too_many_arguments)]
41#![allow(clippy::module_inception)]
42#![allow(clippy::clone_on_copy)]
43#![allow(clippy::op_ref)]
44#![allow(clippy::manual_flatten)]
45#![allow(clippy::map_clone)]
46#![allow(clippy::redundant_closure)]
47#![allow(clippy::needless_borrow)]
48#![allow(clippy::default_constructed_unit_structs)]
49#![allow(clippy::useless_vec)]
50#![allow(clippy::identity_op)]
51#![allow(clippy::single_match)]
52#![allow(clippy::vec_init_then_push)]
53#![allow(clippy::legacy_numeric_constants)]
54#![allow(clippy::unnecessary_min_or_max)]
55#![allow(clippy::manual_div_ceil)]
56#![allow(clippy::unwrap_or_default)]
57#![allow(clippy::derivable_impls)]
58#![allow(clippy::match_like_matches_macro)]
59#![allow(clippy::borrowed_box)]
60#![allow(clippy::explicit_auto_deref)]
61#![allow(clippy::await_holding_lock)]
62#![allow(clippy::unused_enumerate_index)]
63#![allow(clippy::large_enum_variant)]
64#![allow(clippy::needless_bool)]
65#![allow(clippy::field_reassign_with_default)]
66#![allow(clippy::upper_case_acronyms)]
67#![allow(clippy::needless_question_mark)]
68// Architectural decisions - these are intentional design patterns
69#![allow(clippy::unnecessary_wraps)] // Result return types for API consistency
70#![allow(clippy::unused_self)] // Trait implementations require &self
71#![allow(clippy::unused_async)]
72// Async placeholders for future implementation
73// Performance-related (not safety issues, can be optimized later)
74#![allow(clippy::significant_drop_tightening)] // Lock scope optimization TODO
75// Style-related (low priority)
76#![allow(clippy::match_same_arms)] // Sometimes intentional for clarity
77#![allow(clippy::option_if_let_else)] // Style preference
78#![allow(clippy::return_self_not_must_use)] // Builder pattern
79#![allow(clippy::needless_range_loop)] // Sometimes clearer with index
80#![allow(clippy::branches_sharing_code)] // Sometimes intentional
81#![allow(clippy::type_complexity)] // Quantum types are complex
82#![allow(clippy::missing_const_for_fn)] // Not always beneficial
83// Additional suppressions for remaining warnings
84#![allow(clippy::format_push_string)] // Performance optimization TODO
85#![allow(clippy::cast_possible_truncation)] // Platform-specific, validated
86#![allow(clippy::future_not_send)] // Async architecture decision
87#![allow(clippy::needless_pass_by_ref_mut)] // API consistency
88#![allow(clippy::cast_precision_loss)] // Acceptable for quantum simulation
89#![allow(clippy::uninlined_format_args)] // Style preference
90#![allow(clippy::assigning_clones)] // Sometimes clearer
91#![allow(clippy::zero_sized_map_values)] // Intentional for set-like maps
92#![allow(clippy::used_underscore_binding)] // Sometimes needed for unused captures
93#![allow(clippy::collection_is_never_read)] // Builder pattern / lazy evaluation
94#![allow(clippy::wildcard_in_or_patterns)] // Sometimes intentional
95#![allow(clippy::ptr_arg)] // API consistency with slices
96#![allow(clippy::implicit_hasher)] // Generic hasher not always needed
97#![allow(clippy::ref_option)] // Sometimes needed for lifetime reasons
98#![allow(clippy::expect_fun_call)] // Clearer error messages
99#![allow(clippy::if_not_else)] // Sometimes clearer
100#![allow(clippy::iter_on_single_items)] // Sometimes intentional
101#![allow(clippy::trivially_copy_pass_by_ref)] // API consistency
102#![allow(clippy::empty_line_after_doc_comments)] // Formatting preference
103#![allow(clippy::manual_let_else)] // Style preference
104// Full clippy category suppressions
105#![allow(clippy::pedantic)]
106#![allow(clippy::nursery)]
107#![allow(clippy::cargo)]
108// Additional specific suppressions
109#![allow(clippy::large_enum_variant)]
110#![allow(clippy::borrowed_box)]
111#![allow(clippy::manual_map)]
112#![allow(clippy::non_send_fields_in_send_ty)]
113#![allow(clippy::if_same_then_else)]
114#![allow(clippy::manual_clamp)]
115#![allow(clippy::double_must_use)]
116#![allow(clippy::only_used_in_recursion)]
117#![allow(clippy::same_item_push)]
118#![allow(clippy::format_in_format_args)]
119#![allow(clippy::implied_bounds_in_impls)]
120#![allow(clippy::explicit_counter_loop)]
121#![allow(clippy::duplicated_attributes)]
122#![allow(clippy::new_ret_no_self)]
123#![allow(clippy::must_use_unit)]
124#![allow(clippy::redundant_pattern_matching)]
125#![allow(clippy::redundant_guards)]
126#![allow(clippy::wrong_self_convention)]
127#![allow(clippy::iter_next_slice)]
128#![allow(clippy::create_dir)]
129#![allow(clippy::enum_variant_names)]
130// Additional specific suppressions (correct lint names)
131#![allow(clippy::should_implement_trait)] // Methods like default(), from_str(), next()
132#![allow(clippy::upper_case_acronyms)] // VQE, QAOA, QFT, CNOT, SGD
133#![allow(clippy::unnecessary_map_or)] // map_or simplification suggestions
134#![allow(clippy::derivable_impls)] // Impl can be derived
135#![allow(clippy::or_fun_call)] // unwrap_or_else with default value
136#![allow(clippy::cloned_ref_to_slice_refs)] // clone can be replaced with from_ref
137#![allow(clippy::collapsible_match)]
138#![allow(clippy::len_without_is_empty)]
139#![allow(clippy::arc_with_non_send_sync)]
140#![allow(clippy::std_instead_of_core)] // Allow std usage
141#![allow(clippy::match_like_matches_macro)] // Sometimes match is clearer
142#![allow(clippy::suspicious_open_options)] // File open options
143#![allow(clippy::new_without_default)] // new() without Default impl
144
145pub mod adapt_vqe;
146pub mod adaptive_precision;
147pub mod adiabatic;
148pub mod advanced_error_mitigation;
149pub mod batch;
150pub mod benchmarking_integration;
151pub mod bosonic;
152pub mod buffer_pool;
153pub mod cartan;
154pub mod characterization;
155pub mod circuit_synthesis;
156pub mod cloud_platforms;
157pub mod compilation_cache;
158pub mod complex_ext;
159pub mod controlled;
160pub mod decomposition;
161pub mod distributed_quantum_networks;
162pub mod eigensolve;
163pub mod equivalence_checker;
164pub mod error;
165pub mod error_correction;
166pub mod fermionic;
167pub mod gate;
168pub mod gate_translation;
169pub mod gpu;
170mod gpu_stubs;
171pub mod hardware_compilation;
172pub mod hhl;
173pub mod holonomic;
174pub mod hybrid_learning;
175#[cfg(feature = "python")]
176pub mod jupyter_visualization;
177pub mod kak_multiqubit;
178pub mod linalg_stubs;
179pub mod matrix_ops;
180pub mod mbqc;
181pub mod memory_efficient;
182pub mod ml_error_mitigation;
183pub mod networking;
184pub mod neutral_atom;
185pub mod noise_characterization;
186pub mod operations;
187pub mod optimization;
188pub mod optimization_stubs;
189pub mod optimizations;
190pub mod optimizations_stable;
191pub mod parallel_ops_stubs;
192pub mod parametric;
193pub mod photonic;
194pub mod platform;
195pub mod post_quantum_crypto;
196pub mod profiling_advanced;
197pub mod pulse;
198#[cfg(feature = "python")]
199pub mod python_bindings;
200pub mod qaoa;
201pub mod qml;
202pub mod qpca;
203pub mod quantum_algorithm_profiling;
204pub mod quantum_amplitude_estimation;
205pub mod quantum_autodiff;
206pub mod quantum_aware_interpreter;
207pub mod quantum_benchmarking;
208pub mod quantum_cellular_automata;
209pub mod quantum_channels;
210pub mod quantum_classical_hybrid;
211#[cfg(feature = "python")]
212pub mod quantum_complexity_analysis;
213pub mod quantum_counting;
214pub mod quantum_debugger;
215pub mod quantum_debugging_profiling;
216pub mod quantum_game_theory;
217pub mod quantum_garbage_collection;
218pub mod quantum_hardware_abstraction;
219pub mod quantum_internet;
220pub mod quantum_language_compiler;
221pub mod scirs2_equivalence_checker;
222// pub mod quantum_internet_enhancements;  // Temporarily disabled due to compilation issues
223pub mod quantum_memory_hierarchy;
224pub mod quantum_memory_integration;
225pub mod quantum_ml_accelerators;
226pub mod quantum_operating_system;
227pub mod quantum_process_isolation;
228pub mod quantum_resource_management;
229pub mod quantum_sensor_networks;
230pub mod quantum_supremacy_algorithms;
231pub mod quantum_universal_framework;
232pub mod quantum_volume_tomography;
233pub mod quantum_walk;
234pub mod qubit;
235pub mod real_time_compilation;
236pub mod realtime_monitoring;
237pub mod register;
238pub mod resource_estimator;
239pub mod rl_circuit_optimization;
240pub mod scirs2_auto_optimizer;
241pub mod scirs2_circuit_verifier;
242pub mod scirs2_circuit_verifier_enhanced;
243pub mod scirs2_quantum_formatter;
244pub mod scirs2_quantum_formatter_enhanced;
245pub mod scirs2_quantum_linter;
246pub mod scirs2_quantum_linter_enhanced;
247pub mod scirs2_quantum_profiler;
248pub mod scirs2_quantum_profiler_enhanced;
249pub mod scirs2_resource_estimator_enhanced;
250pub mod shannon;
251pub mod silicon_quantum_dots;
252pub mod simd_enhanced;
253pub mod simd_ops;
254pub mod simd_ops_stubs;
255pub mod state_visualization_3d;
256pub mod symbolic;
257pub mod symbolic_hamiltonian;
258pub mod symbolic_optimization;
259pub mod synthesis;
260pub mod tensor_network;
261pub mod testing;
262pub mod topological;
263pub mod trapped_ion;
264pub mod ultra_high_fidelity_synthesis;
265pub mod ultrathink_core;
266pub mod variational;
267pub mod variational_optimization;
268pub mod zx_calculus;
269pub mod zx_extraction;
270
271/// New organized API for QuantRS2 1.0
272///
273/// This module provides a hierarchical organization of the core API
274/// with clear naming conventions and logical grouping.
275pub mod api;
276
277/// Re-exports of commonly used types and traits
278///
279/// For new code, consider using the organized API modules in `api::prelude` instead.
280/// This module is maintained for backward compatibility.
281pub mod prelude {
282    // Import specific items from each module to avoid ambiguous glob re-exports
283    pub use crate::adiabatic::{
284        AdiabaticQuantumComputer, AnnealingSchedule, IsingProblem, ProblemGenerator, ProblemType,
285        QUBOProblem, QuantumAnnealer, QuantumAnnealingSnapshot,
286    };
287    pub use crate::batch::execution::{
288        create_optimized_executor, BatchCircuit, BatchCircuitExecutor,
289    };
290    pub use crate::batch::measurement::{
291        measure_batch, measure_batch_with_statistics, measure_expectation_batch,
292        measure_tomography_batch, BatchMeasurementStatistics, BatchTomographyResult,
293        MeasurementConfig, TomographyBasis,
294    };
295    pub use crate::batch::operations::{
296        apply_gate_sequence_batch, apply_single_qubit_gate_batch, apply_two_qubit_gate_batch,
297        compute_expectation_values_batch,
298    };
299    pub use crate::batch::optimization::{
300        BatchParameterOptimizer, BatchQAOA, BatchVQE,
301        OptimizationConfig as BatchOptimizationConfig, QAOAResult, VQEResult,
302    };
303    pub use crate::batch::{
304        create_batch, merge_batches, split_batch, BatchConfig, BatchExecutionResult, BatchGateOp,
305        BatchMeasurementResult, BatchStateVector,
306    };
307    pub use crate::benchmarking_integration::{
308        ComprehensiveBenchmarkReport, ComprehensiveBenchmarkSuite, MitigationStrategy,
309        NoiseAnalysis, QAOABenchmarkResults,
310    };
311    pub use crate::bosonic::{
312        boson_to_qubit_encoding, BosonHamiltonian, BosonOperator, BosonOperatorType, BosonTerm,
313        GaussianState,
314    };
315    pub use crate::cartan::{
316        cartan_decompose, CartanCoefficients, CartanDecomposer, CartanDecomposition,
317        OptimizedCartanDecomposer,
318    };
319    pub use crate::characterization::{GateCharacterizer, GateEigenstructure, GateType};
320    pub use crate::compilation_cache::{
321        get_compilation_cache, initialize_compilation_cache, CacheConfig, CacheStatistics,
322        CompilationCache, CompiledGate,
323    };
324    pub use crate::complex_ext::{quantum_states, QuantumComplexExt};
325    pub use crate::controlled::{
326        make_controlled, make_multi_controlled, ControlledGate, FredkinGate, MultiControlledGate,
327        ToffoliGate,
328    };
329    pub use crate::decomposition::clifford_t::{
330        count_t_gates_in_sequence, optimize_gate_sequence as optimize_clifford_t_sequence,
331        CliffordGate, CliffordTDecomposer, CliffordTGate, CliffordTSequence,
332    };
333    pub use crate::decomposition::decompose_u_gate;
334    pub use crate::decomposition::solovay_kitaev::{
335        count_t_gates, BaseGateSet, SolovayKitaev, SolovayKitaevConfig,
336    };
337    pub use crate::decomposition::utils::{
338        clone_gate, decompose_circuit, optimize_gate_sequence, GateSequence,
339    };
340    pub use crate::distributed_quantum_networks::{
341        DistributedGateType, DistributedQuantumGate, EntanglementManager, EntanglementProtocol,
342        NetworkScheduler, QuantumNetwork, QuantumNode,
343    };
344    pub use crate::error::*;
345    pub use crate::error_correction::{
346        ColorCode, LookupDecoder, MWPMDecoder, Pauli, PauliString, StabilizerCode, SurfaceCode,
347        SyndromeDecoder,
348    };
349    pub use crate::fermionic::{
350        qubit_operator_to_gates, BravyiKitaev, FermionHamiltonian, FermionOperator,
351        FermionOperatorType, FermionTerm, JordanWigner, PauliOperator, QubitOperator, QubitTerm,
352    };
353    pub use crate::gate::*;
354    pub use crate::gpu::{
355        cpu_backend::CpuBackend, initialize_adaptive_simd, GpuBackend, GpuBackendFactory,
356        GpuBuffer, GpuConfig, GpuKernel, GpuStateVector, OptimizationConfig, SpecializedGpuKernels,
357    };
358    pub use crate::hhl::{hhl_example, HHLAlgorithm, HHLParams};
359    pub use crate::holonomic::{
360        // GeometricErrorCorrection, HolonomicGate, HolonomicGateSynthesis, HolonomicPath,
361        // HolonomicQuantumComputer, PathOptimizationConfig,
362        WilsonLoop,
363    };
364    pub use crate::kak_multiqubit::{
365        kak_decompose_multiqubit, DecompositionMethod, DecompositionStats, DecompositionTree,
366        KAKTreeAnalyzer, MultiQubitKAK, MultiQubitKAKDecomposer,
367    };
368    pub use crate::matrix_ops::{
369        matrices_approx_equal, partial_trace, tensor_product_many, DenseMatrix, QuantumMatrix,
370        SparseMatrix,
371    };
372    pub use crate::mbqc::{
373        CircuitToMBQC, ClusterState, Graph as MBQCGraph, MBQCComputation, MeasurementBasis,
374        MeasurementPattern,
375    };
376    pub use crate::memory_efficient::{EfficientStateVector, StateMemoryStats};
377    pub use crate::neutral_atom::{
378        AtomSpecies, AtomState, LaserSystem, NeutralAtom, NeutralAtomErrorModel, NeutralAtomGates,
379        NeutralAtomQC, OpticalTweezer, Position3D,
380    };
381    pub use crate::noise_characterization::{
382        CrossEntropyBenchmarking, CrossEntropyResult, DDPulse, DynamicalDecoupling,
383        ExtrapolationMethod, NoiseModel as CharacterizationNoiseModel,
384        ProbabilisticErrorCancellation, RandomizedBenchmarking, RandomizedBenchmarkingResult,
385        ZeroNoiseExtrapolation,
386    };
387    pub use crate::operations::{
388        apply_and_sample, sample_outcome, MeasurementOutcome, OperationResult, POVMMeasurement,
389        ProjectiveMeasurement, QuantumOperation, Reset,
390    };
391    pub use crate::optimization::compression::{
392        CompressedGate, CompressionConfig, CompressionStats, CompressionType, GateMetadata,
393        GateSequenceCompressor,
394    };
395    pub use crate::optimization::fusion::{CliffordFusion, GateFusion};
396    pub use crate::optimization::lazy_evaluation::{
397        LazyEvaluationConfig, LazyEvaluationStats, LazyGateContext, LazyOptimizationPipeline,
398        OptimizationResult as LazyOptimizationResult, OptimizationStats,
399    };
400    pub use crate::optimization::peephole::{PeepholeOptimizer, TCountOptimizer};
401    pub use crate::optimization::zx_optimizer::ZXOptimizationPass;
402    pub use crate::optimization::{
403        gates_are_disjoint, gates_can_commute, OptimizationChain, OptimizationPass,
404    };
405    pub use crate::parametric::{Parameter, ParametricGate, SymbolicParameter};
406    pub use crate::photonic::{
407        OpticalMode, PhotonicCircuit, PhotonicEncoding, PhotonicErrorCorrection, PhotonicGate,
408        PhotonicGateType, PhotonicSystem,
409    };
410    pub use crate::post_quantum_crypto::{
411        CompressionFunction, QKDProtocol, QKDResult, QuantumDigitalSignature, QuantumHashFunction,
412        QuantumKeyDistribution, QuantumSignature,
413    };
414    pub use crate::pulse::{
415        CouplingParams, HardwareCalibration, Pulse, PulseCompiler, PulseEnvelope, PulseNoiseModel,
416        PulseSequence, QubitControlParams, TimingConstraints,
417    };
418    pub use crate::qaoa::{
419        CostHamiltonian, MixerHamiltonian, QAOACircuit, QAOAOptimizer, QAOAParams,
420    };
421    pub use crate::qml::encoding::{DataEncoder, DataReuploader, FeatureMap, FeatureMapType};
422    pub use crate::qml::generative_adversarial::{
423        NoiseType, QGANConfig, QGANIterationMetrics, QGANTrainingStats, QuantumDiscriminator,
424        QuantumGenerator, QGAN,
425    };
426    pub use crate::qml::layers::{
427        EntanglingLayer, HardwareEfficientLayer, PoolingStrategy, QuantumPoolingLayer,
428        RotationLayer, StronglyEntanglingLayer,
429    };
430    pub use crate::qml::reinforcement_learning::{
431        Experience, QLearningStats, QuantumActorCritic, QuantumDQN, QuantumPolicyNetwork,
432        QuantumRLConfig, QuantumValueNetwork, ReplayBuffer, TrainingMetrics as RLTrainingMetrics,
433    };
434    pub use crate::qml::training::{
435        HPOStrategy, HyperparameterOptimizer, LossFunction, Optimizer, QMLTrainer, TrainingConfig,
436        TrainingMetrics,
437    };
438    pub use crate::qml::{
439        create_entangling_gates, natural_gradient, quantum_fisher_information, EncodingStrategy,
440        EntanglementPattern, QMLCircuit, QMLConfig, QMLLayer,
441    };
442    pub use crate::qpca::{DensityMatrixPCA, QPCAParams, QuantumPCA};
443    pub use crate::quantum_algorithm_profiling::{
444        AlgorithmType, ComplexityClass, ProfilingLevel, QuantumAdvantageCalculator,
445        QuantumAlgorithmProfiler, QuantumBenchmarkResult, QuantumBottleneckDetector,
446        QuantumComplexityAnalyzer, QuantumOptimizationAdvisor, QuantumPerformanceAnalyzer,
447        QuantumProfilingAdvantageReport, QuantumProfilingReport, QuantumResourceMonitor,
448    };
449    pub use crate::quantum_aware_interpreter::{
450        ExecutionStrategy, OperationResult as InterpreterOperationResult, QuantumAwareInterpreter,
451        QuantumJITCompiler, QuantumStateTracker, RuntimeOptimizationEngine,
452    };
453    pub use crate::quantum_benchmarking::{
454        BenchmarkConfig, BenchmarkResult, ComparativeBenchmark, DDEffectivenessResult,
455        QAOABenchmarkResult, QuantumBenchmarkSuite, QuantumVolumeBenchmarkResult, ResourceUsage,
456    };
457    pub use crate::quantum_cellular_automata::{
458        BoundaryCondition, QCARule, QCAType, QuantumCellularAutomaton1D,
459        QuantumCellularAutomaton2D, UnitaryRule,
460    };
461    pub use crate::quantum_channels::{
462        ChoiRepresentation, KrausRepresentation, ProcessTomography, QuantumChannel,
463        QuantumChannels, StinespringRepresentation,
464    };
465    pub use crate::quantum_counting::{
466        amplitude_estimation_example, quantum_counting_example, QuantumAmplitudeEstimation,
467        QuantumCounting, QuantumPhaseEstimation,
468    };
469    pub use crate::quantum_debugging_profiling::{
470        CircuitAnalysisReport, ProfilingReport, QuantumCircuitAnalyzer, QuantumDebugProfiling,
471        QuantumDebugProfilingReport, QuantumDebugger, QuantumErrorTracker,
472        QuantumPerformanceProfiler, QuantumStateInspector, StateInspectionReport,
473    };
474    pub use crate::quantum_game_theory::{
475        GameOutcome, GameType, QuantumGame, QuantumMechanism, QuantumPlayer, QuantumStrategy,
476    };
477    pub use crate::quantum_garbage_collection::{
478        CoherenceBasedGC, GCCollectionMode, GCCollectionResult, QuantumAllocationRequest,
479        QuantumAllocationResult, QuantumGCAdvantageReport, QuantumGarbageCollector,
480        QuantumLifecycleManager, QuantumReferenceCounter,
481    };
482    pub use crate::quantum_hardware_abstraction::{
483        AdaptiveMiddleware, CalibrationEngine, ErrorMitigationLayer, ExecutionRequirements,
484        HardwareCapabilities, HardwareResourceManager, HardwareType, QuantumHardwareAbstraction,
485        QuantumHardwareBackend,
486    };
487    pub use crate::quantum_internet::{
488        DistributedQuantumComputing, GlobalQuantumKeyDistribution, QuantumInternet,
489        QuantumInternetAdvantageReport, QuantumInternetNode, QuantumInternetSecurity,
490        QuantumNetworkInfrastructure, QuantumRouting,
491    };
492    pub use crate::quantum_memory_hierarchy::{
493        CacheReplacementPolicy, L1QuantumCache, L2QuantumCache, L3QuantumCache,
494        MemoryOperationType, OptimizationResult as MemoryOptimizationResult, QuantumMainMemory,
495        QuantumMemoryAdvantageReport, QuantumMemoryHierarchy, QuantumMemoryOperation,
496        QuantumMemoryResult,
497    };
498    pub use crate::quantum_memory_integration::{
499        CoherenceManager, MemoryAccessController, QuantumMemory, QuantumMemoryErrorCorrection,
500        QuantumState, QuantumStorageLayer,
501    };
502    pub use crate::quantum_ml_accelerators::{
503        HardwareEfficientMLLayer, ParameterShiftOptimizer, QuantumFeatureMap,
504        QuantumKernelOptimizer, QuantumNaturalGradient, TensorNetworkMLAccelerator,
505    };
506    pub use crate::quantum_operating_system::{
507        QuantumMemoryManager, QuantumOSAdvantageReport, QuantumOperatingSystem,
508        QuantumProcessManager, QuantumScheduler, QuantumSecurityManager,
509    };
510    pub use crate::quantum_process_isolation::{
511        IsolatedProcessResult, IsolatedQuantumProcess, IsolationLevel, QuantumAccessController,
512        QuantumProcessIsolation, QuantumSandbox, QuantumSecurityAdvantageReport,
513        QuantumStateIsolator, SecureQuantumOperation, SecurityDomain, VirtualQuantumMachine,
514    };
515    pub use crate::quantum_resource_management::{
516        AdvancedQuantumScheduler, AdvancedSchedulingResult, CoherenceAwareManager,
517        OptimizationLevel, QuantumProcess, QuantumResourceAdvantageReport,
518        QuantumResourceAllocator, QuantumResourceManager, QuantumWorkloadOptimizer,
519        SchedulingPolicy,
520    };
521    pub use crate::quantum_sensor_networks::{
522        DistributedSensingResult, EntanglementDistribution, EnvironmentalMonitoringResult,
523        QuantumMetrologyEngine, QuantumSensor, QuantumSensorAdvantageReport, QuantumSensorNetwork,
524        QuantumSensorType,
525    };
526    pub use crate::quantum_supremacy_algorithms::{
527        BosonSampling, BosonSamplingSupremacyResult, IQPSampling, QuantumSimulationAdvantageResult,
528        QuantumSupremacyBenchmarkReport, QuantumSupremacyEngine, RandomCircuitSampling,
529        RandomCircuitSupremacyResult,
530    };
531    pub use crate::quantum_universal_framework::{
532        AdaptiveExecutionResult, AdaptiveQuantumRuntime, ArchitectureType, CrossPlatformOptimizer,
533        QuantumHardwareRegistry, QuantumPortabilityEngine, UniversalCompilationResult,
534        UniversalFrameworkAdvantageReport, UniversalQuantumCircuit, UniversalQuantumCompiler,
535        UniversalQuantumFramework,
536    };
537    pub use crate::quantum_volume_tomography::{
538        GateSetModel, GateSetTomography, ProcessMatrix, QuantumProcessTomography, QuantumVolume,
539        QuantumVolumeResult,
540    };
541    pub use crate::quantum_walk::{
542        CoinOperator, ContinuousQuantumWalk, DecoherentQuantumWalk, DiscreteQuantumWalk, Graph,
543        GraphType, MultiWalkerQuantumWalk, QuantumWalkSearch, SearchOracle, SzegedyQuantumWalk,
544    };
545    pub use crate::qubit::*;
546    pub use crate::real_time_compilation::{
547        CompilationContext, HardwareTarget, OptimizationPipeline, PerformanceMonitor,
548        RealTimeQuantumCompiler,
549    };
550    pub use crate::register::*;
551    pub use crate::scirs2_auto_optimizer::{
552        AutoOptimizer, AutoOptimizerConfig, BackendConfiguration, BackendSelection, BackendType,
553        CommunicationBackend, ComplexityClass as AutoOptimizerComplexityClass, ComplexityEstimate,
554        DistributedConfiguration, EntanglementAnalysis, FloatPrecision, GPUConfiguration,
555        GPUMemoryStrategy, GateComposition, LoadBalancingStrategy, MemoryPattern, MemoryStrategy,
556        OptimizationRecommendation as AutoOptimizerOptimizationRecommendation,
557        ParallelizationPotential, PerformanceMetrics as AutoOptimizerPerformanceMetrics,
558        PerformanceProfile, PrecisionSettings, ProblemAnalysis, ProblemSizeLimits,
559        ProblemType as AutoOptimizerProblemType,
560        RecommendationType as AutoOptimizerRecommendationType, ResourceCost, ResourceMonitor,
561        ResourceRequirements as AutoOptimizerResourceRequirements, ResourceUtilization,
562    };
563    pub use crate::scirs2_circuit_verifier::{
564        AlgorithmSpecification, AlgorithmVerificationResult, CircuitVerificationResult,
565        EquivalenceType, EquivalenceVerificationResult, NumericalStabilityAnalysis,
566        SciRS2CircuitVerifier, SciRS2VerificationEnhancements, VerificationConfig,
567        VerificationVerdict,
568    };
569    pub use crate::scirs2_circuit_verifier_enhanced::{
570        CertificateFormat, CircuitProperty, ConfidenceStatistics, Counterexample,
571        EnhancedCircuitVerifier, EnhancedVerificationConfig, FormalProof, FormalVerificationResult,
572        ProofStep, ProofStepType, ProofType, QCTLSpecification, QHLSpecification,
573        QLTLSpecification, SpecificationLanguage, VerificationReport, VerificationSummary,
574        VerificationTechnique, ZXSpecification,
575    };
576    pub use crate::scirs2_quantum_formatter::{
577        AnnotationLocation, AnnotationType, CodeAnnotation, CommentStyle, FormattedCode,
578        FormattingConfig, FormattingStatistics, FormattingStyle, IndentationStyle, OutputFormat,
579        ProgrammingLanguage, SciRS2QuantumFormatter,
580    };
581    pub use crate::scirs2_quantum_formatter_enhanced::{
582        AlgorithmPhase, BeautificationSuggestions, ChangeType, CircuitChange, ColorScheme,
583        CustomFormattingRule, EnhancedFormattedCode, EnhancedFormattingConfig,
584        EnhancedQuantumFormatter, FormattingOptions, FormattingSuggestion, HardwareFormattingInfo,
585        IncrementalUpdate, InteractiveSuggestion, PlatformOptimization, QuantumBackend,
586        QuantumPattern, SemanticInfo, SuggestionLocation, SuggestionType, SyntaxMetadata,
587        SyntaxScope, SyntaxToken, TemplatedCode, TokenType, UpdatedSection, VisualFormat,
588    };
589    pub use crate::scirs2_quantum_linter::{
590        AutomaticFix, LintFinding, LintFindingType, LintSeverity, LintingConfig, LintingReport,
591        OptimizationSuggestion, SciRS2Enhancement, SciRS2QuantumLinter,
592    };
593    pub use crate::scirs2_quantum_linter_enhanced::{
594        ChangeOperation, CircuitLocation, CircuitMetadata, CodeChange, Compatibility,
595        CustomLintRule, EnhancedLintFinding, EnhancedLintingConfig, EnhancedLintingReport,
596        EnhancedQuantumLinter, FixSuggestion, GatePatternMatcher, HardwareArchitecture,
597        ImpactAnalysis, LintPattern, LintingSummary, PerformanceImpact, QualityMetrics,
598        ReportFormat, ResourceImpact, ResourceMatcher, RiskLevel, StructuralMatcher,
599    };
600    pub use crate::scirs2_quantum_profiler::{
601        CircuitProfilingResult, GateProfilingResult, MemoryAnalysis, OptimizationRecommendation,
602        ProfilingPrecision, ProfilingSessionReport, SciRS2EnhancementSummary,
603        SciRS2ProfilingConfig, SciRS2QuantumProfiler, SimdAnalysis,
604    };
605    pub use crate::scirs2_quantum_profiler_enhanced::{
606        AnomalyEvent, AnomalySeverity, Bottleneck, BottleneckAnalysis, BottleneckType, Difficulty,
607        EnhancedGateProfilingResult, EnhancedOptimizationRecommendation, EnhancedProfilingConfig,
608        EnhancedProfilingReport, EnhancedQuantumProfiler, ExportFormat, HardwareCharacteristics,
609        HardwareOptimizationStrategy, HardwarePerformanceModel, MetricStatistics, MetricType,
610        OpportunityType, OptimizationOpportunity, PerformanceMetrics, PerformancePredictions,
611        PredictedPerformance, Priority, ProfilingSummary, RecommendationType, ScalingAnalysis,
612        ScalingModel, ScalingType,
613    };
614    pub use crate::scirs2_resource_estimator_enhanced::{
615        AnalysisDepth, BasicResourceAnalysis, CircuitTopology, CloudPlatform, ComparativeAnalysis,
616        ComplexityMetrics, ConstraintPriority, ConstraintType, CostAnalysisResult, CostBreakdown,
617        CostOptimization, Effort, EnhancedResourceConfig, EnhancedResourceEstimate,
618        EnhancedResourceEstimator, ErrorBudget, EstimationOptions, GatePattern, GateStatistics,
619        HardwareRecommendation, Impact, MLPredictions, MemoryRequirements, MonitoringReport,
620        OptimizationLevel as ResourceOptimizationLevel, OptimizationObjective,
621        OptimizationStrategy, PlatformCost, Priority as ResourcePriority, ReadinessLevel,
622        Recommendation, RecommendationCategory, ResourceAnomaly, ResourceConstraint,
623        ResourceImprovement, ResourceRequirements, ResourceScores, RiskAssessment,
624        ScalingPredictions, TopologyType,
625    };
626    pub use crate::shannon::{shannon_decompose, OptimizedShannonDecomposer, ShannonDecomposer};
627    pub use crate::silicon_quantum_dots::{
628        DeviceParams, QuantumDotParams, QuantumDotType, SiliconQuantumDot, SiliconQuantumDotGates,
629        SiliconQuantumDotSystem,
630    };
631    pub use crate::simd_ops::{
632        apply_phase_simd, controlled_phase_simd, expectation_z_simd, inner_product, normalize_simd,
633    };
634    #[cfg(feature = "symbolic")]
635    pub use crate::symbolic::calculus::{diff, expand, integrate, limit, simplify};
636    pub use crate::symbolic::{matrix::SymbolicMatrix, SymbolicExpression};
637    pub use crate::symbolic_hamiltonian::{
638        hamiltonians::{
639            heisenberg, maxcut, molecular_h2, number_partitioning, transverse_field_ising,
640        },
641        PauliOperator as SymbolicPauliOperator, PauliString as SymbolicPauliString,
642        SymbolicHamiltonian, SymbolicHamiltonianTerm,
643    };
644    pub use crate::symbolic_optimization::{
645        circuit_optimization::{extract_circuit_parameters, optimize_parametric_circuit},
646        HamiltonianExpectation, OptimizationResult, QAOACostFunction, SymbolicObjective,
647        SymbolicOptimizationConfig, SymbolicOptimizer,
648    };
649    pub use crate::synthesis::{
650        decompose_single_qubit_xyx, decompose_single_qubit_zyz, decompose_two_qubit_kak,
651        identify_gate, synthesize_unitary, KAKDecomposition, SingleQubitDecomposition,
652    };
653    pub use crate::tensor_network::{
654        contraction_optimization::DynamicProgrammingOptimizer, Tensor, TensorEdge, TensorNetwork,
655        TensorNetworkBuilder, TensorNetworkSimulator,
656    };
657    pub use crate::testing::{
658        QuantumAssert, QuantumTest, QuantumTestSuite, TestResult, TestSuiteResult,
659        DEFAULT_TOLERANCE,
660    };
661    pub use crate::topological::{
662        AnyonModel, AnyonType, AnyonWorldline, BraidingOperation, FibonacciModel, FusionTree,
663        IsingModel, TopologicalGate, TopologicalQC, ToricCode,
664    };
665    pub use crate::trapped_ion::{
666        IonLevel, IonSpecies, LaserPulse, MotionalMode, MotionalModeType, TrappedIon,
667        TrappedIonGates, TrappedIonSystem,
668    };
669    pub use crate::ultra_high_fidelity_synthesis::{
670        ErrorSuppressedSequence, ErrorSuppressionSynthesis, GateOperation, GrapeOptimizer,
671        GrapeResult, NoiseModel, QuantumGateRL, RLResult, SynthesisConfig, SynthesisMethod,
672        UltraFidelityResult, UltraHighFidelitySynthesis,
673    };
674    pub use crate::ultrathink_core::{
675        DistributedQuantumNetwork, HolonomicProcessor, QuantumAdvantageReport,
676        QuantumMLAccelerator, QuantumMemoryCore, RealTimeCompiler, UltraThinkQuantumComputer,
677    };
678    pub use crate::variational::{
679        ComputationGraph, DiffMode, Dual, Node, Operation, VariationalCircuit, VariationalGate,
680        VariationalOptimizer,
681    };
682    pub use crate::variational_optimization::{
683        create_natural_gradient_optimizer, create_qaoa_optimizer, create_spsa_optimizer,
684        create_vqe_optimizer, ConstrainedVariationalOptimizer,
685        HyperparameterOptimizer as VariationalHyperparameterOptimizer,
686        OptimizationConfig as VariationalOptimizationConfig, OptimizationHistory,
687        OptimizationMethod, OptimizationResult as VariationalOptimizationResult,
688        VariationalQuantumOptimizer,
689    };
690    pub use crate::zx_calculus::{
691        CircuitToZX, Edge, EdgeType, Spider, SpiderType, ZXDiagram, ZXOptimizer,
692    };
693    pub use crate::zx_extraction::{ZXExtractor, ZXPipeline};
694
695    #[cfg(feature = "python")]
696    pub use crate::python_bindings::{
697        PyCartanDecomposition, PyNumRS2Array, PyQuantumGate, PyQuantumInternet,
698        PyQuantumSensorNetwork, PyQubitId, PySingleQubitDecomposition, PyVariationalCircuit,
699    };
700
701    #[cfg(feature = "python")]
702    pub use crate::jupyter_visualization::{
703        PyQuantumCircuitVisualizer, PyQuantumPerformanceMonitor, PyQuantumStateVisualizer,
704    };
705
706    #[cfg(feature = "python")]
707    pub use crate::quantum_complexity_analysis::PyQuantumComplexityAnalyzer;
708
709    #[cfg(feature = "python")]
710    pub use crate::python_bindings::{
711        PyAggregatedStats, PyAlert, PyMetricMeasurement, PyMonitoringConfig, PyMonitoringStatus,
712        PyOptimizationRecommendation, PyRealtimeMonitor,
713    };
714}
715
716// For backward compatibility, also re-export the prelude at the top level
717#[deprecated(since = "1.0.0", note = "Use api::prelude modules for new code")]
718pub use prelude::*;
719
720/// Convenient access to the new organized API
721///
722/// # Examples
723///
724/// ```rust
725/// // For basic quantum programming
726/// use quantrs2_core::v1::essentials::*;
727///
728/// // For algorithm development
729/// use quantrs2_core::v1::algorithms::*;
730///
731/// // For hardware programming
732/// use quantrs2_core::v1::hardware::*;
733/// ```
734pub mod v1 {
735    pub use crate::api::prelude::*;
736}