quantrs2_sim/
lib.rs

1// Architectural decisions - these are intentional design patterns
2#![allow(clippy::unnecessary_wraps)] // Result return types for API consistency
3#![allow(clippy::unused_self)] // Trait implementations require &self
4#![allow(clippy::unused_async)]
5// Async placeholders for future implementation
6// Performance-related (not safety issues, can be optimized later)
7#![allow(clippy::significant_drop_tightening)] // Lock scope optimization TODO
8// Style-related (low priority)
9#![allow(clippy::match_same_arms)] // Sometimes intentional for clarity
10#![allow(clippy::option_if_let_else)] // Style preference
11#![allow(clippy::return_self_not_must_use)] // Builder pattern
12#![allow(clippy::needless_range_loop)] // Sometimes clearer with index
13// Additional suppressions for remaining warnings
14#![allow(clippy::branches_sharing_code)] // Sometimes intentional
15#![allow(clippy::type_complexity)] // Quantum types are complex
16#![allow(clippy::missing_const_for_fn)] // Not always beneficial
17#![allow(clippy::format_push_string)] // Performance optimization TODO
18#![allow(clippy::cast_possible_truncation)] // Platform-specific, validated
19#![allow(clippy::future_not_send)] // Async architecture decision
20#![allow(clippy::needless_pass_by_ref_mut)] // API consistency
21#![allow(clippy::cast_precision_loss)] // Acceptable for quantum simulation
22#![allow(clippy::uninlined_format_args)] // Style preference
23#![allow(clippy::assigning_clones)] // Sometimes clearer
24#![allow(clippy::zero_sized_map_values)] // Intentional for set-like maps
25#![allow(clippy::used_underscore_binding)] // Sometimes needed for unused captures
26#![allow(clippy::collection_is_never_read)] // Builder pattern / lazy evaluation
27#![allow(clippy::wildcard_in_or_patterns)] // Sometimes intentional
28#![allow(clippy::ptr_arg)] // API consistency with slices
29#![allow(clippy::implicit_hasher)] // Generic hasher not always needed
30#![allow(clippy::ref_option)] // Sometimes needed for lifetime reasons
31#![allow(clippy::expect_fun_call)] // Clearer error messages
32#![allow(clippy::if_not_else)] // Sometimes clearer
33#![allow(clippy::iter_on_single_items)] // Sometimes intentional
34#![allow(clippy::trivially_copy_pass_by_ref)] // API consistency
35#![allow(clippy::empty_line_after_doc_comments)] // Formatting preference
36#![allow(clippy::manual_let_else)] // Style preference
37#![allow(clippy::await_holding_lock)] // Async architecture
38// Full clippy category suppressions
39#![allow(clippy::pedantic)]
40#![allow(clippy::nursery)]
41#![allow(clippy::cargo)]
42// Additional specific suppressions
43#![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// Additional specific suppressions (correct lint names)
65#![allow(clippy::should_implement_trait)] // Methods like default(), from_str(), next()
66#![allow(clippy::upper_case_acronyms)] // VQE, QAOA, QFT, CNOT, SGD
67#![allow(clippy::unnecessary_map_or)] // map_or simplification suggestions
68#![allow(clippy::derivable_impls)] // Impl can be derived
69#![allow(clippy::or_fun_call)] // unwrap_or_else with default value
70#![allow(clippy::cloned_ref_to_slice_refs)] // clone can be replaced with from_ref
71#![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 std usage
75#![allow(clippy::match_like_matches_macro)] // Sometimes match is clearer
76#![allow(clippy::suspicious_open_options)] // File open options
77#![allow(clippy::new_without_default)] // new() without Default impl
78#![allow(clippy::legacy_numeric_constants)] // Allow std::f64::MAX etc.
79
80//! Quantum circuit simulators for the `QuantRS2` framework.
81//!
82//! This crate provides various simulation backends for quantum circuits,
83//! including state vector simulation on CPU and optionally GPU.
84//!
85//! It includes both standard and optimized implementations, with the optimized
86//! versions leveraging SIMD, memory-efficient algorithms, and parallel processing
87//! to enable simulation of larger qubit counts (30+).
88//!
89//! ## Recent Updates (v0.1.0-rc.1)
90//!
91//! - Refined `SciRS2` v0.1.0-rc.1 integration for enhanced performance
92//! - All simulators use `scirs2_core::parallel_ops` for automatic parallelization
93//! - SIMD-accelerated quantum operations via `SciRS2` abstractions
94//! - Advanced linear algebra leveraging `SciRS2`'s optimized BLAS/LAPACK bindings
95
96pub mod adaptive_gate_fusion;
97pub mod adaptive_ml_error_correction;
98pub mod adiabatic_quantum_computing;
99pub mod advanced_ml_error_mitigation;
100pub mod advanced_variational_algorithms;
101pub mod autodiff_vqe;
102pub mod automatic_parallelization;
103pub mod cache_optimized_layouts;
104pub mod circuit_interfaces;
105pub mod concatenated_error_correction;
106// CUDA-specific modules (not available on macOS)
107#[cfg(all(feature = "gpu", not(target_os = "macos")))]
108pub mod cuda;
109#[cfg(all(feature = "gpu", not(target_os = "macos")))]
110pub mod cuda_kernels;
111pub mod debugger;
112pub mod decision_diagram;
113pub mod device_noise_models;
114// Distributed GPU simulation (CUDA-based, not available on macOS)
115#[cfg(all(feature = "gpu", not(target_os = "macos")))]
116pub mod distributed_gpu;
117pub mod distributed_simulator;
118pub mod dynamic;
119pub mod enhanced_statevector;
120pub mod enhanced_tensor_networks;
121pub mod error;
122pub mod fault_tolerant_synthesis;
123pub mod fermionic_simulation;
124pub mod fpga_acceleration;
125pub mod fusion;
126pub mod gpu_kernel_optimization;
127pub mod hardware_aware_qml;
128pub mod holographic_quantum_error_correction;
129pub mod jit_compilation;
130pub mod large_scale_simulator;
131pub mod linalg_ops;
132pub mod memory_bandwidth_optimization;
133pub mod memory_optimization;
134pub mod memory_prefetching_optimization;
135pub mod mixed_precision;
136pub mod mixed_precision_impl;
137pub mod mpi_distributed_simulation;
138pub mod mps_basic;
139#[cfg(feature = "mps")]
140pub mod mps_enhanced;
141pub mod mps_simulator;
142pub mod noise_extrapolation;
143pub mod open_quantum_systems;
144pub mod opencl_amd_backend;
145pub mod operation_cache;
146#[cfg(feature = "optimize")]
147pub mod optirs_integration;
148pub mod parallel_tensor_optimization;
149pub mod path_integral;
150pub mod pauli;
151pub mod photonic;
152pub mod precision;
153pub mod qaoa_optimization;
154pub mod qmc;
155pub mod qml;
156pub mod qml_integration;
157pub mod quantum_advantage_demonstration;
158pub mod quantum_algorithms;
159pub mod quantum_annealing;
160pub mod quantum_cellular_automata;
161pub mod quantum_chemistry;
162pub mod quantum_chemistry_dmrg;
163pub mod quantum_cloud_integration;
164pub mod quantum_field_theory;
165pub mod quantum_gravity_simulation;
166pub mod quantum_inspired_classical;
167pub mod quantum_ldpc_codes;
168pub mod quantum_machine_learning_layers;
169pub mod quantum_ml_algorithms;
170pub mod quantum_reservoir_computing;
171pub mod quantum_reservoir_computing_enhanced;
172pub mod quantum_supremacy;
173pub mod quantum_volume;
174pub mod realtime_hardware_integration;
175pub mod scirs2_complex_simd;
176pub mod scirs2_eigensolvers;
177pub mod scirs2_integration;
178pub mod scirs2_qft;
179pub mod scirs2_sparse;
180pub mod shot_sampling;
181pub mod simulator;
182pub mod sparse;
183pub mod specialized_gates;
184pub mod specialized_simulator;
185pub mod stabilizer;
186pub mod statevector;
187pub mod telemetry;
188pub mod tensor;
189pub mod topological_quantum_simulation;
190pub mod tpu_acceleration;
191pub mod trotter;
192pub mod visualization_hooks;
193
194#[cfg(feature = "advanced_math")]
195pub mod tensor_network;
196pub mod utils;
197// Beta.3: Optimization modules refactored into specialized implementations:
198// optimized_chunked, optimized_simd, optimized_simple, optimized_simulator, etc.
199pub mod auto_optimizer;
200pub mod benchmark;
201pub mod circuit_optimization;
202pub mod clifford_sparse;
203pub mod performance_prediction;
204
205/// New organized API for QuantRS2 Simulation 1.0
206///
207/// This module provides a hierarchical organization of the simulation API
208/// with clear naming conventions and logical grouping.
209pub mod api;
210pub mod compilation_optimization;
211pub mod diagnostics;
212pub mod memory_verification_simple;
213pub mod optimized_chunked;
214pub mod optimized_simd;
215pub mod optimized_simple;
216pub mod optimized_simulator;
217pub mod optimized_simulator_chunked;
218pub mod optimized_simulator_simple;
219pub mod performance_benchmark;
220#[cfg(test)]
221pub mod tests;
222#[cfg(test)]
223pub mod tests_optimized;
224#[cfg(test)]
225pub mod tests_quantum_inspired_classical;
226#[cfg(test)]
227pub mod tests_quantum_ml_layers;
228#[cfg(test)]
229pub mod tests_simple;
230#[cfg(test)]
231pub mod tests_tensor_network;
232#[cfg(test)]
233pub mod tests_ultrathink_implementations;
234
235/// Noise models for quantum simulation
236pub mod noise;
237
238/// Advanced noise models for realistic device simulation
239pub mod noise_advanced;
240
241/// Quantum error correction codes and utilities
242pub mod error_correction;
243
244/// Prelude module that re-exports common types and traits
245pub mod prelude {
246    pub use crate::adaptive_ml_error_correction::{
247        benchmark_adaptive_ml_error_correction, AdaptiveCorrectionResult, AdaptiveMLConfig,
248        AdaptiveMLErrorCorrection, CorrectionMetrics, ErrorCorrectionAgent,
249        FeatureExtractionMethod, FeatureExtractor, LearningStrategy, MLModelType,
250        SyndromeClassificationNetwork, TrainingExample as MLTrainingExample,
251    };
252    pub use crate::adiabatic_quantum_computing::{
253        AdiabaticBenchmarkResults, AdiabaticConfig, AdiabaticQuantumComputer, AdiabaticResult,
254        AdiabaticSnapshot, AdiabaticStats, AdiabaticUtils, GapMeasurement, GapTrackingConfig,
255        ScheduleType,
256    };
257    pub use crate::advanced_variational_algorithms::{
258        benchmark_advanced_vqa, AcquisitionFunction, AdvancedOptimizerType, AdvancedVQATrainer,
259        BayesianModel, CompressionMethod, CostFunction, FiniteDifferenceGradient,
260        GradientCalculator, GrowthCriterion, HamiltonianTerm as VQAHamiltonianTerm,
261        IsingCostFunction, MixerHamiltonian, MixerType, NetworkConnectivity,
262        OptimizationProblemType, OptimizerState as VQAOptimizerState, ParameterShiftGradient,
263        ProblemHamiltonian, QuantumActivation, TensorTopology, VQAConfig, VQAResult,
264        VQATrainerState, VQATrainingStats, VariationalAnsatz, WarmRestartConfig,
265    };
266    pub use crate::auto_optimizer::{
267        execute_with_auto_optimization, recommend_backend_for_circuit, AnalysisDepth,
268        AutoOptimizer, AutoOptimizerConfig, BackendRecommendation, BackendType,
269        CircuitCharacteristics, ConnectivityProperties, FallbackStrategy,
270        OptimizationLevel as AutoOptimizationLevel, PerformanceHistory,
271        PerformanceMetrics as AutoOptimizerPerformanceMetrics,
272    };
273    pub use crate::autodiff_vqe::{
274        ansatze, AutoDiffContext, ConvergenceCriteria, GradientMethod, ParametricCircuit,
275        ParametricGate, ParametricRX, ParametricRY, ParametricRZ, VQEIteration, VQEResult,
276        VQEWithAutodiff,
277    };
278    pub use crate::automatic_parallelization::{
279        benchmark_automatic_parallelization, AutoParallelBenchmarkResults, AutoParallelConfig,
280        AutoParallelEngine, CircuitParallelResult, DependencyGraph, GateNode,
281        LoadBalancingConfig as AutoLoadBalancingConfig, OptimizationLevel,
282        OptimizationRecommendation as ParallelOptimizationRecommendation, ParallelPerformanceStats,
283        ParallelTask, ParallelizationAnalysis, ParallelizationStrategy, RecommendationComplexity,
284        RecommendationType, ResourceConstraints, ResourceSnapshot, ResourceUtilization,
285        TaskCompletionStats, TaskPriority, WorkStealingStrategy,
286    };
287    pub use crate::cache_optimized_layouts::{
288        CacheHierarchyConfig, CacheLayoutAdaptationResult, CacheOperationStats,
289        CacheOptimizedGateManager, CacheOptimizedLayout, CacheOptimizedStateVector,
290        CachePerformanceStats, CacheReplacementPolicy,
291    };
292    pub use crate::circuit_interfaces::{
293        BackendCompiledData, CircuitExecutionResult, CircuitInterface, CircuitInterfaceConfig,
294        CircuitInterfaceStats, CircuitInterfaceUtils, CircuitMetadata, CircuitOptimizationResult,
295        CompilationMetadata, CompiledCircuit, InterfaceBenchmarkResults, InterfaceCircuit,
296        InterfaceGate, InterfaceGateType, OptimizationStats, SimulationBackend, StabilizerOp,
297    };
298    pub use crate::circuit_optimization::{
299        optimize_circuit, optimize_circuit_with_config, CircuitOptimizer, OptimizationConfig,
300        OptimizationResult, OptimizationStatistics,
301    };
302    pub use crate::clifford_sparse::{CliffordGate, SparseCliffordSimulator};
303    pub use crate::compilation_optimization::{
304        CompilationAnalysis, CompilationOptimizer, CompilationOptimizerConfig,
305        OptimizationRecommendation, OptimizationType, RecommendationPriority,
306    };
307    pub use crate::concatenated_error_correction::{
308        benchmark_concatenated_error_correction, create_standard_concatenated_code, CodeParameters,
309        ConcatenatedCodeConfig, ConcatenatedCorrectionResult, ConcatenatedErrorCorrection,
310        ConcatenationLevel, ConcatenationStats, DecodingResult, ErrorCorrectionCode, ErrorType,
311        HierarchicalDecodingMethod, LevelDecodingResult,
312    };
313    #[cfg(all(feature = "advanced_math", not(target_os = "macos")))]
314    pub use crate::cuda_kernels::{CudaContext, CudaDeviceProperties, CudaKernel};
315    #[cfg(all(feature = "gpu", not(target_os = "macos")))]
316    pub use crate::cuda_kernels::{
317        CudaKernelConfig, CudaKernelStats, CudaQuantumKernels, GateType as CudaGateType,
318        OptimizationLevel as CudaOptimizationLevel,
319    };
320    pub use crate::debugger::{
321        BreakCondition, DebugConfig, DebugReport, PerformanceMetrics, QuantumDebugger, StepResult,
322        WatchFrequency, WatchProperty, Watchpoint,
323    };
324    pub use crate::decision_diagram::{
325        benchmark_dd_simulator, DDNode, DDOptimizer, DDSimulator, DDStats, DecisionDiagram, Edge,
326    };
327    pub use crate::device_noise_models::{
328        CalibrationData, CoherenceParameters, DeviceNoiseConfig, DeviceNoiseModel,
329        DeviceNoiseSimulator, DeviceNoiseUtils, DeviceTopology, DeviceType, FrequencyDrift,
330        GateErrorRates, GateTimes, NoiseBenchmarkResults, NoiseSimulationStats,
331        SuperconductingNoiseModel,
332    };
333    pub use crate::distributed_simulator::{
334        benchmark_distributed_simulation, ChunkMetadata, CommunicationConfig, CommunicationManager,
335        CommunicationPattern, CommunicationRequirements, DistributedGateOperation,
336        DistributedPerformanceStats, DistributedQuantumSimulator, DistributedSimulatorConfig,
337        DistributionStrategy, FaultToleranceConfig, FaultToleranceMessage, FaultToleranceStats,
338        LoadBalancer, LoadBalancingCommand, LoadBalancingConfig,
339        LoadBalancingStrategy as DistributedLoadBalancingStrategy, NetworkConfig, NetworkMessage,
340        NetworkStats, NodeCapabilities, NodeInfo, NodePerformanceStats, NodeStatus,
341        OperationPriority, RebalancingStats, SimulationState, StateChunk, SynchronizationLevel,
342        WorkDistribution,
343    };
344    pub use crate::dynamic::*;
345    pub use crate::enhanced_statevector::EnhancedStateVectorSimulator;
346    pub use crate::error::{Result, SimulatorError};
347    #[allow(unused_imports)]
348    pub use crate::error_correction::*;
349    pub use crate::fermionic_simulation::{
350        benchmark_fermionic_simulation, FermionicHamiltonian, FermionicOperator,
351        FermionicSimulator, FermionicStats, FermionicString, JordanWignerTransform,
352    };
353    pub use crate::fusion::{
354        benchmark_fusion_strategies, FusedGate, FusionStats, FusionStrategy, GateFusion, GateGroup,
355        OptimizedCircuit, OptimizedGate,
356    };
357    pub use crate::holographic_quantum_error_correction::{
358        benchmark_holographic_qec, BulkReconstructionMethod, BulkReconstructionResult,
359        HolographicCodeType, HolographicQECBenchmarkResults, HolographicQECConfig,
360        HolographicQECResult, HolographicQECSimulator, HolographicQECStats, HolographicQECUtils,
361    };
362    pub use crate::jit_compilation::{
363        benchmark_jit_compilation, CompilationPriority, CompilationStatus, CompiledFunction,
364        CompiledGateSequence, GateSequencePattern, JITBenchmarkResults, JITCompiler, JITConfig,
365        JITOptimization, JITOptimizationLevel, JITPerformanceStats, JITQuantumSimulator,
366        JITSimulatorStats, OptimizationSuggestion, PatternAnalysisResult, PatternComplexity,
367        RuntimeProfiler, RuntimeProfilerStats,
368    };
369    pub use crate::large_scale_simulator::{
370        CompressedQuantumState, CompressionAlgorithm, CompressionMetadata,
371        LargeScaleQuantumSimulator, LargeScaleSimulatorConfig, MemoryMappedQuantumState,
372        MemoryStatistics as LargeScaleMemoryStatistics, QuantumStateRepresentation,
373        SparseQuantumState,
374    };
375    pub use crate::memory_bandwidth_optimization::{
376        BandwidthMonitor, MemoryBandwidthOptimizer, MemoryLayout, MemoryOptimizationConfig,
377        MemoryOptimizationReport, MemoryStats, OptimizedStateVector,
378    };
379    pub use crate::memory_optimization::{
380        AdvancedMemoryPool, MemoryStats as AdvancedMemoryStats, NumaAwareAllocator,
381    };
382    pub use crate::memory_prefetching_optimization::{
383        AccessPatternPredictor, AccessPatternType, DataLocalityOptimizer,
384        LocalityOptimizationResult, LocalityStrategy, LoopPattern, MemoryPrefetcher, NUMATopology,
385        PerformanceFeedback, PrefetchConfig, PrefetchHint, PrefetchStats, PrefetchStrategy,
386    };
387    pub use crate::mps_basic::{BasicMPS, BasicMPSConfig, BasicMPSSimulator};
388    #[cfg(feature = "mps")]
389    pub use crate::mps_enhanced::{utils::*, EnhancedMPS, EnhancedMPSSimulator, MPSConfig};
390    pub use crate::mps_simulator::{MPSSimulator, MPS};
391    pub use crate::noise::*;
392    pub use crate::noise::{NoiseChannel, NoiseModel};
393    pub use crate::noise_advanced::*;
394    pub use crate::noise_advanced::{AdvancedNoiseModel, RealisticNoiseModelBuilder};
395    pub use crate::noise_extrapolation::{
396        benchmark_noise_extrapolation, DistillationProtocol, ExtrapolationMethod, FitStatistics,
397        NoiseScalingMethod, SymmetryOperation, SymmetryVerification, SymmetryVerificationResult,
398        VirtualDistillation, VirtualDistillationResult, ZNEResult, ZeroNoiseExtrapolator,
399    };
400    pub use crate::open_quantum_systems::{
401        quantum_fidelity, CompositeNoiseModel, EvolutionResult, IntegrationMethod, LindladOperator,
402        LindladSimulator, NoiseModelBuilder, ProcessTomography, QuantumChannel,
403    };
404    pub use crate::opencl_amd_backend::{
405        benchmark_amd_opencl_backend, AMDOpenCLSimulator, KernelArg, MemoryFlags, OpenCLBuffer,
406        OpenCLConfig, OpenCLDevice, OpenCLDeviceType, OpenCLKernel, OpenCLPlatform, OpenCLStats,
407        OptimizationLevel as OpenCLOptimizationLevel,
408    };
409    pub use crate::operation_cache::{
410        CacheConfig, CacheStats, CachedData, CachedOperation, EvictionPolicy, GateMatrixCache,
411        OperationKey, QuantumOperationCache,
412    };
413    pub use crate::parallel_tensor_optimization::{
414        ContractionPair, LoadBalancingStrategy, NumaTopology, ParallelTensorConfig,
415        ParallelTensorEngine, ParallelTensorStats, TensorWorkQueue, TensorWorkUnit,
416        ThreadAffinityConfig,
417    };
418    pub use crate::path_integral::{
419        benchmark_path_integral_methods, ConvergenceStats, PathIntegralConfig, PathIntegralMethod,
420        PathIntegralResult, PathIntegralSimulator, PathIntegralStats, PathIntegralUtils,
421        QuantumPath,
422    };
423    pub use crate::pauli::{PauliOperator, PauliOperatorSum, PauliString, PauliUtils};
424    pub use crate::performance_benchmark::{
425        run_comprehensive_benchmark, run_quick_benchmark, BenchmarkComparison, BenchmarkConfig,
426        BenchmarkResult, MemoryStats as BenchmarkMemoryStats, QuantumBenchmarkSuite,
427        ScalabilityAnalysis, ThroughputStats, TimingStats,
428    };
429    pub use crate::performance_prediction::{
430        create_performance_predictor, predict_circuit_execution_time, ComplexityMetrics,
431        ExecutionDataPoint, ModelType, PerformanceHardwareSpecs, PerformancePredictionConfig,
432        PerformancePredictionEngine, PerformanceTimingStatistics, PredictionMetadata,
433        PredictionResult, PredictionStatistics, PredictionStrategy, ResourceMetrics, TrainedModel,
434        TrainingStatistics,
435    };
436    pub use crate::photonic::{
437        benchmark_photonic_methods, FockState, PhotonicConfig, PhotonicMethod, PhotonicOperator,
438        PhotonicResult, PhotonicSimulator, PhotonicState, PhotonicStats, PhotonicUtils,
439    };
440    pub use crate::precision::{
441        benchmark_precisions, AdaptivePrecisionConfig, AdaptiveStateVector, ComplexAmplitude,
442        ComplexF16, Precision, PrecisionStats, PrecisionTracker,
443    };
444    pub use crate::qaoa_optimization::{
445        benchmark_qaoa, LevelTransitionCriteria, MultiLevelQAOAConfig, QAOAConfig, QAOAConstraint,
446        QAOAGraph, QAOAInitializationStrategy, QAOALevel, QAOAMixerType, QAOAOptimizationStrategy,
447        QAOAOptimizer, QAOAProblemType, QAOAResult, QAOAStats,
448        QuantumAdvantageMetrics as QAOAQuantumAdvantageMetrics, SolutionQuality,
449    };
450    pub use crate::qmc::{DMCResult, PIMCResult, VMCResult, Walker, WaveFunction, DMC, PIMC, VMC};
451    pub use crate::qml_integration::{
452        AdamOptimizer, LossFunction, OptimizerType, QMLBenchmarkResults, QMLFramework,
453        QMLIntegration, QMLIntegrationConfig, QMLLayer, QMLLayerType, QMLOptimizer,
454        QMLTrainingStats, QMLUtils, QuantumNeuralNetwork, SGDOptimizer, TrainingConfig,
455        TrainingExample, TrainingResult,
456    };
457    pub use crate::quantum_advantage_demonstration::{
458        benchmark_quantum_advantage, ClassicalAlgorithm, ClassicalAlgorithmType,
459        ClassicalHardwareSpecs, ClassicalResources, CostAnalysis, DetailedResult,
460        FutureProjections, HardwareSpecs, MarketImpact, OperationalCosts, ProblemDomain,
461        ProblemInstance, QuantumAdvantageConfig, QuantumAdvantageDemonstrator,
462        QuantumAdvantageMetrics, QuantumAdvantageResult, QuantumAdvantageType, QuantumAlgorithm,
463        QuantumHardwareSpecs, QuantumResources, ScalingAnalysis, StatisticalAnalysis,
464        TechnologyProjection, TimelineProjection, VerificationResult,
465    };
466    pub use crate::quantum_algorithms::{
467        benchmark_quantum_algorithms, AlgorithmResourceStats, EnhancedPhaseEstimation,
468        GroverResult, OptimizationLevel as AlgorithmOptimizationLevel, OptimizedGroverAlgorithm,
469        OptimizedShorAlgorithm, PhaseEstimationResult, QuantumAlgorithmConfig, ShorResult,
470    };
471    pub use crate::quantum_annealing::{
472        AnnealingBenchmarkResults, AnnealingResult, AnnealingScheduleType, AnnealingSolution,
473        AnnealingStats, AnnealingTopology, IsingProblem, ProblemType, QUBOProblem,
474        QuantumAnnealingConfig, QuantumAnnealingSimulator, QuantumAnnealingUtils,
475    };
476    pub use crate::quantum_cellular_automata::{
477        BoundaryConditions, MeasurementStrategy, NeighborhoodType, QCABenchmarkResults, QCAConfig,
478        QCAEvolutionResult, QCARule, QCARuleType, QCASnapshot, QCAStats, QCAUtils,
479        QuantumCellularAutomaton,
480    };
481    pub use crate::quantum_chemistry_dmrg::{
482        benchmark_quantum_chemistry_dmrg, AccuracyLevel, AccuracyMetrics, ActiveSpaceAnalysis,
483        ActiveSpaceConfig, AtomicCenter, BasisFunction, BasisSetType, BenchmarkPerformanceMetrics,
484        ComputationalCostEstimate, ConvergenceInfo, DMRGResult, DMRGSimulationStats, DMRGState,
485        ElectronicStructureMethod, ExchangeCorrelationFunctional, MemoryStatistics,
486        MolecularHamiltonian, MoleculeBenchmarkResult, OrbitalSelectionStrategy,
487        PointGroupSymmetry, QuantumChemistryBenchmarkResults, QuantumChemistryDMRGConfig,
488        QuantumChemistryDMRGSimulator, QuantumChemistryDMRGUtils, QuantumNumberSector,
489        ScalingBehavior, SpectroscopicProperties, TestMolecule, TimingStatistics, ValidationResult,
490    };
491    pub use crate::quantum_field_theory::{
492        ActionEvaluator, ActionType, CorrelationFunction, FieldOperator, FieldOperatorType,
493        FieldTheoryType, FixedPoint, FixedPointType, GaugeFieldConfig, GaugeFixing, GaugeGroup,
494        LatticeParameters, MonteCarloAlgorithm, MonteCarloState, ParticleState,
495        PathIntegralConfig as QFTPathIntegralConfig, PathIntegralSampler, QFTBoundaryConditions,
496        QFTConfig as QuantumFieldTheoryConfig, QFTStats as QuantumFieldTheoryStats,
497        QuantumFieldTheorySimulator, RGFlow, RenormalizationScheme, ScatteringProcess,
498        TimeOrdering, WilsonLoop,
499    };
500    pub use crate::quantum_gravity_simulation::{
501        benchmark_quantum_gravity_simulation, AdSCFTConfig, AsymptoticSafetyConfig,
502        BackgroundMetric, BoundaryRegion, BoundaryTheory, BulkGeometry, CDTConfig,
503        ConvergenceInfo as GravityConvergenceInfo, EntanglementStructure,
504        FixedPoint as GravityFixedPoint, FixedPointStability, GeometryMeasurements,
505        GravityApproach, GravityBenchmarkResults, GravitySimulationResult, GravitySimulationStats,
506        HolographicDuality, Intertwiner, LQGConfig, QuantumGravityConfig, QuantumGravitySimulator,
507        QuantumGravityUtils, RGTrajectory, RTSurface, SU2Element, Simplex, SimplexType,
508        SimplicialComplex, SpacetimeState, SpacetimeVertex, SpinNetwork, SpinNetworkEdge,
509        SpinNetworkNode, TimeSlice, TopologyMeasurements,
510    };
511    pub use crate::quantum_inspired_classical::{
512        benchmark_quantum_inspired_algorithms, ActivationFunction, AlgorithmCategory,
513        AlgorithmConfig, BenchmarkingConfig, BenchmarkingResults, CommunityDetectionParams,
514        ComparisonStats, ConstraintMethod, ContractionMethod, ConvergenceAnalysis, ExecutionStats,
515        GraphAlgorithm, GraphConfig, GraphMetrics, GraphResult, LinalgAlgorithm, LinalgConfig,
516        LinalgResult, MLAlgorithm, MLConfig, MLTrainingResult, NetworkArchitecture,
517        ObjectiveFunction, OptimizationAlgorithm, OptimizationConfig as QIOptimizationConfig,
518        OptimizationResult as QIOptimizationResult, OptimizerType as QIOptimizerType,
519        PerformanceAnalysisConfig, ProposalDistribution,
520        QuantumAdvantageMetrics as QIQuantumAdvantageMetrics, QuantumInspiredConfig,
521        QuantumInspiredFramework, QuantumInspiredStats, QuantumInspiredUtils, QuantumParameters,
522        QuantumWalkParams, RuntimeStats, SampleStatistics, SamplingAlgorithm, SamplingConfig,
523        SamplingResult, StatisticalAnalysis as QIStatisticalAnalysis, TemperatureSchedule,
524        TensorNetworkConfig, TensorTopology as QITensorTopology,
525        TrainingConfig as QITrainingConfig, WalkStatistics, WaveFunctionConfig, WaveFunctionType,
526    };
527    pub use crate::quantum_ldpc_codes::{
528        benchmark_quantum_ldpc_codes, BPDecodingResult, BeliefPropagationAlgorithm, CheckNode,
529        LDPCConfig, LDPCConstructionMethod, LDPCStats, QuantumLDPCCode, TannerGraph, VariableNode,
530    };
531    pub use crate::quantum_machine_learning_layers::{
532        benchmark_quantum_ml_layers, AdversarialAttackMethod, AdversarialDefenseMethod,
533        AdversarialTrainingConfig, AlternatingSchedule, AnsatzType, AttentionHead,
534        BenchmarkingProtocols, CachingConfig, CalibrationFrequency, ClassicalArchitecture,
535        ClassicalPreprocessingConfig, ComputationOptimizationConfig, ConnectivityConstraints,
536        ConvolutionalFilter, DataEncodingMethod, DenseConnection,
537        DistillationProtocol as QMLDistillationProtocol, EarlyStoppingConfig, EnsembleMethod,
538        EnsembleMethodsConfig, EntanglementPattern, ErrorMitigationConfig, FeatureSelectionConfig,
539        FeatureSelectionMethod, GradientFlowConfig, GradientMethod as QMLGradientMethod,
540        HardwareOptimizationConfig, HardwareOptimizationLevel, HybridTrainingConfig, LSTMGate,
541        LSTMGateType, LearningRateSchedule,
542        MemoryOptimizationConfig as QMLMemoryOptimizationConfig, NoiseAwareTrainingConfig,
543        NoiseCharacterizationConfig, NoiseCharacterizationMethod, NoiseInjectionConfig,
544        NoiseParameters, NoiseType, OptimizerType as QMLOptimizerType, PQCGate, PQCGateType,
545        ParallelizationConfig, ParameterizedQuantumCircuitLayer, PerformanceOptimizationConfig,
546        QMLArchitectureType, QMLBenchmarkResults as QMLLayersQMLBenchmarkResults, QMLConfig,
547        QMLEpochMetrics, QMLLayer as QMLLayersQMLLayer, QMLLayerConfig,
548        QMLLayerType as QMLLayersQMLLayerType, QMLStats, QMLTrainingAlgorithm, QMLTrainingConfig,
549        QMLTrainingResult, QMLTrainingState, QMLUtils as QMLLayersQMLUtils,
550        QuantumAdvantageMetrics as QMLQuantumAdvantageMetrics, QuantumAttentionLayer,
551        QuantumClassicalInterface, QuantumConvolutionalLayer, QuantumDenseLayer,
552        QuantumHardwareTarget, QuantumLSTMLayer, QuantumMLFramework, RegularizationConfig,
553        RobustTrainingConfig, RotationGate, ScalingMethod, TwoQubitGate, VirtualDistillationConfig,
554        VotingStrategy,
555    };
556    pub use crate::quantum_ml_algorithms::{
557        benchmark_quantum_ml_algorithms, GradientMethod as QMLAlgorithmsGradientMethod,
558        HardwareArchitecture, HardwareAwareCompiler, HardwareMetrics, HardwareOptimizations,
559        OptimizerState, OptimizerType as QMLAlgorithmsOptimizerType, ParameterizedQuantumCircuit,
560        QMLAlgorithmType, QMLConfig as QMLAlgorithmsConfig, QuantumMLTrainer, TrainingHistory,
561        TrainingResult as QMLAlgorithmsTrainingResult,
562    };
563    pub use crate::quantum_reservoir_computing::{
564        benchmark_quantum_reservoir_computing, InputEncoding, OutputMeasurement,
565        QuantumReservoirArchitecture, QuantumReservoirComputer, QuantumReservoirConfig,
566        QuantumReservoirState, ReservoirDynamics, ReservoirMetrics, ReservoirTrainingData,
567        TrainingResult as ReservoirTrainingResult,
568    };
569    pub use crate::quantum_reservoir_computing_enhanced::{
570        benchmark_enhanced_quantum_reservoir_computing, ARIMAParams,
571        ActivationFunction as ReservoirActivationFunction, AdvancedLearningConfig, IPCFunction,
572        LearningAlgorithm, MemoryAnalysisConfig, MemoryAnalyzer, MemoryKernel, MemoryMetrics,
573        MemoryTask, NARState, QuantumReservoirComputerEnhanced,
574        ReservoirTrainingData as EnhancedReservoirTrainingData, TimeSeriesConfig,
575        TimeSeriesPredictor, TrainingExample as ReservoirTrainingExample,
576        TrainingResult as EnhancedTrainingResult, TrendModel,
577    };
578    pub use crate::quantum_supremacy::{
579        benchmark_quantum_supremacy, verify_supremacy_claim, CircuitLayer, CostComparison,
580        CrossEntropyResult, GateSet, HOGAnalysis, PorterThomasResult, QuantumGate,
581        QuantumSupremacyVerifier, RandomCircuit, VerificationParams,
582    };
583    pub use crate::quantum_volume::{
584        benchmark_quantum_volume, calculate_quantum_volume_with_params, QVCircuit, QVGate,
585        QVParams, QVStats, QuantumVolumeCalculator, QuantumVolumeResult,
586    };
587    pub use crate::scirs2_complex_simd::{
588        apply_cnot_complex_simd, apply_hadamard_gate_complex_simd,
589        apply_single_qubit_gate_complex_simd, benchmark_complex_simd_operations, ComplexSimdOps,
590        ComplexSimdVector,
591    };
592    pub use crate::scirs2_eigensolvers::{
593        benchmark_spectral_analysis, BandStructureResult, EntanglementSpectrumResult,
594        PhaseTransitionResult, QuantumHamiltonianLibrary, SciRS2SpectralAnalyzer,
595        SpectralAnalysisResult, SpectralConfig, SpectralDensityResult, SpectralStatistics,
596    };
597    pub use crate::scirs2_integration::{
598        BackendStats as SciRS2BackendStats, SciRS2Backend, SciRS2Matrix, SciRS2MemoryAllocator,
599        SciRS2ParallelContext, SciRS2SimdConfig, SciRS2SimdContext, SciRS2Vector,
600        SciRS2VectorizedFFT,
601    };
602    // SciRS2Backend already exported above with scirs2_integration module
603    pub use crate::scirs2_qft::{
604        benchmark_qft_methods, compare_qft_accuracy, QFTConfig, QFTMethod, QFTStats, QFTUtils,
605        SciRS2QFT,
606    };
607    pub use crate::scirs2_sparse::{
608        benchmark_sparse_solvers, compare_sparse_solver_accuracy, Preconditioner,
609        SciRS2SparseSolver, SparseEigenResult, SparseFormat, SparseMatrix, SparseMatrixUtils,
610        SparseSolverConfig, SparseSolverMethod, SparseSolverStats,
611    };
612    pub use crate::shot_sampling::{
613        analysis, BitString, ComparisonResult, ConvergenceResult, ExpectationResult,
614        MeasurementStatistics, NoiseModel as SamplingNoiseModel, QuantumSampler,
615        SamplingConfig as ShotSamplingConfig, ShotResult, SimpleReadoutNoise,
616    };
617    #[allow(unused_imports)]
618    pub use crate::simulator::*;
619    pub use crate::simulator::{Simulator, SimulatorResult};
620    pub use crate::sparse::{apply_sparse_gate, CSRMatrix, SparseGates, SparseMatrixBuilder};
621    pub use crate::specialized_gates::{
622        specialize_gate, CNOTSpecialized, CPhaseSpecialized, CZSpecialized, FredkinSpecialized,
623        HadamardSpecialized, PauliXSpecialized, PauliYSpecialized, PauliZSpecialized,
624        PhaseSpecialized, RXSpecialized, RYSpecialized, RZSpecialized, SGateSpecialized,
625        SWAPSpecialized, SpecializedGate, TGateSpecialized, ToffoliSpecialized,
626    };
627    pub use crate::specialized_simulator::{
628        benchmark_specialization, SpecializationStats, SpecializedSimulatorConfig,
629        SpecializedStateVectorSimulator,
630    };
631    pub use crate::stabilizer::{is_clifford_circuit, StabilizerGate, StabilizerSimulator};
632    pub use crate::statevector::StateVectorSimulator;
633    pub use crate::telemetry::{
634        benchmark_telemetry, Alert, AlertLevel, AlertThresholds, DiskIOStats, MetricsSummary,
635        NetworkIOStats, PerformanceSnapshot, QuantumMetrics, TelemetryCollector, TelemetryConfig,
636        TelemetryExportFormat, TelemetryMetric,
637    };
638    pub use crate::topological_quantum_simulation::{
639        AnyonModel, AnyonType, LatticeType, TopologicalBoundaryConditions, TopologicalConfig,
640        TopologicalErrorCode, TopologicalQuantumSimulator,
641    };
642    pub use crate::tpu_acceleration::{
643        benchmark_tpu_acceleration, CommunicationBackend, DistributedContext, MemoryOptimization,
644        TPUConfig, TPUDataType, TPUDeviceInfo, TPUDeviceType, TPUMemoryManager,
645        TPUQuantumSimulator, TPUStats, TPUTensorBuffer, TPUTopology, XLAComputation,
646    };
647    pub use crate::trotter::{
648        Hamiltonian, HamiltonianLibrary, HamiltonianTerm, TrotterDecomposer, TrotterMethod,
649    };
650    pub use crate::visualization_hooks::{
651        benchmark_visualization, ASCIIVisualizationHook, ColorScheme, GateVisualizationData,
652        JSONVisualizationHook, VisualizationConfig, VisualizationData, VisualizationFramework,
653        VisualizationHook, VisualizationManager,
654    };
655
656    #[cfg(all(feature = "gpu", not(target_os = "macos")))]
657    pub use crate::gpu_linalg::{benchmark_gpu_linalg, GpuLinearAlgebra};
658    #[allow(unused_imports)]
659    pub use crate::statevector::*;
660    pub use crate::tensor::*;
661    pub use crate::utils::*;
662    pub use scirs2_core::Complex64;
663}
664
665/// A placeholder for future error correction code implementations
666#[derive(Debug, Clone)]
667pub struct ErrorCorrection;
668
669// For backward compatibility, also re-export the prelude at the top level
670#[deprecated(since = "1.0.0", note = "Use api::prelude modules for new code")]
671pub use prelude::*;
672
673/// Convenient access to the new organized simulation API
674///
675/// # Examples
676///
677/// ```rust
678/// // For basic simulation
679/// use quantrs2_sim::v1::essentials::*;
680///
681/// // For GPU simulation
682/// use quantrs2_sim::v1::gpu::*;
683///
684/// // For distributed simulation
685/// use quantrs2_sim::v1::distributed::*;
686/// ```
687pub mod v1 {
688    pub use crate::api::prelude::*;
689}
690
691// CUDA-based GPU implementation (Linux/Windows with NVIDIA GPU)
692#[cfg(all(feature = "gpu", not(target_os = "macos")))]
693pub mod gpu;
694
695#[cfg(all(feature = "gpu", not(target_os = "macos")))]
696pub mod gpu_linalg;
697
698// Metal-based GPU implementation for macOS (future implementation)
699#[cfg(all(feature = "gpu", target_os = "macos"))]
700pub mod gpu_metal;
701
702#[cfg(all(feature = "gpu", target_os = "macos"))]
703pub mod gpu_linalg_metal;
704
705#[cfg(feature = "advanced_math")]
706pub use crate::tensor_network::*;
707
708// Beta.3: Old monolithic optimization modules have been refactored into specialized implementations
709// (optimized_chunked, optimized_simd, optimized_simple, optimized_simulator, etc.)
710// These comments preserved for reference - the functionality is available through the new modules