quantrs2_sim/
lib.rs

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