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