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 adaptive_precision;
146pub mod adiabatic;
147pub mod advanced_error_mitigation;
148pub mod batch;
149pub mod benchmarking_integration;
150pub mod bosonic;
151pub mod buffer_pool;
152pub mod cartan;
153pub mod characterization;
154pub mod circuit_synthesis;
155pub mod cloud_platforms;
156pub mod compilation_cache;
157pub mod complex_ext;
158pub mod controlled;
159pub mod decomposition;
160pub mod distributed_quantum_networks;
161pub mod eigensolve;
162pub mod equivalence_checker;
163pub mod error;
164pub mod error_correction;
165pub mod fermionic;
166pub mod gate;
167pub mod gate_translation;
168pub mod gpu;
169mod gpu_stubs;
170pub mod hardware_compilation;
171pub mod hhl;
172pub mod holonomic;
173pub mod hybrid_learning;
174#[cfg(feature = "python")]
175pub mod jupyter_visualization;
176pub mod kak_multiqubit;
177pub mod linalg_stubs;
178pub mod matrix_ops;
179pub mod mbqc;
180pub mod memory_efficient;
181pub mod ml_error_mitigation;
182pub mod networking;
183pub mod neutral_atom;
184pub mod noise_characterization;
185pub mod operations;
186pub mod optimization;
187pub mod optimization_stubs;
188pub mod optimizations;
189pub mod optimizations_stable;
190pub mod parallel_ops_stubs;
191pub mod parametric;
192pub mod photonic;
193pub mod platform;
194pub mod post_quantum_crypto;
195pub mod profiling_advanced;
196pub mod pulse;
197#[cfg(feature = "python")]
198pub mod python_bindings;
199pub mod qaoa;
200pub mod qml;
201pub mod qpca;
202pub mod quantum_algorithm_profiling;
203pub mod quantum_amplitude_estimation;
204pub mod quantum_autodiff;
205pub mod quantum_aware_interpreter;
206pub mod quantum_benchmarking;
207pub mod quantum_cellular_automata;
208pub mod quantum_channels;
209pub mod quantum_classical_hybrid;
210#[cfg(feature = "python")]
211pub mod quantum_complexity_analysis;
212pub mod quantum_counting;
213pub mod quantum_debugger;
214pub mod quantum_debugging_profiling;
215pub mod quantum_game_theory;
216pub mod quantum_garbage_collection;
217pub mod quantum_hardware_abstraction;
218pub mod quantum_internet;
219pub mod quantum_language_compiler;
220pub mod scirs2_equivalence_checker;
221// pub mod quantum_internet_enhancements;  // Temporarily disabled due to compilation issues
222pub mod quantum_memory_hierarchy;
223pub mod quantum_memory_integration;
224pub mod quantum_ml_accelerators;
225pub mod quantum_operating_system;
226pub mod quantum_process_isolation;
227pub mod quantum_resource_management;
228pub mod quantum_sensor_networks;
229pub mod quantum_supremacy_algorithms;
230pub mod quantum_universal_framework;
231pub mod quantum_volume_tomography;
232pub mod quantum_walk;
233pub mod qubit;
234pub mod real_time_compilation;
235pub mod realtime_monitoring;
236pub mod register;
237pub mod resource_estimator;
238pub mod rl_circuit_optimization;
239pub mod scirs2_auto_optimizer;
240pub mod scirs2_circuit_verifier;
241pub mod scirs2_circuit_verifier_enhanced;
242pub mod scirs2_quantum_formatter;
243pub mod scirs2_quantum_formatter_enhanced;
244pub mod scirs2_quantum_linter;
245pub mod scirs2_quantum_linter_enhanced;
246pub mod scirs2_quantum_profiler;
247pub mod scirs2_quantum_profiler_enhanced;
248pub mod scirs2_resource_estimator_enhanced;
249pub mod shannon;
250pub mod silicon_quantum_dots;
251pub mod simd_enhanced;
252pub mod simd_ops;
253pub mod simd_ops_stubs;
254pub mod state_visualization_3d;
255pub mod symbolic;
256pub mod symbolic_hamiltonian;
257pub mod symbolic_optimization;
258pub mod synthesis;
259pub mod tensor_network;
260pub mod testing;
261pub mod topological;
262pub mod trapped_ion;
263pub mod ultra_high_fidelity_synthesis;
264pub mod ultrathink_core;
265pub mod variational;
266pub mod variational_optimization;
267pub mod zx_calculus;
268pub mod zx_extraction;
269
270/// New organized API for QuantRS2 1.0
271///
272/// This module provides a hierarchical organization of the core API
273/// with clear naming conventions and logical grouping.
274pub mod api;
275
276/// Re-exports of commonly used types and traits
277///
278/// For new code, consider using the organized API modules in `api::prelude` instead.
279/// This module is maintained for backward compatibility.
280pub mod prelude {
281    // Import specific items from each module to avoid ambiguous glob re-exports
282    pub use crate::adiabatic::{
283        AdiabaticQuantumComputer, AnnealingSchedule, IsingProblem, ProblemGenerator, ProblemType,
284        QUBOProblem, QuantumAnnealer, QuantumAnnealingSnapshot,
285    };
286    pub use crate::batch::execution::{
287        create_optimized_executor, BatchCircuit, BatchCircuitExecutor,
288    };
289    pub use crate::batch::measurement::{
290        measure_batch, measure_batch_with_statistics, measure_expectation_batch,
291        measure_tomography_batch, BatchMeasurementStatistics, BatchTomographyResult,
292        MeasurementConfig, TomographyBasis,
293    };
294    pub use crate::batch::operations::{
295        apply_gate_sequence_batch, apply_single_qubit_gate_batch, apply_two_qubit_gate_batch,
296        compute_expectation_values_batch,
297    };
298    pub use crate::batch::optimization::{
299        BatchParameterOptimizer, BatchQAOA, BatchVQE,
300        OptimizationConfig as BatchOptimizationConfig, QAOAResult, VQEResult,
301    };
302    pub use crate::batch::{
303        create_batch, merge_batches, split_batch, BatchConfig, BatchExecutionResult, BatchGateOp,
304        BatchMeasurementResult, BatchStateVector,
305    };
306    pub use crate::benchmarking_integration::{
307        ComprehensiveBenchmarkReport, ComprehensiveBenchmarkSuite, MitigationStrategy,
308        NoiseAnalysis, QAOABenchmarkResults,
309    };
310    pub use crate::bosonic::{
311        boson_to_qubit_encoding, BosonHamiltonian, BosonOperator, BosonOperatorType, BosonTerm,
312        GaussianState,
313    };
314    pub use crate::cartan::{
315        cartan_decompose, CartanCoefficients, CartanDecomposer, CartanDecomposition,
316        OptimizedCartanDecomposer,
317    };
318    pub use crate::characterization::{GateCharacterizer, GateEigenstructure, GateType};
319    pub use crate::compilation_cache::{
320        get_compilation_cache, initialize_compilation_cache, CacheConfig, CacheStatistics,
321        CompilationCache, CompiledGate,
322    };
323    pub use crate::complex_ext::{quantum_states, QuantumComplexExt};
324    pub use crate::controlled::{
325        make_controlled, make_multi_controlled, ControlledGate, FredkinGate, MultiControlledGate,
326        ToffoliGate,
327    };
328    pub use crate::decomposition::clifford_t::{
329        count_t_gates_in_sequence, optimize_gate_sequence as optimize_clifford_t_sequence,
330        CliffordGate, CliffordTDecomposer, CliffordTGate, CliffordTSequence,
331    };
332    pub use crate::decomposition::decompose_u_gate;
333    pub use crate::decomposition::solovay_kitaev::{
334        count_t_gates, BaseGateSet, SolovayKitaev, SolovayKitaevConfig,
335    };
336    pub use crate::decomposition::utils::{
337        clone_gate, decompose_circuit, optimize_gate_sequence, GateSequence,
338    };
339    pub use crate::distributed_quantum_networks::{
340        DistributedGateType, DistributedQuantumGate, EntanglementManager, EntanglementProtocol,
341        NetworkScheduler, QuantumNetwork, QuantumNode,
342    };
343    pub use crate::error::*;
344    pub use crate::error_correction::{
345        ColorCode, LookupDecoder, MWPMDecoder, Pauli, PauliString, StabilizerCode, SurfaceCode,
346        SyndromeDecoder,
347    };
348    pub use crate::fermionic::{
349        qubit_operator_to_gates, BravyiKitaev, FermionHamiltonian, FermionOperator,
350        FermionOperatorType, FermionTerm, JordanWigner, PauliOperator, QubitOperator, QubitTerm,
351    };
352    pub use crate::gate::*;
353    pub use crate::gpu::{
354        cpu_backend::CpuBackend, initialize_adaptive_simd, GpuBackend, GpuBackendFactory,
355        GpuBuffer, GpuConfig, GpuKernel, GpuStateVector, OptimizationConfig, SpecializedGpuKernels,
356    };
357    pub use crate::hhl::{hhl_example, HHLAlgorithm, HHLParams};
358    pub use crate::holonomic::{
359        // GeometricErrorCorrection, HolonomicGate, HolonomicGateSynthesis, HolonomicPath,
360        // HolonomicQuantumComputer, PathOptimizationConfig,
361        WilsonLoop,
362    };
363    pub use crate::kak_multiqubit::{
364        kak_decompose_multiqubit, DecompositionMethod, DecompositionStats, DecompositionTree,
365        KAKTreeAnalyzer, MultiQubitKAK, MultiQubitKAKDecomposer,
366    };
367    pub use crate::matrix_ops::{
368        matrices_approx_equal, partial_trace, tensor_product_many, DenseMatrix, QuantumMatrix,
369        SparseMatrix,
370    };
371    pub use crate::mbqc::{
372        CircuitToMBQC, ClusterState, Graph as MBQCGraph, MBQCComputation, MeasurementBasis,
373        MeasurementPattern,
374    };
375    pub use crate::memory_efficient::{EfficientStateVector, StateMemoryStats};
376    pub use crate::neutral_atom::{
377        AtomSpecies, AtomState, LaserSystem, NeutralAtom, NeutralAtomErrorModel, NeutralAtomGates,
378        NeutralAtomQC, OpticalTweezer, Position3D,
379    };
380    pub use crate::noise_characterization::{
381        CrossEntropyBenchmarking, CrossEntropyResult, DDPulse, DynamicalDecoupling,
382        ExtrapolationMethod, NoiseModel as CharacterizationNoiseModel,
383        ProbabilisticErrorCancellation, RandomizedBenchmarking, RandomizedBenchmarkingResult,
384        ZeroNoiseExtrapolation,
385    };
386    pub use crate::operations::{
387        apply_and_sample, sample_outcome, MeasurementOutcome, OperationResult, POVMMeasurement,
388        ProjectiveMeasurement, QuantumOperation, Reset,
389    };
390    pub use crate::optimization::compression::{
391        CompressedGate, CompressionConfig, CompressionStats, CompressionType, GateMetadata,
392        GateSequenceCompressor,
393    };
394    pub use crate::optimization::fusion::{CliffordFusion, GateFusion};
395    pub use crate::optimization::lazy_evaluation::{
396        LazyEvaluationConfig, LazyEvaluationStats, LazyGateContext, LazyOptimizationPipeline,
397        OptimizationResult as LazyOptimizationResult, OptimizationStats,
398    };
399    pub use crate::optimization::peephole::{PeepholeOptimizer, TCountOptimizer};
400    pub use crate::optimization::zx_optimizer::ZXOptimizationPass;
401    pub use crate::optimization::{
402        gates_are_disjoint, gates_can_commute, OptimizationChain, OptimizationPass,
403    };
404    pub use crate::parametric::{Parameter, ParametricGate, SymbolicParameter};
405    pub use crate::photonic::{
406        OpticalMode, PhotonicCircuit, PhotonicEncoding, PhotonicErrorCorrection, PhotonicGate,
407        PhotonicGateType, PhotonicSystem,
408    };
409    pub use crate::post_quantum_crypto::{
410        CompressionFunction, QKDProtocol, QKDResult, QuantumDigitalSignature, QuantumHashFunction,
411        QuantumKeyDistribution, QuantumSignature,
412    };
413    pub use crate::pulse::{
414        CouplingParams, HardwareCalibration, Pulse, PulseCompiler, PulseEnvelope, PulseNoiseModel,
415        PulseSequence, QubitControlParams, TimingConstraints,
416    };
417    pub use crate::qaoa::{
418        CostHamiltonian, MixerHamiltonian, QAOACircuit, QAOAOptimizer, QAOAParams,
419    };
420    pub use crate::qml::encoding::{DataEncoder, DataReuploader, FeatureMap, FeatureMapType};
421    pub use crate::qml::generative_adversarial::{
422        NoiseType, QGANConfig, QGANIterationMetrics, QGANTrainingStats, QuantumDiscriminator,
423        QuantumGenerator, QGAN,
424    };
425    pub use crate::qml::layers::{
426        EntanglingLayer, HardwareEfficientLayer, PoolingStrategy, QuantumPoolingLayer,
427        RotationLayer, StronglyEntanglingLayer,
428    };
429    pub use crate::qml::reinforcement_learning::{
430        Experience, QLearningStats, QuantumActorCritic, QuantumDQN, QuantumPolicyNetwork,
431        QuantumRLConfig, QuantumValueNetwork, ReplayBuffer, TrainingMetrics as RLTrainingMetrics,
432    };
433    pub use crate::qml::training::{
434        HPOStrategy, HyperparameterOptimizer, LossFunction, Optimizer, QMLTrainer, TrainingConfig,
435        TrainingMetrics,
436    };
437    pub use crate::qml::{
438        create_entangling_gates, natural_gradient, quantum_fisher_information, EncodingStrategy,
439        EntanglementPattern, QMLCircuit, QMLConfig, QMLLayer,
440    };
441    pub use crate::qpca::{DensityMatrixPCA, QPCAParams, QuantumPCA};
442    pub use crate::quantum_algorithm_profiling::{
443        AlgorithmType, ComplexityClass, ProfilingLevel, QuantumAdvantageCalculator,
444        QuantumAlgorithmProfiler, QuantumBenchmarkResult, QuantumBottleneckDetector,
445        QuantumComplexityAnalyzer, QuantumOptimizationAdvisor, QuantumPerformanceAnalyzer,
446        QuantumProfilingAdvantageReport, QuantumProfilingReport, QuantumResourceMonitor,
447    };
448    pub use crate::quantum_aware_interpreter::{
449        ExecutionStrategy, OperationResult as InterpreterOperationResult, QuantumAwareInterpreter,
450        QuantumJITCompiler, QuantumStateTracker, RuntimeOptimizationEngine,
451    };
452    pub use crate::quantum_benchmarking::{
453        BenchmarkConfig, BenchmarkResult, ComparativeBenchmark, DDEffectivenessResult,
454        QAOABenchmarkResult, QuantumBenchmarkSuite, QuantumVolumeBenchmarkResult, ResourceUsage,
455    };
456    pub use crate::quantum_cellular_automata::{
457        BoundaryCondition, QCARule, QCAType, QuantumCellularAutomaton1D,
458        QuantumCellularAutomaton2D, UnitaryRule,
459    };
460    pub use crate::quantum_channels::{
461        ChoiRepresentation, KrausRepresentation, ProcessTomography, QuantumChannel,
462        QuantumChannels, StinespringRepresentation,
463    };
464    pub use crate::quantum_counting::{
465        amplitude_estimation_example, quantum_counting_example, QuantumAmplitudeEstimation,
466        QuantumCounting, QuantumPhaseEstimation,
467    };
468    pub use crate::quantum_debugging_profiling::{
469        CircuitAnalysisReport, ProfilingReport, QuantumCircuitAnalyzer, QuantumDebugProfiling,
470        QuantumDebugProfilingReport, QuantumDebugger, QuantumErrorTracker,
471        QuantumPerformanceProfiler, QuantumStateInspector, StateInspectionReport,
472    };
473    pub use crate::quantum_game_theory::{
474        GameOutcome, GameType, QuantumGame, QuantumMechanism, QuantumPlayer, QuantumStrategy,
475    };
476    pub use crate::quantum_garbage_collection::{
477        CoherenceBasedGC, GCCollectionMode, GCCollectionResult, QuantumAllocationRequest,
478        QuantumAllocationResult, QuantumGCAdvantageReport, QuantumGarbageCollector,
479        QuantumLifecycleManager, QuantumReferenceCounter,
480    };
481    pub use crate::quantum_hardware_abstraction::{
482        AdaptiveMiddleware, CalibrationEngine, ErrorMitigationLayer, ExecutionRequirements,
483        HardwareCapabilities, HardwareResourceManager, HardwareType, QuantumHardwareAbstraction,
484        QuantumHardwareBackend,
485    };
486    pub use crate::quantum_internet::{
487        DistributedQuantumComputing, GlobalQuantumKeyDistribution, QuantumInternet,
488        QuantumInternetAdvantageReport, QuantumInternetNode, QuantumInternetSecurity,
489        QuantumNetworkInfrastructure, QuantumRouting,
490    };
491    pub use crate::quantum_memory_hierarchy::{
492        CacheReplacementPolicy, L1QuantumCache, L2QuantumCache, L3QuantumCache,
493        MemoryOperationType, OptimizationResult as MemoryOptimizationResult, QuantumMainMemory,
494        QuantumMemoryAdvantageReport, QuantumMemoryHierarchy, QuantumMemoryOperation,
495        QuantumMemoryResult,
496    };
497    pub use crate::quantum_memory_integration::{
498        CoherenceManager, MemoryAccessController, QuantumMemory, QuantumMemoryErrorCorrection,
499        QuantumState, QuantumStorageLayer,
500    };
501    pub use crate::quantum_ml_accelerators::{
502        HardwareEfficientMLLayer, ParameterShiftOptimizer, QuantumFeatureMap,
503        QuantumKernelOptimizer, QuantumNaturalGradient, TensorNetworkMLAccelerator,
504    };
505    pub use crate::quantum_operating_system::{
506        QuantumMemoryManager, QuantumOSAdvantageReport, QuantumOperatingSystem,
507        QuantumProcessManager, QuantumScheduler, QuantumSecurityManager,
508    };
509    pub use crate::quantum_process_isolation::{
510        IsolatedProcessResult, IsolatedQuantumProcess, IsolationLevel, QuantumAccessController,
511        QuantumProcessIsolation, QuantumSandbox, QuantumSecurityAdvantageReport,
512        QuantumStateIsolator, SecureQuantumOperation, SecurityDomain, VirtualQuantumMachine,
513    };
514    pub use crate::quantum_resource_management::{
515        AdvancedQuantumScheduler, AdvancedSchedulingResult, CoherenceAwareManager,
516        OptimizationLevel, QuantumProcess, QuantumResourceAdvantageReport,
517        QuantumResourceAllocator, QuantumResourceManager, QuantumWorkloadOptimizer,
518        SchedulingPolicy,
519    };
520    pub use crate::quantum_sensor_networks::{
521        DistributedSensingResult, EntanglementDistribution, EnvironmentalMonitoringResult,
522        QuantumMetrologyEngine, QuantumSensor, QuantumSensorAdvantageReport, QuantumSensorNetwork,
523        QuantumSensorType,
524    };
525    pub use crate::quantum_supremacy_algorithms::{
526        BosonSampling, BosonSamplingSupremacyResult, IQPSampling, QuantumSimulationAdvantageResult,
527        QuantumSupremacyBenchmarkReport, QuantumSupremacyEngine, RandomCircuitSampling,
528        RandomCircuitSupremacyResult,
529    };
530    pub use crate::quantum_universal_framework::{
531        AdaptiveExecutionResult, AdaptiveQuantumRuntime, ArchitectureType, CrossPlatformOptimizer,
532        QuantumHardwareRegistry, QuantumPortabilityEngine, UniversalCompilationResult,
533        UniversalFrameworkAdvantageReport, UniversalQuantumCircuit, UniversalQuantumCompiler,
534        UniversalQuantumFramework,
535    };
536    pub use crate::quantum_volume_tomography::{
537        GateSetModel, GateSetTomography, ProcessMatrix, QuantumProcessTomography, QuantumVolume,
538        QuantumVolumeResult,
539    };
540    pub use crate::quantum_walk::{
541        CoinOperator, ContinuousQuantumWalk, DecoherentQuantumWalk, DiscreteQuantumWalk, Graph,
542        GraphType, MultiWalkerQuantumWalk, QuantumWalkSearch, SearchOracle, SzegedyQuantumWalk,
543    };
544    pub use crate::qubit::*;
545    pub use crate::real_time_compilation::{
546        CompilationContext, HardwareTarget, OptimizationPipeline, PerformanceMonitor,
547        RealTimeQuantumCompiler,
548    };
549    pub use crate::register::*;
550    pub use crate::scirs2_auto_optimizer::{
551        AutoOptimizer, AutoOptimizerConfig, BackendConfiguration, BackendSelection, BackendType,
552        CommunicationBackend, ComplexityClass as AutoOptimizerComplexityClass, ComplexityEstimate,
553        DistributedConfiguration, EntanglementAnalysis, FloatPrecision, GPUConfiguration,
554        GPUMemoryStrategy, GateComposition, LoadBalancingStrategy, MemoryPattern, MemoryStrategy,
555        OptimizationRecommendation as AutoOptimizerOptimizationRecommendation,
556        ParallelizationPotential, PerformanceMetrics as AutoOptimizerPerformanceMetrics,
557        PerformanceProfile, PrecisionSettings, ProblemAnalysis, ProblemSizeLimits,
558        ProblemType as AutoOptimizerProblemType,
559        RecommendationType as AutoOptimizerRecommendationType, ResourceCost, ResourceMonitor,
560        ResourceRequirements as AutoOptimizerResourceRequirements, ResourceUtilization,
561    };
562    pub use crate::scirs2_circuit_verifier::{
563        AlgorithmSpecification, AlgorithmVerificationResult, CircuitVerificationResult,
564        EquivalenceType, EquivalenceVerificationResult, NumericalStabilityAnalysis,
565        SciRS2CircuitVerifier, SciRS2VerificationEnhancements, VerificationConfig,
566        VerificationVerdict,
567    };
568    pub use crate::scirs2_circuit_verifier_enhanced::{
569        CertificateFormat, CircuitProperty, ConfidenceStatistics, Counterexample,
570        EnhancedCircuitVerifier, EnhancedVerificationConfig, FormalProof, FormalVerificationResult,
571        ProofStep, ProofStepType, ProofType, QCTLSpecification, QHLSpecification,
572        QLTLSpecification, SpecificationLanguage, VerificationReport, VerificationSummary,
573        VerificationTechnique, ZXSpecification,
574    };
575    pub use crate::scirs2_quantum_formatter::{
576        AnnotationLocation, AnnotationType, CodeAnnotation, CommentStyle, FormattedCode,
577        FormattingConfig, FormattingStatistics, FormattingStyle, IndentationStyle, OutputFormat,
578        ProgrammingLanguage, SciRS2QuantumFormatter,
579    };
580    pub use crate::scirs2_quantum_formatter_enhanced::{
581        AlgorithmPhase, BeautificationSuggestions, ChangeType, CircuitChange, ColorScheme,
582        CustomFormattingRule, EnhancedFormattedCode, EnhancedFormattingConfig,
583        EnhancedQuantumFormatter, FormattingOptions, FormattingSuggestion, HardwareFormattingInfo,
584        IncrementalUpdate, InteractiveSuggestion, PlatformOptimization, QuantumBackend,
585        QuantumPattern, SemanticInfo, SuggestionLocation, SuggestionType, SyntaxMetadata,
586        SyntaxScope, SyntaxToken, TemplatedCode, TokenType, UpdatedSection, VisualFormat,
587    };
588    pub use crate::scirs2_quantum_linter::{
589        AutomaticFix, LintFinding, LintFindingType, LintSeverity, LintingConfig, LintingReport,
590        OptimizationSuggestion, SciRS2Enhancement, SciRS2QuantumLinter,
591    };
592    pub use crate::scirs2_quantum_linter_enhanced::{
593        ChangeOperation, CircuitLocation, CircuitMetadata, CodeChange, Compatibility,
594        CustomLintRule, EnhancedLintFinding, EnhancedLintingConfig, EnhancedLintingReport,
595        EnhancedQuantumLinter, FixSuggestion, GatePatternMatcher, HardwareArchitecture,
596        ImpactAnalysis, LintPattern, LintingSummary, PerformanceImpact, QualityMetrics,
597        ReportFormat, ResourceImpact, ResourceMatcher, RiskLevel, StructuralMatcher,
598    };
599    pub use crate::scirs2_quantum_profiler::{
600        CircuitProfilingResult, GateProfilingResult, MemoryAnalysis, OptimizationRecommendation,
601        ProfilingPrecision, ProfilingSessionReport, SciRS2EnhancementSummary,
602        SciRS2ProfilingConfig, SciRS2QuantumProfiler, SimdAnalysis,
603    };
604    pub use crate::scirs2_quantum_profiler_enhanced::{
605        AnomalyEvent, AnomalySeverity, Bottleneck, BottleneckAnalysis, BottleneckType, Difficulty,
606        EnhancedGateProfilingResult, EnhancedOptimizationRecommendation, EnhancedProfilingConfig,
607        EnhancedProfilingReport, EnhancedQuantumProfiler, ExportFormat, HardwareCharacteristics,
608        HardwareOptimizationStrategy, HardwarePerformanceModel, MetricStatistics, MetricType,
609        OpportunityType, OptimizationOpportunity, PerformanceMetrics, PerformancePredictions,
610        PredictedPerformance, Priority, ProfilingSummary, RecommendationType, ScalingAnalysis,
611        ScalingModel, ScalingType,
612    };
613    pub use crate::scirs2_resource_estimator_enhanced::{
614        AnalysisDepth, BasicResourceAnalysis, CircuitTopology, CloudPlatform, ComparativeAnalysis,
615        ComplexityMetrics, ConstraintPriority, ConstraintType, CostAnalysisResult, CostBreakdown,
616        CostOptimization, Effort, EnhancedResourceConfig, EnhancedResourceEstimate,
617        EnhancedResourceEstimator, ErrorBudget, EstimationOptions, GatePattern, GateStatistics,
618        HardwareRecommendation, Impact, MLPredictions, MemoryRequirements, MonitoringReport,
619        OptimizationLevel as ResourceOptimizationLevel, OptimizationObjective,
620        OptimizationStrategy, PlatformCost, Priority as ResourcePriority, ReadinessLevel,
621        Recommendation, RecommendationCategory, ResourceAnomaly, ResourceConstraint,
622        ResourceImprovement, ResourceRequirements, ResourceScores, RiskAssessment,
623        ScalingPredictions, TopologyType,
624    };
625    pub use crate::shannon::{shannon_decompose, OptimizedShannonDecomposer, ShannonDecomposer};
626    pub use crate::silicon_quantum_dots::{
627        DeviceParams, QuantumDotParams, QuantumDotType, SiliconQuantumDot, SiliconQuantumDotGates,
628        SiliconQuantumDotSystem,
629    };
630    pub use crate::simd_ops::{
631        apply_phase_simd, controlled_phase_simd, expectation_z_simd, inner_product, normalize_simd,
632    };
633    #[cfg(feature = "symbolic")]
634    pub use crate::symbolic::calculus::{diff, expand, integrate, limit, simplify};
635    pub use crate::symbolic::{matrix::SymbolicMatrix, SymbolicExpression};
636    pub use crate::symbolic_hamiltonian::{
637        hamiltonians::{
638            heisenberg, maxcut, molecular_h2, number_partitioning, transverse_field_ising,
639        },
640        PauliOperator as SymbolicPauliOperator, PauliString as SymbolicPauliString,
641        SymbolicHamiltonian, SymbolicHamiltonianTerm,
642    };
643    pub use crate::symbolic_optimization::{
644        circuit_optimization::{extract_circuit_parameters, optimize_parametric_circuit},
645        HamiltonianExpectation, OptimizationResult, QAOACostFunction, SymbolicObjective,
646        SymbolicOptimizationConfig, SymbolicOptimizer,
647    };
648    pub use crate::synthesis::{
649        decompose_single_qubit_xyx, decompose_single_qubit_zyz, decompose_two_qubit_kak,
650        identify_gate, synthesize_unitary, KAKDecomposition, SingleQubitDecomposition,
651    };
652    pub use crate::tensor_network::{
653        contraction_optimization::DynamicProgrammingOptimizer, Tensor, TensorEdge, TensorNetwork,
654        TensorNetworkBuilder, TensorNetworkSimulator,
655    };
656    pub use crate::testing::{
657        QuantumAssert, QuantumTest, QuantumTestSuite, TestResult, TestSuiteResult,
658        DEFAULT_TOLERANCE,
659    };
660    pub use crate::topological::{
661        AnyonModel, AnyonType, AnyonWorldline, BraidingOperation, FibonacciModel, FusionTree,
662        IsingModel, TopologicalGate, TopologicalQC, ToricCode,
663    };
664    pub use crate::trapped_ion::{
665        IonLevel, IonSpecies, LaserPulse, MotionalMode, MotionalModeType, TrappedIon,
666        TrappedIonGates, TrappedIonSystem,
667    };
668    pub use crate::ultra_high_fidelity_synthesis::{
669        ErrorSuppressedSequence, ErrorSuppressionSynthesis, GateOperation, GrapeOptimizer,
670        GrapeResult, NoiseModel, QuantumGateRL, RLResult, SynthesisConfig, SynthesisMethod,
671        UltraFidelityResult, UltraHighFidelitySynthesis,
672    };
673    pub use crate::ultrathink_core::{
674        DistributedQuantumNetwork, HolonomicProcessor, QuantumAdvantageReport,
675        QuantumMLAccelerator, QuantumMemoryCore, RealTimeCompiler, UltraThinkQuantumComputer,
676    };
677    pub use crate::variational::{
678        ComputationGraph, DiffMode, Dual, Node, Operation, VariationalCircuit, VariationalGate,
679        VariationalOptimizer,
680    };
681    pub use crate::variational_optimization::{
682        create_natural_gradient_optimizer, create_qaoa_optimizer, create_spsa_optimizer,
683        create_vqe_optimizer, ConstrainedVariationalOptimizer,
684        HyperparameterOptimizer as VariationalHyperparameterOptimizer,
685        OptimizationConfig as VariationalOptimizationConfig, OptimizationHistory,
686        OptimizationMethod, OptimizationResult as VariationalOptimizationResult,
687        VariationalQuantumOptimizer,
688    };
689    pub use crate::zx_calculus::{
690        CircuitToZX, Edge, EdgeType, Spider, SpiderType, ZXDiagram, ZXOptimizer,
691    };
692    pub use crate::zx_extraction::{ZXExtractor, ZXPipeline};
693
694    #[cfg(feature = "python")]
695    pub use crate::python_bindings::{
696        PyCartanDecomposition, PyNumRS2Array, PyQuantumGate, PyQuantumInternet,
697        PyQuantumSensorNetwork, PyQubitId, PySingleQubitDecomposition, PyVariationalCircuit,
698    };
699
700    #[cfg(feature = "python")]
701    pub use crate::jupyter_visualization::{
702        PyQuantumCircuitVisualizer, PyQuantumPerformanceMonitor, PyQuantumStateVisualizer,
703    };
704
705    #[cfg(feature = "python")]
706    pub use crate::quantum_complexity_analysis::PyQuantumComplexityAnalyzer;
707
708    #[cfg(feature = "python")]
709    pub use crate::python_bindings::{
710        PyAggregatedStats, PyAlert, PyMetricMeasurement, PyMonitoringConfig, PyMonitoringStatus,
711        PyOptimizationRecommendation, PyRealtimeMonitor,
712    };
713}
714
715// For backward compatibility, also re-export the prelude at the top level
716#[deprecated(since = "1.0.0", note = "Use api::prelude modules for new code")]
717pub use prelude::*;
718
719/// Convenient access to the new organized API
720///
721/// # Examples
722///
723/// ```rust
724/// // For basic quantum programming
725/// use quantrs2_core::v1::essentials::*;
726///
727/// // For algorithm development
728/// use quantrs2_core::v1::algorithms::*;
729///
730/// // For hardware programming
731/// use quantrs2_core::v1::hardware::*;
732/// ```
733pub mod v1 {
734    pub use crate::api::prelude::*;
735}